假设我有以下文件夹结构:
\ src \ com \ proj \ pp1 \ stuff其中com.proj.pp1
和com.proj.pp1.stuff
是我拥有的两个包:
-src
-com
-proj
-pp1
tester.java
-stuff
some other .java's
作为tester.java中的主要功能,并使用/ stuff中声明的类。
在tester.java
我以这种方式声明导入:
package com.proj.pp1;
import com.proj.pp1.*;
在所有在stuff下声明的文件中:
package com.proj.pp1.stuff;
没有任何进口。
我可以让.class执行以下操作,位于/pp1
文件夹中:
javac tester.java stuff/*.java
但是当我尝试运行测试者类时:
java tester
它给出了错误输出:
无法找到或加载主类测试人员
如果我尝试java com.proj.pp1.tester
您认为实际问题是什么?
答案 0 :(得分:1)
javac
将文件作为参数,因此它应该是
cd src
javac com/proj/pp1/tester.java
那应该编译tester.java
和所有相关的类。
和java
将主类作为参数,因此要运行它:
java com.proj.pp1.tester
(当您调用java com.proj.pp1.tester
时,请确保com/proj/pp1/tester.class
存在。)
您可能希望阅读-d
的{{1}}选项,以避免将您的课程放在源目录中。
答案 1 :(得分:0)
javac -d bin src/*.java src/stuff/*.java
java -classpath bin src.Main