【问题标题】:Executing a jar file in Linux [closed]在 Linux 中执行 jar 文件 [关闭]
【发布时间】:2011-10-07 04:27:48
【问题描述】:

我创建了一个可执行的 Java .jar 文件。也就是说,我properly packaged a java program inside a .jar file, including a META-INF/MANIFEST file

(顺便说一句,在大多数安装了 Java 的 Windows 机器上,.jar 文件被注册为像 javaw.exe -jar %1 这样运行,因此您只需双击以这种方式准备的 jar。)

我只是将同一个文件复制到 Linux 并尝试做同样的事情。

但是,当我单击该文件时,它只是将 jar 作为 zip 文件打开,而不是调用 java。

如何配置我的 Linux 系统,以便在我双击 jar 文件时执行 jar 中的程序?也就是说,当我双击 test.jar 时,如何让我的系统调用 java -jar test.jar 之类的东西?

【问题讨论】:

  • 什么Linux? ubuntu、fedora、debian、mandriva、mint?什么桌面? kde,侏儒,...?什么文件管理器?鹦鹉螺?征服者?它们都是什么版本?
  • 如果您仍然没有找到有关如何配置桌面的解决方案,请查看 unix.stackexchange.com(一般适用于 Linux)、superuser.com(更一般)或 askubuntu.com(如果你想配置你的 Ubuntu 系统)。您可以使用 flag 链接标记此问题以进行迁移。
  • 对于未来的求职者:您可能正在寻找binfmt_miscgit.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/…
  • 您可能还在寻找名为jarwrapper的Debian软件包!

标签: java linux jar


【解决方案1】:

使您的文件可执行:

sudo chmod +x test.jar

【讨论】:

  • 如果您在内核中没有对 zip 标头进行特殊处理,通常设置可执行标志不会真正导致 jar 文件实际可执行。
  • 我认为chmod +x test.jar 就足够了。没有 root 权限 (sudo)。
【解决方案2】:

嘿,@marc 在他的评论中想说的是,根据你的 linux 风格,你如何做到这一点可能会有很大的不同。一般来说,您只需要了解如何更改您使用的任何风格的默认“打开方式”行为。您需要告诉它使用 Java 而不是归档程序打开 jar 文件。

【讨论】:

    【解决方案3】:

    一种可能的方法是创建一个包含该命令java -jar test.jar 的文本文件,然后赋予该文件执行权限。将其命名为test 然后双击该文件(或通过命令行输入./test

    【讨论】:

      【解决方案4】:

      就我个人而言,我会保留 jar 文件并创建一个脚本,该脚本将在单击该命令时执行该命令,然后我只需单击它即可。

      您在 linux 中使用什么窗口管理器/桌面?您可能可以配置单击 jar 文件的默认操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-20
        • 2011-06-10
        • 2014-06-11
        • 2011-08-18
        • 1970-01-01
        • 2012-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多