У меня есть относительно большое Java-приложение, которое выиграет от любви на Python. С этой целью я работал над тем, чтобы запустить его и запустить в Jython. Мой текущий контрольно-пропускной пункт получает правильный путь.Загрузка ресурсов из класса path в Jython с помощью 'classpath:'
Я взял два подхода к установке: классы
- Используя скрипт, я создал список банок и казнил
java -cp ${CP} -jar jyton.jar
где $ CP представляет собой список из баночек, необходимых для моих приложение. Кажется, это не работает. Я не могу импортировать какие-либо классы из этих банок, вместо этого получаю толькоImportError: No module named apache
. - Используя скрипт python для начальной загрузки, я создал список путей с помощью glob и добавил их к текущему пути, используя
[sys.path.append(path) for path in JAR_LIST]
. Кажется, это работает правильно; Теперь я могу импортировать любые классы, которые мне нужны, из включенных банок.
Вышеприведенное немного запутанно, поскольку большинство информации, которую я смог найти, направлено на использование $ CLASSPATH и -cp для добавления ваших банок, но я не могу заставить это работать. Итак, вопрос до сих пор: Является ли # 2 правильным способом добавления зависимостей к вашему пути к классам при использовании Jython?
Основная причина, по которой я ставил под сомнение мои методы, состоит в том, что у меня все еще возникают проблемы с использованием моего приложения. Ряд мест в моем приложении уважает ресурсы, используя относительные URL-адреса: classpath:some-critical-file.xml
some-critical-file.xml и несколько моих классов находятся в одной и той же банке. Я могу импортировать классы из этого кувшина, но любые попытки загрузить мой XML с classpath:some-critical-file.xml
результатами в java.io.FileNotFoundException
Любое понимание, почему мои классы доступны, но относительные пути к ресурсам с использованием classpath:
не было бы очень признательно. На данный момент я в растерянности.
Как вы открываете пути, такие как «classpath: file.xml»? –