程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从JAR中执行python文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从JAR中执行python文件?

开发过程中遇到从JAR中执行python文件的问题如何解决?下面主要结合日常开发的经验,给出你关于从JAR中执行python文件的解决方法建议,希望对你解决从JAR中执行python文件有所启发或帮助;

使用开头的文件路径/意味着您要从文件系统的根目录开始。

您的代码为我工作,只需删除该斜杠即可:

public static voID main(String[] args) {
    try {
        file python = new file("scripts/script.py");
        System.out.println(python.exists()); // true

        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec("python scripts/script.py"); // print('Hello!')

        BufferedReader bfr = new BufferedReader(new inputStreamReader(PR.geTinputStream()));
        String line = "";
        while((line = bfr.readline()) != null)
            System.out.println(linE);
    }
    catch(Exception E) {
        System.out.println(e.toString());
    }
}

// true
// Hello!
// Process finished with exit @R_138_6756@

放置错误文件没有显示错误的原因是因为此Java代码仅显示输入流(geTinputStream()),而不显示错误流(getErrorStream()):

    public static voID main(String[] args) {
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec("python scripts/doesnotexist.py");

        BufferedReader bfr = new BufferedReader(new inputStreamReader(PR.getErrorStream()));
        String line = "";
        while((line = bfr.readline()) != null)
            System.out.println(linE);
    }
    catch(Exception E) {
        System.out.println(e.toString());
    }
}

// python: can't open file 'scripts/doesnotexist.py': [Errno 2] No such file or directory
// Process finished with exit @R_138_6756@

解决方法

我试图弄清楚如何引用python文件,以便可以在Java GUI
Jar中执行它。它必须是一个可移植的解决方案,因此使用绝对路径对我不起作用。我在下面列出了我的项目结构,并包括了有关如何尝试执行python脚本的代码。感谢您提供的任何帮助!

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec("python /scripts/script.py");

        BufferedReader bfr = new BufferedReader(new InputStreamReader(PR.geTinputStream()));
        String line = "";
        while((line = bfr.readLine()) != null)
            System.out.println(linE);
}
    catch(Exception E) {
        System.out.println(e.toString());
}
}

--OnestopShop (Project)
  --source Packages
    --images
    --onestopshop
      --Home.java
    --scripts
      --script.py

大佬总结

以上是大佬教程为你收集整理的从JAR中执行python文件全部内容,希望文章能够帮你解决从JAR中执行python文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。