国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DevOps系列文章之 java調(diào)用python腳本

這篇具有很好參考價(jià)值的文章主要介紹了DevOps系列文章之 java調(diào)用python腳本。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在java類中直接執(zhí)行python語句

在java類中直接調(diào)用本地python腳本

使用Runtime.getRuntime()執(zhí)行python腳本文件(推薦)

調(diào)用python腳本中的函數(shù)

簡(jiǎn)單介紹

官網(wǎng)地址?首頁(yè) | (jython.org)

Jython項(xiàng)目提供了Java中的Python實(shí)現(xiàn), 為Python提供了在JVM上運(yùn)行的好處,并可以訪問用Java編寫的類。 當(dāng)前版本(Jython 2.7.x)僅支持Python 2(抱歉)。 在項(xiàng)目的GitHub存儲(chǔ)庫(kù)中有一個(gè)關(guān)于Python 3的工作。

Jython實(shí)現(xiàn)可免費(fèi)用于商業(yè)和非商業(yè)用途。 它們與?PSF 許可證 v2?下的源代碼一起分發(fā)。

Jython是Java的補(bǔ)充,特別適合以下任務(wù):

  • 嵌入式腳本 - Java 程序員可以將 Jython 庫(kù)添加到他們的系統(tǒng)中,以允許最終用戶編寫簡(jiǎn)單或復(fù)雜的腳本,為應(yīng)用程序添加功能。
  • 交互式實(shí)驗(yàn) - Jython 提供了一個(gè)交互式解釋器,可用于與 Java 包或正在運(yùn)行的 Java 應(yīng)用程序進(jìn)行交互。這允許程序員使用Jython試驗(yàn)和調(diào)試任何Java系統(tǒng)。
  • 快速應(yīng)用程序開發(fā) - Python 程序通常比同等的 Java 程序短 2-10 倍。這直接轉(zhuǎn)化為程序員生產(chǎn)力的提高。Python和Java之間的無縫交互允許開發(fā)人員在開發(fā)和發(fā)布產(chǎn)品期間自由混合這兩種語言。
下面是在一個(gè)簡(jiǎn)單的 Java 應(yīng)用程序中運(yùn)行 Python 代碼的示例
import org.python.util.PythonInterpreter;

public class JythonHelloWorld {
  public static void main(String[] args) {
    try(PythonInterpreter pyInterp = new PythonInterpreter()) {
      pyInterp.exec("print('Hello Python World!')");
    }
  }
}
下面是從 Python 代碼使用 Java 的示例
from java.lang import System # Java import

print('Running on Java version: ' + System.getProperty('java.version'))
print('Unix time from Java: ' + str(System.currentTimeMillis()))

準(zhǔn)備工作:

創(chuàng)建maven工程,結(jié)構(gòu)如下:關(guān)注箭頭的幾個(gè)類即可

DevOps系列文章之 java調(diào)用python腳本,python,java,開發(fā)語言

到官網(wǎng)Downloads | Jython下載Jython的jar包或者在maven的pom.xml文件中加入如下代碼:

<dependency>
    <groupId>org.python</groupId>
    <artifactId>jython-standalone</artifactId>
    <version>2.7.0</version>
</dependency>
???????
 

1.在java類中直接執(zhí)行python語句

?創(chuàng)建JavaRunPython.java類:

package com.test;

import org.python.util.PythonInterpreter;

public class JavaRunPython {
    
    public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.exec("a='hello world'; ");
        interpreter.exec("print a;");
    }

}

DevOps系列文章之 java調(diào)用python腳本,python,java,開發(fā)語言

輸出結(jié)果如下:

DevOps系列文章之 java調(diào)用python腳本,python,java,開發(fā)語言

2.在java中直接調(diào)用python腳本

在本地的D盤創(chuàng)建一個(gè)python腳本,文件名字為javaPythonFile.py,文件內(nèi)容如下:

a = 1
b = 2
print (a + b)

