【问题标题】:Adding Apache commons IO to my project将 Apache commons IO 添加到我的项目中
【发布时间】:2012-12-25 22:11:29
【问题描述】:

你好,

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

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

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

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

【问题讨论】:

  • 你不能把罐子放在罐子里……你需要在清单中引用公共罐子或使用-classpath选项。
  • 通过以下方式运行您的项目:java -cp lib/common-io.jar;bin/classes my.mainclass.Main
  • @AndersR.Bystrup 我总是把我的 jdbc jar 放在我的 jar 里面,这样就可以了?
  • @ajozwik 我自己没有运行 jar,因为它是一个插件。
  • 我相信您可以将 jar '重新打包'到一个新的 jar 中。但是不确定程序。

标签: java apache jar io


【解决方案1】:

创建一个名为 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 使用的内容与您自己运行程序使用的内容之间的区别。

【讨论】:

    猜你喜欢
    • 2013-07-27
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多