![](/img/trans.png)
[英]How to build my HelloWorld Android application with Necessitas (qt port)?
[英]How to execute my HelloWorld script
我目前正在尝试运行我的第一个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"
我明白了, Error: Could not find or load main 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
为什么会这样? 为什么我的程序没有正确执行?
java
命令采用类的名称,而不是文件的名称。
然后,它使用Java类加载器在当前目录或类路径中查找该类的.class
文件。
当您传递HelloWorld.class
,它会在包HelloWorld.
查找名为class
HelloWorld.
(那将是./HelloWorld/class.class
)
你需要通过HelloWorld
。
正如其他人指出的那样,参数需要只是类名,没有扩展名.class
。 但是必须满足第二个要求:类文件必须位于类路径中 。
将当前目录包含在全局类路径中通常是不可取的(虽然方便),但您可以在命令行上覆盖它:
java -cp . HelloWorld
您还可以指定显式路径:
java -cp "C:\Users\Shawn" HelloWorld
如果您的Java程序使用其他类,请包含全局类路径,如下所示:
java -cp "%CLASSPATH%;." HelloWorld
有关详细信息,请参阅以下javac 文档 。 特别是关于交叉编译选项的部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.