Node.js 中带有相对路径的 java 命令

标签 java node.js npm-scripts

我想在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/

相关文章:

javascript - 返回值时未定义

node.js - Node 、npm 版本、安装错误。 SyntaxError : Block-scoped declarations (let, const、函数、类)在严格模式之外尚不支持

cross-browser - 带有 babel-preset-env 的 Babel 似乎忽略了 browserslist 配置

javascript - 即使参数不同,npm 脚本也会运行默认脚本

java - 如何从不同的 jar 加载相同的类

java - Java 方式的生产者/消费者模式

java - Android - 使 Activity 根据点击的内容显示不同的内容

java - 如何一次将多个对象添加到网格 Pane

javascript - Mongo 聚合游标和计数

javascript - 提交 AJAX 表单以表达 api - JSON 中位置 0 处出现意外标记 #