Netbeans ProcessBuilder在javac和NetBeands构建中的不同行为
我有一个密码:Netbeans ProcessBuilder在javac和NetBeands构建中的不同行为,netbeans,javac,processbuilder,Netbeans,Javac,Processbuilder,我有一个密码: import javax.swing.SwingUtilities; import java.io.File; import java.io.IOException; class RunIt{ if (args.length==0) { ProcessBuilder pb = new ProcessBuilder("java","-Xmx768m","RunIt","anArgument"); pb.directory(new File("."));
import javax.swing.SwingUtilities;
import java.io.File;
import java.io.IOException;
class RunIt{
if (args.length==0) {
ProcessBuilder pb = new ProcessBuilder("java","-Xmx768m","RunIt","anArgument");
pb.directory(new File("."));
try {
Process process = pb.start();
}
catch(IOException e) {
e.printStackTrace();
}
System.exit(0);
}
SwingUtilities.invokeLater(new Runnable(){public void run(){new classWithJFrameInConstructor();}});
}
import JFrame;
class classWithJFrameInConstructor{
JFrame frame;
classWithJFrameInConstructor(){
frame=new JFrame();
frame.setVisible(true);
}
}
其中classWithJFrameInConstructor是在类构造函数中创建并设置为可见的JFrame的类
如果我使用javac
正常编译它,它会工作得很好。但如果我在NetBeans中编译它,就不会运行windows
问题在于:
System.exit(0);
如果此代码缺少来自
javac
的版本,则运行两个应用程序窗口。反之亦然,NetBeans build运行正常。请提供适当的MCVE,以便我们自己测试。我认为类路径可能会有所不同。也可能是他运行代码的方式;e、 g.使用java
(或javaw
)而不是从NetBeans内部。或者类似的。无论如何,我们都需要MCVE来找出真正的问题所在。剩下的代码相当复杂,因此我没有在这里发布。但是如果运行SwingUtilities.invokeLater(new Runnable(){public void run(){new classWithJFrameInConstructor();}});其中classWithJFrameInConstructor是一个类,在该类中创建JFrame并将其设置为在本代码末尾的类构造函数中可见,它本质上与实际代码中发生的情况相同。因此,如果它“本质上相同”。。。为什么不创建一个实现“基本相同”行为的MCVE?你需要帮助,还是不需要?