Java 如何从记事本++;?(仅作为.jar文件运行)

Java 如何从记事本++;?(仅作为.jar文件运行),java,javafx,notepad++,nppexec,Java,Javafx,Notepad++,Nppexec,如何从cmdNotepad++的插件NppExec正确运行JavaFX应用程序?我以前在记事本++插件NppExec(基本上是一个内置的cmd)上使用命令java$(NAME\u PART)来运行java,该命令对基于swing的程序运行良好。然而,当我使用该命令运行JavaFX应用程序时,我的记事本++窗口似乎失去了焦点,就好像打开了一个新窗口,但什么也没有出现一样 编辑:在测试了来自cmd的相同命令后,我发现问题出在Notepad++插件NppExec中。在运行JavaFX应用程序时,Npp

如何从cmdNotepad++的插件NppExec正确运行JavaFX应用程序?我以前在记事本++插件NppExec(基本上是一个内置的cmd)上使用命令
java$(NAME\u PART)
来运行java,该命令对基于swing的程序运行良好。然而,当我使用该命令运行JavaFX应用程序时,我的记事本++窗口似乎失去了焦点,就好像打开了一个新窗口,但什么也没有出现一样

编辑:在测试了来自cmd的相同命令后,我发现问题出在Notepad++插件NppExec中。在运行JavaFX应用程序时,NppExec的功能似乎与cmd不同

我用于测试的代码(最初从中获得)将根据上述编辑进行更新:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class MyApp extends Application {
    public void start(Stage stage) {
        Circle circ = new Circle(40, 40, 30);
        Group root = new Group(circ);
        Scene scene = new Scene(root, 400, 300);

        stage.setTitle("My JavaFX Application");
        stage.setScene(scene);
        stage.show();
    }
    //not required but recommended
    public static void main(String[] args) {
        launch(args);
    }
}

回答我自己的问题

根据NppExec的手册

-NppExec不是命令解释器。NppExec不理解诸如“copy”、“call”、“for”等命令,因为它既不是“真正的”控制台,也不是控制台模拟器。但是,NppExec有自己的内部实现,如“cls”、“cd”、“dir”、“echo”、“set”(“env_set”)等命令,并引入了其他特定的命令。您还可以使用“cmd/c”执行NppExec中的任何cmd命令。

使用
cmd/cjava$(NAME\u PART)
而不是
java$(NAME\u PART)
成功运行

仍然不确定为什么只调用
java$(NAME\u PART)
对非JavaFX程序有效,但对JavaFX程序无效,但我认为这个问题不属于这里。

我做到了:

npp_save
cd "$(CURRENT_DIRECTORY)"
C:\Program Files\Java\jdk1.8.0_131\bin\javac "$(FILE_NAME)"
cmd /c cd "$(CURRENT_DIRECTORY)" && java "$(NAME_PART)"
关键是能够在一行上运行两个命令。
&&
表达式会执行此操作。 如果您想知道,如果第一个命令没有成功执行,第二个命令将不会运行

确保计算机上的环境变量中有Java。如果不这样做,则必须提供Java可执行文件的完整路径

npp_save
cd "$(CURRENT_DIRECTORY)"
C:\Program Files\Java\jdk1.8.0_131\bin\javac "$(FILE_NAME)"
cmd /c cd "$(CURRENT_DIRECTORY)" && "C:\Program Files\Java\jdk1.8.0_131\java.exe" "$(NAME_PART)"

主方法在哪里?我是JavaFX新手,请原谅我的错误,但我相信JavaFX应用程序不需要主方法。@没错,JavaFX应用程序不需要主方法。一些IDE或工具可能希望主线程允许应用程序在IDE环境中执行。此外,有时缺少main会让希望看到main的开发人员感到困惑,因此最好始终在应用程序中包含main,即使它所做的只是调用launch方法。啊。。我从没试过!这是我第一次尝试它,它没有主要的工作以及