Vla*_*ner 12 java version launch
确定计算机上安装的JRE版本是否足以满足用户想要运行的应用程序的最佳方法是什么?有没有办法使用java-only的东西呢?我希望该解决方案适用于Windows/Linux/MacOSX - 如果JRE版本太低,则应显示消息.目前,如果我尝试在Java 1.5上运行它(该应用程序是为Java 1.6构建的),我会遇到异常.如果没有通用解决方案,那么在Windows上执行此操作的最佳方法是什么?
TRE*_*REE 11
你可以使用反射和两个编译器来做到这一点.使用您希望能够运行的最旧的Java版本编译主类.它使用System.getProperty("java.version")或者其他方式检查版本,然后使用反射加载您的真实主类,如果该检查通过,甚至可能直接加载jar.JRE不应加载在编译时未被外部主类引用的任何类.
您可以考虑使用Java Webstart.即使名称暗示类似于applet,它也是关于独立应用程序的.Webstart是一个启动程序,用于检查JNLP文件(一个简单的XML文件,您可以在其中配置应用程序的下载位置,所需的Java版本和其他一些元数据)并使用正确的JRE启动您的应用程序.如果有更新版本,它甚至会更新应用程序.缺点是,你必须写一个JNLP文件.这是一个例子:
<?xml version="1.0" encoding="utf-8"?>
<!--
###############################################################################
#
# @(#)draw.jnlp 1.6 02/09/11
#
# JNLP File for Draw Demo Application
#
###############################################################################
-->
<jnlp spec="0.2 1.0"
codebase="http://java.sun.com/javase/technologies/desktop/javawebstart/apps"
href="draw.jnlp">
<information>
<title>Draw 4 App</title>
<vendor>Sun Microsystems, Inc.</vendor>
<homepage href="http://java.sun.com/javase/technologies/desktop/javawebstart/demos.html"/>
<description>A minimalist drawing application along the lines of Illustrator</description>
<description kind="short">Draw Demo Short Description</description>
<icon href="images/draw.jpg"/>
<offline-allowed/>
</information>
<resources>
<j2se version="1.3+" href="http://java.sun.com/products/autodl/j2se"/>
<j2se version="1.3+"/>
<jar href="draw.jar" main="true" download="eager"/>
</resources>
<application-desc main-class="Draw"/>
</jnlp>
Run Code Online (Sandbox Code Playgroud)
第二种可能性是使用发射器程序.一个例子是Apache Commons Launcher.您也可以自己编写一些启动器应用程序,但这通常不值得付出努力.
为较高版本的 JRE 构建的应用程序将无法在较低版本的 JRE 上运行。因此,您无法仅向应用程序添加代码来检查 JRE 版本 - 如果 JRE 版本不兼容,您的 JRE 版本检查代码将不会首先运行。
您需要做的是拥有某种为较低版本的 JRE(1.3?)构建的启动器应用程序,它会检查版本,然后在必要时启动您的应用程序。这对我来说听起来有点笨拙。
安装时检查版本怎么样?您安装应用程序的方式是否允许您检查环境变量或执行任何类型的脚本?
| 归档时间: |
|
| 查看次数: |
40756 次 |
| 最近记录: |