【发布时间】:2015-09-30 19:31:08
【问题描述】:
阅读this关于通过命令行添加依赖项的问题后,由于以下错误,我无法启动我的应用程序:
Error: Could not find or load main class kiaragen.class
我已经尝试过this 问题中描述的变体:
$ java -cp ".:/usr/lib/jvm/java-8-jdk/jre/lib/*:kiaragen/lib/*" kiaragen/bin/org/fiware/kiara/generator/kiaragen.class
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen.class
$ java -cp ".:/usr/lib/jvm/java-8-jdk/jre/lib/*:kiaragen/lib/*" kiaragen/bin/org/fiware/kiara/generator/kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
$ java -cp .:/usr/lib/jvm/java-8-jdk/jre/lib/*:kiaragen/lib/* kiaragen/bin/org/fiware/kiara/generator/kiaragen.class
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen.class
$ java -cp .:/usr/lib/jvm/java-8-jdk/jre/lib/*:kiaragen/lib/* kiaragen/bin/org/fiware/kiara/generator/kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
$ java -classpath ".:/usr/lib/jvm/java-8-jdk/jre/lib/*:kiaragen/lib/*" kiaragen/bin/org/fiware/kiara/generator/kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
$ java -classpath .:/usr/lib/jvm/java-8-jdk/jre/lib/*:kiaragen/lib/* kiaragen/bin/org/fiware/kiara/generator/kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
其中 kiaragen 是项目的根目录(我需要从该目录之外运行 kiaragen.class)。我正在使用 java 1.8:
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
在 ubuntu 14.04 上。字节码文件 kiaragen.class 存在并且确实有一个入口点。该项目已使用 IntelliJ IDEA 14.1.4 编译。
IntelliJ 中显示的依赖项是:
我错过了什么?
编辑#1:
我已经运行了以下命令:
$ java -cp ".:/usr/lib/jvm/java-8-jdk/jre/lib/*:/home/kiara/AppLab/KIARA/kiaragen/lib/*" kiaragen/bin/org.fiware.kiara.generator.kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
$ java -cp ".:kiaragen/lib/*" kiaragen/bin/org.fiware.kiara.generator.kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
$ java -cp ".:kiaragen/lib/*" kiaragen/bin/org.fiware.kiara.generator.kiaragen
Error: Could not find or load main class kiaragen.bin.org.fiware.kiara.generator.kiaragen
kiaragen.class在指定位置:
$ find kiaragen/ -name "kiaragen*"
kiaragen/
kiaragen/kiaragen.iml
kiaragen/src/main/java/org/fiware/kiara/generator/kiaragen.java
kiaragen/bin/org/fiware/kiara/generator/kiaragen$TemplateErrorListener.class
kiaragen/bin/org/fiware/kiara/generator/kiaragen.class
kiaragen/scripts/kiaragen.sh
kiaragen/scripts/kiaragen.bat
为什么java找不到?
编辑#2:
包的结构如下:
编辑#3:
kiaragen.java 确实有一个 main() 方法:
/*
* ----------------------------------------------------------------------------------------
*
* Main entry point
*/
public static void main(String[] args) {
ColorMessage.load();
m_platforms = new ArrayList<String>();
m_platforms.add("gradle");
try {
kiaragen main = new kiaragen(args);
if (main.execute()) {
System.exit(0);
}
} catch (BadArgumentException e) {
System.out.println(ColorMessage.error("BadArgumentException") + e.getMessage());
printHelp();
}
System.exit(-1);
}
【问题讨论】:
-
package对应的kiaragen是什么?哪个jar包含这个class? -
@CKing "kiaragen.src.main.java.org.fiware.kiara.generator.kiaragen.java"
-
kiaragen.class 是我要运行的实际应用程序。它不是 .jar 文件的一部分,但取决于问题中提到的那些。
-
查看我的答案,让我知道它是否适合您。我没有足够的信息来指出运行您的课程的确切命令,但我的回答将为您指明正确的方向。你已经有一段时间了,所以你知道这个网站是有效的。反馈很重要。
标签: java linux intellij-idea command-line classpath