ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ :
это классический случай .NET GUI, пытающегося разобраться с JAVA.
ОПИСАНИЕ ПРОБЛЕМЫ:
Я пытаюсь создать очень простой графический интерфейс с JFace и SWT - код прост (есть множество обучающих программ), но не все так просто, потому что я не могу заставить JFace и SWT работать вне проекта плагина .
Я ожидал бы, что смогу без проблем использовать JFace и SWT в моем проекте, поскольку я поместил «C: / eclipse 3.5 / plugins» в свой CLASSPATH (с моего компьютера -> свойства -> расширенный -> переменные окружения) и все swt - *. dll, которые я мог найти в своем PATH (как локальные пользовательские, так и глобальные PATH), как указано в этой статье в поле «Установка SWT и JFace».
Проблема в том, что я не могу импортировать что-либо из eclipse.org, если я не ссылаюсь непосредственно на jar-файлы из buildpath -> библиотеки -> добавить внешние jar-файлы (для его сборки мне необходимо добавить следующие jar-файлы: org.eclipse.swt.win32.win32.x86_3.5.1.v3555a.jar , org.eclipse.jface_3.5.1.M20090826-0800.jar ). Как только я это сделаю, он будет работать нормально, но когда я запускаю его как «Java-приложение», я получаю следующую ошибку (я должен RUN AS что-то еще?):
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
at demo.ui.test.EntryPoint.main(EntryPoint.java:18)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IProgressMonitor
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 1 more
Я попытался отладить это, и в основном он выбрасывается, как только он пытается создать экземпляр класса ApplicationWindow
(org.eclipse.jface.window.ApplicationWindow). Пытаясь воспроизвести ошибку, я закомментировал весь мой код и заменил его следующим: в первой строке он выдает ту же ошибку, что и выше:
ApplicationWindow w = new ApplicationWindow(null); //<-- error on this line
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();
ВОПРОСЫ:
Вопрос 1 : как я могу исправить ошибку выше (я хотел бы понять, что происходит) и заставить эту чертову вещь работать?
Вопрос 2 : почему банки не видны моему проекту и как их сделать?
Я, вероятно, упускаю что-то очень тривиальное из-за моего незнания Java и затмения. Любая помощь высоко ценится!
РЕДАКТИРОВАТЬ : похоже, что у кого-то еще была такая же проблема -> http://www.eclipsezone.com/eclipse/forums/t60528.html - хотя не слишком ясно, как они решили ее, помощь приветствуется