【问题标题】:Java classpath on Windows with custom packages带有自定义包的 Windows 上的 Java 类路径
【发布时间】:2016-04-05 18:18:51
【问题描述】:

我一直在从事的 Java 项目具有以下文件结构:

类/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 

附言我在 Windows 中使用 Git Bash,这就是为什么我得到 bash 错误而不是 cmd 或 powershell 错误的原因。我也尝试过使用冒号而不是分号作为分隔符,但除非我做错了什么else,否则这也不起作用。

【问题讨论】:

    标签: java classpath packages javac


    【解决方案1】:

    假设你有:

    我的目录
    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
    

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 1970-01-01
      • 2015-09-30
      • 2014-05-06
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 2017-10-24
      • 2012-09-21
      相关资源
      最近更新 更多