我正在尝试将我在Eclipse Indigo中制作的一个小程序导出到可执行文件,但是,每次我这样做都会出现两个问题之一。该程序使用了一个我希望放在JAR中的资源,但是Eclipse不会放入可执行jar,无论我在导出时选择哪个选项,或者资源在哪个文件夹中 - 第一个问题!
第二个问题是每当我告诉eclipse“将所需的库提取到生成的JAR中”时,当我双击可执行的Jar时,我收到以下错误:
找不到主类:main.Launcher。程序将退出。
我不认为第二个问题在某个时刻是一个太大的问题,但第一个问题非常令人沮丧,所以我将不胜感激任何帮助或建议。提前谢谢。
(奇怪的是,甚至更令人沮丧的是,如果我使用之前版本的Eclipse制作的项目完成相同的过程,它的工作效果非常好。)
项目的文件夹结构如下:
在项目文件夹中,默认情况下有以下目录.settings
,bin
,src
。我已将资源png
放在bin
文件夹中,但我也在src
文件夹中尝试过。
答案 0 :(得分:1)
你能提供一些细节吗?
您的eclipse项目的结构是什么? 资源是什么类型的?
更重要的是,项目结构中的资源文件位于何处? 该资源文件的文件夹是否包含在源文件夹中? (似乎是导出到jar的先决条件)
在构建项目时是否将其复制到bin文件夹?
非常感谢 迈克尔
更新: 我用main方法构建了一个非常简单的Java项目1 Java类,并在源文件夹中放置了一个示例png文件。我刷新了项目,让png在项目中可见,然后我清理了项目,让它再次构建,然后我在eclipse中运行Main类。这将通过向导导出时为您提供运行配置。此后,我将整个项目导出为“runnable jar”,选择了运行配置并选择了“在生成的JAR旁边的子文件夹中复制所需的库”。包含了png,找到了Main类。可执行JAR可以执行。
(环境:Eclipse Indigo R1,Ubuntu,JDK 6)
您可能希望完成我经历的完整步骤。也许eclipse只是没有拿起文件或其他更新。
问候,迈克
答案 1 :(得分:1)
首先,我要感谢Mike(marksml)如此有帮助,并试图为我的问题提供解决方案。不幸的是,他的回答对我不起作用!
我开始看看我以前的所有项目,并注意到我遇到麻烦的那个是奇怪的一个(因为它是唯一一个没有用的东西)和使它成为奇怪的一个因素out,我发现是JRE系统库版本。该项目使用的是JavaSE-1.7库,但当我将其更改为JavaSE-1.6时,我的其他项目正在使用它,奇迹般地工作和导出完美!我仍然很好奇为什么会这样,但至少我现在正在努力......
感谢和亲切的问候,安迪