2016-09-30 132 views
1

我想从perl文件读取perl脚本,但我得到CreateProcess错误= 193,%1不是有效的Win32应用程序,我不知道如何解决这个问题。阅读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

您是否安装了Perl? Windows没有安装Perl,这意味着您需要从源代码编译Perl或为Windows安装Perl分发。一些流行的用于Windows的Perl发行版是Strawberry Perl,ActiveState的ActivePerlCitrus Perl。个人而言,我已经习惯于输入“perl script.pl”而不是“script.pl”来在Windows中运行我的Perl脚本。第二种方法似乎是你正在尝试使用的方法,它依赖于在Windows中设置文件关联,以便操作系统知道所有* .pl文件都使用perl.exe。要确定是否为.pl文件设置了文件关联,可以打开命令提示符并键入'assoc .pl'。如果您没有看到为* .pl文件设置了文件关联,那么您需要修改您的代码,调用“perl C:\ Users \ luenwong \ Desktop \ hello_world.pl”而不是“C:\ Users \ luenwong \桌面\ hello_world.pl”。或者你可以尝试修复文件关联。做了一个快速搜索,我在Windows 7上找到了这样一套instructions。对于其他Windows操作系统,这些步骤可能略有不同。

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

+0

谢谢。它在我安装perl之后起作用。 –

相关问题