【问题标题】:How to run a jar file in a linux commandline如何在 linux 命令行中运行 jar 文件
【发布时间】:2013-11-23 03:55:39
【问题描述】:

如何将类路径设置为当前目录,并通过在 linux 命令行中提供 load=2 参数来运行当前目录中名为 load.jar 的 jar 文件。

我确实尝试按如下方式运行 jar,但它的执行类来自其他目录。

java -cp ./load.jar:$CLASSPATH load.Start load=2

【问题讨论】:

  • 你能告诉我们你到目前为止所做的尝试吗?我还建议阅读java的命令页面。
  • 阅读jar 命令手册页?你的意思是java 命令手册页,对吧? RTFM 响应应指向正确的 FM。

标签: java


【解决方案1】:

可以通过

在 JAR 文件 load.jar 中运行 from 类
java -jar load.jar

这样做时,您必须定义应用程序入口点。通常这是通过提供一个包含Main-Class 标记的清单文件来完成的。有关文档和示例,请查看此page。 参数 load=2 可以像在普通 Java 应用程序中一样提供:

java -jar load.jar load=2

类路径中还包含当前目录,还需要使用Class-Path 标签。请参阅here 了解更多信息。

【讨论】:

  • 谢谢。 Failed to load Main-Class manifest attribute from load.jar。我该如何解决这个错误。
  • 我将 manifest.txt 放在我的类所在的同一目录中,它的值是 Main-Class: load.sampLoad,我发出了命令 jar cfm load.jar manifest.txt *,jar 文件是使用附加目录 @987654333 创建的@ 文件名 MANIFEST.MF 但它没有我在 manifest.txt 中的行,但只有用于编译的 java 版本。这里出了什么问题。
  • 我在这个命令中卡了一整天,才意识到执行这个命令时我没有在 jar 之前放 - 符号:/
【解决方案2】:

例如,要从终端(Ubuntu Linux)甚至(Windows 控制台)执行名为 filex.jar 的 java 文件,请使用以下命令:

java -jar filex.jar

文件将在终端中执行。

【讨论】:

    【解决方案3】:
    sudo -sH
    java -jar filename.jar
    

    请记住,永远不要以 root 身份运行可执行文件。

    【讨论】:

      【解决方案4】:

      在 linux 下有一个名为 binfmt-support 的包,它允许您直接运行您的 jar,而无需输入 java -jar

      sudo apt-get install binfmt-support
      chmod u+x my-jar.jar
      ./my-jar.jar # there you go!
      

      【讨论】:

      • 对我不起作用:“无效文件(坏幻数):执行格式错误”
      • @A.Kojen 试试sudo apt-get install jarwrapper,它是binfmt-support 之上的一个包。至少对我来说,binfmt-support 的默认值是jexec——我认为这是 OpenJDK 的——并且由于某种原因无法运行我的 .jar。
      【解决方案5】:

      将文件复制到 linux Java 目录中

      cp yourfile.jar /java/bin
      

      打开目录

      cd /java/bin
      

      并执行你的文件

      ./java -jar yourfile.jar

      或多合一试试这个命令:

      /java/bin/java -jar jarfilefolder/jarfile.jar

      【讨论】:

        【解决方案6】:

        对于 OpenSuse Linux,可以简单地在 zypper 存储库中安装 java-binfmt 包,如下所示:

        sudo zypper in java-binfmt-misc
        chmod 755 file.jar
        ./file.jar
        

        【讨论】:

          【解决方案7】:

          在我的例子中,我不得不使用一个额外的标志控制台来启动和运行它:

          java -jar jarfilename.jar -console
          

          需要控制台标志才能在 shell 中运行文件并执行安装路径等设置所需的说明并接受条款和条件。

          【讨论】:

            猜你喜欢
            • 2018-02-26
            • 2018-01-20
            • 2015-03-10
            • 1970-01-01
            • 2018-04-26
            • 2021-01-11
            • 2020-11-14
            • 2013-03-17
            • 1970-01-01
            相关资源
            最近更新 更多