错误:无法找到或加载主类 sample.Main
Posted
技术标签:
【中文标题】错误:无法找到或加载主类 sample.Main【英文标题】:Error: Could not find or load main class sample.Main 【发布时间】:2017-03-14 03:30:14 【问题描述】:我花了大约 4 个小时尝试解决此问题。没有任何效果。 我正在使用 Java、Intellij 和 JavaFX。
我想做什么? 我在 Windows 上创建了一个 JavaFX 程序。 我想在我的 Raspberry Pi 上执行这个 .jar。
每当我想执行这个 jar 时,我都会在控制台中收到这个错误:
sample 是包,Main 是我的带有 main 方法的类。
该程序在 Windows 下运行良好。 (在 IntelliJ 内外)。
我已经做了哪些步骤?
Java 在我的 pi 上是最新的。 java -version 返回 1.8。所以我们在这里很好。
我已在项目结构 -> 库下的项目中导入了我使用的库 (Pi4J)。 & 在模块下 -> 依赖项。
我定义了一个新的工件。我设置了一个主类(sample.Main)并在JavaFX下我将应用程序类设置为sample.Main(两者都是由Intellij给我的)然后我通过构建->构建工件来构建项目。
我检查了 /src/META-INF/MANI-FEST 下的 MANI-FEST,它确实有 主类:sample.Main
在我的 pi 上,我去了 jar 文件所在的方向。然后我跑了: sudo java -jar Keimgeraet.jar 应该可以正常工作。但后来我得到了错误。
我可能做得更多但已经忘记了......
什么可能有效,但我不知道该怎么做:
在其他线程中,人们提到我指定的路径在另一台计算机上可能是错误的(在这种情况下是 pi)
Here are some pictures [imgur] 一切是如何设置的。也许这有帮助。
我很乐意尝试任何答案!我不是最有经验的 java 和 pi,但我不是一个完整的初学者。
附加问题:如何将所有库包含在一个最终的 jar 文件中?
如果您需要更多详细信息,请随时询问!
【问题讨论】:
关于你的最后一个问题,你想要的是一个fat jar,你可能可以将你的项目转换为使用Maven来构建你的项目 谢谢。一旦我弄清楚如何让这个 jar 在 pi 上工作,我会调查的:-( 很好,经过深入研究的问题。你的第一印象很好:) 我也遇到了这个错误......当我用 MAVEN 构建 JavaFX 程序时似乎真的很奇怪。 如果您找到解决方案,请告诉我...经过 10 小时的故障排除后,我不知道还能做什么 【参考方案1】:How can I create an executable JAR with dependencies using Maven?
这应该立即解决您的主类声明(在 maven 插件中的 archive.manifest.mainclass
中)和您在最终 jar 中包含所有库(这将构建两个 JAR:注意取一个“xxx-jar- with-dependencies.jar")。
如果这个 Maven 插件仍然无法使用,请告诉我们。
【讨论】:
好的。所以我已经实现了maven框架并遵循this answer。我现在可以构建 2 个 jar 文件,其中一个是具有依赖项的 jar。这个 jar 文件在我的计算机上再次工作,但在 pi 上没有。这是同样的错误。也许来自 maven 的构建过程很有趣,因为它给了我关于平台依赖性的警告。我再次附上pictures here。也许这会有所帮助。非常感谢您的帮助。 这个 jar 甚至可以在我的其他 Windows 机器上运行。所以肯定是和linux(及其目录)不兼容什么的…… 请参阅maven.apache.org/general.html#encoding-warning。尝试将您的编码设置为 UTF-8 并再次测试。此外,一旦 jar 编译完成,尝试打开它(使用 7zip 或任何东西)并检查它是否包含正确配置 Main 类的清单。您可以尝试的最后一个测试是创建一个 Ubuntu VM 并运行 jar(或者甚至构建?)以查看它是否来自 Raspberry Pi。 我在 pom 文件中添加了给定的属性,但是当我使用 maven 编译时,警告仍然出现。我已经用 7zip 打开了 jar,但是清单文件中有一个 META-INF 文件夹。在清单文件中定义了主类 (sample.Main)。我也尝试过复制我的完整 Intellij 文件夹并使用 maven 在 pi 上构建,但后来出现了很多错误。 Some of the errors 一个小更新:我将属性放在错误的项目文件夹中...警告现在消失了,但 jar 仍然无法在 pi 上运行。以上是关于错误:无法找到或加载主类 sample.Main的主要内容,如果未能解决你的问题,请参考以下文章
springboot启动时报错 错误: 找不到或无法加载主类 com.xxx.xxx.Application
IntelliJ IDEA 错误:无法找到或加载主类 GradleStart