如何从firefox扩展中运行外部jar文件

时间:2010-02-03 18:24:11

标签: javascript jar firefox-addon

这是我到目前为止的代码......

        // 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 个答案:

答案 0 :(得分:2)

我认为您需要使用对“java”可执行文件的本地文件的引用来初始化该过程。这就是需要在系统级执行的内容。参数需要作为单个字符串的数组传递,而不是单个字符串。