Java 读取perl脚本错误:CreateProcess错误=193,%1不是有效的Win32应用程序

Java 读取perl脚本错误:CreateProcess错误=193,%1不是有效的Win32应用程序,java,perl,Java,Perl,我试图从perl文件中读取perl脚本,但得到CreateProcess error=193,%1不是有效的Win32应用程序,我不知道如何解决此问题 下面的代码就是我现在拥有的代码 public static void Extract(){ Process process; try { String testFile = "C:\\Users\\luenwong\\Desktop\\hello_world.pl"; process =

我试图从perl文件中读取perl脚本,但得到CreateProcess error=193,%1不是有效的Win32应用程序,我不知道如何解决此问题

下面的代码就是我现在拥有的代码

public static void Extract(){
    Process process;

    try
    {
        String testFile = "C:\\Users\\luenwong\\Desktop\\hello_world.pl";
        process = Runtime.getRuntime().exec(testFile);
        process.getOutputStream();

        process.waitFor();
        if(process.exitValue() == 0)
        {
            System.out.println("Command Successful");

            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String line;

            while((line = br.readLine()) != null){
                sb.append(line).append("\n");
            }
            String answer = sb.toString();

            System.out.println("Answer "+ answer);
        }
        else
        {
            System.out.println("Command Failure");
        }
    }
    catch(Exception e)
    {
        System.out.println("Exception: "+ e.toString());
    }
}

我发现有些人和我有同样的错误,但他们试图读取bash文件,而不是perl脚本。所以我想知道这会不会是和他们一样的错误。谢谢您的帮助。

您是否安装了Perl?Windows没有安装Perl,这意味着您需要从源代码编译Perl,或者为Windows安装Perl发行版。Windows的一些流行Perl发行版是、ActiveState和

就我个人而言,我已经养成了在Windows中键入“perlscript.pl”而不是“script.pl”来运行perl脚本的习惯。第二种方法似乎就是您尝试使用的方法,它依赖于在Windows中设置文件关联,以便操作系统知道对所有*.pl文件使用perl.exe。要了解是否为.pl文件设置了文件关联,可以打开命令提示符并键入“assoc.pl”。如果您没有看到为*.pl文件设置了文件关联,那么您需要修改代码,调用“perl C:\Users\luenwong\Desktop\hello\u world.pl”而不是“C:\Users\luenwong\Desktop\hello\u world.pl”。或者您可以尝试修复文件关联。通过快速搜索,我找到了这组用于在Windows7上执行此操作的。其他Windows操作系统的步骤可能略有不同

我无法帮助调试Java代码中的问题,但是如果您的代码正在执行我认为它正在执行的操作,那么您可能没有安装Perl,或者没有为*.pl文件设置文件关联。因此,验证是否安装了Perl并检查文件关联将是调试Perl方面的第一步