Доступ запрещен JNLP-файл - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь запустить свой файл JNLP.Я создал ExecutableJar для своего приложения JavaFX и подписал его командой jarsigner.Мой файл jnlp выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="myjnlp.jnlp">
    <information>
        <title>MyApplication</title>
        <vendor>Me</vendor>

    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.7+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="myapp.jar"
            main="true" />
    <security>
                <all-permissions/>
    </security>
    </resources>

    <application-desc
         name="MyApplication"
         main-class=
           "pl.package.Main"
         width="300"
         height="300">

     </application-desc>
     <update check="background"/>
</jnlp>      

Когда я запускаю его, я получаю сообщение об ошибке:

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "javafx.preloader" "read")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "javafx.preloader" "read")
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
    at java.lang.System.getProperty(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$158(LauncherImpl.java:130)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:129)
    at javafx.application.Application.launch(Application.java:252)
    at pl.package.Main.main(Main.java:36)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Файл jar запускается без проблем, но когда я пытаюсь запустить jnlpФайл, который в основном в моем понимании пытается выполнить файл JAR, то проблема появляется.Что я делаю неправильно ??.java

package pl.package;


import java.net.URL;
import java.util.ResourceBundle;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;

public class ThirdController implements Initializable {

    @FXML
    private WebView webView;

    @FXML
    private Button reloabBtn;

    private WebEngine engine;



    public void initialize(URL location, ResourceBundle resources) {
        engine = webView.getEngine();
    }

    public void loadURL(ActionEvent event) {
        System.out.println("Opening page...");
        engine.load("https://opentextbc.ca/physicstestbook2/chapter/multiple-slit-diffraction/");
    }
}

1 Ответ

0 голосов
/ 10 июня 2019

Обновить XML-файл до этого:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="myjnlp.jnlp">
    <information>
        <title>MyApplication</title>
        <vendor>Me</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.7+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="myapp.jar"
            main="true" />
    </resources>
    <security>
        <all-permissions />
    </security>
    <application-desc
         name="MyApplication"
         main-class=
           "pl.package.Main"
         width="300"
         height="300">
     </application-desc>
     <update check="background"/>
</jnlp>    

Этот тег ниже не должен быть в пределах <resources></resources>:

<security>
    <all-permissions />
</security>
...