我正在尝试在运行应用程序时获取从命令行传递的参数.我有一个通过netbeans制作的项目,它使用SingleFrameApplication类或swing应用程序框架.主要方法是打电话
launch(MyApp.class, args);
Run Code Online (Sandbox Code Playgroud)
在它的主要方法.http://java.sun.com/developer/technicalArticles/javase/swingappfr/中的文档说:
启动方法在调用启动方法之前调用应用程序的可选初始化方法.您可以使用initialize方法执行任何初始配置或设置步骤.例如,您可以在initialize方法中处理命令行参数.您还可以检查数据库连接或设置系统属性.简而言之,框架为显示UI之前应用程序可能需要的任何非UI相关设置提供了此方法.Application和SingleFrameApplication类为initialize方法提供了一个空方法体.该方法默认不执行任何操作.
我们在这里谈论MyApp.initialize方法吗?如果是这样,似乎没有任何args参数的引用.
编辑:这不是一个小程序,它是一个桌面应用程序.请记住,它使用Swing应用程序框架,这意味着,部分原因是为您的主java类GUI提供了一个"启动器"类.代码段将是:
public class MyApp extends SingleFrameApplication {
@Override protected void startup() {
MyAppGUI view = new MyAppGUI(this);
show(new MyAppGUI(this));
}
public static void main(String[] args) {
launch(MyAppGUI.class, args);
}
Run Code Online (Sandbox Code Playgroud)
是的,您必须重写该initialize(...)
方法。在您提供的链接中,有Code Example 6
,显示了该方法的使用initialize(...)
。它显然有命令行参数。
public class HelloWorld extends SingleFrameApplication {
...
@Override
protected void initialize(String[] args) {
...
}
}
Run Code Online (Sandbox Code Playgroud)