創(chuàng)建JavaPythonFile.java類,內(nèi)容如下:

package com.test;

import org.python.util.PythonInterpreter;

public class JavaPythonFile {

    public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("D:\\javaPythonFile.py");
    }
}
 
 

輸出結(jié)果如下:

DevOps系列文章之 java調(diào)用python腳本,python,java,開發(fā)語言

3.使用Runtime.getRuntime()執(zhí)行python腳本文件,推薦使用

在本地的D盤創(chuàng)建一個(gè)python腳本,文件名字為Runtime.py,文件內(nèi)容如下:

print('RuntimeDemo')

創(chuàng)建RuntimeFunction.java類,內(nèi)容如下:

package com.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class RuntimeFunction {
    public static void main(String[] args) {
        Process proc;
        try {
            proc = Runtime.getRuntime().exec("python D:\\Runtime.py");
            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            proc.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } 
    }
}

DevOps系列文章之 java調(diào)用python腳本,python,java,開發(fā)語言

4.調(diào)用python腳本中的函數(shù)

在本地的D盤創(chuàng)建一個(gè)python腳本,文件名字為add.py,文件內(nèi)容如下:

def add(a,b):
    return a + b

創(chuàng)建Function.java類,內(nèi)容如下:

package com.test;

import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

public class Function {
    
    public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("D:\\add.py");
                
        // 第一個(gè)參數(shù)為期望獲得的函數(shù)(變量)的名字,第二個(gè)參數(shù)為期望返回的對(duì)象類型
        PyFunction pyFunction = interpreter.get("add", PyFunction.class);
        int a = 5, b = 10;
        //調(diào)用函數(shù),如果函數(shù)需要參數(shù),在Java中必須先將參數(shù)轉(zhuǎn)化為對(duì)應(yīng)的“Python類型”
        PyObject pyobj = pyFunction.__call__(new PyInteger(a), new PyInteger(b)); 
        System.out.println("the anwser is: " + pyobj);
    }

}

運(yùn)行結(jié)果如下:

DevOps系列文章之 java調(diào)用python腳本,python,java,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-624676.html

