私は同じ問題を経験し、次のようにして解決することができました:
すべてのマニフェスト ファイル (RCP プロジェクトの各 JAR 用) に、次の属性を追加します。
Application-Name: My App Name
Permissions: all-permissions
Codebase: *
Application-Library-Allowable-Codebase: *
Caller-Allowable-Codebase: *
Trusted-Library: true
解決策の 2 番目の部分は、jnlp prefix を追加して jnlp プロパティを安全にすることです。ここで解決策を見つけました。フレームワークのプロパティ(osgi、eclipse ..)と、次の代わりにプロパティEgに対してこれを行う必要があります。
<property name="eclipse.product" value="com.amdosoft.oct.ui.product"/>
<property name="osgi.instance.area" value="@user.home/Application Data/myApp"/>
<property name="osgi.configuration.area" value="@user.home/Application Data/myApp"/>
<property name="my.App.property" value="someValue"/>
使用する
<property name="jnlp.eclipse.product" value="com.amdosoft.oct.ui.product"/>
<property name="jnlp.osgi.instance.area" value="@user.home/Application Data/myApp"/>
<property name="jnlp.osgi.configuration.area" value="@user.home/Application Data/myApp"/>
<property name="jnlp.my.App.property" value="someValue"/>
ここからソース付きのEclipseランチャーをダウンロードします
Web Start Launcher では、プロパティ名を古い値(jnlp プレフィックスなし)に戻す必要があります。これを行うには、ソースのこの部分を WebStartLauncher クラスの main メソッドに追加します。
Properties properties = System.getProperties();
// copy properties to avoid ConcurrentModificationException
Properties copiedProperties = new Properties();
copiedProperties.putAll(properties);
Set<Object> keys = copiedProperties.keySet();
for (Object key : keys) {
if (key instanceof String) {
String keyString = (String) key;
if (keyString.startsWith("jnlp.")) {
// re set all properties starting with the jnlp-prefix
// and set them without the prefix
String property = System.getProperty(keyString);
String replacedKeyString = keyString.replaceFirst("jnlp.", "");
System.setProperty(replacedKeyString, property);
}
}
}
新しいランチャーを実行可能な JAR としてエクスポートし、JNLP ファイルと同じディレクトリに配置します。
次の行を追加して、JNLP ファイルを編集します。
<jar href="myAppLauncher.jar"/>
タグ内で application-desc タグを次のように編集します。
<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
</application-desc>