繁体   English   中英

出现错误:打开可执行文件 Jar 时找不到或加载主文件 class

[英]Getting Error: Could not find or load main class while opening executable Jar file

我正在打开fontawesomefx-glyphsbrowser-all-1.0.jar
使用java -jar /home/ubuntu/Downloads/fontawesomefx-glyphsbrowser-all-1.0.jar但出现错误

Could not find or load main class

还尝试过:

 java -cp /home/ubuntu/Downloads/fontawesomefx-glyphsbrowser-1.3.0/lib/fontawesomefx-glyphsbrowser-1.3.0.jar de.jensd.fx.glyphs.browser.GlyphsBrowser  

并获得:
Error: Could not find or load main class de.jensd.fx.glyphs.browser.GlyphsBrowser Caused by: java.lang.NoClassDefFoundError: javafx/scene/layout/VBox
另一个尝试:

java -jar fontawesomefx-glyphsbrowser-all-1.0.jar
Error: Could not find or load main class de.jensd.fx.glyphs.browser.GlyphsBrowserApp
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

JavaFX 不再与 JDK 打包在一起,但我认为它来自 JDK 11,我使用的是 JDK 8,所以为什么我Caused by: java.lang.NoClassDefFoundError: javafx/application/Application我正在使用open-jdk 8.0

那怎么办呢?

'main class not found' 错误有两种情况:

  1. .jar 包的 Manifest.MF 文件不包含有效的“Main-Class”属性。 这可能是由于未正确创建 .jar 文件造成的。 这主要是创建 jar 文件的错误。

  2. Jar 文件旨在用作库,而不是用作可执行程序,因此,它不包含任何具有“main”方法的类。

对于案例#1(manifest.mf 中的错误),这些是可能的解决方法/修复:

  1. 要求 jar 文件的提供者在 manifest.mf 文件中使用正确的“Main-Class”定义再次创建它

  2. 将 jar 文件的内容解压到一个目录中,在 manifest.mf 文件中添加“Main-Class”属性,然后再次将文件夹打包到 jar 中。

这是 Oracle 的一篇关于如何更新 manifest.mf 文件的文章:

https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

我设法通过使用Oracle JDK 8解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM