从java运行perl脚本的问题

时间:2013-07-28 09:04:23

标签: java perl

我正在尝试从java代码运行Perl脚本文件,但它不能与我合作。我修改了Perl脚本并将参数放在其中,而不是通过java代码传递它们。从命令行运行它时脚本工作正常但它在java代码中不起作用,总是打印“错误”!!我写了另一个Perl脚本(test.pl)并且它正在工作但是所需的脚本没有?我在netbeans7.3.1(ubuntu)工作。 这是我的代码:

package program;

import java.io.*;
//import java.lang.ProcessBuilder;
/**
 *
 * @author seed
 */
public class Program {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException,Exception {
        File input = new File("//home//seed//Downloads//MADA-3.2//sample");
        FileOutputStream out = new FileOutputStream(input);
        PrintWriter p = new PrintWriter(out);
        String s = "قصدنا في هذا القول ذكر";
        p.println(s);

        p.close();

        Process pro = Runtime.getRuntime().exec("perl /home/seed/Downloads/MADA+TOKAN.pl");

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

                }  
         else{
         System.out.print("wrong");}   

        // TODO code application logic here
    }
}

2 个答案:

答案 0 :(得分:0)

我的猜测是某种字符串/路径转换问题。

我在你的代码中看到utf8字符串,也许路径被转换为某种东西。

文件名(MADA + TOKAN.pl)包含特殊字符,它会更好MADAplusTOKAN.pl。

你的剧本和问题中的字符串也不一样:(MADA 3.2!= MADA-3.2)

perl MADA + TOKAN.pl config = / home / seed / Downloads / mada / MADA-3.2 / config files / template.madaconfig file = / home / seed / Downloads / mada / MADA 3.2 / inputfile

VS

perl MADA + TOKAN.pl config = / home / seed / Downloads / MADA-3.2 / config-files / template.madaconfig file = / home / seed / Downloads / MADA-3.2 / sample

答案 1 :(得分:0)

听起来它正在找到你的perl脚本并执行它,因为test.perl和MADA.perl运行正常。

听起来像传入perl脚本的参数不是预期的。你能修改perl脚本以将其所有输入参数回显到文件吗?