从命令行尝试编译Java时收到错误

时间:2018-04-16 03:46:53

标签: java command-line classpath javac

我试图让自己脱离IDE - 作为程序员变得懒惰。在发布之前,我查看了这些网站并没有帮助:

Error compiling Java from command line Compiling java from the command line Javac "cannot find symbol" http://www.javaprogrammingforums.com/java-ides/16906-trouble-running-java-file-windows-command-prompt.html#post71916

我的源文件有以下路径:

d:\工作空间\的HelloWorld \ SRC \ COM \ dogzilla

该路径中有两个文件:Start.java ...

SOLVER

...和HelloWorld.java

package com.dogzilla;

public class Start{

    public Start() {

    }

    private static final String S = "Hello World";

    public static void main(String[] args) {

        HelloWorld hw = new HelloWorld();
        hw.printHelloWorld(S);
    }

}

当我将目录更改为package com.dogzilla; public class HelloWorld { public HelloWorld() { } public void printHelloWorld(String s){ System.out.println(s); } } 并运行D:\workspace\HelloWorld\com\dogzilla\src\main\java时,它出现错误:

javac Start.java

所以我读过你必须指定类路径,因为Start.java:14: error: cannot find symbol HelloWorld hw = new HelloWorld(); ^ symbol: class HelloWorld location: class Start Start.java:14: error: cannot find symbol HelloWorld hw = new HelloWorld(); ^ symbol: class HelloWorld location: class Start 2 errors 行。

所以我将目录更改为package com.dogzilla;并运行D:\workspace\HelloWorld(有趣的是,tab键完成路径所以我知道命令提示符正好找到Start.java)它出错了:< / p>

javac -cp com\dogzilla\src\main\java\Start.java

如何编译和运行这个简单的程序? IDE会隐藏这一点,但我在学习它时遇到了问题。

1 个答案:

答案 0 :(得分:1)

您要做的第一件事就是将java代码编译成类文件。 javac命令用于此目的。

只要捕获所有必须编译的java文件,就可以从任何地方运行此命令。

这将有效:

[D:\workspace\HelloWorld\src]> javac com\dogzilla\*.java

这也有效:

[D:\workspace\HelloWorld\src\com\dogzilla] java Start.java HelloWorld.java

要运行已编译的代码,请使用java命令。您必须使用主类的完全限定名称,因此您必须位于根源目录中才能执行此操作。

[D:\workspace\HelloWorld\src]> java com.dogzilla.Start