Java如何从代码运行另一个.jar程序以响应按钮单击

标签 java

我编写了一个 Java 程序,它应该打开另一个程序(这是一个 .jar 文件)。如果我在程序的主类中使用此代码,则一切正常:

File logFile = new File("./ePaymentUpdater.jar");
Desktop.getDesktop().open(logFile.getCanonicalFile());
//or
Runtime.getRuntime().exec("java -jar ePaymentUpdater.jar");

但是,如果我在事件中粘贴相同的代码来响应用户单击按钮,则它不会正常工作: 该程序似乎运行了,因为它创建了一个应有的文件夹(此代码位于被调用程序的主类中),但它没有显示它应该显示的 jFrame

似乎我无法从另一个程序的框架内打开框架...

这是我的主课:

package prove_idiote;
import java.awt.Desktop;
import java.io.File;
import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {  

//        try {
//            Runtime.getRuntime().exec("java -jar ePaymentUpdater.jar");
//        } catch (Exception e) {            
//            System.out.println(e);
//        }

        Tester tester = new Tester();
        tester.setVisible(true);       
    }   
}

这是我的按钮事件:

private void ExecuteActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {

        JOptionPane.showMessageDialog(null, "before" ,"ATTENZIONE!",JOptionPane.WARNING_MESSAGE);

        Runtime.getRuntime().exec("java -jar ePaymentUpdater.jar");

        JOptionPane.showMessageDialog(null, "after" ,"ATTENZIONE!",JOptionPane.WARNING_MESSAGE);

    } catch (Exception e) {            
        System.out.println(e);
    }
} 

最佳答案

您可以使用 java 的 Runtime 类并从那里处理您的 jar,如下所示:

Runtime.getRuntime().exec("java -jar ./ePaymentUpdater.jar")

其中Runtime在运行时处理所有进程并一一执行它们。

关于Java如何从代码运行另一个.jar程序以响应按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735412/

相关文章:

java - 如何通过Java代码创建或更新elasticsearch的搜索模板

java - 通用 JMS 客户端

java - OpenSAML 3 解码器为空

java - 将快速排序修改为使用枢轴的快速排序 'median of three'

java - 如何在 Android Studio 1.0.0 中设置 Facebook SDK?获取 SDK 位置未找到错误

java - 如何让扫描器循环直到它读取到所需的字符串?

java - Eclipse 中的 Napkin 自定义 LookAndFeel

java - 将对象引用保存到 Android 中的 Bundle

java - List<T> 是一个很好的返回集合吗?如何包装它并添加属性?

用于获取响应并根据 servlet 的响应进行操作的 JavaScript 代码