首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用lua posix execp执行java程序

用lua posix execp执行java程序
EN

Stack Overflow用户
提问于 2015-10-29 16:50:10
回答 1查看 260关注 0票数 1

我在使用lua的posix.execp()函数在子进程中执行java程序时遇到了困难。我希望能够创建管道,并让进程之间进行通信。因此,我为什么要使用luapo6 .For,这是因为它将所有正斜杠解释为类路径中的句点。我不完全确定我是否正确地安排了这件事。我想知道我是否在表中做了错误的事情,这是给execp()函数的。

代码语言:javascript
复制
argjava={}
argjava[0]="java"
argjava[1]="-cp"
argjava[2]="/home/joeA/tree-lstm/lib/:'
argjava[3]="/home/joeA/tree-lstm/lib/stanford-parser/stanford-parser.jar:"
argjava[4]="/home/joeA/tree-lstm/lib/stanford-parser/stanford-parser-3.5.1-models.jar"
argjava[5]="ConstituencyParser" 
argjava[6]="-tokenpath"
argjava[7]="tokens.tmp"
argjava[8]="-parentpath"
argjava[9]="parents.tmp"
argjava[10]=nil

posix.execp("java",argjava)

我想让它看起来像这样:

java -cp /home/joeA/tree-lstm/lib/:/home/joeA/tree-lstm/lib/stanford-parser/stanford-parser.jar:/home/joeA/tree-lstm/lib/stanford-parser/stanford-parser-3.5.1-models.jar ConstituencyParse -tokpath tokens.tmp -parentpath parents.tmp

这是一个出现的错误:

Error: Could not find or load main class .home.joeA.tree-lstm.lib.stanford-parser.stanford-parser.jar:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-29 17:49:53

argjava中的每个值几乎肯定会成为结果命令行上的独立参数。

因此,您不能这样将参数的部分拆分到-cp,或者它最后是三个参数,其中一个是-cp的参数,另两个是要加载的东西(因此出现了错误)。

尝试将路径和jars放在表中的单个字符串/值中。

代码语言:javascript
复制
argjava={
    [0]="java",
    "-cp",
    "/home/joeA/tree-lstm/lib/:/home/joeA/tree-lstm/lib/stanford-parser/stanford-parser.jar:/home/joeA/tree-lstm/lib/stanford-parser/stanford-parser-3.5.1-models.jar",
    "ConstituencyParser",
    "-tokenpath",
    "tokens.tmp",
    "-parentpath",
    "parents.tmp",
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33420180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档