我一直在试图找到一种方法来执行使用Mozilla JPM .jar文件(我很清楚,有一个附加组件可以实现这一点,但我想学习)。我遵循了在线教程,这是我现在的代码
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Visit Mozilla",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
function handleClick(state) {
tabs.open("C:UsersQaziWaDocumentsJarDownloadReportPPE.jar");
}
现在我已经成功打开了url,但是我找不到任何关于如何执行jar文件的文档。我上面的代码:
tabs.open("C:UsersQaziWaDocumentsJarDownloadReportPPE.jar");
显然是错误的。
我正在看这个链接:https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs,但是我没有找到任何表示执行jar文件的能力的东西。
我的目标是创建一个附加按钮,将执行这个jar文件为我。这个jar文件下载一个网站上的pdf报告,所以我希望它在一个新的选项卡或窗口执行。什么方法会给我什么,我正在寻找或有任何文档,可以帮助我。
最可能不是最好的解决方案,但我找到了一些可行的方法。
下面的代码将通过点击Mozilla插件按钮来执行一个.jar文件:var buttons = require('sdk/ui/button/action');
var button = buttons.ActionButton({
id: "execute-jar",
label: "Download Report",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
//Icons for the button
},
onClick: handleClick
});
function handleClick(state) {
let {Cc, Ci} = require('chrome');
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath("C:\Users\QaziWa\DownloadReportPPE.jar");
if(file.exists()){
file.reveal();
file.launch();
}
else {
console.log('Failed.');
}
}