Запуск приложения J6SE на коробке NT - PullRequest
4 голосов
/ 30 сентября 2008

Мне нужно запустить приложение Java, которое мы пытаемся перенести на Java 6, на коробке NT.

Мне удается запустить на нем Java 5 (хотя официально это не поддерживается), но при попытке запустить Java 6 я получаю следующую ошибку:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jre1.6.0_05\bin\awt.dll: The specified procedure could not be found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at sun.security.action.LoadLibraryAction.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
    at sun.awt.DebugHelper.<clinit>(Unknown Source)
    at java.awt.EventQueue.<clinit>(Unknown Source)
    at javax.swing.SwingUtilities.invokeLater(Unknown Source)
    at ui.sequencer.test.WindowTest.main(WindowTest.java:136)

Кто-нибудь знает, как решить эту проблему?

Это сохраняется, даже когда я перемещаю исполняемые файлы Java в другой каталог без пробелов в его имени.

p.s. Я знаю, я должен обновить, но это не мое или моей компании - это огромная гигантская компания, с которой мы работаем, и они намерены сохранить NT еще на 5 лет.

Ответы [ 3 ]

2 голосов
/ 03 октября 2008

ОК, спасибо всем зрителям и @Roel Spiker и @Partyzant за ответы.

Это невозможно сделать. Нет, если вы не установите windows2000 на коробку NT. Это потому, что awt.dll для J6SE использует новые методы в User32.dll, который является частью операционной системы Windows (связан с kernel.dll и др.) Используйте ходок зависимости dll и убедитесь сами. Другое возможное решение - слегка изменить OpenJDK, чтобы использовать другие методы, доступные в Windows NT.

1 голос
/ 30 сентября 2008

Если вы не используете графический интерфейс, например AWT, Swing или SWT, вы можете попробовать запустить приложение в режиме без головы. См. http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/ для получения дополнительной информации. Чтобы запустить Java в режиме без головы, используйте java -Djava.awt.headless=true

Это позаботится о UnsatisfiedLinkError. Я не знаю, единственное ли это препятствие.

1 голос
/ 30 сентября 2008

Java SE 6 требует как минимум Windows 2000.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...