Windows上的Java类路径,包含自定义程序包

时间:2016-04-05 01:43:14

标签: java classpath packages javac

对于我一直在研究的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 错误,否则也无效。

1 个答案:

答案 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