2017-06-29 3 views
0

私はJavaを初めて使用しています。あなたのPCがいくつかの仕様を満たしているかどうかをチェックするツールを開発しています。これには、別個のバッチファイルの作成と実行、およびCPUのモデル用のAPI(SIGAR)の組み込みが含まれます。SIGARを使用しているときに「java.library.pathのno sigar-winnt.dll」エラーが発生しました

私の問題は、EclipseでRunnable JARにエクスポートしようとしたときに、コマンドラインから結果のJARを実行したときに、ビルドパスの例外に含まれていないDLLがたくさんありました。 API DLLを含むフォルダをビルドパスに含めた後、同様の例外が発生します。これを修正したのは、拡張システム設定の環境変数(PATH)にDLLを含むフォルダを追加することでした。

質問:

  1. JARは今、自分のコンピュータ上で正常に動作しますが、どのようなJARをダウンロードするユーザーはどうですか?彼らはまた、環境変数にDLLを追加する必要がありますか?もしそうなら、JARがそれらのためにできる方法がありますか?

  2. My JARはダブルクリックでは実行されませんが、コマンドラインから実行されます。 JARをダウンロードするユーザーにもこれを引き継ぐ方法はありますか?

  3. ユーザーがツールをダウンロードし、正しいバージョンのJREを持っていないためツールを実行できない場合は、ツールから通知されますか?そうでない場合は、ユーザーの周りにJREを更新する必要があるか、またはEXEとして十分にラッピングする方法がありますか?

ありがとうございます。たくさんの質問。

答えて

0

Q1:JARは現在コンピュータで正常に動作しますが、誰が をダウンロードしたのですか?彼らはまた、DLLを環境変数 に追加する必要がありますか?もしそうなら、JARが のためにそれを行う方法がありますか?

あなたは内のJARファイルDLL を置くことができます。しかし、あなたが配布する場合

  • How to make a JAR file that includes DLL files?(完全... 両方答えを読んでヒントを。) DLLを含むJARを使用すると、異なるプラットフォームで異なるDLLが必要になるという問題があります。 Windowsの場合でも、32ビットと64ビットのDLLの問題があります。

    Q2:My JARはダブルクリックでは実行されませんが、コマンド 行から実行されます。 もJARをダウンロードするユーザーに引き継がれる方法はありますか?

    この問題をJARファイルで解決することはできません。 「ダブルクリックを実行する」機能は、OSによって実装されます。この種の機能を提供する最善の方法は、ダブルクリック可能な(プラットフォーム固有の)ラッパースクリプトを使用することです。

    Q3:ユーザーがツールをダウンロードし、彼らは は、JREの正しいバージョンを持っていないので、それを実行できない場合は、ツールがそれらを通知しますか?そうでない場合、 は、JREを更新する必要があるか、または をEXEとして十分にラッピングする方法ですか?

    JREがインストールされていない限り、JARファイルは単なるパッシブなデータブロブです。 (実際にはZIPファイル)。

    ユーザーのJREが古すぎる場合は、クラスファイルのバージョン番号が間違っているため、JREでJARにクラスをロードできないか、システムファイルが存在しないためにエラーが発生します。クラス。

    唯一の希望は、JARを起動しようとする前にJREバージョンをチェックしたアプリケーションを起動するためのラッパースクリプトを提供することです。一般的なルールとして


    あなたはこのように派手なものを行うにしたい場合は、あなたがいない裸のJARファイルとして、インストーラでプログラムを配布する必要があります。

関連する問題