HelloWorld を作成している場合、HelloWorld と入力するだけで任意のディレクトリからプログラムを実行する方法はありますか? 同じように、Ant をセットアップしたら、任意のディレクトリから Ant を実行できますか?
詳細については、顧客向けに CLI ベースのツールキットを作成しています。それをコンパイルしてインストールし、ツールキット名を使用して実行させることができるかどうかを知りたいだけです。
HelloWorld を作成している場合、HelloWorld と入力するだけで任意のディレクトリからプログラムを実行する方法はありますか? 同じように、Ant をセットアップしたら、任意のディレクトリから Ant を実行できますか?
詳細については、顧客向けに CLI ベースのツールキットを作成しています。それをコンパイルしてインストールし、ツールキット名を使用して実行させることができるかどうかを知りたいだけです。
いつでもシェル スクリプトを作成し、それを呼び出して、JARHelloWorld
で実行することができます。java
chmod
次に、スクリプトを実行可能にして、.xml ファイルのどこかに配置する必要があります$PATH
。
スクリプトは次のようになります。
#!/bin/bash
cd /path/to/helloworld
java -jar HelloWorld.jar "$@"
また
#!/bin/bash
java -jar /path/to/helloworld/HelloWorld.jar "$@"
あなたの正確な要件に応じて。
問題の一般的な解決策は、別のランチャー アプリケーションを作成することです。これは、Java プログラムを実行する非 Java アプリケーションです。ランチャーは、C/C++ などのコンパイル可能な言語で記述し、ネイティブ実行可能ファイルにコンパイルできます。また、Unix shell、perl、python などのインタープリター言語で記述し、#!/path/to/interpreter
ランチャー ファイルの先頭に行を追加して実行可能フラグを設定することで実行可能にすることもできます。また、 launch4jやjsmoothなど、プログラムのランチャーを生成できるユーティリティがいくつかあります。
Linux (特に) では、/proc
ファイルシステム ( proc(5)のマニュアル ページを参照) とそのbinfmt_misc (実際には の/proc/sys/fs/binfmt_misc/register
疑似ファイルとその他の疑似ファイル) を使用して、またはファイルのハンドラーとして/proc/sys/fs/binfmt_misc/
登録できます。詳細については、カーネル ソースのDocumentation/binfmt_misc.txtファイルを参照してください。java
.class
.jar
次に、実行可能ファイルは(または).jar
によって解釈されますjava
jexec
努力する価値があるかどうかはわかりません。Java プログラムを何らかのシェル スクリプトでラップする方がはるかに簡単であることがわかりました (実際に を使用する Linux システムはほとんどなくbinfmt_misc
、顧客がそれを有効にするにはシステム管理者のスキルが必要になる場合があるため)。