通过 Mozilla 附加组件执行 .jar 文件

Execute .jar file through Mozilla Add-on

我一直在尝试寻找一种使用 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:\Users\QaziWa\Documents\Jar\DownloadReportPPE.jar");
}

现在我已经成功打开了 URL,但是我找不到任何关于如何执行 jar 文件的文档。我上面的代码:

tabs.open("C:\Users\QaziWa\Documents\Jar\DownloadReportPPE.jar");

显然不正确。

我正在查看这个 link:https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs,但我没有找到任何能够执行 jar 文件的内容。

我的目标是创建一个附加按钮来为我执行这个 jar 文件。这个 jar 文件在网站上下载 pdf 报告,所以我希望它在新选项卡或 window 中执行。什么方法可以满足我的需求,或者是否有任何文档可以帮助我。

很可能不是最好的解决方案,但我找到了可行的方法。

以下代码将通过单击 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.');
    }
}