3

你好呀,

我已将“Apache commons IO” jar 添加到我的项目中,位于名为 libs 的文件夹中。 Eclipse不再对 Apache commons jar 中的类进行下划线,这让我认为它是正确链接的。

但是每当我导出我的 jar 并运行它时,我都会得到一个java.lang.ClassNotFoundException。我该如何解决这个错误?

附加信息: -导出为可运行的 jar,因为这是一个插件。- 我确保 jar 在导出的 jar 中(使用 WinRAR 打开)

非常感谢您的帮助,我现在已经花了 2 个多小时在互联网上搜索!

4

1 回答 1

0

创建一个名为 Manifest.mf 的清单文件,并确保它包含在您的 jar 文件中。您可以在命令行中执行此操作,也可以将其作为构建的一部分包含在内。我过去曾使用 ant 将文件复制到 jar 中。

该文件应包含如下条目:

Manifest-Version: 1.0
Main-Class: com.myproject.MyMainClass
Class-Path: commons-io.jar

如果该文件被打包到 META-INF 文件夹中的 jar 文件中,那么您应该可以在 Eclipse 之外运行它。我自己做的一件事是用 Eclipse 打包一个包含所有内容的可运行 jar,然后将 jar 与我自己的 jar 进行比较以查看差异。您还可以在代码中打印出类路径,并查看 Eclipse 使用的内容与您自己运行程序使用的内容之间的区别。

于 2012-12-25T23:07:13.263 回答