GUIをサポートする環境とGUIをサポートしない環境の両方で、Linuxで動作するJavaFXアプリケーションを開発しています。 意味は、アプリケーションが起動するときに "ssh -X"で実行されるマシンに接続すると、GUIが開き、 "ssh"(-Xなし)で接続するとコンソールバージョンのアプリケーションが起動するはずです。JavaFX2 - GUIなしでアプリケーションを起動するためのオプション
JavaFxを使用しているときにどうすれば実現できますか?
私は、次の方法でそれを試してみました:
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("MainGui.fxml"));
SplitPane page = null;
try {
page = (SplitPane) loader.load();
} catch (IOException e) {
System.exit(1);
}
Scene scene = new Scene(page);
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
public static void main(String[] args) {
if (args.length == 1 && args[0].equals("nogui")) {
System.out.println("NOGUI SELECTED");
} else {
launch(args);
}
}
}
しかし、それは動作しませんでした、と私は、-Xオプションを使用せずに別のマシンにSSH経由で接続しようとしたときに、私はまだエラーが表示さ:
をException in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.UnsupportedOperationException: Unable to open DISPLAY
at com.sun.glass.ui.gtk.GtkApplication.<init>(GtkApplication.java:68)
at com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41)
at com.sun.glass.ui.Application.run(Application.java:146)
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:257)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:211)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:337)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
... 5 more
"nogui"コマンドラインオプションを指定してGUIで環境を実行すると、 "NOGUI SELECTED"という出力が表示されますが、アプリケーションは実行を終了しません。
私はこれをどのように達成することができますか?
JARファイルはどのように作成しましたか?内部の 'Manifest.MF'ファイルには何がありますか? 'main'メソッドを呼び出さずにJavaFXの' Application'クラスを起動するように設定されている可能性があります。 編集:実際には、これはJavaFX Packagerを使用している場合にのみ当てはまりますが、わかりません。 – Itai
私はManifest.MFを参照してください。私はmainメソッドへのパスを持っています。 – Xyster
あなたはどのようにあなたのアプリケーションを実行しますか? – Itai