Ubuntu上的可执行JAR(NetBeans)

时间:2011-08-04 22:25:44

标签: java linux netbeans ubuntu executable-jar

我正在NetBeans中编写一个简单的Swing应用程序,并且是第一次在Ubuntu机器上执行此操作。

许多人都知道,NetBeans会自动为“设为主”的项目创建可执行JAR。

在Windows上,您可以双击可执行JAR,它会自动调用JRE并运行应用程序。在Ubuntu中,双击.jar文件会导致在归档管理器中打开该文件。为了运行我的JAR,我要么右键单击它并选择“Open with OpenJDK Java 6 Runtime”,要么从命令行启动它。

从命令行我没有遇到任何问题。 然而,当我尝试从右键菜单启动它时,出现错误信息:

文件MySwingApp.jar未标记为可执行文件...

所以我有两个问题:

  1. 如何将其设置为可执行文件?这是我可以在NB内部做的事情,还是我必须使用shell?如果我必须通过shell设置权限,那是否与NB的自动生成**可执行** JARS的策略冲突?无论如何我会使用什么命令来翻转可执行位?!?!
  2. 这只是一个Linux打嗝?我想将这个JAR发送给运行Windows的朋友,我希望他们能够双击它并启动程序
  3. 感谢任何有用的建议!

5 个答案:

答案 0 :(得分:5)

  1. 您需要手动调整构建过程,以便在Netbeans中将jar文件标记为可执行文件。转到项目根目录并打开build.xml。标题包含有关添加到构建过程的说明。有一个目标,“-post-jar”,在jar构建之后调用。您需要制作该目标并使用Ant's chmod任务来修改您的jar。一旦你这样做,每次你在该项目中制作一个jar文件时都会发生这种情况。

  2. 只要他安装了JRE,就可以在你朋友的Windows机器上正常运行。

  3. Here is a thread关于在Linux中双击运行jar。

答案 1 :(得分:3)

你可以在Ubuntu(以及其他linux)上使用Java作为本机二进制文件,它是内核的一个特性。您需要安装binfmt-support软件包,以便为内核提供以这种方式运行java的钩子。

在Ubuntu中打开终端并运行:

sudo apt-get install binfmt-support

然后使您的JAR文件可执行

chmod a+x yourjar.jar

然后,您可以通过键入

来运行您的JAR,就像任何其他二进制文件一样

yourjar.jar

答案 2 :(得分:1)

Jar文件不是第一类可执行文件,它们不会通过更改其可执行标志而成为神奇的可执行文件。

如果执行jar,则运行命令

 java -jar YOURJAR.jar ...

它是一样的,好像你双击一个png文件,并期望它在绘画程序中运行

 gimp YOUR.png

您不需要将png设为可执行文件,也不会解决问题。

相反,您必须告诉您的桌面环境,双击jar或png-File时该怎么做,而您必须在Linux上以与在Windows中相同的方式执行此操作 - 也许Windows上的安装程序可以执行此操作对你而言,因为OS(Windows)上通常只有桌面环境(Windows),但Linux有Gnome,KDE,XFCE,LXDE,fluxbox等数百万。

并不确定你想用它做什么。由于jar文件是一种特殊形式的压缩zipfiles,通常包含Manifest和类,因此Archivmanager不是一个错误的解决方案,显示存档的内容比执行它更安全。

将文件复制到Windows无效。 Windows甚至没有可执行标志,但你不应该操纵它。您更改了桌面设置,并且无法将这些设置移动到Windows,您也不希望这样。

如果你的DE中有正确的设置,你不需要反复告诉Netbeans或任何其他IDE,如何处理jar文件。

答案 3 :(得分:1)

我浏览了互联网,我看到了一篇文章,其中包含运行jar文件的完整步骤 http://mlartist.blogspot.in/2012/07/deployment-netbeans-project-in-linux.html

答案 4 :(得分:0)

Jar文件基本上是一个zip文件,要创建一个可执行文件,你有几种不同的方法。 Best(在我看来)是使用ant来创建它。或者你可以简单地echo "Main-Class: YOUR.MAIN.CLASS" >> Manifest然后通过jar -cmf Manifest JARFILENAME.jar INPUTFILES创建你的jar,然后在linux下使它可执行,右键单击它并点击属性。然后单击权限选项卡并选中execute。或者您可以成为终端bamf并cd到jar目录并chmod +x JARFILE.jar HAPPY NIXING !!