我正在NetBeans中编写一个简单的Swing应用程序,并且是第一次在Ubuntu机器上执行此操作。
许多人都知道,NetBeans会自动为“设为主”的项目创建可执行JAR。
在Windows上,您可以双击可执行JAR,它会自动调用JRE并运行应用程序。在Ubuntu中,双击.jar文件会导致在归档管理器中打开该文件。为了运行我的JAR,我要么右键单击它并选择“Open with OpenJDK Java 6 Runtime”,要么从命令行启动它。
从命令行我没有遇到任何问题。 然而,当我尝试从右键菜单启动它时,出现错误信息:
文件MySwingApp.jar未标记为可执行文件...
所以我有两个问题:
感谢任何有用的建议!
答案 0 :(得分:5)
您需要手动调整构建过程,以便在Netbeans中将jar文件标记为可执行文件。转到项目根目录并打开build.xml。标题包含有关添加到构建过程的说明。有一个目标,“-post-jar”,在jar构建之后调用。您需要制作该目标并使用Ant's chmod任务来修改您的jar。一旦你这样做,每次你在该项目中制作一个jar文件时都会发生这种情况。
只要他安装了JRE,就可以在你朋友的Windows机器上正常运行。
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 !!