Я использую нативный процесс Adobe для запуска Java-программы из моего приложения. Вот код и все отлично работает. Но я должен написать абсолютный путь к Java времени выполнения для этого:
/ System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Содержание / Главная / бен / Java.
Если пользователь установил среду выполнения Java в папке diff или имеет версию 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);
}