在FireFox 16,17,18 +中使用java

时间:2013-01-16 17:50:24

标签: java firefox liveconnect

我在FireFox扩展中使用Java,因为Mozilla在FireFox 16,17,18中停止支持Java,所以我无法使用Java。所以我发现使用LiveConnect之前它是可能的,但现在它不是。

有办法吗?我希望在版本16及更高版本的FF扩展中使用Java,因为人们不想轻易地降级到版本15。

到目前为止,我已经使用过这样的java了。

function createFile(folder,file)
{

destinationDir = new java.io.File(folder).mkdirs();
file = new java.io.File(folder,file);
file.createNewFile();
}

效果很好。但这不再适用于我提到的FF。

我在这里找到了这个问题。

Unable to load Java into Firefox 16 extension using Liveconnect

但没有人回答。

请不要因为我努力工作而降低我的声誉。如果没有正确询问问题,请关闭它。感谢。

1 个答案:

答案 0 :(得分:0)

这是我用来替换Java的函数的一个例子。

var string = '\u5909\u63db\u30c6\u30b9\u30c8';
file.initWithPath('C:\\temp\\temp.txt');
file.create(file.NORMAL_FILE_TYPE, 0666);
var charset = 'EUC-JP';
var fileStream = Components
.classes['@mozilla.org/network/file-output-stream;1']
.createInstance(Components.interfaces.nsIFileOutputStream);
fileStream.init(file, 2, 0x200, false);
var converterStream = Components
.classes['@mozilla.org/intl/converter-output-stream;1']
.createInstance(Components.interfaces.nsIConverterOutputStream);
converterStream.init(fileStream, charset, string.length,
Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
converterStream.writeString(string);
converterStream.close();
fileStream.close();

mozilla developer documentation上,您可以找到有关此XPCOM的更多信息,可用于读取/写入文件和类似过程。因此,我使用它而不是Java。