【问题标题】:java command in node.js with relative pathsnode.js 中带有相对路径的 java 命令
【发布时间】:2019-08-27 09:12:06
【问题描述】:

我想在 node.js 项目的 package.json 中运行 java 命令。

如果在命令行中的正确目录中,我可以这样做:

java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 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 位于节点项目之外的另一个目录中。

maindir/ ---> nodeProject/package.json
         ---> cornlpServer/folder1/folder2/corenlpFiles 
                 //this is where I can run the origninal command

如果有的话,我对 java 路径解析器的工作原理不是很熟悉。 但基本上我希望能够执行 npm run corenlp ,它的行为就像一开始的原始命令。 那么我需要如何更改命令才能满足这种行为呢?

【问题讨论】:

  • 当您说“如果在正确的目录中”(运行您的 java CLI)时,您的意思是“nodeProject”还是“.../corenlpFiles”?
  • 在“../corenlpFiles”中
  • 那么你为什么希望它在你的“nodeProject”目录中工作呢?您是否尝试过更改目录的命令?喜欢cd "../corenlpFiles" && java ...
  • 谢谢你的作品。

标签: java node.js npm-scripts


【解决方案1】:

就像在 cmets 中提到的 @laggingreflex 一样: 你可以告诉 package.json 去你想要执行下一个命令的目录。 在提到的示例中,这将是:

"cd ../cornlpServer/folder1/folder2/corenlpFiles 
&& java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000"

向提出该解决方案的 laggingreflex 致敬。

【讨论】:

    猜你喜欢
    • 2019-06-08
    • 2018-09-19
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2017-05-07
    • 2018-03-12
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多