UnsatisfiedLinkError при попытке запустить Java-код в реальном времени в JVM Websphere Real Time в Linux
Я пытаюсь запустить Java-код в реальном времени, используя виртуальную машину Java Websphere Realtime в Ubuntu Linux 32 bit. Я мог бы получить код для сборки, но по какой-то причине виртуальная машина не может найти собственные библиотеки, которые реализуют классы javax.realtime, и выдает UnsatisfiedLinkError. Любые идеи о том, как это исправить, будут оценены.
import javax.realtime.*;
public class HelloRTWorld {
public static void main(String[] args) {
RealtimeThread rt = new RealtimeThread() {
public void run() {
System.out.println("Hello RT World");
}
};
rt.start();
}
}
Это ошибка трассировки:
Exception in thread "main" java.lang.UnsatisfiedLinkError: javax/realtime/RealtimeThread.putAsyncHandlerClassToThread(Ljava/lang/Class;)V
at javax.realtime.RealtimeThread.<clinit>(RealtimeThread.java:122)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:233)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at net.suhrid.HelloWorld.main(HelloWorld.java:9)
2 ответа
Вам не нужно специально ставить какие-либо jar-файлы в командной строке, но вам нужно запустить с -Xrealtime, чтобы активировать поддержку в реальном времени.
У вас также могут возникнуть проблемы с ядром Ubuntu, не обеспечивающим достаточную производительность в реальном времени (поэтому WRT может не запуститься с этой опцией). Поддерживаемые операционные системы реального времени - это Red Hat MRG и Novell SLERT.
У меня была точно такая же проблема. Я добавил в свой проект библиотеку realtime.jar, поставляемую с Websphere IBM Realtime, но не смог запустить мой сценарий (в консоли я получил такой же вывод, как и вы). Наконец, я добавил -Xrealtime в виртуальную машину Argumnets (на вкладке "Аргументы" меню "Выполнить конфигурации") и добился успеха!