Beispielcode:
%Vor%Wie spezifiziert man JAVA_OPTS im obigen Befehl? Ich erhalte einen 'java.lang.OutOfMemoryError: kann keinen neuen nativen Thread erstellen', wenn ich den obigen Befehl benutze und ich denke, die Angabe von JAVA_OPTS in dem Befehl würde das Problem lösen.
Ich habe JAVA_OPTS in der .bashrc-Datei angegeben und es hatte keine Auswirkung.
Sie können dies tun, aber zu finden, wie man es in der Dokumentation macht, ist eine wilde Jagd.
Die subprocess.call()
-Dokumentation lautet:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Die oben gezeigten Argumente sind nur die häufigsten, die unten in Häufig verwendete Argumente (daher die etwas ungerade Schreibweise in der abgekürzten Signatur).
Dann sagt der Abschnitt Häufig verwendete Argumente , ganz am Ende nach der Beschreibung einer Reihe anderer Argumente:
Diese Optionen werden zusammen mit allen anderen Optionen ausführlicher in % beschrieben. co_de% Konstruktordokumentation.
Na dann! Die Popen
-Dokumentation enthält die vollständige Signatur:
Popen
class subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
ist die, die Sie wollen! Wenn Sie jedoch env
übergeben, überschreibt dies die alle Umgebungsvariablen, einschließlich stuff wie env={'JAVA_OPTS': 'foo'}
, was andere Dinge beeinträchtigen könnte. Sie möchten wahrscheinlich Code wie diesen verwenden, um eine CLASSPATH
-Umgebungsvariable für die neue Prozessausführung hinzuzufügen, ohne sie im aktuellen Prozess zu setzen:
Sie müssen JAVA_OPTS nicht verwenden - geben Sie einfach weitere Argumente an call()
an. Zum Beispiel: