java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本
舉例有一個Python腳本叫test.py,現(xiàn)在想要在Java里調(diào)用這個腳本。假定這個test.py里面使用了拓展的包,使得pythoninterpreter之類內(nèi)嵌的編譯器無法使用,那么只能采用java調(diào)用控制臺進程,即 Runtime.getRuntime().exec(),來運行這個python腳本。在windows下運行這個程序,假如是參考了一些百度來的被轉(zhuǎn)載了無數(shù)遍的文章,很有可能運行結(jié)果是根本沒有執(zhí)行這個腳本。經(jīng)過測試,在java中執(zhí)行如下代碼可以成功運行test.py文件:
Process proc = Runtime.getRuntime().exec("cmd /c python "+filepath+"test.py"); //filepath是test.py的地址。可以取相對地址,以項目所在地址為根目錄proc.waitFor();
在使用 cmd /c 時不會彈出python輸出窗口,可以使用 cmd /k start 前綴以彈出一個新的控制臺窗口并顯示python輸出
cmd /c dir 是執(zhí)行完dir命令后關閉命令窗口。
cmd /k dir 是執(zhí)行完dir命令后不關閉命令窗口。
cmd /c start dir 會打開一個新窗口后執(zhí)行dir指令,原窗口會關閉。
cmd /k start dir 會打開一個新窗口后執(zhí)行dir指令,原窗口不會關閉。
python爬蟲簡單實現(xiàn),并在java中調(diào)用python腳本,將數(shù)據(jù)保存在json文件中
# coding:utf-8 import urllib2 from bs4 import BeautifulSoup import json import sys reload(sys) sys.s ...
如何在Java中調(diào)用Python代碼
有時候,我們會碰到這樣的問題:與A同學合作寫代碼,A同學只會寫Python,而不會Java, 而你只會寫Java并不擅長Python,并且發(fā)現(xiàn)難以用Java來重寫對方的代碼,這時,就不得不想方設法“調(diào) ...
在Java中調(diào)用Python
寫在前面 在微服務架構(gòu)大行其道的今天,對于將程序進行嵌套調(diào)用的做法其實并不可取,甚至顯得有些愚蠢.當然,之所以要面對這個問題,或許是因為一些歷史原因,或者僅僅是為了簡單.恰好我在項目中就遇到了這個問題 ...
在Java中調(diào)用Python代碼
極少數(shù)時候,我們會碰到類似這樣的問題:與A同學合作寫代碼, A同學只會寫Python,不熟悉Java ,而你只會寫Java不擅長Python,并且發(fā)現(xiàn)難以用Java來重寫對方的代碼,這時,就不得不想方 ...
C++中調(diào)用Python腳本
C++中調(diào)用Python腳本的意義就不講了,至少你可以把它當成文本形式的動態(tài)鏈接庫, 需要的時候還可以改一改,只要不改變接口, C++的程序一旦編譯好了,再改就沒那么方便了 先看Python的代碼 代 ...
C++中調(diào)用Python腳本(轉(zhuǎn)載)
轉(zhuǎn)載▼ 標簽: 雜談 C++中調(diào)用Python腳本的意義就不講了,至少你可以把它當成文本形式的動態(tài)鏈接庫,需要的時候還可以改一改,只要不改變接口, C++的程序一旦編譯好了,再改就沒那么方便了先看Py ...
Runtime.getRuntime().exec()實現(xiàn)Java調(diào)用python程序
使用Runtime.getRuntime().exec()來實現(xiàn)Java調(diào)用python,調(diào)用代碼如下所示: import java.io.BufferedReader; import java.io ...
在java中調(diào)用python方法
1.http://sourceforge.net/projects/jython/下載jython包,把其中的jython.jar添加到工程目錄 示例: 1.摘自:http://blog.csdn.n ...
java中調(diào)用js腳本
JDK1.6加入了對Script(JSR223)的支持.這是一個腳本框架,提供了讓腳本語言來訪問Java內(nèi)部的方法.你可以在運行的時候找到腳本引擎,然后調(diào)用這個引擎去執(zhí)行腳本.這個腳本API允許你為腳 ...
隨機推薦
css動畫與js動畫的區(qū)別
CSS動畫 優(yōu)點: (1)瀏覽器可以對動畫進行優(yōu)化. ? 1. 瀏覽器使用與?requestAnimationFrame?類似的機制,requestAnimationFrame比起setTimeout ...
wifi詳解(一)
1????????WLAN技術(shù) WLAN是英文WirelessLAN的縮寫,就是無線局域網(wǎng)的意思.無線以太網(wǎng)技術(shù)是一種基于無線傳輸?shù)木钟蚓W(wǎng)技術(shù),與有線網(wǎng)絡技術(shù)相比,具有靈活.建網(wǎng)迅速.個人化等特點.將 ...
用python演示一個簡單的AST(抽象語法樹)
如果對'a + 3 * b'進行解釋,當中a=2,b=5 代碼非常easy,就不再進行具體的解釋了. Num = lambda env, n: n Var = lambda env, x: env[x ...
GitHub 小試
GitHub是什么? 它是用來進行版本控制的,就是用來保存項目的地方. 但是項目要是運行,還是需要你本地的環(huán)境,它只不過是用來保存代碼罷了. GitHub如何操作? 可以通過客戶端進行代碼提交,更新. ...
MPC8313ERDB不新鮮pkg包裹,把文件放進Ramdisk
MPC8313ERDB不新鮮pkg包裹,把文件放進Ramdisk 經(jīng)ltib編譯器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假設我們編寫了相應的外部文件把Ramdisk往里 ...
【轉(zhuǎn)】Redis學習筆記(四)如何用Redis實現(xiàn)分布式鎖(1)—— 單機版
原文地址:http://bridgeforyou.cn/2018/09/01/Redis-Dsitributed-Lock-1/ 為什么要使用分布式鎖 這個問題,可以分為兩個問題來回答: 為什么要使用 ...
劍指offer7~10題
斐波那契數(shù)列 大家都知道斐波那契數(shù)列,現(xiàn)在要求輸入一個整數(shù)n,請你輸出斐波那契數(shù)列的第n項. n<=39 思路:此題用遞歸會超內(nèi)存,故直接循環(huán). 代碼: class Solution { pub ...
PCM簡介
1. 差分脈沖編碼調(diào)制 如果兩個相鄰抽樣值之間的相關性很大,那么它們的差值就較小,這樣,僅對差值量化可以使用較少的比特數(shù),此即差分PCM,或DPCM. 為了理論方便,我們將采樣和量化分開,并用不帶上三 ...
通過OTA的方式在局域網(wǎng)分發(fā)iOS應用
公司的一個項目有Android和iOS的app,Android的下載和安裝都很方便,不過iOS有些麻煩,因為項目本身有些限制,主要有以下一些障礙:1.iOS的版本不是通過Appstore分發(fā).2.出于 ...
【慕課網(wǎng)實戰(zhàn)】Spark Streaming實時流處理項目實戰(zhàn)筆記四之銘文升級版
銘文一級: 需求二:Agent選型:exec source + memory channel + logger sink# Name the components on this agenta1.so ...
總結(jié)
以上是生活随笔為你收集整理的java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路由器怎么设置某网站禁止上网路由器如何禁
- 下一篇: 扫码枪怎么安装电脑如何安装扫描仪