Как запустить внешний JAR-файл из расширения Firefox - PullRequest
0 голосов
/ 03 февраля 2010

Вот код, который у меня есть ...

        // Run the external encryption process
        var fileExe = Components.classes["@mozilla.org/file/local;1"]
                           .createInstance(Components.interfaces.nsILocalFile);
        fileExe.initWithPath("~/tmp/Encrypt.jar");
        var process = Components.classes["@mozilla.org/process/util;1"]
                          .createInstance(Components.interfaces.nsIProcess);
        process.init(fileExe);
        var args = ["java -jar Encrypt.jar -e toEncrypt"];

        process.run(true, args, args.length);

        document.getElementById('hello-world-status-bar-icon').label = "DONE";

В настоящее время это не работает. Есть предложения ??

EDIT Я тоже пытался ..

// Run the external encryption process
var fileExe = Components.classes["@mozilla.org/file/local;1"]
                         .createInstance(Components.interfaces.nsILocalFile);
fileExe.initWithPath("java");
var process = Components.classes["@mozilla.org/process/util;1"]
                        .createInstance(Components.interfaces.nsIProcess);
        process.init(fileExe);

 var args = new Array();
        args[0] = " -jar";
        args[1] = "~/tmp/Encrypt.jar";
        args[2] = "-e";
        args[3] = "toEncrypt";

        process.run(true, args, args.length);

        document.getElementById('hello-world-status-bar-icon').label = "DONE";

Спасибо, Пат

1 Ответ

2 голосов
/ 03 февраля 2010

Я думаю, что вам нужно запустить процесс со ссылкой на локальный файл, который является исполняемым файлом "java". Вот что нужно выполнить на системном уровне. Аргументы должны быть переданы в виде массива отдельных строк, а не одной строки.

...