2014-10-27 2 views
1

Я приложение JavaFX, которое использует Java Web Start для его запуска. Я пытаюсь передать параметр, но до сих пор я не увенчался успехом. Я пытаюсь следовать примеру, приведенному в наборе инструментов развертывания. Так вот, где я сейчас со всем.передать параметры в приложение для запуска javafx

HMTL:

<html> 
    <head> 
     <title>Parameter Testing</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    </head> 
    <body> 
     <h1>Parameter Passing Test</h1> 
     <script src="http://java.com/js/dtjava.js"></script> 
     <script> 
      function launchApplication() { 
       dtjava.launch({url: 'ParamTesting.jnlp', params:{order: "852237"}}, {jvm: '1.7.0_72+', javafx: '2.2+'}, {}); 
       return false; 
      } 
     </script> 
     <a href='ParamTesting.jnlp' onclick="return launchApplication();"> 
      <img src="images/jws-launch-button.png" width="88" height="23"/> 
     </a> 
    </body> 
</html> 

JNLP:

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" xmlns:jfx="http://javafx.com" href="ParamTesting.jnlp"> 
    <information> 
     <title>Param Testing</title> 
     <vendor>USGS</vendor> 
    </information> 
    <security> 
     <all-permissions/> 
    </security> 
    <update check="always" policy="always" /> 
    <resources> 
     <j2se version="1.7.0_72+" href="http://java.sun.com/products/autodl/j2se" /> 
     <jar href="ParamTesting.jar" main="true" version="0.1"/> 
     <property name="jnlp.versionEnabled" value="true"/> 
    </resources> 
    <application-desc name="ParamTesting"/> 
    <jfx:javafx-desc main-class="gov.usgs.tnm.paramtesting.MainApp" name="MainApp"> 
     <fx:param name="order" value="852237"/> 
    </jfx:javafx-desc> 
</jnlp> 

JavaFX запустить метод:

public void start(Stage stage) throws Exception { 
    System.out.println(getParameters().getNamed().get("order")); 

    Parent root = FXMLLoader.load(getClass().getResource("/fxml/Scene.fxml")); 

    Scene scene = new Scene(root); 
    scene.getStylesheets().add("/styles/Styles.css"); 

    stage.setTitle("Parameter Testing"); 
    stage.setScene(scene); 
    stage.show(); 
} 

Everytime я запускаю это, «п ull "печатается в консоли. Я не могу понять, где я ошибаюсь.

Кроме того, это приложение имеет связанную с ним систему заказов, поэтому параметр должен быть динамическим. Если у кого-то есть представление о том, как я могу это сделать, это было бы очень признательно.

ответ

0

Я нашел свою проблему. Мне не нужен элемент описания приложения в JNLP. Я не знаю, почему его присутствие там не позволяет параметрам быть доступными для программы JavaFX, но это так.