Java 从jar运行perl文件(放在同一文件夹中)

Java 从jar运行perl文件(放在同一文件夹中),java,jar,path,Java,Jar,Path,我想从App.jar访问我的perl脚本(Test.pl),它们放在同一个文件夹中。 您能解释一下路径吗?这样我就可以从jar调用perl脚本了 我的目录包含 -Test.pl -App.jar jar结构包含 -Matrix -Matrix/Maker.class -META-INF/MANIFEST.MF 代码: Process process=Runtime.getRuntime().exec("perl Test.pl");

我想从App.jar访问我的perl脚本(Test.pl),它们放在同一个文件夹中。 您能解释一下路径吗?这样我就可以从jar调用perl脚本了

我的目录包含

   -Test.pl
   -App.jar
jar结构包含

   -Matrix
   -Matrix/Maker.class
   -META-INF/MANIFEST.MF
代码:

              Process process=Runtime.getRuntime().exec("perl Test.pl");
              System.out.println(System.getProperty("MatrixMaker"));
              InputStream ir=process.getInputStream();
              BufferedReader br=new BufferedReader(new InputStreamReader(ir));
              StringBuffer bf=new StringBuffer();

              while((line=br.readLine())!=null){
                 bf.append(line);
              }

              jEditorPane1.setText(bf.toString());

你从哪里开始你的应用程序?它和jar文件是同一个目录还是不同的目录?您没有说过这是Windows还是Linux,这会使答案的细节有所不同。在这两种情况下,给子流程的路径很可能不包含
perl
可执行文件。您可能需要指定
perl
的完整路径或正确设置路径。此外,您必须在单独的线程中处理子流程输入和输出,否则会出现死锁风险。这里使用的方法可能一次有效,下一次失败。@Mehul默认CMD startdirectory@Jim它适用于Windows和Java以及Perl,在%PATH%变量中。谢谢大家!通过从目标文件夹运行应用程序解决了问题。。。。