Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Runtime.exec向Python进程发送参数的解决方案_Java_Python_Exec - Fatal编程技术网

Java 使用Runtime.exec向Python进程发送参数的解决方案

Java 使用Runtime.exec向Python进程发送参数的解决方案,java,python,exec,Java,Python,Exec,我终于解决了这个问题!!现在,我将我的代码和注释粘贴到这里,以帮助他人 我的示例代码是计算两个单词之间的相似性分数。在Java中,它向Python发送两个单词,在Python中查找分数。然后,Python获取两个参数并打印它们的相似性分数。最后,用Java读取Python代码的结果 爪哇: Python: import sys import divisi2 assoc = divisi2.network.conceptnet_assoc('en') U, S, _ = assoc.svd(k=

我终于解决了这个问题!!现在,我将我的代码和注释粘贴到这里,以帮助他人

我的示例代码是计算两个单词之间的相似性分数。在Java中,它向Python发送两个单词,在Python中查找分数。然后,Python获取两个参数并打印它们的相似性分数。最后,用Java读取Python代码的结果

爪哇:

Python:

import sys
import divisi2 
assoc = divisi2.network.conceptnet_assoc('en')
U, S, _ = assoc.svd(k=100)
spread = divisi2.reconstruct_activation(U, S)
print spread.entry_named(sys.argv[1],sys.argv[2])  
#argv=['/home/parallels/Desktop/.../src/ConceptNetSimilarity.py', 'cat', 'dog']
结果:
这只是一种感觉,但。。我认为你应该:

print spread.entry_named(sys.argv[1],sys.argv[2])
反而

print spread.entry_named(sys.argv[0],sys.argv[1])
argv[0]是python脚本

另一方面,我不确定
p.getInputStream()
是否符合您的意思


一个好建议获取一份好的Java和Python参考资料,至少阅读与您尝试在此处使用的API相关的内容。在那之后,如果你还不知道该怎么办,回到这里。

好吧,怎么了?没有结果。。没有什么。。所以我认为这两个参数不能发送给pythonThey,当然可以。我将重新讨论
exec
.works的用法。谢谢!:)谢谢你的建议!我得到了它!我已经编辑了上面的代码。至于p.getInputStream(),我认为Java需要从Python读取结果。你的建议非常正确!但我正在为我的最后一年项目工作,我的主管分配了这个Python参考。我不知道非常感谢你!
print spread.entry_named(sys.argv[0],sys.argv[1])