我现在有一个非常讨厌的问题。
对于一个学校项目(星期一到期:()),我必须提交一个.JAR文件,它是一个独立的应用程序,包括来源。
但是,在Eclipse中,我没有找到如何导出源代码,同时包含所需的库。
我的BuildPath以这种方式设置:
http://image.noelshack.com/fichiers/2014/19/1399746312-owp08.png
当我这样做时:
导出为可运行的JAR文件,一切都在我的程序中运行,但我没有JAR中的源
导出为JAR文件,我可以添加我的源代码,但是当我尝试运行JAR文件时,我有这个例外:
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
以下是我的设置:
http://image.noelshack.com/fichiers/2014/19/1399746469-sans-titre.png
我真的不知道该怎么办,我现在一直在寻找几个小时,有人能帮帮我吗?
提前谢谢。
此致
Azsde。
答案 0 :(得分:0)
嗯,简短的回答是eclipse并不支持直接这样做。这就是为什么大多数人在他们的项目中使用Ant或Maven等其他工具,而不是依赖IDE。
您可以通过以下两种方式之一解决eclipse在runnable jar导出向导中缺少导出源选项的问题:
这是我通常认为可怕的选择,但由于这是一项家庭作业,因此有两个缓解因素:
如果您既没有时间也没有兴趣了解有关清单的详细信息,我建议您使用此选项。
您可能已经注意到,即使您选择让eclipse在导出向导中生成清单的选项,您的jar文件也不会实际运行。如果你打开正常的' jar文件并查看生成的清单文件,它看起来像这样(对于使用一个第三方库的简单HelloWorld程序):
Manifest-Version: 1.0
Main-Class: HelloWorld
然而,如果你打开导出的可运行jar的清单文件,它将看起来更像这样(对于同一个程序):
Manifest-Version: 1.0
Rsrc-Class-Path: ./ commons-lang3-3.3.1.jar
Class-Path: .
Rsrc-Main-Class: HelloWorld
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
如您所见,生成的清单文件未能包含对第三方库的支持。
在这种情况下,您需要做的是编写自己的清单文件并将其作为项目中的资源。然后执行常规jar导出,并在向导的最后一页上选择使用工作区中的现有清单选项,并将其指向您自己的清单文件。
这样做的好处是,您可以随时导出新的可运行jar,包括源文件,并且每次都不需要手动修改。
如果您对使用清单文件感兴趣,可以在oracle的网站上找到一个很好的教程,可以帮助您入门:
http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html