Какие файлы нужны для запуска JDIC? - PullRequest
0 голосов
/ 09 января 2011

Я пытаюсь вызвать JDIC из моего приложения, но не могу запустить его.Какие файлы мне нужны и где?Из того, что я смог собрать с их сайта, мне в основном нужно поместить jdic.jar в classpath ... однако есть также папка lib с jdic.jar немного другого размера и jdic_native_applet.jar, jdic_stub_unix.jar, jdic_stub_windows.jar и несколько папок, которые я собираю, являются файлами, специфичными для платформы.

Я получаю это исключение при создании экземпляра AssociationService:

java.lang.ClassNotFoundException: org.jdesktop.jdic.filetypes.internal.AppAssociationReaderFactory_windows
    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 org.jdesktop.jdic.filetypes.AssociationService.<init>(Unknown Source)
    at QuickTest.main(QuickTest.java:101)

Я пробовал последний "официальный" выпуск ипоследний альфа-релиз.Я использую Java 6 и Win7 64bit.Работает ли JDIC даже под Win7 (или 64-битной, хотя я использую 32-битную Java)?Я не вижу релиза после 2006 года и никакой активности в проекте после 2008 года ... в то время как Win7 вышла в 2009 году.

Я знаю, что части JDIC, ​​такие как Desktop, были включены в Java 6, однако это неКажется, что это не так с ассоциациями файлов.

А если нет, есть ли (надеюсь, кроссплатформенные) альтернативы для управления ассоциациями файлов?Я попробовал некоторые вещи только для Windows , но для этого нужно запустить собственные команды с правами администратора, которые я не знаю, как вытащить, кроме того, чтобы попросить пользователя запустить мое приложение в качестве администратора и затем использовать Runtime.exec () ...

Если нет альтернатив JDIC, ​​мне интересно, удалось ли кому-нибудь хорошо обработать ассоциации файлов с кросс-платформенными установщиками?

ОБНОВЛЕНИЕ: ОК,понял часть этого ... все из папки Windows должно быть в корневой папке.Однако теперь я получаю это исключение, которое возвращает меня к моему первоначальному вопросу:

Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Sources\TheWorkspace\Test\jdic.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at org.jdesktop.jdic.init.JdicManager$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jdesktop.jdic.init.JdicManager.loadLibrary(Unknown Source)
    at org.jdesktop.jdic.filetypes.internal.WinRegistryWrapper.<clinit>(WinRegistryWrapper.java:36)
    at org.jdesktop.jdic.filetypes.internal.WinRegistryUtil.isSubKeyExist(WinRegistryUtil.java:192)
    at org.jdesktop.jdic.filetypes.internal.WinRegistryUtil.isFileExtExist(WinRegistryUtil.java:910)
    at org.jdesktop.jdic.filetypes.internal.WinRegistryUtil.isFileExtExist(WinRegistryUtil.java:939)
    at org.jdesktop.jdic.filetypes.internal.WinAppAssociationReader.isFileExtExist(WinAppAssociationReader.java:163)
    at org.jdesktop.jdic.filetypes.AssociationService.getFileExtensionAssociation(Unknown Source)
    at QuickTest.main(QuickTest.java:103)

1 Ответ

1 голос
/ 10 января 2011

Можете ли вы перепроверить Java, который вы используете для запуска этого?Ошибка обычно возникает при попытке загрузить 32-битную DLL из 64-битной Java.JDIC работает для нас на 64-битной Windows 7 с 32-битной Java.

...