gpt4 book ai didi

javascript - 将 node.js 与 Java 应用程序连接起来,并希望以 html 格式获取输出

转载 作者:行者123 更新时间:2023-11-29 21:28:14 25 4
gpt4 key购买 nike

我在 node.js 中创建了一个子进程并给它一个可执行的 jar 文件位置。

var fs = require('fs');

var exec = require('child_process').exec;
var child = exec('java -jar C:/Users/njaiswal/Desktop/Executable/Saxon.jar',
function (error, stdout, stderr){
fs.writeFile('output.html', +stdout);
if(error !== null){
console.log("Error -> "+error);
}
});

module.exports = child;

这是我的 Saxon.java,我已将其转换为 jar 文件。如您所见,此 java 程序采用 result1.xml 文件和 defaultfrontend.xslt 样式表并将其转换为 html 网页 (output.html)。

import java.io.File;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class Saxon {

/**
* Simple transformation method.
*
* @param sourcePath
* - Absolute path to source xml file.
* @param xsltPath
* - Absolute path to xslt file.
* @param resultDir
* - Directory where you want to put resulting files.
*/
public static void simpleTransform(String sourcePath, String xsltPath,
String resultDir) {
TransformerFactory tFactory = TransformerFactory.newInstance();
try {
Transformer transformer = tFactory
.newTransformer(new StreamSource(new File(xsltPath)));

transformer.transform(new StreamSource(new File(sourcePath)),
new StreamResult(new File(resultDir)));
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
// Set saxon as transformer.
System.setProperty("javax.xml.transform.TransformerFactory",
"net.sf.saxon.TransformerFactoryImpl");

simpleTransform("result1.xml", "defaultfrontend.xslt", "output.html");

}
}

因此该程序使用 xslt 样式表将 xml 转换为 html。我想在 node.js 中获取我的输出(以 html 格式)。

但是当我尝试运行我的 javascript 时,我没有得到任何输出。输出如下所示: http://i.stack.imgur.com/S0xg0.png

最佳答案

看起来您没有向stdout 写入任何内容,而是向文件 写入任何内容。但在 node 中,您获取 stdout 并将其再次写入 file

如果你想让java输出到stdout改变

 transformer.transform(new StreamSource(new File(sourcePath)),
new StreamResult(new File(resultDir)));

transformer.transform(new StreamSource(new File(sourcePath)), 
new StreamResult(new OutputStreamWriter(System.out, "UTF-8")));

source

然后你就可以从nodejs读取stdout了

关于javascript - 将 node.js 与 Java 应用程序连接起来,并希望以 html 格式获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com