Java 如何执行HelloWorld脚本
我目前正在尝试运行我的第一个Java 如何执行HelloWorld脚本,java,cmd,Java,Cmd,我目前正在尝试运行我的第一个java脚本: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } 我决定稍微研究一下Java。然而,我来自像JavaScript和PHP这样的语言,它们不需要任何编译或类似的东西 到目前为止,我认为我在命令提示符下正确编译了它: C:\Users\Shawn>"C:\P
java
脚本:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
我决定稍微研究一下Java。然而,我来自像JavaScript和PHP这样的语言,它们不需要任何编译或类似的东西
到目前为止,我认为我在命令提示符下正确编译了它:
C:\Users\Shawn>"C:\Program Files\Java\jdk1.7.0_25\bin\javac.exe" "HelloWorld.java"
它添加了一个名为:HelloWorld.class
的文件,因此我认为我做了一些正确的事情
但是,现在当我尝试实际运行程序时,使用:
C:\Users\Shawn>"C:\Program Files\Java\jdk1.7.0_25\bin\java.exe" "C:\Users\Shawn\HelloWorld.class"
我发现,错误:无法找到或加载主类C:\Users\Shawn\HelloWorld.class
但是,如果我尝试使用相同的命令,但使用javac.exe
,我会得到:
javac: invalid flag: C:\Users\Shawn\HelloWorld.class
Usage: javac <options> <source files>
use -help for a list of possible options
javac:无效标志:C:\Users\Shawn\HelloWorld.class
用法:javac
使用-help获取可能选项的列表
为什么会这样?为什么我的程序不能正确执行?java命令采用类的名称,而不是文件的名称。
然后,它使用Java类加载器在当前目录或类路径中查找该类的
.class
文件
当您传递HelloWorld.class
时,它会在包HelloWorld中查找名为class
的类。
(那将是
/HelloWorld/class.class
)
您需要传递
HelloWorld
,正如其他人指出的那样,参数必须只是类名,而不带扩展名.class
。不过,还必须满足第二个要求:类文件必须位于
通常不建议(尽管方便)在全局类路径中包含当前目录,但您可以在命令行中重写它:
java -cp . HelloWorld
还可以指定显式路径:
java -cp "C:\Users\Shawn" HelloWorld
如果Java程序使用其他类,请包含如下全局类路径:
java -cp "%CLASSPATH%;." HelloWorld
有关更多信息,请参阅下面的javac。特别是关于交叉编译选项的部分。“C:\Program Files\Java\jdk1.7.0\u 25\bin\Java.exe”HelloWorld