Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在windows上创建的jar不';我不能在linux上工作_Java_Eclipse_Jar_Intellij Idea_Executable Jar - Fatal编程技术网

Java 在windows上创建的jar不';我不能在linux上工作

Java 在windows上创建的jar不';我不能在linux上工作,java,eclipse,jar,intellij-idea,executable-jar,Java,Eclipse,Jar,Intellij Idea,Executable Jar,我在Windows8.1上从Eclipse导出了一个可运行的jar。当我在kali linux上尝试t tun它时,它会给出“无效或损坏的JAR文件” 然后,我使用intellij创建了jar,但在kali linux上也出现了同样的错误 Jar在我用这两种方法创建的windows系统上都能正常工作。我正在使用OracleJDK6导出jar。在kali linux上,我安装了openjdk 在kali linux上解压DocUploder.jar Archive: DocUploder.jar

我在Windows8.1上从Eclipse导出了一个可运行的jar。当我在kali linux上尝试t tun它时,它会给出“无效或损坏的JAR文件”

然后,我使用intellij创建了jar,但在kali linux上也出现了同样的错误

Jar在我用这两种方法创建的windows系统上都能正常工作。我正在使用OracleJDK6导出jar。在kali linux上,我安装了openjdk

在kali linux上解压DocUploder.jar

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.

好吧,因为在长时间的聊天之后答案是显而易见的,所以我会提供一个操作列表,帮助查找问题,比如“我的jar没有运行”

  • 检查命令行。确保类路径是正确的
  • 检查错误消息。如果它抱怨jar已损坏,请检查jar。如果它抱怨类版本,请检查JRE版本。如果它抛出
    ClassNotFoundException
    ClassDefNotFoundError
    检查类路径。如果抛出
    NoSuchMethodException
    或类似错误,请检查库的兼容性
  • 要检查jar文件,请尝试在linux上使用.jar
    jarvft(如果您有JDK)或类似于
    unzip
    的命令,或者在windows上使用解压缩文件。如果这不起作用-jar文件已损坏
  • 如果jar文件在一台机器上运行,而没有在另一台机器上运行,请检查您是如何复制该文件的。首先检查两台机器上的文件大小。在unix上使用
    ls-l
    ,在windows上使用
    dir
    。如果文件大小相同,请尝试通过创建哈希来比较它们。在linux上使用
    md5sum my.jar
    ,在windows上使用
    WinMd5
    等工具。另一种可能是前后复制文件,并检查其是否仍然正常
    如何在linux上运行jar?一些Java版本(我知道一个愚蠢的问题)尝试运行
    jar vft yourjar.jar
    解压yourjar.jar
    。这只是为了检查jar是否确实已损坏。@MadProgrammer,OP说jar已损坏,而不是类文件。这可能意味着java版本的相关性较低。如果无法解压缩该文件,它确实已损坏。如何将文件从windows复制到linux?