答案 0 :(得分:2)
为了运行Java程序,您可以在不安装JRE的情况下执行此操作,即可以在没有JRE的计算机上运行应用程序,我们每天都会这样做。
方法是使用嵌入式JRE部署应用程序,并使用脚本(.bar,.sh)使用嵌入式JRE执行应用程序。所以你的应用程序是独立的,不需要外部JRE。您需要将整个JRE文件夹复制到应用程序中,并使用测试错误方法开始删除未使用的文件。您还可以减少文件大小,删除不需要的类,例如在rt.jar中(您可以解压缩,删除未使用的类并再次压缩)。
这种方法的问题在于,当您使用较少的文件分发JRE时,您违反了Oracle / SUN JRE分发策略。如果应用程序是供内部使用的,我认为没关系,如果你想重新发布应用程序,那你就麻烦了。
另一个问题是如何通过代码安装JRE,您可以尝试使用您的应用程序发送JRE,使用安装程序检测是否已安装JRE并安装所需的ID。在Java代码中执行此操作并非易事,您可以使用Runtime
执行外部程序...
不要依赖JAVA_HOME
,因为现在还没有积极使用。
实施例: 假设您的应用程序名称为“A”,您的文件夹结构可能如下所示:
A
|-> Run.bat
|- jre
|- bin
|- lib
|- lib
|-> A.jar
您的应用程序主类是包a中的Main.java。您的Run.bat
可能看起来像START "" jre\bin\javaw.exe -cp lib\A.jar a.Main
您只需通过调用jre
并传递jar和主类来调用bin\javaw.exe
文件夹中的嵌入式jre。 jre
文件夹可以从c:\Program Files (x86)\Java\jre6\
(Windows 7)复制内容和整个JRE。
答案 1 :(得分:1)
如果您可以使用基于Web的解决方案,则可以使用deployjava
http://download.oracle.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html