通过Java-%1在cmd中运行python文件不是有效的Win32应用程序 - java

我正在尝试使用Java执行python代码。我的代码:

public class PyTest {
    public static void main(String[] args) {
        Runtime.getRuntime().exec("python src\\gui.py");
    }
}

堆栈跟踪:
线程“主”中的异常java.io.IOException:无法运行程序“ src \ gui.py”:CreateProcess错误= 193,%1不是有效的Win32应用程序

我知道,在64位计算机上使用32位版本解释器执行python代码时,会出现此错误。但是在我的64位计算机上,仅安装了64位版本的python。

参考方案

该命令外壳程序知道如何通过文件扩展名运行文件,因此您需要调用cmd.exe Windows Shell程序:

Runtime.getRuntime().exec("cmd.exe /c python src\\gui.py");

正如exec的javadoc所说,运行命令的首选方法是ProcessBuilder,因此您的代码应为:

new ProcessBuilder("cmd.exe", "/c", "python", "src\\gui.py").start();

您甚至可以使用以下命令更改工作目录:

new ProcessBuilder("cmd.exe", "/c", "python", "gui.py")
        .directory(new File("src"))
        .start();

Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…

Java Scanner读取文件的奇怪行为 - java

因此,在使用Scanner类从文件读取内容时,我遇到了一个有趣的问题。基本上,我试图从目录中读取解析应用程序生成的多个输出文件,以计算一些准确性指标。基本上,我的代码只是遍历目录中的每个文件,并使用扫描仪将其打开以处理内容。无论出于何种原因,扫描程序都不会读取其中的一些文件(所有UTF-8编码)。即使文件不是空的,scanner.hasNextLine()在…

Java:找到特定字符并获取子字符串 - java

我有一个字符串4.9.14_05_29_16_21,我只需要获取4.9。数字各不相同,所以我不能简单地获得此char数组的前三个元素。我必须找到最正确的.并将其子字符串化直到那里。我来自Python,因此我将展示Python的实现方法。def foobar(some_string): location = some_string.rfind('.&…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java Globbing模式以匹配目录和文件 - java

我正在使用递归函数遍历根目录下的文件。我只想提取*.txt文件,但不想排除目录。现在,我的代码如下所示:val stream = Files.newDirectoryStream(head, "*.txt") 但是这样做将不会匹配任何目录,并且返回的iterator()是False。我使用的是Mac,所以我不想包含的噪音文件是.DS_ST…