到了這里,關(guān)于DevOps系列文章之 java調(diào)用python腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • DevOps系列文章之 DevOps 運(yùn)維服務(wù)體系

    DevOps系列文章之 DevOps 運(yùn)維服務(wù)體系

    DevOps 體系是從原始運(yùn)維一步步走過來的,原始運(yùn)維好比是本,有了本進(jìn)而想繼續(xù)提升效率、減少出錯(cuò)、優(yōu)化流程,就發(fā)展到了 DevOps,AIOps……各種Ops 首先,運(yùn)維的業(yè)務(wù)職能規(guī)范后形成章程、綱領(lǐng),在互聯(lián)網(wǎng)快速發(fā)展的特點(diǎn)下,形成了一套應(yīng)對(duì)”快”和”變”的體系,并不停

    2024年02月12日
    瀏覽(24)
  • go語言調(diào)用python腳本

    在 go語言中調(diào)用 python 程序,你可能會(huì)用到 親測(cè) go 測(cè)試 go 文件 python nansen.py

    2024年02月11日
    瀏覽(22)
  • DevOps系列文章之 Dockerfile 使用流程

    主要步驟: Step1、準(zhǔn)備項(xiàng)目應(yīng)用程序包 Step2、編寫Dockerfile及啟動(dòng)腳本 Step3、docker build 構(gòu)建鏡像 Step4、docker run 啟動(dòng)容器 Step5、docker exec 進(jìn)入容器進(jìn)行驗(yàn)證 Step6、鏡像的導(dǎo)入導(dǎo)出 Step7、提交容器生成新鏡像 Step1、準(zhǔn)備項(xiàng)目應(yīng)用程序包 根據(jù)項(xiàng)目需要,將應(yīng)用程序包、Nginx配置文件

    2024年02月16日
    瀏覽(22)
  • DevOps系列文章 之 Springboot單元測(cè)試

    在沒有代碼生成工具或嘗試一門新的 ORM 框架時(shí),當(dāng)我們希望不去另外寫 Service 和 Controller 來驗(yàn)證 DAO 層的代碼不希望只通過接口請(qǐng)求的方式來驗(yàn)證時(shí),這時(shí)候單元測(cè)試的方式就可以幫助我們滿足這一需求。 在我們開發(fā)Web應(yīng)用時(shí),經(jīng)常會(huì)直接去觀察結(jié)果進(jìn)行測(cè)試。雖然也是一

    2024年02月15日
    瀏覽(18)
  • DevOps系列文章之 Git知識(shí)大全

    DevOps系列文章之 Git知識(shí)大全

    常用命令 ? 其他參數(shù) --inital-branch 初始化的分支 --bare 創(chuàng)建一個(gè)裸倉(cāng)庫(kù)(純 Git 目錄,沒有工作目錄) --template 可以通過模板來創(chuàng)建預(yù)先建好的自定義 git 目錄 ? 用戶名配置 git config --global user.name \\\"yourname\\\" git config --global user.email yourname@xx.com instead of 配置 git config --global url.git

    2024年02月16日
    瀏覽(16)
  • DevOps系列文章之Argo CD 使用

    DevOps系列文章之Argo CD 使用

    Argo CD 是用于 Kubernetes 的聲明性 GitOps 連續(xù)交付工具。 Argo CD 可在指定的目標(biāo)環(huán)境中自動(dòng)部署所需的應(yīng)用程序狀態(tài),應(yīng)用程序部署可以在 Git 提交時(shí)跟蹤對(duì)分支,標(biāo)簽的更新,或固定到清單的特定版本。 Argo CD 的主要職責(zé)是 CD(Continuous Delivery,持續(xù)交付),將應(yīng)用部署到 Kube

    2024年02月16日
    瀏覽(20)
  • DevOps系列文章 之 Docker in Docker

    一、 ?背景介紹 工作中,要實(shí)現(xiàn)在docker中運(yùn)行docker,實(shí)現(xiàn)鏡像的拉取,創(chuàng)建,修改,上傳等操作。 嘗試過在docker中,安裝docker。行不通,服務(wù)起不來。 而且直接在 docker 容器內(nèi)嵌套安裝 docker 未免太過臃腫。 內(nèi)部安裝與運(yùn)行Docker無疑增加了服務(wù)器鏡像的大小,同時(shí)還增加D

    2024年02月16日
    瀏覽(20)
  • DevOps系列文章 之 docker 制作kafka鏡像

    Docker制作Kafka鏡像教程 概述 本教程將指導(dǎo)你如何使用Docker制作一個(gè)Kafka鏡像。Kafka是一個(gè)高性能、分布式的消息隊(duì)列系統(tǒng),用于處理大規(guī)模的實(shí)時(shí)數(shù)據(jù)流。使用Docker制作Kafka鏡像可以方便地部署和管理Kafka集群。 整體流程 下面是制作Kafka鏡像的整體流程: 步驟1:安裝Docker 首先

    2024年02月15日
    瀏覽(58)
  • DevOps系列文章 之 linux ab壓力測(cè)試

    1、安裝 2、檢測(cè)版本 3、常用 4、解釋

    2024年02月16日
    瀏覽(27)
  • DevOps系列文章之 GitLab CI/CD

    DevOps系列文章之 GitLab CI/CD

    由于目前公司使用的gitlab,大部分項(xiàng)目使用的CICD是gitlab的CICD,少部分用的是jenkins,使用了gitlab-ci一段時(shí)間后感覺還不錯(cuò),因此總結(jié)一下 介紹gitlab的CICD之前,可以先了解CICD是什么 我們的開發(fā)模式經(jīng)歷了如下的轉(zhuǎn)變:瀑布模型-敏捷開發(fā)→DevOps(Development、Operations的組合詞,是

    2024年01月22日
    瀏覽(62)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包