我正在尝试从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脚本。所以我想知道它们是否与它们一样。谢谢你的帮助。
答案 0 :(得分:1)
你安装了Perl吗? Windows未附带Perl,这意味着您需要从源代码编译Perl或安装Windows的Perl发行版。一些流行的Windows Perl发行版是Strawberry Perl,ActiveState' ActivePerl和Citrus 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方面的第一步。