java - 如何使我用 Java 编写的程序可供其他人使用?

标签 java object draw exe .app

所以我写了一个有趣的小程序,我想把它展示给我的一些 friend 。我的 friend 不是程序员,如果我将包含必要类和文件的文件夹发送给他们,他们不知道该怎么办。我希望能够通过电子邮件向他们发送一些东西(或将其放在 cd/拇指驱动器上),然后他们可以双击并让它运行该程序。我完全不知道如何做到这一点。我正在上课,我们使用 linux 计算机(我不在类里面时使用 mac),我们必须对 .java 文件进行 javac,然后使用 java“文件名”使其运行。我有使用 Mac 和 PC 的 friend ,我希望他们只需单击该程序即可运行....

如果有差异,则程序是使用对象绘制库编写的。

最佳答案

使用jar 命令构建一个可执行的jar 文件。它基本上是一个具有某些保证的 ZIP 文件。

在 jar 文件中,您将需要(这是一项要求)一个/META-INF 目录,其中包含一个名为 the manifest (/META-INF/MANIFEST.MF) 的文件。 .它描述了 jar 文件的“ list ”,它在某些方面模仿了运输 list 。

在 MANIFEST.MF 文件中,您需要指令

Main-Class: org.mystuff.path.Main

当通过命令“执行”jar 文件时,应该指示 JVM 运行 org.mystuff.path.Main 类

java -jar myproject.jar

请注意,JAR 文件倾向于以不同方式处理类路径,因为它们会忽略 CLASSPATH 环境变量和 -classpath 命令行选项。如果需要引用其他 JAR 文件,则需要在 MANIFEST.MF 文件中添加类路径指令。使用上面的 list 链接查看有关嵌入类路径的详细信息。

根据“项目”的简单性,一个 JAR 文件可能足以发送给他们;但是,如果您需要的不止于此,您可能会发现自己不得不在几个目录中传送一些文件。在这种情况下,将文件(包括 JAR 文件)和目录放在第二个 zip 文件中。虽然您可以选择多种不同的方式来“打包”这些项目,但我建议

(layout inside the zip file)
/Readme.txt (a text file describing what to do for new comers)
/License.txt (a text file describing how liberal / restrictive you wish to be concerning your authorship rights.
(the license sounds like overkill, but without it nobody can prove they're not breaking the law)
/bin/myprogram.sh (shell script containing "java -jar ../lib/myprogram.jar")
/bin/myprogram.cmd (Windows batch file containing "java -jar ..\lib\myprogram.jar")
/lib/myprogram.jar (the executable jar file containing your compiled code)
/lib/otherjar.jar (other jar files, as necessary)

有了这样的 zip 文件结构,安装说明就变成了“解压缩 zip 文件;将目录更改为“bin”并运行“myprogram.whatever”。

关于java - 如何使我用 Java 编写的程序可供其他人使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533433/

相关文章:

java - 具有任意 AND 子句的动态 spring 数据 jpa 存储库查询

javascript - 如何为 Google map 正确设置此 JavaScript 数组/对象的格式?

java - 为什么这段Java代码中有多个构造函数?

c# - Winforms 等待绘制直到添加控件

java - 从嵌套集合中检索值

java - 如何在方向更改时保存 ArrayLists 位置

c++ - 将对象传递给模板构造函数或方法的正确方法是什么

vba - 用vba绘制图表(不是图表对象而是图表)

java - 在java中绘制极坐标图

java - 在 mavenCentral 中发布时如何从 pom 中删除依赖项