我對將字符串寫入標準輸出的可移植方式感興趣,沒有在最終添加隱含換行符,理想情況下強制編碼爲UTF-8,可與如何將字符串寫入Javascript的標準輸出
- jrunscript(來自任何JDK)
- 犀牛
- 的node.js
我當前的代碼嘗試檢測它正在運行,則使用特定於平臺的寫入方法:
if (typeof process !== "undefined") { // assume node.js
var log = function(string) {process.stdout.write(string);};
}
else if (typeof println == "undefined") { // assume rhino
var log = function(string) {java.lang.System.out.write(java.lang.String(string).getBytes("utf-8"));};
}
else { // assume jrunscript
var log = function(string) {java.lang.System.out.print(string);};
}
log("X");
log("Y");
應該導致:
XY
可以這樣做的更好?
對於jrunscript,我一直使用函數print
,但是它代表JDK-8021773在JDK-8中改變了它的行爲。
我想你會*需要*平臺特定的代碼 – Bergi
我在我的項目中有類似的代碼。請注意,你也需要在Nashorn上進行測試。 (Java 8捆綁了Nashorn,而不是Rhino。) –
@SethTisue,謝謝你的提示。事實上,將JDK升級到8版讓我再次考慮這一點。此外,犀牛及其(之前的8)JDK風味已經需要在這方面加以區分。 – Gunther