这个问题已被多次询问,但我找不到能够解决问题的答案。
<小时/> ... jdk1.8.0_20 \ BIN
我正在使用我不想更改PATH文件的计算机。 我的TextEditor.bat文件包含此
javac -encoding UTF-8 textEditor\TextEditor.java
java textEditor\TextEditor
每次我运行它,编译都很好,但不会运行:
错误:无法找到或加载主类textEditor \ TextEditor
答案 0 :(得分:0)
你会想要做这样的事情
java -cp . textEdtor\TextEditor
-cp指定不自动包含的类路径。
答案 1 :(得分:0)
你需要知道包裹。
如果这是您的文件:
public class foo {
public static void main(String args[]) {
System.out.println("foo");
}
}
并且此文件位于pkg目录中,我可以这样做:
javac pkg/foo.java
但这不起作用:
java pkg/foo
产生
Error: Could not find or load main class pkg.foo
但这会。
java -cp pkg foo
如果我在开头添加一个包语句,如:
package pkg;
public class foo {
public static void main(String args[]) {
System.out.println("foo");
}
}
我仍然可以像这样编译:
javac pkg/foo.java
现在运行如下:
java pkg/foo
规则是类路径需要位于包目录的顶部。
答案 2 :(得分:0)
感谢帮帮!我已经使用eclipse在另一台计算机上开发了该程序,并将TextEditor.java文件中的包作为package main;
,但是我将它放在一个名为TextEditor的文件夹中,以便我可以在我的便携式JDK中轻松区分它。我的flashdrive。
TLDR; .java类所在的文件夹必须与 package whatever;
具有相同的名称。