如何创建可以通过单击运行的Java应用程序?

时间:2010-02-18 12:11:04

标签: java jar

我想要一个可以轻松启动的Java应用程序。

到目前为止,我已设法创建一个jar文件,但我还没有看到任何优势。在我通过“java HelloWorldSwing”运行我的应用程序之前,现在我使用“java -jar HelloWorldSwing.jar”(这比上一个命令更复杂,据我所知,jar文件的使用需要存在* .mf文件在同一目录中。)

我想要以下两种情况之一:

  1. 只需一个文件即可复制到另一个操作系统,只需在文件浏览器中单击此文件即可启动项目(此时如果点击我的jar文件,Ubuntu开始提取存档(因为jar是档案,我知道))。

  2. 创建一个象形图,可以将其放在桌面上,然后点击它来启动我的Java程序。

8 个答案:

答案 0 :(得分:9)

制作一个没有依赖性的 jar 可执行文件相对容易。你基本上只需要在MANIFEST主类中指定使用。然后可以使用java -jar ExecutableJar.jar启动它,但在这种情况下,大多数操作系统支持双击。

制作一个依赖于其他jar 可执行文件的 jar更加棘手。您可以在MANIFEST中指定类路径,但这仍然意味着您需要复制多个jar来分发您的应用。另一种方法是在主罐中“包装”悬浮罐。

您可以使用 maven maven-assembly-plugin完成所有这些操作。使用jar-with-dependencies预配置的descriptor

<configuration>
     <descriptorRefs>
             <descriptorRef>jar-with-dependencies</descriptorRef>
     </descriptorRefs>
</configuration>

可以使用以下内容指定主类:

<archive>
     <manifest>
        <mainClass>org.company.MyClass</mainClass>
     </manifest>
 </archive>

编辑:在this question中可以找到完整的pom.xml

答案 1 :(得分:3)

我其实非常喜欢maven创建它们的方式: http://maven.apache.org/shared/maven-archiver/examples/classpath.html#Make

答案 2 :(得分:2)

这里有一些可能对你有用的链接..

JSmooth是一个Java可执行包装器。它创建了本机Windows启动器

http://jsmooth.sourceforge.net/

跨平台Java可执行包装器

http://launch4j.sourceforge.net/


http://www.captain.at/programming/java/executable-java-application.php

答案 3 :(得分:2)

答案 4 :(得分:2)

Launch4J允许您在许多平台上启用JAR。

答案 5 :(得分:2)

它被称为WebStart

但是,它并不完全符合您的描述。它不提供应该存在的自包装解决方案。

PS。我个人认为可执行jar是一个玩笑,你无法控制vmargs,不能有一个好的图标,你甚至不知道它是可执行的,直到它被解包并尝试执行。

答案 6 :(得分:0)

您可以创建可执行jar文件,如下所述:

http://csdl.ics.hawaii.edu/~johnson/613f99/modules/04/jar-files.html

然后,如果操作系统和用户的安全设置允许,用户可以在文件浏览器中单击它并启动主类。

答案 7 :(得分:0)

你必须创建一个可执行jar,在jar的manifest文件中提到你的主类(即带有main()方法的公共类)作为Main-Class。因此,当prople双击它或在命令控制台中键入:jar“你的jar名称”然后他们将执行它。