【发布时间】:2018-04-16 03:46:52
【问题描述】:
我正试图让自己从 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:\workspace\HelloWorld\src\com\dogzilla
该路径中有两个文件:Start.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);
}
}
...和 HelloWorld.java
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 并运行javac -cp com\dogzilla\src\main\java\Start.java(有趣的是,tab 键完成了路径,所以我知道命令提示符找到 Start.java 就好了)它错误:
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options
如何编译和运行这个原本简单的程序? IDE 会隐藏它,否则我在学习它时遇到问题。
【问题讨论】:
-
您在
Start类中缺少import HelloWorld吗? -
@tima...不,这不是重复的。
-
@tonyhoan... 为什么我需要导入?你好世界?我不需要在 IDE 中...毕竟硬件在同一个类路径和同一个包中。
-
@MGoBlue93 你试过
javac Start.java HelloWorld.java? -
@tima... 是的,javac Start.java HelloWorld.java 有效。根据之前的阅读,我相信这个问题是由于我的包装声明造成的。 IDE 会处理这个问题。 CLI 没有——用户必须指定参数。我显然只是没有指定正确的事情。当我尝试运行 java Start 时,出现错误:无法找到或加载主类 Start。当我尝试 java -cp com.dogzilla Start 或 java -cp com.dogzilla.Start 时,它也会失败。
标签: java command-line classpath javac