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