我不能 运行 来自 java 的 python 脚本,我认为这是因为脚本没有执行权限

I can't run a python script from java and I think it's because the script does not have execute permissions

我正在尝试 运行 一个 python 脚本,每当按下我的 gui (swing) 上的按钮时。但是,脚本从来没有 运行s,我不确定如何解决这个问题。我知道该脚本独立运行良好,它应该是 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--

使用完整的 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.