【问题标题】:Exporting Java project as .jar file will complain that certain .java files aren't found将 Java 项目导出为 .jar 文件会抱怨找不到某些 .java 文件
【发布时间】:2012-08-21 01:20:31
【问题描述】:

当尝试将项目导出为.jar 文件时,Eclipse 会抱怨在类路径中找不到某些文件:

类路径上的类文件未找到或无法访问:'proj/src/main/java/analysis/specification/VerifyVariableIsDefinedInsideTargetTerm.java'

现在,有趣的是,这些文件实际上已经很久没有在磁盘上存在了。我想我强迫 Eclipse 以某种方式刷新它的数据库。我尝试过 F5 进行完整构建,但似乎无济于事。我也尝试了this blog post 中描述的过程,但问题仍然存在。

【问题讨论】:

  • 这个问题不应该被关闭。它显然不是某个时间或地点的本地化。使用 eclipse 创建 jar 时出现错误正是 stackoverflow 问题的正确范围。我不仅收到了这个确切的错误消息。第一个答案是确切的解决方案。
  • 我用谷歌搜索过,似乎还有很多其他人有这个问题。我能够在我的环境中修复它,我想与您分享我的解决方案,但问题已解决!在我的情况下,我的 .class 文件没有创建,因此当我尝试创建 jar 文件时,它会给我上述错误。所以,这是我在 Eclipse/STS 中所做的,取消选中 Automatically build,然后单击 project clean build(选择您的特定项目)。
  • @user717630:如果可以的话,投票重新开放。

标签: java eclipse


【解决方案1】:

错误……其实我刚才就知道问题的原因了……

所有引起问题的文件确实存在于项目中,但都被注释掉了(因此,我在包资源管理器中没有看到它们,这是我通常使用的视图)。

删除它们后,一切正常。我仍然不明白他们为什么会在 JAR 创建过程中引发错误……

编辑: 下面是一个注释掉的类的例子:

package a.b.c

//import java.io.Closeable;

//public class Example implements Closeable {
//    public void close() throws IOException {
//        System.out.println("closed");
//    }
//}

因为整个类都被注释掉了,所以没有创建Example.class。而如果类被这样注释掉:

package a.b.c

//import java.io.Closeable;

public class Example
//    implements Closeable
{
//    public void close() throws IOException {
//        System.out.println("closed");
//    }
}

创建了一个Example.class,虽然是空的。

这可能是 Eclipse 中的一个错误。如果您从 eclipse 导出 ant 构建脚本并使用它,它会创建 JAR 就好了。

【讨论】:

  • 很奇怪的问题,但你的回答很准确;我已经提取了我的应用程序的一部分以用作 [大部分] 独立模块,但保留了原始类,但完全被注释掉了。没有对原始类的引用,但我还没有准备好删除它。
【解决方案2】:

可能真正的问题是不是所有的类文件都在同一个地方...我的建议是将所有.java 文件移动到同一个文件夹中,重新编译以生成.class 文件,确保所有@然后 987654324@ 文件在同一个文件夹中......然后,如果您在实际创建 .jar 时需要任何帮助,请查看此 webpage

该网站还假设您使用的是 Mac,但您仍然应该能够在 Windows 上使用命令提示符来使其工作。

【讨论】:

  • @Sae1962 如果您要编辑答案/问题,请花点时间让它对审阅者有价值。
【解决方案3】:

我也遇到过这个问题。但是,我遇到的问题是我在 Eclipse 中遇到了 JRE 配置问题。

【讨论】:

    猜你喜欢
    • 2013-08-28
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2010-09-12
    • 2020-06-22
    • 1970-01-01
    • 2013-12-25
    相关资源
    最近更新 更多