Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为只有在Java 7或更高版本(32位)时才启动的Java RCP应用程序添加自定义弹出窗口?_Java_Eclipse_Eclipse Rcp_Rcp - Fatal编程技术网

如何为只有在Java 7或更高版本(32位)时才启动的Java RCP应用程序添加自定义弹出窗口?

如何为只有在Java 7或更高版本(32位)时才启动的Java RCP应用程序添加自定义弹出窗口?,java,eclipse,eclipse-rcp,rcp,Java,Eclipse,Eclipse Rcp,Rcp,目前,我有一个使用JavaRCP(EclipseMars)构建的应用程序。只有当系统具有JAVA 7或任何其他更高版本(仅32位)时,它才能启动。当尝试使用JAVA 6启动时,会弹出一个弹出窗口(见附件)。[一些用户的系统中可能仍然有JAVA 6]。我想添加我自己的自定义对话框而不是这个。如何做到这一点?有什么想法吗?我在这里附上错误日志供您参考。 您需要在运行时获取信息并启动模式弹出窗口 这是为了获得版本1.6、1.7和1.8等 String v = System.getProperty("j

目前,我有一个使用JavaRCP(EclipseMars)构建的应用程序。只有当系统具有JAVA 7或任何其他更高版本(仅32位)时,它才能启动。当尝试使用JAVA 6启动时,会弹出一个弹出窗口(见附件)。[一些用户的系统中可能仍然有JAVA 6]。我想添加我自己的自定义对话框而不是这个。如何做到这一点?有什么想法吗?我在这里附上错误日志供您参考。

您需要在运行时获取信息并启动模式弹出窗口

这是为了获得版本1.6、1.7和1.8等

String v = System.getProperty("java.specification.version");
这是为了得到拱门。(32或64)

此方法用于显示弹出模式对话框

JOptionPane.showMessageDialog(....);
现在将此示例作为定向点,并构建您自己的条件:

public static void main(String[] args) {
    String v = System.getProperty("java.specification.version");
    Double d = new Double(v);
    if (Double.compare(d, 1.6) == 0) {
        JOptionPane.showMessageDialog(null, "Ups!! this java version is not supported!", "Opala", 0);
    }
}

如果在
-vmargs
行下方的
.ini
中添加以下行:

-Dosgi.requiredJavaVersion=1.7
然后会弹出一个对话框,其中包含一条无法自定义的消息(因为该消息在Eclipse Equinox框架中是硬编码的:请参见),类似于以下内容:


或者,您可以将Eclipse RCP应用程序与JRE捆绑在一起。

谢谢您的回答。但这并没有解决我的问题。我无法在运行时获取所需的版本。崩溃发生得更早,可能是在工作台级别。我想不出来。如果你有任何进一步的建议,请让我知道这工作的罚款,但它仍然不能回答我的问题。我仍然需要一个定制的弹出窗口,因为用户仍然可以尝试使用64位java版本启动应用程序。在这种情况下,将不会出现弹出窗口。如果在弹出窗口中显示“我的应用程序只支持32位JVM(7或更高版本)”,那就太好了。我已经尝试在-Dosgi.requiredJavaVersion=1.7的上方添加-d32,效果很好!。它仅在安装了32位Java(1.7或更高版本)时启动。
-d32
是Oracle特定的Java参数。您看到的是
-d32
和仅安装了版本7的64位JVM的哪个对话框?不幸的是,无法自定义对话框消息(请参阅我的编辑)。我同意您的看法,我仍然无法自定义弹出窗口。(认为这可能是一个解决方法)。当我安装了版本8的64位JVM时,我会看到此对话框(64位弹出窗口)。奇怪的是,当我安装了版本7时,我没有看到这个弹出窗口。如果在ini中没有添加-d32,当我尝试使用64位JVM(版本8)启动我的应用程序时…我不能(什么都没有发生)。我尝试使用其他64位JVM来查看发生了什么(版本6和7)。它给出了一个对话框,上面说“必须有Java运行时环境(JRE)或Java开发工具包(JDK)来运行您的应用程序。找不到Java虚拟机……”。我假设在ini中引入-d32可以解决这个问题。但是,只有在JVM 8 64位的情况下才能看到错误对话框。在JVM的6和7中,我仍然得到相同的对话框。
-Dosgi.requiredJavaVersion=1.7