我想在node.js项目的package.json中运行java命令。
如果在命令行中的正确目录中我可以这样做:
java -Xmx4g -cp "*"edu.stanford.nlp.pipeline.StanfordCoreNLPServer -端口 9000 -超时 15000
但是如果我将此命令放入 package.json 的脚本部分:
...
"scripts": {
"corenlp": "java -Xmx4g -cp \"*\" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000 "
},...
我得到java.lang.ClassNotFoundException:edu.stanford.nlp.pipeline.StanfordCoreNLPServer
显然我的路径不正确,但无论我对路径做什么,我都无法解决它。 另请注意,此 corenlp 位于 Node 项目之外的另一个目录中。
maindir/ ---> nodeProject/package.json
---> cornlpServer/folder1/folder2/corenlpFiles
//this is where I can run the origninal command
我不太熟悉 java 路径解析器的工作原理(如果有的话)。 但基本上我希望能够执行 npm run corenlp ,它的行为就像一开始的原始命令一样。 那么我需要如何更改命令才能满足这种行为呢?
最佳答案
就像@laggingreflex 在评论中提到的那样: 您可以告诉 package.json 转到要执行下一个命令的目录。 在提到的示例中,这将是:
"cd ../cornlpServer/folder1/folder2/corenlpFiles
&& java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000"
向提出该解决方案的 laggingreflex 表示感谢。
关于Node.js 中带有相对路径的 java 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57671304/