3

PC を外部ハードウェアに接続するための一連のヘルパー クラスを実装するために、.jar ファイル ライブラリに取り組んでいます。また、ライブラリを使用して一般的なタスクを処理するために、いくつかの単純なアプリケーション (コマンド ラインまたは GUI) を追加します。

私の質問は、特定の方法で JVM のコマンドライン インスタンス化を簡素化する推奨される方法はありますか?

たとえば、次のような不可解なエラーが発生しやすいコマンドをユーザーに入力させる代わりに、次のようにします。

java -cp TurboBlenderLib.jar -jar TurboBlenderApp.jar -DFoo=Bar arg1 arg2

代わりに私がします

TurboBlenderApp arg1 arg2

?

シェル スクリプト (win32 バッチ ファイル... gacckkk を含む) を使用できると思いますが、それらが苦手なだけです。コマンドライン。

4

8 に答える 8

5
  1. を使用する-jarと、-cp(およびCLASSPATH変数)は無視されます
  2. 実行可能なjarを提供するだけです。" java -jar TheApp <whateverargumentsyouwant>" は難しくありません (ただし、ファイル マニフェストにClass-Path 属性を含めることはできます)。jar
  3. 難しすぎる場合は、GUI を作成します。
  4. または、それらのシェル スクリプト/バッチ ファイルを提供します。それらを書くこともそれほど難しいことではありません。
于 2008-12-22T21:00:11.040 に答える
2

ローカルでの実行を簡素化したい場合は、バッチ ファイルを使用するか、カスタム ショートカットを作成するだけです。ランチャーを作成し、実行可能な jar とデプロイに必要なライブラリをパッケージ化する場合は、Launch4jなどを使用します。

于 2008-12-22T21:34:34.903 に答える
1

別の解決策は、いつものようにJakarta Commonsにあります:commons-launcher

于 2008-12-23T10:20:27.367 に答える
1

何らかの理由で、このトリックは回避できません。必要なことは、Main-class:プロパティを定義する jar ファイルのカスタム マニフェストを作成し、使用しているすべてのクラス ファイルを jar ファイルに含めることです。次に、必要なのは実行することだけです

$ java -jar myapp.jar

実際のオペレーティング システムでは、マジック ナンバーを使用して起動するため、jar ファイルを実行することもできます。ただし、必要な場合は、その行を含むワンライナー バッチまたはシェル スクリプトで十分です。

これは、Java チュートリアルの 1 つで説明されています。

于 2008-12-22T21:37:49.140 に答える
1

を使用してアプリケーションを起動する場合、メインの jar のマニフェストにエントリをjava -jar追加することで、追加の jar をクラスパスに追加できます。Class-Path詳細については、jar ファイルの仕様を参照してください。

于 2008-12-22T22:24:18.657 に答える
1

シェル スクリプトとバッチ ファイルは、目的を達成するための標準的な方法です。(主要な Java 製品を見てください。)

もちろん、これは絶対に哀れでばかげています。ジャバに行く。

別の方法は、必要なことを実行する (Java プロセスを作成する) 小さな C プログラムを作成し、サポートされているプラ​​ットフォームごとにコンパイルすることです。(C は真にプラットフォームに依存しない言語です)。

いずれにせよ、アプリを OS に真に馴染ませるためには、プラットフォームに依存する手順を踏む必要があります。OS X では、.app バンドルを作成する必要があります。Windows では、少なくともアイコンとバージョン情報を EXE にパッケージ化する必要があります。Linux の場合は、シェル スクリプトで十分です。:-)

于 2008-12-22T21:00:12.833 に答える
0

バッチファイルが仕事をします。実行したい正確なコマンドをファイル myProg.bat に入れて実行します。

于 2008-12-22T20:58:14.210 に答える
0

とても簡単です:

これを TurboBlenderApp.cmd に記述します。

java -cp TurboBlenderLib.jar -jar TurboBlenderApp.jar -DFoo=Bar %1 %2

// -cp と -jar に関する答えを覚えておいてください

次に、コマンドラインから次のように記述します。

TurboBlenderApp arg1 arg2

あなたが望むように。

Unix/Linux で th4e %1 %2 を $1 $2 に置き換えて、アプリに実行権限があることを確認します (これを行う方法がわからない場合は、どちらも必要ないと思います)。

于 2008-12-22T21:17:53.780 に答える