Ubuntu上的可执行JAR(NetBeans)

我正在NetBeans中编写一个简单的Swing应用程序,并首次在Ubuntu机器上这样做。

如您所知,NetBeans会自动为“设为主”的项目创build可执行JAR。

在Windows上,您可以双击一个可执行的JAR,它会自动调用JRE并运行该应用程序。 在Ubuntu中,双击.jar文件会导致文件在存档pipe理器中被打开。 为了运行我的JAR,我必须右键单击它并select“OpenJDK Java 6 Runtime”或从命令行启动它。

从命令行我没有任何问题。 但是 ,当我尝试从右键单击菜单中启动它时,出现以下错误:

文件MySwingApp.jar没有标记为可执行文件…

所以我有两个问题:

  1. 我需要做些什么才能将其设置为可执行文件? 这是我可以做NB内部或我必须使用shell? 如果我必须通过shell设置权限,是否与NB的自动生成**可执行文件** JARS策略相冲突? 无论如何,我将使用什么命令翻转可执行文件?!?!
  2. 这只是一个Linux的呃逆? 我想把这个JAR发送给运行Windows的朋友,我希望他们能够双击它并让程序启动

感谢您的任何有用的build议!

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

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

这里是关于在Linux中使用双击来运行jar的一个线程 。

Java可以像Ubuntu(和其他Linux)上的本地二进制文件一样,它是内核的一个特性。 你需要安装binfmt-support软件包,以这种方式为内核提供运行java的钩子。

在Ubuntu中打开终端并运行:

sudo apt-get install binfmt-support

然后让你的JAR文件可执行

chmod a+x yourjar.jar

然后你可以像打其他任何二进制文件一样运行你的JAR

yourjar.jar

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

如果你执行一个jar,你运行这个命令

  java -jar YOURJAR.jar ... 

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

  gimp YOUR.png 

你不需要让你的PNG成为一个可执行文件,也不会解决问题。

相反,你必须告诉你的桌面环境,双击jar或png-File时要做什么,而且你必须像在Windows上那样在Linux上执行 – 也许Windows上的安装程序会为你做,因为通常只有在操作系统(Windows)上的桌面环境(Windows)上,而Linux有Gnome,KDE,XFCE,LXDE,fluxbox和数以百万计。

而且它不太清楚你想用它做什么。 由于jar文件是压缩zip文件的特殊形式,通常包含Manifest和类,所以Archivmanager并不是一个错误的解决方案,它比显示存档的内容更节省。

将文件复制到Windows没有任何影响。 Windows甚至没有一个可执行的标志,但你不应该摆弄它。 你改变你的桌面设置,那些不能被移动到窗口,你不会想。

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

我经历了互联网,我遇到了一个完整的步骤运行jar文件的文章http://mlartist.blogspot.in/2012/07/deployment-netbeans-project-in-linux.html

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