最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)調(diào)用jython執(zhí)行python文件的方法

 更新時間:2018年03月29日 11:26:20   作者:tengxing007  
這篇文章主要介紹了Java實現(xiàn)調(diào)用jython執(zhí)行python文件的方法,結(jié)合實例形式分析了Java調(diào)用jython執(zhí)行python文件的常見操作技巧及相關(guān)問題解決方法,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)調(diào)用jython執(zhí)行python文件的方法。分享給大家供大家參考,具體如下:

在web開發(fā)時候,經(jīng)常在web環(huán)境使用本地環(huán)境的第三方庫什么的,本文講解java如何執(zhí)行python文件。

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

方法一

java.lang.Runtime
  Runtime rt = Runtime.getRuntime();
    try {
        Process proc = rt.exec("python /tmp/test.py");
    }catch (Exception e){
      e.printStackTrace();
    }

小計一下:

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

2、Runtime上其他大部分的方法都是實例方法,也就是說每次進(jìn)行運(yùn)行時調(diào)用時都要用到getRuntime方法。

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

第二種(重點)

調(diào)用jython API

第一步:添加依賴

<!-- https://mvnrepository.com/artifact/org.python/jython -->
  <dependency>
   <groupId>org.python</groupId>
   <artifactId>jython</artifactId>
   <version>2.7.0</version>
  </dependency>

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

import org.python.util.PythonInterpreter;
import java.util.Properties;
/**
 * Author: 遇見小星
 * Email: tengxing7452@163.com
 * 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'");
  }
}

第三步:運(yùn)行Test.java

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

進(jìn)程已結(jié)束,退出代碼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

解決:

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 完美

//調(diào)用python中的方法,并且打印結(jié)果
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.fzitv.net/article/137380.htm

http://www.fzitv.net/article/137385.htm

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

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關(guān)文章

  • Mybatis自定義SQL的關(guān)系映射、分頁、排序功能的實現(xiàn)

    Mybatis自定義SQL的關(guān)系映射、分頁、排序功能的實現(xiàn)

    這篇文章主要介紹了Mybatis自定義SQL的關(guān)系映射、分頁、排序功能的實現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • springboot中.yml文件參數(shù)的讀取方式

    springboot中.yml文件參數(shù)的讀取方式

    這篇文章主要介紹了springboot中.yml文件參數(shù)的讀取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • JPA?通過Specification如何實現(xiàn)復(fù)雜查詢

    JPA?通過Specification如何實現(xiàn)復(fù)雜查詢

    這篇文章主要介紹了JPA?通過Specification如何實現(xiàn)復(fù)雜查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • IDEA的maven設(shè)置代理方式

    IDEA的maven設(shè)置代理方式

    文章介紹了如何設(shè)置IntelliJ?IDEA系統(tǒng)代理,并在Maven的Importing和Runner中添加代理配置,包括設(shè)置代理主機(jī)和端口
    2025-01-01
  • 全面詳解Spring?Bean生命周期教程示例

    全面詳解Spring?Bean生命周期教程示例

    這篇文章主要為大家介紹了Spring?Bean生命周期的全面詳解教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Java讀寫Excel實例分享

    Java讀寫Excel實例分享

    本文主要分享了Java讀寫Excel的實例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • mybatis createcriteria和or的區(qū)別說明

    mybatis createcriteria和or的區(qū)別說明

    這篇文章主要介紹了mybatis createcriteria和or的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法

    Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法

    這篇文章主要介紹了Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法,涉及java操作Excel文件的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • ssm整合shiro使用詳解

    ssm整合shiro使用詳解

    這篇文章主要介紹了ssm整合shiro使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 基于Java解決華為機(jī)試之字符串加解密?

    基于Java解決華為機(jī)試之字符串加解密?

    這篇文章主要介紹了基于Java解決華為機(jī)試之字符串加解密,問題描述展開主題即詳細(xì)代碼的分享完成文章內(nèi)容,具有一的的參考價值,需要的小伙伴可以參考一下。希望對你有所幫助
    2022-02-02

最新評論

定州市| 增城市| 湘潭县| 拉萨市| 清徐县| 宜黄县| 台东市| 连平县| 玉树县| 西乌珠穆沁旗| 巴彦淖尔市| 健康| 连平县| 贞丰县| 青龙| 浏阳市| 泸水县| 平定县| 西乌珠穆沁旗| 洪洞县| 肃宁县| 平山县| 汾西县| 阿勒泰市| 郯城县| 济南市| 陇西县| 藁城市| 长寿区| 兴国县| 宜宾市| 奉节县| 五寨县| 商南县| 平舆县| 德惠市| 丰顺县| 西贡区| 神木县| 巴青县| 枣庄市|