如何在不编辑PATH的情况下使用.bat文件运行java文件

时间:2015-09-03 23:13:24

标签: java batch-file

这个问题已被多次询问,但我找不到能够解决问题的答案。

<小时/> ... jdk1.8.0_20 \ BIN
  - textEditor [文件夹]
  - javac.exe
  - java.exe
  - TextEditor.bat
... jdk1.8.0_20 \ BIN \文本编辑
  - TextEditor.class
  - TextEditor.java

我正在使用我不想更改PATH文件的计算机。 我的TextEditor.bat文件包含此

javac -encoding UTF-8 textEditor\TextEditor.java
java textEditor\TextEditor

每次我运行它,编译都很好,但不会运行:

错误:无法找到或加载主类textEditor \ TextEditor

3 个答案:

答案 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;具有相同的名称。