При запуске из Eclipse (который управляет путем к классам для вас) или из командной строки (где, как я предполагаю, вы указываете путь к классам при его запуске), вы включаете Jython.jar в путь к классам.
К сожалению, включения других банок внутрь вашей банки недостаточно, чтобы поместить эту банку в путь к классам. Вы можете извлечь весь Jython.jar и включить извлеченные файлы в свой jar (более поздние версии Eclipse делают это при экспорте с параметром Runnable JAR File).
Однако это может привести к проблемам, если код Jython ожидает, что он будет в JAR, если есть конфликты пространств имен или юридические проблемы (во многих случаях незаконно извлекать сторонний jar и распространять его как свой собственный).
Чтобы убедиться в этом, попробуйте запустить банку вне Eclipse, включив jython.jar в путь к классам. Например:
java -cp lib/jython.jar:myjar.jar com.me.main.Main
Имейте в виду, что если вы используете параметр -jar (например, атрибут основного класса), то флаг -cp игнорируется, поэтому это не сработает, если вы сделаете:
java -cp lib/jython.jar -jar myjar.jar
Если это проблема, то есть несколько способов автоматически включить jython.jar в путь к классам. Два популярных подхода — использовать атрибут classpath в манифесте (работает до тех пор, пока вы можете гарантировать местоположение jython.jar относительно вашего основного jar-файла) или заключить выполнение вашего jar-файла в сценарий оболочки.
person
Pace
schedule
07.07.2011