使用Mozilla扩展名执行.jar文件



我看了一下这里回答的以下问题:

如何在Mozilla插件SDK中使用系统默认应用程序打开文件

如何从Firefox插件打开外部应用程序?(例如:默认的文本编辑器)

从Firefox插件

执行ShellExecute

然而,这些解决方案都对我不起作用,我觉得问题可能比我原来想象的要严重。从本质上讲,我正在尝试启动一个带有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"
  },
  onClick: handleClick
});

function handleClick(state) {
    // try {
        // var file = Services.dirsvc.get("Desk", Ci.nsIFile);
        // file.append("C:UsersQaziWaDownloadReportPPE.jar");
        // file.launch();
    // }
    // catch (ex) {
        // console.error("failure");
      // Failed to launch because e.g. the OS returned an error
      // or the file does not exist,
      // or this function is simply not implemented for a particular platform.
    // }
    let {Cc, Ci} = require('chrome');
    var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
    file.initWithPath("C:UsersQaziWaDownloadReportPPE.jar");
    console.log(file);
    if(file.exists()){
        file.reveal();
        file.launch();
    }
    else {
        console.log('Failed.');
    }
}

因为一些奇怪的原因,我的。jar文件没有被检测到,我不明白为什么。我希望有人能告诉我为什么会这样。

变化

file.initWithPath("C:UsersQaziWaDownloadReportPPE.jar");

file.initWithPath("C:\Users\QaziWa\DownloadReportPPE.jar");

需要转义斜杠;)

相关内容

  • 没有找到相关文章

最新更新