5

インストール プログラムで、Hyperic SIGARライブラリをサード パーティのライブラリとして使用しています。私のインストール プログラムは、3 番目の lib ファイルをすべて %TEMP%\\user フォルダーに解凍します。

英語の OS ではすべて問題なく動作しますが、スペイン語の OS でセットアップ プログラムを実行しようとすると、次のエラーが発生しました。

Java ライブラリには sigar.jar が含まれています。

java.class.path=C:\DOCUME~1\スペイン語\CONFIG~1\Temp\e4j58.tmp_dir\user\sigar.jar

私のインストール プログラムは、WinXP、WIN7 OS をサポートしています。

エラーは次のとおりです。

no sigar-x86-winnt.dll in java.library.path
org.hyperic.sigar.SigarException: no sigar-x86-winnt.dll in java.library.path
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
at I4jScript_Internal_1.eval(I4jScript_Internal_1.java:23)
at I4jScript_Internal_1.evaluate(I4jScript_Internal_1.java:79)
at com.install4j.runtime.installer.helper.Script.evaluate(Unknown Source)
at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
at com.install4j.runtime.beans.actions.control.RunScriptAction.execute(Unknown Source)
at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.install(Unknown Source)
at com.install4j.runtime.installer.InstallerContextImpl.performActionInt(Unknown Source)
at com.install4j.runtime.installer.ContextImpl.performAction(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.executeActions(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.handleCommand(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.handleStartup(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.start(Unknown Source)
at com.install4j.runtime.installer.Installer.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
at com.install4j.runtime.launcher.WinLauncher.main(Unknown Source)'

誰かがすでに同様のエラーに遭遇し、アドバイスできますか? ありがとう。

4

4 に答える 4

2

システム プロパティを設定する必要があります ( java.library.path)

元)java ... -Djava.library.path=../lib/sigar/lib ...

java.library.pathを含むフォルダです。sigar-x86-winnt.dll

https://forums.oracle.com/forums/thread.jspa?threadID=1299532

于 2012-03-16T03:11:42.497 に答える
2

実行時にプログラムで java.path.library に追加することもできます。

    System.setProperty("java.library.path", System.getProperty("java.library.path")+File.pathSeparator+pathToYourDLL);

    //set sys_paths to null
    final Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
    sysPathsField.setAccessible(true);
    sysPathsField.set(null, null);

非常に良い説明がhttp://fahdshariff.blogspot.jp/2011/08/ching-java-library-path-at-runtime.htmlにあります。

于 2015-03-31T08:34:05.000 に答える
1

ドキュメントで説明されているように、SIGAR は下で JNI を使用します。適切な JNI ファイルをパスに含める必要があります (通常、ファイルはスタック トレースに表示されます)。Maven を使用してプロジェクトをビルドしている場合は、pom.xml を編集して、このファイルをパスに追加する必要があります (残念ながら、アーティファクトを指定することはできず、パスにあると想定することはできません)。

 <!-- add sigar dll to java path -->
                <configuration>
                    <forkMode>once</forkMode>
                    <workingDirectory>target</workingDirectory>
                    <argLine>-Djava.library.path=${basedir}/lib</argLine>
                </configuration>
于 2014-02-11T17:36:50.787 に答える
1

sigar-x86-winnt.dll を現在のユーザー ディレクトリに配置すると、動作します。

于 2012-07-12T14:58:59.263 に答える