2015-11-16 21 views
5

Ho un problema con l'esecuzione di un'applicazione JavaFX semplice. Sto usando packager nativo per creare exe. Voglio correre la mia applicazione dal menu di scelta rapida dei file di Windows, ma quando provo ad eseguire l'applicazione con params:L'applicazione JavaFX in bundle viene eseguita con argomenti non inglesi genera "Impossibile avviare JVM"

> JavaFXApplication1.exe ąęć 

e sto ottenendo 2 errori:

1) enter image description here, e dopo fare clic su "OK ":

2) enter image description here

quando corro applicazione come file jar:

> java -jar JavaFXApplication1.jar ąęć 

L'applicazione è iniziata con successo e funziona bene.

Inoltre, quando si esegue l'applicazione di questo comando:

> JavaFXApplication1.exe aec 

tutto è ok e fine lavoro dell'applicazione.

Esempio codice dell'applicazione:

package test; 

import javafx.application.Application; 
import javafx.stage.Stage; 

public class Test extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     System.out.println("Started"); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     System.out.println("Args count: " + args.length); 
     launch(args); 
    } 
} 

Ignora, tale applicazione non si chiude.

penso che sia esattamente lo stesso problema come descritto qui: https://bugs.openjdk.java.net/browse/JDK-8133034

Qualcuno ha risolvere questo? O c'è qualcuno, che conosce una soluzione alternativa a questo problema? Ho provato le versioni Java da 1.8.40 a 1.8.72, ma non è riuscito su ogni JVM. Inoltre, non è un problema ambientale, perché l'ho testato su 2 macchine diverse (e anche su sistemi operativi).

Apprezzerei qualsiasi aiuto.

+0

Hai provato a impostare la locale JVM? http://stackoverflow.com/questions/8809098/how-do-i-set-the-default-locale-for-my-jvm – Leonardo

+0

Sì. Sta anche fallendo. – Krzysiek

risposta

0

La questione Jira menziona in un commento che si tratta di una regressione che inizia con la versione JDK 8u40b06. Se possibile, una soluzione è quella di utilizzare uno più vecchio. Prova 8u40b05.

Per il momento, forse è possibile archiviare tutti gli argomenti del comando in un file (denominato in caratteri ASCII) e passare il percorso del file come argomento per leggere gli argomenti effettivi dell'applicazione.

Un'altra soluzione alternativa (l'ultima risorsa?) Consiste nel passare i caratteri come Unicode con escape. Vedi Convert escaped Unicode character back to actual character. Anche se, ammettiamolo, è una cosa brutta e noiosa da fare.

+0

C'è davvero difficile trovare JDK 8u40b05 .. Ho provato l'ultima versione beta di JDK, ma il problema esiste ancora ... Il tuo pensiero sulla soluzione alternativa va bene, ma come posso farlo dal menu di scelta rapida? Non posso passare direttamente all'app JavaFX carattere non inglese per convertirlo in Unicode con escape perché l'app non verrà eseguita con questi argomenti. – Krzysiek

+0

L'opzione Seccond "memorizza i comandi su file" è difficile da ottenere da un singolo comando. Il menu di scelta rapida dei file in Windows può eseguire solo un comando che devo aggiungere in windows reqistry. Quindi, come in un comando passare gli argomenti al file, salvarlo ed eseguire app con questo file come parametro ... E dove posso salvare questo file, perché quando eseguirò l'applicazione dalla cartella attuale c'è una possibilità che il percorso effettivo conterrà personaggi non inglesi. – Krzysiek