【问题标题】:java argument for applet or java web start which is not listed in specification规范中未列出的 applet 或 java web start 的 java 参数
【发布时间】:2014-03-24 16:49:15
【问题描述】:

jnlp 文件规范列出了一些可以应用于 java-vm-args 的 jvm 参数,我的参数不在列表中,我尝试使用参数运行但它被忽略了,我的 jvm 参数是

-Djava.security.debug=sunpkcs11,pkcs11

我尝试在我的 jnlp 文件中将它添加到属性 java-vm-args ,

<j2se version="1.7+"  java-vm-args="-d32 -Djava.security.debug=sunpkcs11,pkcs11"/>

但是这个参数不适用于applet或java web start,请问我可以在applet或java web start的情况下将上述参数添加到jvm吗?

【问题讨论】:

    标签: java applet java-web-start


    【解决方案1】:

    Web Start 有一组有限的可在命令行上传递的参数。以下是here的摘录

    property 元素定义了一个可用的系统属性 通过 System.getProperty 和
    System.setProperties 方法。它有两个必需的属性:名称和 价值。例如:

    jnlp 中设置的属性 文件通常会在 VM 启动后由 Java Web Start 设置 但在调用应用程序之前。一些属性被考虑 “安全”属性,并且可以作为 -Dkey=value 参数传递 java调用命令行。

    The following properties are considered "secure" and will be passed to the VM in this way:  
    - sun.java2d.noddraw
    - javaws.cfg.jauthenticator   
    - swing.useSystemFontSettings
    - swing.metalTheme 
    - http.agent  
    - http.keepAlive
    

    对于不受信任的应用程序,如果 JNLP 文件中设置的系统属性被认为是安全的,或者如果属性名称以“jnlp”开头,则它们只会由 Java Web Start 设置。或“javaws”。

    【讨论】:

    • 表示不能设置这个参数?解决办法是什么?我们不能编写需要规范中未列出的参数的applet 或java web start 应用程序?是否有任何其他方法将此参数传递给 jre ,没有此参数 sunpkcs11 将无法正常工作,所以很明显我的应用程序将无法工作。我尝试将其添加为属性,但不起作用,请给我一个解决方法。
    • 这意味着您需要使用 property 标记来传递 Web Start 认为不“安全”的参数。
    • -Djava.security.debug 属性是 sunpkcs 需要的,我的代码对此没有任何作用,我尝试通过设置此属性而不是传递 jvm 参数来运行带有 main 方法的 java 类我使用 System.setProperty ("java.security.debug", "sunpkcs11,pkcs11");它不起作用也试过 jnlp 中的属性标记不起作用。
    • 看看stackoverflow.com/questions/19400725/… 看看这是否符合您的问题。我们还没有签署我们的 JNLP 文件,但有另一种机制来传递非 JVM 参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多