在Windows上创建的jar在linux上不起作用

时间:2014-07-02 08:33:13

标签: java eclipse jar intellij-idea executable-jar

我在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.

1 个答案:

答案 0 :(得分:2)

好吧,由于长时间聊天后答案显而易见,我会提供动作列表,帮助找到“我的罐子不能运行”等问题。

  1. 检查命令行。确保类路径正确。
  2. 检查错误消息。如果它抱怨jar已损坏,请检查jar。如果它抱怨类版本检查JRE版本。如果它抛出ClassNotFoundExceptionClassDefNotFoundError检查类路径。如果它抛出NoSuchMethodException或类似的检查库的兼容性。
  3. 要检查jar文件,请尝试jar vft your.jar(如果您有JDK)或Linux上的unzip命令或Windows上的解压缩文件。如果这不起作用 - jar文件已损坏。
  4. 如果jar文件在一台计算机上运行而在其他计算机上没有运行,请检查如何复制该文件。首先检查两台机器上的文件大小。在unix上使用ls -l或在Windows上使用dir。如果文件具有相同的大小,请尝试通过创建哈希来比较它们。在Linux上使用md5sum my.jar,在Windows上使用WinMd5之类的工具。其他可能性是向前和向后复制文件并检查它是否仍然正常。