我在Windows 8.1上从Eclipse导出了一个可运行的jar。当我尝试在kali linux上使用它时,它会给出无效或损坏的jar文件'
然后我使用intellij创建了jar,但它在kali linux上给出了相同的错误。
Jar在我们使用任一方法创建的Windows系统上都能正常工作。我正在使用oracle jdk 6来导出jar。在kali linux上我安装了openjdk。
kali linux上unzip DocUploder.jar
的Oupout
Archive: DocUploder.jar
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
note: DocUploder.jar may be a plain executable, not an archive
unzip: cannot find zipfile directory in one of DocUploder.jar or
DocUploder.jar.zip, and cannot find DocUploder.jar.ZIP, period.
答案 0 :(得分:2)
好吧,由于长时间聊天后答案显而易见,我会提供动作列表,帮助找到“我的罐子不能运行”等问题。
ClassNotFoundException
或ClassDefNotFoundError
检查类路径。如果它抛出NoSuchMethodException
或类似的检查库的兼容性。 jar vft your.jar
(如果您有JDK)或Linux上的unzip
命令或Windows上的解压缩文件。如果这不起作用 - jar文件已损坏。 ls -l
或在Windows上使用dir
。如果文件具有相同的大小,请尝试通过创建哈希来比较它们。在Linux上使用md5sum my.jar
,在Windows上使用WinMd5
之类的工具。其他可能性是向前和向后复制文件并检查它是否仍然正常。