如何在JNLP中禁止某个Java版本?

时间:2018-02-06 10:18:24

标签: java-web-start jnlp

有时Java中存在严重的回归错误,导致我们的产品无法使用。所以我想禁止相关版本,例如目前为8u161和8u162(错误JDK-8195830)。

我怎样才能在JNLP中这样做? docs仅提及$('.your-slider').slick({ dots: false }); 作为通配符。那么列出所有其他Java版本的唯一可行方法是什么?像

+

......直到......

<java version="1.8.0_05"/>
<java version="1.8.0_11"/>

更新 所以结果看起来像这样。

<java version="1.8.0_151"/>
<java version="1.8.0_152"/>

结论:最后我决定不在JNLP中提供任何版本限制,因为弹出窗口表示它建议启动应用程序 - 这与我要说的完全相反用户。

1 个答案:

答案 0 :(得分:1)

问题似乎是* racle似乎已经放弃了对加载和使用早期JRE的支持,除了最新的JRE。 您的方法似乎是唯一的纯JNLP方式,也是suggested

您也可以尝试将它写在一个由空格分隔的大行中。我唯一要改变的是订单,以便最高的是顶部。

  

“如果指定了几个JRE,则表示优先列表   支持的JRE,最首选版本。“

您可能希望查看here

发布的类似问题

排除特定Java版本的另一种方法是在您的应用程序中进行检查。

public static void main(String [] args) {
  String version = System.getProperty("java.version");
  if("1.8.0_161".equals(version) || "1.8.0_162".equals(version){
    //print an error dialog
  }
  else{
   //continue normal flow
  }
}

在以前的应用程序中,我甚至更进一步,有两个不同的Web应用程序:在实际应用程序之前启动的“轻型”Web应用程序。这个轻量级的应用程序几乎没有关于Java版本的要求(甚至以1.4开头),然后它会检查所有必要的要求(Java版本,操作系统,内存,CPU,文件......)。只有在一切顺利之后,实际应用才会开始。