如何创建可以通过单击运行的Java应用程序?
我想有一个可以轻松启动的Java应用程序。
到目前为止,我已设法创建一个jar文件,但我还没有看到任何优势。 在我通过“java HelloWorldSwing”运行我的应用程序之前,现在我使用“java -jar HelloWorldSwing.jar”(这比上一个命令更复杂,据我所知,jar文件的使用需要存在* .mf文件在同一目录中)。
我想要以下两种情况之一:
-
只需一个文件即可复制到另一个操作系统,只需在文件浏览器中单击此文件即可启动项目(此时如果点击我的jar文件,Ubuntu开始提取存档(因为jar是一个存档) , 我知道))。
-
创建一个象形图,可以放在桌面上,然后点击它启动我的Java程序。
制作一个没有依赖可执行文件的jar相对容易。 你基本上只需要在MANIFEST
指定要使用的主类。 然后可以使用java -jar ExecutableJar.jar
启动它,但在这种情况下大多数操作系统支持双击。
制作一个依赖于其他jar可执行文件的jar更加棘手。 您可以在MANIFEST
指定类路径,但这仍然意味着您需要复制多个jar来分发您的应用程序。 另一种方法是在主jar中“包装”悬浮jar。
您可以使用maven和maven-assembly-plugin完成所有这些操作。 使用jar-with-dependencies
预配置描述符 。
jar-with-dependencies
可以使用以下内容指定主类:
org.company.MyClass
编辑 :在这个问题中可以找到完整的pom.xml
。
我其实非常喜欢maven如何创建它们: http : //maven.apache.org/shared/maven-archiver/examples/classpath.html#Make
这里有一些链接可以帮助你..
JSmooth是一个Java可执行包装器。 它创建本机Windows启动器
http://jsmooth.sourceforge.net/
跨平台Java可执行包装器
http://launch4j.sourceforge.net/ http://www.captain.at/programming/java/executable-java-application.php
对于OS X,请检查Jar Bundler:
Launch4J允许您在许多平台上启动JAR。
它被称为WebStart ,
但是,它并不完全符合您的描述。 它不提供应该存在的自包装解决方案。
PS。 我个人认为可执行jar是一个玩笑,你无法控制vmargs,不能有一个好的图标,你甚至不知道它是可执行的,直到它被解包并尝试执行。
您可以创建可执行jar文件,如下所述:
http://csdl.ics.hawaii.edu/~johnson/613f99/modules/04/jar-files.html
然后,如果操作系统和用户的安全设置允许,用户可以在文件浏览器中单击它并启动主类。
你必须创建一个可执行jar,在jar的manifest文件中提到你的主类(即带有main()方法的公共类)作为Main-Class。 所以当prople双击它或在命令控制台中键入:jar“你的jar名称”然后他们将执行它。
- ClassNotFoundException:com.mysql.jdbc.Driver。 用于Web应用程序的JDBC MySQL驱动程序
- 类加载器如何在清单类路径中加载类引用?
- 在eclipse中使用FileUtils
- 如何在Eclipse中构建Java项目以创建外部JAR
- 在运行时获取jar版本
- 使用hadoop运行jar时的NoSuchMethodError Sets.newConcurrentHashSet()
- jar文件夹中的资源列表?
- 使用java从jar作为资源播放.wav文件
- 线程“main”中的exceptionjava.lang.UnsatisfiedLinkError:资源路径中找不到jnidispatch(/ com / sun /jna/win32-x86/jnidispatch.dll)