Jak Mogę dodać Jary do ścieżki klasowej, gdy wywołuję Jython * bez * dodawania ich do $CLASSPATH?
Chciałbym zrobić coś podobnego do jython -cp FOO:BAR:BAZ argle.py
.
Jeśli dodam FOO
, BAR
, i BAZ
do $CLASSPATH
to działa. Próbowałem dodać je do sys.path
podczas biegu, ale to chyba nie działa w słoikach. To Działa jeśli dodam ścieżkę do rozszerzonych słoików do sys.path
w czasie wykonywania. Czy istnieje prosta alternatywa dla eksplodowania plików jar? Rozszerzenie $CLASSPATH
dla każdego użytkownika uruchamiającego ten skrypt nie jest akceptowalną alternatywą.
4 answers
Możesz użyć opcji -D
aby ustawić python.path
:
jython -Dpython.path=FOO:BAR:BAZ argyle.py
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-17 14:03:21
jython
polecenie obsługuje przekazywanie argumentów do polecenia java
... Więc:
jython -J-cp JAR1:JAR2
Możesz zweryfikować wynikowe polecenie dodając --print
switch:
jython -J-cp JAR1:JAR2 --print
Powyższe polecenie wyświetli rzeczywiste polecenie java zamiast je wykonywać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-19 01:37:05
Java-CP JAR1: JAR2: jython.jar org.python.util.jython pythonScript.py działa tutaj, zarówno na Linuksie, jak i Macintosh. W systemie Windows zamień dwukropki w ścieżkach klas na średniki i powinieneś być złoty.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-03 22:55:05
Możesz utworzyć duży słoik, który zawiera wszystkie powiązane klasy. Poniższy fragment mrówki pokazuje pomysł:
<target name="jar">
<mkdir dir="build/jar"/>
<unjar src="lib/jython.jar" dest="${classes.dir}" />
<unjar src="lib/FOO.jar" dest="${classes.dir}" />
<unjar src="lib/BAR.jar" dest="${classes.dir}" />
<unjar src="lib/BAZ.jar" dest="${classes.dir}" />
<jar destfile="build/jar/bigjython.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-11 16:56:25