无法运行打包的TestMain.java

时间:2016-03-12 20:43:36

标签: java classpath packages javac

我正在我的包programapper中创建Java文件,并且package programapper;位于每个文件的顶部。其中一个文件名为TestMain.java

package programapper;

import java.util.*;
import java.util.List.*;
import java.lang.*;
import java.io.*;

class TestMain {
  public static void main(String args[]) {
    String filename = null;
    System.out.print("File to read: ");
    Scanner in = new Scanner(System.in);
  }
}

每当我编译时,我都会运行

javac -d . *.java

这编译得很好,我在我的主Programapper /目录中留下了所有的.java文件,然后我有Programapper / programapper,我的所有类文件都存储在其中。

我无法加载该类并运行其主函数。我正在使用

java -classpath .:programapper/ programapper.TestMain

我也尝试过使用

java -classpath .:programapper/ TestMain

我收到的错误是Error: Could not find or load main class programapper.TestMain

1 个答案:

答案 0 :(得分:2)

您需要制作课程public

public class TestMain {
    ...

如果省略可见性,则只能从同一个包中的类访问该类。这对主要班级来说还不够。

此外,您需要将classpath指定为“。”,而不是仅指定类名。并指定包括包的完整类:

java -classpath . programapper.TestMain