从命令行编译和运行具有复杂文件结构的 Java 程序



尝试从命令行编译和运行我的java程序,设置有点奇怪。 文件结构如下:

[ROOT]/
|
|____libs/
|    |____myExtraJar.jar
|     
|____src/
|____main/
|____com/
|____example/
|____myClass.java

该包在 java 文件的顶部定义为

package com.example;

我能够在根文件夹中很好地编译程序(我认为(,使用

javac -classpath "/libs/myExtraJar.jar" src/main/com/example/*.java

我没有收到任何编译错误(例如如果我离开类路径就会发生的错误(,我可以看到 com/example/文件夹中正在创建.class文件。 但是,我找不到任何方法来运行编译的程序。 运行

java src/main/com/example/myClass

消息中的结果

Error: Could not find or load main class src.main.com.example.myClass

任何帮助将不胜感激。

运行类路径时需要指定类路径,并且还需要使用完全限定的类名。喜欢

java -cp "libs/myExtraJar.jar:src/main" com.example.myClass

艾略特是对的。更准确地说,您需要将构建目录添加到类路径中。它是包含*.class文件的目录,有时命名为target/

$ java -cp "target:lib/myExtraJar.jar" com.example.myClass

此外,src/main/com/example/myClass应该是com.example.myClass的,这是完全限定的类名。有关java命令的详细信息,请参阅 http://www.manpagez.com/man/1/java/。

最新更新