繁体   English   中英

如何执行我的HelloWorld脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM