В настоящее время я работаю над школьным проектом, в котором мы должны запустить jar-файл на веб-сайте cgi через скрипт на python.
мой вывод jar выглядит примерно так:
String str = "<body>"+str+"</body>";
BufferedWriter writer = new BufferedWriter(new FileWriter(s+".html"));
writer.write(str);
writer.close();
Мой скрипт на Python примерно такой:
#!/usr/bin/env python3
import cgi, cgitb
import os
import subprocess
cgitb.enable()
HTML="""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Validation</title>
</head>"""
HTML2="""
</html>
"""
out = subprocess.check_output(["java -jar test.jar])
print(out)
Если я запускаю его, он всегда дает мне синтаксическую ошибку. Любая помощь очень ценится.
Отслеживание стека
CalledProcessError Python 3.7.2: C:\Users\maxgr\PycharmProjects\untitled1\venv\Scripts\python.exe
Tue Mar 5 01:26:43 2019
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
C:\Users\maxgr\PycharmProjects\untitled1\Aufgabe13\ToHtml.py in <module>()
59
60 #out = subprocess.check_output(["java -jar /home/r/reinisch/public_html/cgi-bin/secstruc/validateGor.jar -s /home/r/reinisch/public_html/cgi-bin/secstruc/seclib/" + seclib + " -f html -s /home/r/reinisch/public_html/cgi-bin/predic/" + predic +" "] ,shell=True)
=> 61 out = subprocess.check_output(["java -jar C:\\dev\\git\\out\\artifacts\\git_jar4\\git.jar -r C:\\dev\\git\\src\\secstruc\\cb513.db" + " -f html -p C:\\dev\\git\\src\\secstruc\\cb513_gor1_cb513.prd "] ,shell=True)
62
63 #out = subprocess.check_output(["echo hallo"], shell=True)
out undefined, subprocess = <module 'subprocess' from 'C:\\Users\\maxgr\\App...\Programs\\Python\\Python37\\lib\\subprocess.py'>, subprocess.check_output = <function check_output>, shell undefined
C:\Users\maxgr\AppData\Local\Programs\Python\Python37\lib\subprocess.py in check_output(timeout=None, *popenargs=([r'java -jar C:\dev\git\out\artifacts\git_jar4\git.... -p C:\dev\git\src\secstruc\cb513_gor1_cb513.prd '],), **kwargs={'shell': True})
393
394 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
=> 395 **kwargs).stdout
396
397
kwargs = {'shell': True}, ).stdout undefined
C:\Users\maxgr\AppData\Local\Programs\Python\Python37\lib\subprocess.py in run(input=None, capture_output=False, timeout=None, check=True, *popenargs=([r'java -jar C:\dev\git\out\artifacts\git_jar4\git.... -p C:\dev\git\src\secstruc\cb513_gor1_cb513.prd '],), **kwargs={'shell': True, 'stdout': -1})
485 if check and retcode:
486 raise CalledProcessError(retcode, process.args,
=> 487 output=stdout, stderr=stderr)
488 return CompletedProcess(process.args, retcode, stdout, stderr)
489
output undefined, stdout = b'', stderr = None
CalledProcessError: Command '['java -jar C:\\dev\\git\\out\\artifacts\\git_jar4\\git.jar -r C:\\dev\\git\\src\\secstruc\\cb513.db -f html -p C:\\dev\\git\\src\\secstruc\\cb513_gor1_cb513.prd ']' returned non-zero exit status 1.
args = (1, [r'java -jar C:\dev\git\out\artifacts\git_jar4\git.... -p C:\dev\git\src\secstruc\cb513_gor1_cb513.prd '])
cmd = [r'java -jar C:\dev\git\out\artifacts\git_jar4\git.... -p C:\dev\git\src\secstruc\cb513_gor1_cb513.prd ']
output = b''
returncode = 1
stderr = None
stdout = b''
with_traceback = <built-in method with_traceback of CalledProcessError object>
Ошибка Python:
<code>C:\Users\maxgr\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/maxgr/PycharmProjects/untitled1/Aufgabe13/ToHtml.py
Console output is saving to: C:\dev\git\testtohtml.html
<!--: spam
Die Syntax f�r den Dateinamen, Verzeichnisnamen oder die Datentr�gerbezeichnung ist falsch.
Content-Type: text/html
<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
</font> </font> </font> </script> </object> </blockquote>
CalledProcessError Python 3.7.2: C: \ Users \ maxgr \ PycharmProjects \ untitled1 \ venv \ Scripts \ python.exe
Вт 5 марта 01:26:43 2019
Возникла проблема в скрипте Python.Вот последовательность вызовов функций, приводящих к ошибке, в порядке их возникновения.
C: \ Users \ maxgr \ PycharmProjects \ untitled1 \ Aufgabe13 \ ToHtml.py in
()
59
60 #out = subprocess.check_output (["java -jar /home/r/reinisch/public_html/cgi-bin/secstruc/validateGor.jar -s / home / r / reinisch / public_html / cgi-bin / secstruc / seclib /" + seclib + "-f html-s / home / r / reinisch / public_html / cgi-bin / прогноз / "+ прогноз +" "], shell = True)
=> 61 out = subprocess.check_output (["java -jar C: \\ dev \\ git \\ out \\ артефакты \\ git_jar4 \\ git.jar -r C: \\ dev \\ git \\ src \\ secstruc \\ cb513.db "+" -f html -p C: \\ dev \\ git \\ src \\ secstruc \\ cb513_gor1_cb513.prd "], shell = True)
62
63 #out = subprocess.check_output (["echo hallo"], shell = True)
out undefined , подпроцесс = <модуль 'подпроцесс' из 'C: \\ Users \\ maxgr \\ App ... \ Programs \\ Python \\ Python37 \\ lib\\ subprocess.py '>, подпроцесс. check_output = <функция check_output>, оболочка undefined C: \ Users \ maxgr \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ subprocess.py в
check_output (время ожидания = Нет, * popenargs =([r'java -jar C: \ dev \ git \ out \ artifacts \ git_jar4 \ git .... -p C: \ dev \ git \ src \ secstruc \ cb513_gor1_cb513.prd '],), ** kwargs ={'shell': True})
393
394 обратный прогон (* popenargs, stdout = PIPE, timeout = timeout, check = True,
=> 395 ** kwargs) .stdout
396
397
kwargs = {'shell': True},) .stdout undefined C: \ Users \ maxgr \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ subprocess.py в
запустить (вход = нет, capture_output = False, timeout = Нет, check = True, * popenargs = ([r'java -jar C: \ dev \ git \ out \ artifacts \ git_jar4 \ git .... -p C: \ dev \ git \ src \ secstruc \cb513_gor1_cb513.prd '],), ** kwargs = {' shell ': True,' stdout ': -1})
485 ifпроверка и повторный код:
486 повышение CalledProcessError (retcode, process.args,
=> 487 output = stdout, stderr = stderr)
488 return CompletedProcess *(process.args, retcode, stdout, stderr)
489
выход не определено , стандартный вывод = b '', стандартный поток = нет CalledProcessError : Команда '[' java -jar C: \\ dev \\ git \\ out \\ артефакты \\ git_jar4 \\ git.jar -r C: \\ dev \\ git \\ src \\ secstruc \\ cb513.db -f html -p C: \\ dev \\ git \\ src \\ secstruc \\ cb513_gor1_cb513.prd ']' возвращеноненулевой статус выхода 1.
args = (1, [r'java -jar C: \ dev \ git \ out \ artifacts \ git_jar4 \ git .... -p C: \ dev \ git \ src \ secstruc \ cb513_gor1_cb513.prd '])
cmd = [r'java -jar C: \ dev \ git \out \ artifacts \ git_jar4 \ git .... -p C: \ dev \ git \ src \ secstruc \ cb513_gor1_cb513.prd']
output = b' '
код возврата = 1
stderr = Нет
stdout = b ''
with_traceback = <встроенный методwith_traceback объекта CalledProcessError>Файл "C: \ Users \ maxgr \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ subprocess.py", строка 487, в ходе выполнения output = stdout, stderr = stderr) subprocess.CalledProcessError: Command '[' java -jarC: \\ dev \\ git \\ out \\ артефакты \\ git_jar4 \\ git.jar -r C: \\ dev \\ git \\ src \\ secstruc \\ cb513.db -f html -p C:\\ dev \\ git \\ src \\ secstruc \\ cb513_gor1_cb513.prd ']' возвратил ненулевое состояние выхода 1.
->
Процесс завершен с выходомкод 1