我如何分发我的Java应用程序以方便用户?

时间:2010-12-01 18:37:20

标签: java cross-platform distribution

我真的很困惑 - 但实际上它非常奇怪,因为我知道两种编程语言,但我无法弄清楚像这样的简单...... 我一直在寻找年龄,但我似乎无法理解它。 你看,很长一段时间我一直在用 AutoIt 写作,我已经写了两个即将上市的程序!他们从来没有打算过很长时间(有点像Windows Vista),所以最近我一直在学习Java成功。我通过Java教程在 eclipse 中编写了一些非常简单的应用程序!我现在已准备好将我的程序转移到Java,以便通过Java的跨平台能力获得更广阔的市场,但我从未预料到分发会变得如此复杂。 我遇到的第一个问题是在多个操作系统上的易用性:我不希望我的客户必须处理JRE或多个文件,我需要一个可以在MAC,Windows,Linux等上运行的双击解决方案甚至完整的电脑新手都可以启动我的软件!其次,这不是我不确定该怎么做的问题。这包括我的软件包中的文件,有些需要与程序保持独立,但其他文件可以编译,但实际上我认为这可以由安装程序解决 - 这可能会更容易!最后我制作的另一个proram是独立的,所以它可以在USB记忆棒上工作(它的设计目的是什么),现在,你怎么认为我这样做,所以它会在没有任何插入的情况下在多个操作系统上启动Hasle城?

更新::忘记添加::我对安全性的担忧

我已阅读并从个人经验中了解到:反编译.jar是多么容易,如果没有正确保护,请阅读源代码!我知道混淆,我知道我会有合法的支持,但它只是让我担心。即使从用户可能错误地获得我的软件的第一次打击的角度来看也是如此。

所以在一个sendace结束(请在上面阅读): 我需要能够让人们使用我用Java编写的软件双击例如。就像在AutoIt中制作的东西 - 标准应用程序,即* .exe

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以在不需要任何额外软件的情况下使用两条路线。

首先是制作executable jar (Java Archive) file。 Java会自动将.jar扩展名与大多数系统上的Java解释器相关联。当您双击它时,JAR的manifest file会告诉它which class to launch

第二个不太推荐的路由是使用JNLP启动器文件创建Java Web Start应用程序。它更多地针对从网站分发的应用程序。

答案 1 :(得分:1)

我将建议第三种方法:为您的应用程序编写几个特定于平台的启动脚本。例如,适用于Windows的run.bat和适用于Linux的run.sh。在每个脚本内部编写一个命令来运行带有所有必要参数的JRE。您还可以在此脚本中维护一些启动前检查(是否安装了JRE?)或某些特定于平台的操作。