对于我一直在研究的Java项目,我有以下文件结构:
classes / X / Y / Z /
X / Y /和Z /内部是我项目不同部分的.java文件。它们分别包装在一起。当我将所有内容编译在一起时,我使用以下命令将所有.class文件发送到classes /目录:
javac -cp classes/jsoup-1.8.3.jar -d ./classes/ X/*.java Y/*.java Z/*.java
这个编译得很好(我之前把JSoup JAR文件放在了classes目录中)。在Z /里面,有一个Main.java,它有一个适当声明的public static void main(String[] args)
。编译此文件以及所有其他文件,并将其.class文件全部发送到/ classes目录。
现在,当我尝试在classes / X /目录中使用java Main
运行Main.class时,出现以下错误:
Error: Could not find or load main class Main
所以我想我会尝试搞乱类路径。我去了两个目录并尝试了这个:
java -cp jsoup-1.8.3.jar;./X/;./Y/;./Z/ Z/Main
但是我得到的是关于如何使用java的说明,然后是
bash: ./X/: Is a directory
bash: ./Y/: Is a directory
bash: ./Z/: Is a directory
P.S。我在Windows中使用Git Bash,这就是为什么我得到bash错误而不是cmd或powershell错误。我也尝试使用冒号作为分隔符而不是分号,但除非我做了一些 else 错误,否则也无效。
答案 0 :(得分:1)
假设你有:
MYDIR
X a.class b.class
- Y d.class
- Z MainClass.class
其中X,Y和Z是目录 Y和Z是X的子目录,X是myDir的子目录。
将自己定位于> myDir并执行:
java -cp "your jars..." X.Y.MainClass