尝试从命令行编译和运行我的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/。