激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Java實現調用jython執行python文件的方法

Java實現調用jython執行python文件的方法

2021-04-18 12:47tengxing007 Java教程

這篇文章主要介紹了Java實現調用jython執行python文件的方法,結合實例形式分析了Java調用jython執行python文件的常見操作技巧及相關問題解決方法,需要的朋友可以參考下

本文實例講述了Java實現調用jython執行python文件的方法。分享給大家供大家參考,具體如下:

在web開發時候,經常在web環境使用本地環境的第三方庫什么的,本文講解java如何執行python文件。

網上說方法有三種,其實也就兩種,下面著中介紹第二種通過(jython)。

方法一

?
1
2
3
4
5
6
7
java.lang.Runtime
  Runtime rt = Runtime.getRuntime();
    try {
        Process proc = rt.exec("python /tmp/test.py");
    }catch (Exception e){
      e.printStackTrace();
    }

小計一下:

1、Runtime.getRuntime()可以取得當前JVM的運行時環境,這也是在Java中唯一一個得到運行時環境的方法。

2、Runtime上其他大部分的方法都是實例方法,也就是說每次進行運行時調用時都要用到getRuntime方法。

3、Runtime中的exit方法是退出當前JVM的方法,估計也是唯一的一個吧,因為我看到System類中的exit實際上也是通過調用Runtime.exit()來退出JVM的,這里說明一下Java對Runtime返回值的一般規則(后邊也提到了),0代表正常退出,非0代表異常中止,這只是Java的規則,在各個操作系統中總會發生一些小的混淆。

第二種(重點)

調用jython API

第一步:添加依賴

?
1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/org.python/jython -->
  <dependency>
   <groupId>org.python</groupId>
   <artifactId>jython</artifactId>
   <version>2.7.0</version>
  </dependency>

第二步:新建一個Test.java測試類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import org.python.util.PythonInterpreter;
import java.util.Properties;
/**
 * Author: 遇見小星
 * Email: [email protected]
 * Date: 17-3-21
 * Time: 下午8:18
 * Describe: jpython test
 */
public class Test {
  public static void main(String []args){
    PythonInterpreter interpreter = new PythonInterpreter();
    interpreter.exec("days=('Mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
    interpreter.exec("print days[1];");
    interpreter.execfile("/tmp/test.py");
    interpreter.exec("print 'created by tengxing on 2017.3'");
  }
}

第三步:運行Test.java

?
1
2
3
4
Testing started at 下午9:40 ...
Tue
this is test.py
created by tengxing on 2017.3!

進程已結束,退出代碼0

提醒可能報如下異常:

Exception in thread "main" ImportError: Cannot import site module and its dependencies: No module named site
Determine if the following attributes are correct:

原因:沒有初始化 python.import.site

解決:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test {
  public static void main(String []args){
    Properties props = new Properties();
    props.put("python.home", "path to the Lib folder");
    props.put("python.console.encoding", "UTF-8");
    props.put("python.security.respectJavaAccessibility", "false");
    props.put("python.import.site", "false");
    Properties preprops = System.getProperties();
    PythonInterpreter.initialize(preprops, props, new String[0]);
    PythonInterpreter interpreter = new PythonInterpreter();
    interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
    interpreter.exec("print days[1];");
    interpreter.execfile("/tmp/test.py");
    interpreter.exec("print 'created by tengxing on 2017.3!'");
  }
}

ok 完美

?
1
2
3
4
5
//調用python中的方法,并且打印結果
PyFunction func = (PyFunction) interpreter.get("adder",PyFunction.class);
int a = 2010, b = 2;
PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
System.out.println("anwser = " + pyobj.toString());

參考文章:

http://www.zmynmublwnt.cn/article/156875.html

http://www.zmynmublwnt.cn/article/135265.html

附:jython.jar點擊此處本站下載

希望本文所述對大家java程序設計有所幫助。

原文鏈接:https://blog.csdn.net/tengxing007/article/details/64546851

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品视频一区二区三区 | 日本一区二区三区视频在线 | 国产一区二区三区四区五区在线 | 麻豆视频观看 | 日本免费aaa观看 | 午夜爽爽爽男女免费观看hd | 国产青草网 | 精品成人一区二区三区 | 99爱福利视频在线观看 | 护士hd欧美free性xxxx | 羞羞答答视频 | 亚洲成人激情在线 | 国产毛片毛片 | xvideos korean | 欧美成人精品欧美一级乱黄 | 国产成人高清成人av片在线看 | 叉逼视频 | 毛片大全免费看 | 久久亚洲精品国产一区 | 亚a在线| 欧美一区二区三区久久综合 | 福利在线小视频 | 成人在线观看小视频 | 青青草免费观看完整版高清 | 亚洲福利视频52 | 91九色丨porny丨国产jk | 色屁屁xxxxⅹ在线视频 | av成人在线免费观看 | 日韩av在线网址 | 久久成人综合网 | 国产一区视频免费观看 | 免费男女视频 | 91在线视频播放 | 综合网天天色 | 国产自在自线午夜精品视频在 | 国产精品久久久久久久hd | 91精品国产一区二区三区动漫 | 黄色成人在线播放 | 免费的性生活视频 | 日本成人高清视频 | 成av人在线观看 |