2011-07-20 32 views
1

如何比较其他?我有一个嵌入式应用程序,如果使用常规的Eclipse导出工具编译和归档为.jar,那么在我的模拟器中以及随后的设备本身中都可以正常工作。现在我试图使用命令行jar工具来达到同样的效果,但我被卡住了。 .jar文件已创建,我甚至可以在模拟器中正确安装它,但是当我尝试运行时,没有任何反应。Eclipse导出工具vs命令行jar工具

由于我对此模拟器/设备的使用经验,我认为它存在于命令行工具生成的.jar文件中的问题。我没有使用任何类型的“编译参数”,所以除了清单文件外,我还使用命令行工具添加了Eclipse。此外,使用Eclipse进行“一些”压缩,而命令行工具会生成更多压缩文件(或者根本没有使用-0参数进行压缩,但没有任何压缩文件可以工作)。

好吧,这一切都让我想知道Eclipse归档工具是如何工作的,以及是否有办法通过命令行工具获得相同的结果 - 我知道,这听起来很愚蠢,但该死的仿真器也是如此。

不,我认为相关的,但我使用jar命令是这样的:

jar cmfv0 34092040.mf Releaser.jar -C src . (output file size: 140kb) 

jar cmfv 34092040.mf Releaser.jar -C src . (output file size: 53kb) 

Eclipse的输出81KB文件。

编辑:请关闭此问题。问题是我的巨大愚蠢(我忘记编译文件之前uu归档它们)

+1

您是否尝试打开罐子并比较内容? – whiskeysierra

+0

是的,他们是相同的,相同的文件夹结构和所有。但我认为凯利法国人下面击中了现场。 – makoshichi

+0

我纠正,编译的未压缩文件不具有相同的大小 – makoshichi

回答

1

Eclipse可能会创建一个不同的结构内部,例如,包括依赖关系等。是否有任何依赖项目或第三方罐子被使用?

如果jar中的代码将取决于外部jar,那么可以在manifest.mf文件中为每个相关jar添加一个条目。应该发生的是运行时检查清单并给出更具体的错误;像“无法找到jar:xyz.jar”,它提醒您将其添加到类路径中。

+0

良好的通话,是的,我使用了一些其他.jars外部引用。事实上,当我忘记将外部.jar添加到正确的文件夹时,我在命令行生成的.jar(没有任何事情发生)时出现的问题完全相同。有关如何使用命令行工具处理它的任何想法? (我开始相信我不能逃离蚂蚁或Maven了) – makoshichi

+0

顺便说一句,我不想​​包括外部.jars,我只是想知道如何对它们进行引用(毕竟,Eclipse项目管理处理这个问题) – makoshichi