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

时间:2016-09-30 10:24:31

标签: java perl

我正在尝试从perl文件中读取perl脚本但是我得到CreateProcess错误= 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脚本。所以我想知道它们是否与它们一样。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你安装了Perl吗? Windows未附带Perl,这意味着您需要从源代码编译Perl或安装Windows的Perl发行版。一些流行的Windows Perl发行版是Strawberry Perl,ActiveState' ActivePerlCitrus Perl

就个人而言,我已经养成了打字和#34; perl script.pl"而不只是" script.pl"在Windows中运行我的Perl脚本。第二种方法似乎是您尝试使用的方法,它依赖于在Windows中设置文件关联,以便操作系统知道将perl.exe用于所有* .pl文件。要确定是否为.pl文件设置了文件关联,可以打开命令提示符并键入' assoc .pl'。如果您没有看到已经为* .pl文件设置了文件关联,那么您需要修改您的代码来调用" perl C:\ Users \ luenwong \ Desktop \ hello_world.pl"而不是" C:\ Users \ luenwong \ Desktop \ hello_world.pl"。或者您可以尝试修复文件关联。快速搜索,我发现这组instructions用于在Windows 7上执行此操作。其他Windows操作系统的步骤可能略有不同。

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