Я работаю над приложением Griffon, используя IntelliJ, и пытаюсь использовать библиотеки проекта dcm4che. Мне удалось заставить редактор кода IntelliJ перестать жаловаться на отсутствующие классы, но когда я запускаю приложение Griffon, компилятор сгорает, жалуясь, что это unable to resolve class DicomInputStream
и т. д.
Я не делаю ничего необычного. Все, что я делаю, это пытаюсь включить несколько простых файлов jar, но по какой-то причине все работает неправильно.
Признаюсь, я не особенно хорошо разбираюсь в решении проблем с classpath, и я использую IntelliJ совсем недавно, а Griffon/Groovy еще меньше, но я совершенно запутался.
Вот набор неудачных операторов импорта:
import org.dcm4che2.io.DicomInputStream
import org.dcm4che2.data.DicomObject
import org.dcm4che2.data.DicomElement
И это набор сообщений об ошибках, которые я получаю в консоли IntelliJ, когда пытаюсь запустить или отладить приложение:
Base Directory: C:\Users\[REDACTED]\MyApp\MyAppClient
Resolving dependencies...
Dependencies resolved in 698ms.
Running script C:\Program Files (x86)\Griffon\Griffon-0.9.4\scripts\RunApp.groovy
Environment set to development
[griffonc] Compiling 32 source files to C:\Users\[REDACTED]\.griffon\0.9.4\projects\MyApp\classes
[griffonc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[griffonc] C:\Users\[REDACTED]\MyApp\MyAppClient\griffon-app\controllers\myappclient\SelectRootController.groovy: 9: unable to resolve class org.dcm4che2.data.DicomElement
[griffonc] @ line 9, column 1.
[griffonc] import org.dcm4che2.data.DicomElement
[griffonc] ^
[griffonc]
[griffonc] C:\Users\[REDACTED]\MyApp\MyAppClient\griffon-app\controllers\myappclient\SelectRootController.groovy: 7: unable to resolve class org.dcm4che2.io.DicomInputStream
[griffonc] @ line 7, column 1.
[griffonc] import org.dcm4che2.io.DicomInputStream
[griffonc] ^
[griffonc]
[griffonc] C:\Users\[REDACTED]\MyApp\MyAppClient\griffon-app\controllers\myappclient\SelectRootController.groovy: 8: unable to resolve class org.dcm4che2.data.DicomObject
[griffonc] @ line 8, column 1.
[griffonc] import org.dcm4che2.data.DicomObject
[griffonc] ^
[griffonc]
[griffonc] 3 errors
Compilation error: Compilation Failed
Чтобы установить библиотеки dcm4che, я сделал следующее:
- Загрузите бинарные файлы библиотеки (-bin zip) и распакуйте zip до
MyApp\MyAppClient\lib\dcm4che-2.0.25-bin
- В диалоговом окне «Структура проекта» в разделе «Модули» -> «MyAppClient» на вкладке «Зависимости» я нажимаю «Добавить» и выбираю папку:
MyAppClient\lib\dcm4che-2.0.25-bin\dcm4che-2.0.25\lib
На этом этапе редактор кода перестает жаловаться на то, что не может найти и разрешить классы, но когда я запускаю или отлаживаю приложение, я получаю ошибки компиляции. Все работает прекрасно без импорта этих классов (и кода, который их использует).
Что я могу сделать, чтобы решить эту проблему? Какая еще информация была бы полезна, чтобы понять, что происходит?
lib
работает, но если я помещу их в какой-либо там каталог, напримерlib/dcm4che/
, IDE сможет их найти, без проблем, но Griffon не сможет. Можно ли что-то сделать, чтобы это исправить? Мне бы очень не хотелось иметь все мои jar-файлы в одном массивном каталоге без какой-либо организации, особенно когда несколько проектов нуждаются в одних и тех же вещах. - person cdeszaq   schedule 08.12.2011