проверил установленную версию java: root@dev# cd /usr/lib/jvm root@dev:/usr/lib/jvm# ls по умолчанию-java java-1.8.0-openjdk-amd64 java-8-openjdk-amd64
UnixCommand= 'java -cp dataflow-bundled-2.3.0.jar MsSqlMigrator runner=DataflowRunner'
command= UnixCommand
Я пытался выполнить любым способом:
1)
import os
process=os.system(command)
2)
process= subprocess.Popen(command)
process = subprocess.Popen(
command, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True
)
output = process.communicate()
print(process)
Но показывает ошибку: sh: 1: API/java: не найдено 32512 Внутренняя ошибка сервера
Поскольку я пытался выполнить ту же команду непосредственно в оболочке Unix, она работает нормально, и я также установил путь в файле /и т.д./окружающая среда, например, which java дает /USR/бен/Ява
обновить в $JAVA_HOME и добавить то же самое в $ПУТЬ, например export PATH=$PATH:$JAVA_HOME, по-прежнему показывая ту же ошибку.
UnixCommand= 'java -cp dataflow-bundled-2.3.0.jar MsSqlMigrator runner=DataflowRunner'
command= UnixCommand
Я пытался выполнить любым способом:
1)
import os
process=os.system(command)
2)
process= subprocess.Popen(command)
process = subprocess.Popen(
command,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True
)
output = process.communicate()
print(process)
Ожидается: выполнение команды unix через код API Django.
Поместите свою java-команду в сценарий оболочки и попробуйте выполнить сценарий через Python. Для отладки добавьте в сценарий «эхо», чтобы проверить правильность установки PATH и JAVA_HOME.
@grey: да, это работает с использованием командной строки




это работает в терминале с помощью командной строки