我在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
但没有人回答。
请不要因为我努力工作而降低我的声誉。如果没有正确询问问题,请关闭它。感谢。
答案 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。