2012-02-02 37 views
0

我是jar我的Java Swing应用程序也使用joda.time,apache.commons和一些其他外部jar s。使用Eclipse进行JAR时,什么原因导致“重复输入”警告?

运行输出jar但是,Eclipse在通过导出> Java>可运行Jar生成jar时报告了一些警告。我选择处理外部jar的“重新包装”选项。这是约146行警告列表的顶部。

JAR export finished with warnings. See details for additional information. 

    Details: 
    duplicate entry: allclasses-frame.html 
    duplicate entry: allclasses-frame.html 
    duplicate entry: allclasses-noframe.html 
    duplicate entry: allclasses-noframe.html 
    duplicate entry: constant-values.html 
    duplicate entry: constant-values.html 
    duplicate entry: deprecated-list.html 
    duplicate entry: deprecated-list.html 
    duplicate entry: help-doc.html 
    duplicate entry: help-doc.html 
    duplicate entry: index-all.html 
    duplicate entry: index-all.html 
    duplicate entry: index.html 
    duplicate entry: index.html 
    duplicate entry: overview-frame.html 
    duplicate entry: overview-frame.html 
    duplicate entry: overview-summary.html 
    duplicate entry: overview-summary.html 
    duplicate entry: overview-tree.html 
    duplicate entry: overview-tree.html 
    duplicate entry: package-list 
    duplicate entry: package-list 
    duplicate entry: resources/inherit.gif 
    duplicate entry: resources/inherit.gif 

由于这是针对桌面的Swing应用程序,大约htmlcss(未显示)警告是颇为意外。建议吗?

回答

4

这看起来像jar文件包括Javadocs。重复的条目会以某种方式破坏。但是,除非你需要Javadocs,否则你不需要关心。尽管如此,尝试获取没有源代码或文档的jar文件。另外,Eclipse有一个选项,可以将依赖项jar包含为jar(而不是将所有内容全部扔在一起)。你也可以尝试一下。

+1

包装瓶的依赖放进玻璃瓶(而不是包装类放入瓦罐)解决了这个问题了我。 – H2ONaCl 2013-01-25 18:32:24

0

这是不正确的。

问题是,您正在导出到一个jar文件,从引用库(您使用的Jar库)中提取类。

而且,当eclipse提取jar文件中满足的所有东西,覆盖具有相同名称和路径的不同对象。

我有同样的问题,我正在寻找一个解决方案,因为你可以将罐子'包装'成罐子,但它是一个较慢的可运行解决方案。

运气

1

对于我来说,我有我的主要方法XXX.java,并把它搬到YYY.java,所以我的运行配置仍设置为使用XXX为主要切入点。在所有duplicate entry: blahblahblah消息的底部,有一个表示类似unable to locate main class的东西。所以我只是改变了我的运行配置,所有的错误都消失了。

0

我通过在Runnable JAR文件导出对话框的Runnable JAR规范中单击“将所需的库打包到生成的JAR中”来解决该问题,而不是默认的“将所需的库提取到生成的JAR中”。

Eclipse IDE的Java开发人员 版本:月神服务版本2(4.4.2) 版本ID:20150219-0600

+0

是的,看起来“jar in jar”解决方案摆脱了警告。 Eclipse对话框有点神秘,这太糟糕了。替代方案可能是“入级的jar”,它暴露了引发警告的标识符。 – H2ONaCl 2017-05-19 03:19:04

相关问题