アプリケーションからJDICを呼び出そうとしていますが、実行できません。どのファイルがどこに必要ですか?彼らのサイトから収集できたものから、基本的にjdic.jarをクラスパスに配置する必要があります...ただし、サイズが少し異なるjdic.jarとjdic_native_applet.jar、jdic_stub_unixを含むlibフォルダーもあります。 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)
私は最後の「公式」リリースと最後のアルファリリースを試しました。私はJava6とWin764ビットを実行しています。JDICはWin7(または32ビットJavaを使用していますが64ビット)でも動作しますか?2006年以降はリリースされておらず、2008年頃以降はプロジェクトでの活動はありません...Win7は2009年にリリースされました。
デスクトップなどのJDICの一部がJava6に含まれていることは知っていますが、ファイルの関連付けには当てはまらないようです。
そうでない場合は、ファイルの関連付けを管理するための(できればクロスプラットフォームの)代替手段はありますか?私が試した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)