亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我無法從 java 運行 python 腳本,我認為這是因為該腳本沒有執行權限

我無法從 java 運行 python 腳本,我認為這是因為該腳本沒有執行權限

慕少森 2022-01-05 13:29:12
每當我的 gui(swing)上的按鈕被按下時,我都會嘗試運行一個 python 腳本。但是,腳本永遠不會運行,我不知道如何解決這個問題。我知道腳本獨立運行良好,它應該是 py 而不是 python,因為 windows 和我的文件系統 ntfs。到目前為止,我一直在嘗試使用可以總結如下的代碼:myBtn.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {        try {          Process p = Runtime.getRuntime().exec("py myScript.py");        } catch (IOException ioe) {          ioe.printStackTrace();        }      }});我不認為我可以 chmod ntfs 的東西,但我嘗試通過右鍵單擊 python 文件來設置權限并試圖弄亂安全設置。用戶對腳本的完全控制什么都不做。python 腳本具有以下權限,我的猜測是我的代碼不起作用,因為它沒有執行權限。-rw-r--r--
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

使用完整的 python 可執行路徑而不是“py”。它僅以讀取權限執行文件。


import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Scanner;


public class Sample {


    public static void main(String[] args) throws Exception {

        try {

            Process p = Runtime.getRuntime().exec("C:/Windows/py myScript.py");

            String cmdOutput = null;

            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

            // read the output from the command

            while ((cmdOutput = stdInput.readLine()) != null) {

                System.out.println(cmdOutput);

            }

        } catch (IOException ioe) {

            ioe.printStackTrace();

        }

    }

}

myScript.py


print("This line will be printed.")

輸出:


C:\Users\Administrator\Documents\demo>javac Sample.java


C:\Users\Administrator\Documents\demo>java Sample

This line will be printed.


查看完整回答
反對 回復 2022-01-05
  • 1 回答
  • 0 關注
  • 310 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號