从命令行编译和 运行 具有复杂文件结构的 java 程序
Compiling and running a java program with complex file structure from the commandline
尝试从设置有点奇怪的命令行编译和运行我的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
我没有收到任何编译错误(比如我离开 class 路径时出现的错误),我可以看到 .class 文件正在 com/example/文件夹。但是,我找不到 运行 编译程序的任何方法。 运行
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 路径。它是包含您的 *.class
文件的目录,有时被命名为 target/
.
$ java -cp "target:lib/myExtraJar.jar" com.example.myClass
此外,src/main/com/example/myClass
应该是 com.example.myClass
,这是 完全限定的 class 名称。有关 java
命令的详细信息,请参阅 http://www.manpagez.com/man/1/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
我没有收到任何编译错误(比如我离开 class 路径时出现的错误),我可以看到 .class 文件正在 com/example/文件夹。但是,我找不到 运行 编译程序的任何方法。 运行
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 路径。它是包含您的 *.class
文件的目录,有时被命名为 target/
.
$ java -cp "target:lib/myExtraJar.jar" com.example.myClass
此外,src/main/com/example/myClass
应该是 com.example.myClass
,这是 完全限定的 class 名称。有关 java
命令的详细信息,请参阅 http://www.manpagez.com/man/1/java/。