当从JButton click运行时,Java程序的运行方式不同

当从JButton click运行时,Java程序的运行方式不同,java,jbutton,Java,Jbutton,我有一个名为“程序选择器”的java程序,它使用JPanel上的JButtons允许用户选择他们想要运行的java程序。(每个按钮运行不同的程序) 我要运行的程序会生成.txt或excel文件作为输出,并执行其他一些操作。当我直接用鼠标点击运行.jar时,程序运行得非常好。。生成所有输出的.txt文件等 然而,我的问题是,当我试图用JButton通过“程序选择器”运行程序时,单击程序启动并在每个was中正常运行,但它们似乎无法创建.txt或excel输出文件,就像直接通过鼠标单击运行时一样 以下

我有一个名为“程序选择器”的java程序,它使用JPanel上的JButtons允许用户选择他们想要运行的java程序。(每个按钮运行不同的程序)

我要运行的程序会生成.txt或excel文件作为输出,并执行其他一些操作。当我直接用鼠标点击运行.jar时,程序运行得非常好。。生成所有输出的.txt文件等

然而,我的问题是,当我试图用JButton通过“程序选择器”运行程序时,单击程序启动并在每个was中正常运行,但它们似乎无法创建.txt或excel输出文件,就像直接通过鼠标单击运行时一样

以下是用于在单击按钮时运行所选程序的代码:

        programButton.addActionListener((ActionEvent arg0) -> {
        try {
            Desktop.getDesktop().open(new File("../../directory/program.jar")); 
            System.exit(1);
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    });
(程序选择器上总共有4个按钮,所有按钮都以与上面完全相同的方式运行其target.jar)

感谢您的帮助,谢谢


这是我在这里发布的第一个问题,因此如果我需要从程序中添加更多代码,请告诉我。

您认为系统的具体情况。退出(1);是吗?我怀疑文件是被创建的,但不是你认为应该创建的地方。它们可能是在“选择器”程序的同一工作目录中创建的,
System.exit(x)
是否终止当前运行的JVM?如果是,错误可能是调用jar并在调用后直接关闭JVM…@Stultuske我让它在单击按钮后关闭“程序选择器”。我已尝试删除它,但问题仍然存在。@Hexicidal它会关闭整个JVM,其中包括要写入文件的线程