我在MAC OS的本地服务器的Django项目中使用Java程序https://github.com/antonydeepak/ResumeParser/时遇到问题。
我已经在Django项目中安装了ResumeParser,例如:
-Django项目
-app1
-app2
-ResumerParser
这是我的代码,但显示“无法找到或加载主类”。
if form.is_valid():
f = form.save(commit=False)
resume = form.cleaned_data['resume']
cmd = ['java', '-cp', 'bin/:../GATEFiles/lib/:../GATEFiles/bin/gate.jar:lib/*', 'code4goal.antony.resumeparser.ResumeParserProgram %s textOutput.json' % resume]
subprocess.Popen(cmd)
关于如何解决这个问题的任何线索?我已经在StackOverflow中尝试过与该主题相关的所有帖子,但均未成功。
提前致谢
最佳答案
您正在将定界符参数与按空格分组的参数混合在一起。
cmd = ['java', '-cp', 'bin/:../GATEFiles/lib/:../GATEFiles/bin/gate.jar:lib/*', 'code4goal.antony.resumeparser.ResumeParserProgram %s textOutput.json' % resume]
您的最后一个参数被视为单个参数,并由
subprocess
用空格保护:"code4goal.antony.resumeparser.ResumeParserProgram resume_value textOutput.json"
=>整个
"class<space>param1<space>param2"
被视为您的班级:难怪为什么找不到它。拆分所有参数,即可使用,
subprocess
不会对参数进行分组,不加引号(请注意将resume
对象强制转换为str
):cmd = ['java', '-cp', 'bin/:../GATEFiles/lib/:../GATEFiles/bin/gate.jar:lib/*', 'code4goal.antony.resumeparser.ResumeParserProgram', str(resume),'textOutput.json']