3

Eclipse で Java プロジェクトを作成するとします。このプロジェクトには 3 ~ 10 個のクラスがあり、そのうちの 1 つには、プログラム全体を開始し、コマンド ラインで 4 つの引数を取る main(String[] args) メソッドがあります。また、このプロジェクトには、実行する必要がある src/lib に 6 ~ 10 個の .jar ファイルがあるとします。

別のコンピュータ (両端で UNIX) に ssh アクセスでき、このプログラムを実行したい場合、どうすれば正確に実行できますか?

私はいくつかの分散コンピューティング プロジェクトを行っており、複数のマシンでプログラムを実行する必要があるため、質問しますが、コマンド ライン初心者であり、すべてのマシンに物理的にアクセスすることはできません。

編集:ファイルをSCPする必要があるようです。Java プログラムを実行する特定のコマンドを教えてもらえますか? どのディレクトリから実行する必要があるか、JAR 依存関係を含める方法を含めます。

4

3 に答える 3

7

走る

java -jar thejarfile.jar "arg1" "arg2" "ectect.."

バックグラウンドで実行したい場合java -jar thejarfile.jar "arg1" "arg2" &

バックグラウンドにある場合はそれを殺すps -aux IDを取得してから殺す(ID番号)

于 2012-04-08T18:16:00.067 に答える
5

一般に、ssh を使用してリモート コンピューターにログインし、そのマシンのリソースを使用して、そのマシンのストレージからプログラムを実行します。

したがって、Java プログラムを別のマシンで実行したい場合は、そこに必要なファイルをコピーしてから、そのマシンに ssh し、リモート コマンド ラインからプログラムを実行する必要があります。

于 2012-04-08T16:03:34.177 に答える
2

MicroKernel となる小さなブートストラップ プログラムを作成します。その MicroKernel をリモート マシンに SCP します。このプログラムは、カスタム ClassLoader を使用して、実際のアプリケーションの残りの依存関係をリモート マシンのメモリまたはストレージにプルします。HTTP アドレスから JAR ファイルをロードできるため、URL ClassLoader を参照してください。

または、プログラム全体を圧縮してリモート マシンに SCP し、解凍して通常どおり「java」を実行することもできます。SSH アクセスできる場合は、そのマシン上の scp ファイルにアクセスできる必要があります。そうでない場合は、いつでも削除するマシンに SSH で接続しscpてから、マシンからそれらを削除できます。

例:

ssh myname@myremotemachine
> mkdir /location/to/program
> scp myname@mydevmachine:/location/to/program/* /location/to/program

SSH キーが適切に設定されていて、パスワードを入力する必要がない場合、これはすべて非常にうまく機能します。

于 2012-04-08T16:04:22.283 に答える