Почему Jython не может найти мой файл .jar? - PullRequest
1 голос
/ 19 августа 2011

У меня есть файл jar (не входит в стандартную библиотеку Java), который я хочу использовать.

Я поместил myJavaPackage.jar в каталог моего проекта и пытаюсь сделать import myJavaPackage, но я продолжаю получать ImportError: No module named myJavaPackage. Что я делаю не так?

1 Ответ

3 голосов
/ 19 августа 2011

Вы должны убедиться, что Jython знает, чтобы искать в вашем файле .jar модули, что делается с помощью pythonpath. Это будет отличаться в зависимости от вашей настройки, но в PyDev:

  1. В проводнике пакетов (дерево слева) щелкните правой кнопкой мыши проект и выберите Свойства.
  2. Выберите «PyDev - PYTHONPATH» слева.
  3. Нажмите кнопку «Добавить zip / jar / egg» справа.
  4. Используйте дерево каталогов слева, чтобы перейти к папке, содержащей ваш jar-файл, затем установите флажок рядом с файлом .jar справа и нажмите OK, затем снова OK.

Вам также следует убедиться, что имя модуля, которое вы пытаетесь импортировать, соответствует имени пакета, как указано в файле jar. Обратите внимание, что файл jar может называться по-разному в зависимости от пакета, особенно если в нем несколько пакетов.

Если у вас есть источник для .jar, откройте файл .java, содержащий код, который вы хотите использовать, и найдите строку в верхней части, которая указывает пакет. Если вы найдете строку, которая говорит что-то вроде package foo.bar.myJavaPackage;, то вы должны выполнить одну из

  • импортируйте его как import foo.bar.myJavaPackage и используйте содержимое как obj = foo.bar.myJavaPackage.someClass или
  • импортируйте его как from foo.bar import myJavaPackage и используйте содержимое как obj = myJavaPackage.someClass или
  • импортируйте его как from foo.bar.myJavaPackage import someClass и используйте его как obj = myClass, но будьте осторожны с коллизиями имен, используя этот метод.
...