我已經使用Adobe本機進程從我的air應用程序運行java程序。這裏的代碼和它工作正常。但我應該寫絕對路徑到java運行庫:從Adobe AIR的本機進程運行Java程序
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java。
如果用戶在diff文件夾中安裝了Java運行時,或者有diff版本,那麼這段代碼將不起作用。我如何檢測java的安裝位置或者是否有另一種正確的方式來從空中應用程序運行java應用程序?如果我從終端命令行運行java庫,那麼我可以只寫「java -jar pdfbox-app-1.6.0.jar」等,它運行良好。
private function convertPdf2Txt():void{
var arg:Vector.<String> = new Vector.<String>;
arg.push("-jar");
arg.push(File.applicationDirectory.resolvePath("pdfbox-app-1.6.0.jar").nativePath);
arg.push("ExtractText");
arg.push("-force");
arg.push(File.applicationStorageDirectory.resolvePath("Data/1.pdf").nativePath);
arg.push(File.applicationStorageDirectory.resolvePath("Data/1.txt").nativePath);
var fjava:File = new File("/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java");
if (fjava.exists==false){
Alert.show("Can't find Java Runtime in default folder.","Idea Rover",mx.controls.Alert.OK, null,null,imgInfo);
return;
}
var npInfo:NativeProcessStartupInfo;
npInfo = new NativeProcessStartupInfo();
npInfo.executable = fjava;
npInfo.arguments = arg;
var nativeProcess:NativeProcess;
nativeProcess = new NativeProcess();
nativeProcess.addEventListener(NativeProcessExitEvent.EXIT,onNativeProcessExit);
nativeProcess.start(npInfo);
}
你有沒有找到這個解決方案? – ericsoco 2012-02-21 04:57:23