Приложение буду писать в среде разработки Eclipse Oxygen.2. Приложение выглядит стандартно. Класс, стандартный метод main + ещё метод getUnloadOption. Дольше настраивать всё, чтобы приложение заработало.
Пишем в методе main:
try {
Session theSession = (Session) SessionFactory.get("Session");
UFSession ufSession = (UFSession) SessionFactory.get("UFSession");
theSession.listingWindow().open();
theSession.listingWindow().writeLine("Hello!");
//theSession.listingWindow().closeWindow();
} catch (NXException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
Добавляем в наш класс метод getUnloadOption:
public static final int getUnloadOption() {
return BaseSession.LibraryUnloadOption.IMMEDIATELY;
}
Необходимо подключить файл (или все jar'ы) NXOpen.jar и NXOpenUF.jar. Прописываем путь до native библиотек (которые находятся в той же папке, что и jar файлы).
Если не указать путь, то получим ошибку:
Caused by: java.lang.UnsatisfiedLinkError: no libnxopenjavacore in java.library.path
Чтобы запускать приложение из Eclipse ещё необходимо указать путь до dll.
Если путь не будет указан, то приложение будет вылетать по исключительной ситуации и писать что не видит зависимые библиотеки с libnxopenjavacore.dll
Caused by: java.lang.UnsatisfiedLinkError: C:\Siemens\nx10\UGII\libnxopenjavacore.dll: Can't find dependent libraries
Проверяем файл ugii_env_ug.dat в папке, где находится ugraf.exe (UGII или в новых версиях NXBIN) Если там в переменной окружения UGII_JAVA_HOME написана какая-то чушь, то в файле ugii_env.dat записываем правильный путь до Java 8. Это специальный файл для пользовательских настроек.
Если путь будет настроен некорректно, то NX будут сообщать вам о том, что надо подправить путь.
Надо чтобы было что-то подобное:
UGII_JVM_LIBRARY_DIR="C:\Program Files\Java\jre1.8.0_141\bin\server"
UGII_JAVA_HOME="C:\Program Files\Java\jre1.8.0_141"
Стандартным образом подвешиваем класс к пользовательской команде в NX. В выпадающем списке выбираем NX Open, т.к. это приложение как-никак, а не файл журнала.
На этом пока всё.
Добрый день.Создаю плагин в eclipse, при экспорте одни ошибки на nxopen (The import nxopen cannot be resolved). Библиотеки подключила, ошибка не исчезает.В чем может быть проблема?
ОтветитьУдалитьДобрый день! Как минимум, можно попробовать очистить проект (Project -> Clean) или попробовать переподключить библиотеки (jar) в пути построения (build path).
ОтветитьУдалитьС плагинами всё немного сложнее. Просто так, JAR библиотеки не подключить, т.к. плагины реализуют спецификацию OSGi. Я не пробовал интегрировать NXOpen в Eclipse, поэтому чётко не могу что-то посоветовать. Необходимо создать плагин и поместить туда библиотеки NXOpen, а уже этот плагин использовать в своём проекте. У NXOpen ещё native библиотеки есть, что тоже усложняет задачу. В общем, надо пробовать. В сети нет примеров. Мне интересна эта задача, но времени не хватает. Попробую решить, если что-то получится, то напишу заметку.
ОтветитьУдалитьКоротко в заметке - https://millionones.blogspot.com/2019/02/nx-open-eclipse.html
ОтветитьУдалитьНадеюсь поможет. NX Open должен быть в плагине обёртке, который должен экспортировать пакеты NX Open, тогда не должно быть ошибок в стиле - cannot be resolved.
Спасибо за ответ. Помогло добавив библиотеки в папку плагина и выбрав классы как было указано в статье по ссылке. Буду разбираться дальше
ОтветитьУдалить