2010-05-21 56 views
0

好的,我想让ChucK在导出的Processing草图中可用,也就是说,如果我从Processing中导出应用程序,ChucK VM二进制文件将从应用程序。所以作为上述应用程序的用户,您根本无需担心ChucK在您的路上。Java Processbuilder - 执行一个不在OS X上的路径的文件

现在我正在生成和执行bash脚本文件,但这种方式我不从查得到任何控制台输出回处理:

#!/bin/bash 
cd "[to where the Chuck executable is located]" 
./chuck --kill 
killall chuck # just to make sure 
./chuck chuckScript1.ck cuckScriptn.ck 

然后

Process p = Runtime.getRuntime().exec("chmod 777 "+scriptPath); 
p = Runtime.getRuntime().exec(scriptPath); 

这但我想直接从Processing处理ChucK,但无法执行:

String chuckPath = "[folder in which the chuck executable is located]" 
ProcessBuilder builder = new ProcessBuilder 
           (chuckPath+"/chuck", "test.ck"); 

     final Process process = builder.start(); 
     InputStream is = process.getInputStream(); 
     InputStreamReader isr = new InputStreamReader(is); 
     BufferedReader br = new BufferedReader(isr); 
     String line; 
     while((line = br.readLine()) != null) println(line); 
     println("done chuckin'! exitValue: " + process.exitValue()); 

对不起,如果这是新手风格:D

回答

1
ProcessBuilder builder = new ProcessBuilder 
           (chuckPath+"/chuck", chuckPath+"/test.ck"); 

参数都需要一个绝对路径。

+0

请编辑您的问题,并不要在答案中提供更多信息。 – ZeissS 2010-05-21 10:54:24

+0

我已经把这个答案,因为这个工程。由于arg到chuck本身就是一个文件,它也需要完整的路径。 – Jakob 2010-05-21 11:38:52

+0

好,如果它的工作,你应该接受你自己的回答 – 2010-05-21 14:10:28

相关问题