Java 从jar运行perl文件(放在同一文件夹中)
我想从App.jar访问我的perl脚本(Test.pl),它们放在同一个文件夹中。 您能解释一下路径吗?这样我就可以从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");
-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%变量中。谢谢大家!通过从目标文件夹运行应用程序解决了问题。。。。