Java 使用Runtime.exec向Python进程发送参数的解决方案
我终于解决了这个问题!!现在,我将我的代码和注释粘贴到这里,以帮助他人 我的示例代码是计算两个单词之间的相似性分数。在Java中,它向Python发送两个单词,在Python中查找分数。然后,Python获取两个参数并打印它们的相似性分数。最后,用Java读取Python代码的结果 爪哇: 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=
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])