如何从Firefox扩展
问题描述:
这里内运行一个外部的jar文件是我到目前为止的代码...如何从Firefox扩展
// 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";
目前这是行不通的。有什么建议么??
编辑 我也试过..
// 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";
感谢, 帕特
答
我认为你需要与本地文件的引用是“Java”的可执行文件给init进程。这就是系统级需要执行的。参数需要作为单个字符串的数组传递,而不是单个字符串。
您需要运行的可执行文件是“java”,而不是jar文件,对吧? – Pointy 2010-02-03 18:29:27
此外,这似乎是一个非常奇怪的事情,但我不知道任何关于你的扩展当然。 – Pointy 2010-02-03 18:36:35
它是一个可运行的jar文件。从终端运行,“java -jar〜/ tmp/Encrypt.jar -e toEncrypt”对其进行加密。这是我的加密工作原理,在java中比JavaScript更快。 – 2010-02-03 21:32:25