【问题标题】:Eclipse make real .jar file every runEclipse 每次运行都会生成真正的 .jar 文件
【发布时间】:2012-08-15 09:37:47
【问题描述】:

我有一个程序可以从外部复制文件(在.jar 内),但是每当我尝试从 Eclipse 运行它时,它都会给我一个异常:

java.io.FileNotFoundException: <my workspace>\<my project>\bin (Access is denied)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(Unknown Source)
    at java.util.jar.JarFile.<init>(Unknown Source)
    at java.util.jar.JarFile.<init>(Unknown Source)

我猜这是因为 Eclipse 不会在您每次运行时都生成 .jar。我可以通过导出可运行的jar来完美地运行我的程序,但是每次我想测试程序时都导出很繁琐和痛苦。

有什么方法可以告诉 Eclipse 每次运行时都生成一个.jar(我知道它会很慢,但没关系)。或者至少模拟一个 jar 文件?

【问题讨论】:

  • 貌似是this question的转帖
  • @Salain 有点,但不完全是。该问题询问您是否可以在每次构建时更新 jar。我想要的是在构建时立即运行 jar(我对 Apache Ant 一无所知,但它might not work in my case)。不过,其他答案会让这个过程更容易。
  • 我明白了。好吧,如果你想测试 .jar 为什么不按照这个协议来测试它:从 Eclipse 导出为 .jar,在 shell 中运行“java -jar myProject.jar”。
  • @Salain 是的,这就是我正在做的。一切都很好,一切顺利,只是想知道你是否可以按下运行按钮,或者 doble-slick 某些东西,Eclipse 会制作 jar 并自动运行它。它很有效,只是当你不得不做很多事情时有点痛苦。

标签: java eclipse jar compilation extract


【解决方案1】:

@Salain 是对的 - 但如果您的用例只是在项目之外复制文件,那么忽略它们是否在 jar 中并通过 @987654321 处理它们不是更容易吗@?

【讨论】:

  • 这比所有 zip 的东西要容易得多。
  • 是的,这肯定会更容易,但我想做的是修改 jar 中的文件。然后我发现你不能这样做。因此,我通过提取自身、将文件放入其中并再次压缩来使其工作。我知道我不必经历这么多麻烦,但我只希望它在一个 .jar 中,你可以复制到任何你想要的地方。
  • @Java - 这永远不会容易,因为它与 jar 的设计用途相去甚远 - 作为分发应用程序代码和相关资源的简单方法。我建议您的应用程序应该写入的任何文件都应该存储在存档之外。或者,如果您只是尝试有条件地向 jar 中添加资源,那么像 Ant 或 Maven 这样的构建工具会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2018-09-05
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多