【发布时间】:2015-05-01 14:04:18
【问题描述】:
最终目标是使用 Glassfish 4 中的 Java webstart 提供应用程序客户端下载。
我已经尝试了 3 天,研究了我能找到的所有方法,无论我尝试什么,webstart 都被阻止了。
- 例外列表。不起作用。
- 将证书添加为受信任的证书。不起作用。
- 不需要任何权限的沙盒。不起作用。
- 更新 Java。不起作用。
- 我似乎找不到部署规则集选项,但这听起来需要完整的 Windows 服务器集成等。
- Java 控制台安全设置中没有中等选项,因为我使用的是 java 8.0.31。
- 简单的测试应用程序,只有静态 main void,它会向命令行打印一条消息。无法让它工作...
我开始发疯了,无法使用 webstart 开发任何东西,我能看到的唯一选择是购买本地开发证书或完全放弃 webstart...
How I added the certifacte to my machine - 证书显示在我的 Java 控制台中。
这是我无法工作的简单场景:
package com.cbprogramming;
import javafx.application.Application;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println("Test");
}
public static void main(String[] args) {
launch(args);
}
}
然后,我使用 IntelliJ Idea 创建了一个 JavaFX 应用程序,将其打包,包括 webstart jar 文件、JNLP 文件和 html 网页,包括用于权限的自定义清单字段:沙箱和代码库。
JNLP 文件,我还尝试了安全和权限标签,包括所有权限和沙盒。
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="WebstartTest.jnlp">
<information>
<title>Webstart Test</title>
<vendor>Testing</vendor>
<description>A Java Webstart testing app</description>
<offline-allowed/>
</information>
<resources>
<jfx:javafx-runtime version="8.0+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="WebstartTest.jar" size="1190" download="eager" />
</resources>
<security>
<all-permissions/>
</security>
<applet-desc width="600" height="400" main-class="com.javafx.main.NoJavaFXFallback" name="WebstartTest" >
<param name="requiredFXVersion" value="8.0+"/>
</applet-desc>
<jfx:javafx-desc width="600" height="400" main-class="com.test.Main" name="WebstartTest" />
<update check="background"/>
</jnlp>
还有清单文件:
Manifest-Version: 1.0
permissions: sandbox
codebase: file:///d:/test/
JavaFX-Version: 8.0
Class-Path:
Created-By: JavaFX Packager
Main-Class: com.test.Main
Name: com/test/Main.class
SHA-256-Digest: 8BK5m/ojirCK/QEx8Oe+9z/L6P8JXin0CMDK4R2mkAI=
我已将 jnlp、jar 和 html 文件添加到例外列表中,我已尝试使用 file:// 和 file:///,我还尝试将 glassfhish URL 添加到例外列表中,http和 https...
我正在使用 Jdk 8.0.31 在 Win 8.1 pro 机器上进行开发。
我读过的每个论坛的用户都说这些选项中的任何一个都可以解决他们的问题。我做错了什么?!? 8.0.31 坏了吗?还是 webstart 不值得使用?
【问题讨论】:
-
可能是错的,但我认为 WebStart 输出到 Java 控制台,而不是命令行,你检查控制台了吗?您不需要购买证书进行本地开发,自签名证书就可以了。官方trouble shooting guide。 WebStart 可以工作,但很繁琐。您可能希望改用self-contained app。
-
Java installation verification page 对您有用吗?完成故障排除指南后,编辑您的帖子并根据您的发现进行更新。
-
是的,验证有效 - 我还阅读了故障排除指南,没有发现任何问题。自包含包是一种选择,但正在放弃 webstart。感谢您的建议。
-
告诉我们您尝试运行 jnlp 文件时遇到的错误消息。
-
基本:异常:您的安全设置已阻止自签名沙盒应用程序运行。 ExitException[0]com.sun.deploy.security.BlockedException:您的安全设置已阻止自签名沙盒应用程序运行
标签: java security deployment glassfish java-web-start