gpt4 book ai didi

命令提示符中的 javafx 参数给出空值

转载 作者:行者123 更新时间:2023-11-30 08:49:10 25 4
gpt4 key购买 nike

大家晚上好

这可能是个愚蠢的问题,但我似乎很难找到答案。我创建了一个简单的 JavaFX8 程序,它应该能够读取命令行参数。

让我举例说明:

public void start(Stage stage) throws Exception {       
Map parameters = getParameters().getNamed();

System.out.println("parameter is " + parameters.get("myKey"));

...
}

当我在 NetBeans 中定义一个名为 myKey 且值为 abc 的参数时,

netbeans_parameters

当我从 IDE 运行我的应用程序时,它会产生以下输出:

parameter is abc

但是,如果我按如下方式从命令提示符运行它:

java -jar MyApp.jar myKey=abc

它返回值 null,这意味着参数不会转发到 JavaFX 应用程序:

parameter is null

这是为什么?这是我第一次使用参数,如果答案真的很简单,我深表歉意。

最佳答案

关键是从命令行调用时使用以下语法:

java -jar JavaHelp.jar --p1=hello --p2=world

getNamed 仅在参数用 -- 注释时返回某些内容(我认为这等于“NAMED”)

用这个程序试试,你会看到:

public class Main extends Application {

@Override
public void init() throws Exception {
super.init();
System.out.println(getParameters().getRaw().toString());
getParameters().getNamed().forEach((name, string) -> {
System.out.println("Parameter[" + name + "]=" + string);
});
}

@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(new Pane() {{
getChildren().add(new Button("B"));
}}));
primaryStage.show();

}


public static void main(String[] args) {
launch(args);
}
}

这将打印:

Parameter[p1]=hello
Parameter[p2]=world

关于命令提示符中的 javafx 参数给出空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31572862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com