0

Javaプログラムからバッチファイルを実行しています。Eclipse から実行すると正常に動作しますが、実行可能な jar にすると、バッチ ファイルのパスを見つけることができません。

ソースディレクトリにバッチファイルをリソースとして保持しました。Class.getResource("/resource/mybat.bat") を使用してリソースのパスを出力すると、パスが次のように正しく表示されます

  • resources/mybat.bat (jar 作成オプション: 生成された jar に必要なライブラリをパッケージ化)
  • file:/C:/Users/aasha.medhi/Desktop/myjar.jar!/resources/mybat.bat (jar 作成オプション: 生成された jar に必要なライブラリを抽出します)

jar を抽出すると、リソース フォルダーが存在します。

ただし、jar を実行しようとすると、バッチ ファイルに「指定されたパスが見つかりません」というエラーが表示されます。

ほとんどのリンクを調べて、さまざまなオプションを試しましたが、うまくいきませんでした。実行可能なjarを適切に作成する方法が必要です.助けてください..

4

2 に答える 2

1

JavaはJARを読み取り、通常のファイルシステムと同じように扱うことができますが、他のほとんどのアプリケーションはできません。この場合cmdはできません。バッチを一時的な場所に抽出し、そこから実行する必要があります。

于 2012-06-06T11:36:09.973 に答える
0

私が正しく理解していれば、そのバッチファイルがjar内にあり、クラスパスで利用できるはずです(META-INFマニフェストファイルを確認してください)。

リソース (この場合はバッチ ファイル) が利用可能になったら、ClassLoader 経由でアクセスできます。バッチファイルをトリガーする必要があるクラス内に、次を配置します。

this.getClass().getClassLoader().getResource(name)
于 2012-06-06T11:36:15.703 に答える