0

我一直在尝试找到一种使用 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");

显然是不正确的。

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

我的目标是创建一个附加按钮,它将为我执行这个 jar 文件。此 jar 文件在网站上下载 pdf 报告,因此我希望它在新选项卡或窗口中执行。什么方法会给我我正在寻找的东西,或者是否有任何文档可以帮助我。

4

1 回答 1

0

很可能不是最好的解决方案,但我想出了一些可行的方法。

以下代码将通过单击 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.');
    }
}
于 2015-09-10T14:36:05.787 回答