私はIBMz/OS390を使用しており、OMVSシェルを使用しています。 「vi」をまったくインストールしていないので、「oedit」を使用します。 OMVSシェルからapp.jarstraighを初期化しようとすると、完全に機能します。つまり、Javaディレクトリに到達し、そこから以下の2つのコマンドを使用してアプリを起動すると、100%動作します。
cd /WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin
./Java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain
OEDITを使用してスクリプトファイルを作成し、両方の行を追加しました。 2番目は2行に分かれていました。残念ながら、実行中に2番目のコマンドラインが異なる2行として扱われていたため、明らかにこのエラーが発生します。
$ ./script_boot_app
Error: Could not find or load main class com.my_comapny_witt_entire_name.
/myMain: ./script_boot_app 3: FSUM7351 not found
おそらく、パスとJavaパッケージ名が1行に収まるほど小さければ、それは起こりません。したがって、私の質問は、OEDITを使用して、複数の行が次のように扱われることを保証するにはどうすればよいですか。シェルから直接コマンドを実行したときとまったく同じように1行ですか?OMVSシェルでstraighと入力して行の終わりに達した場合、当然、以下の行に進み、単一のコマンドラインとして実行されます。どうすればよいですか。 OEDITツールで作成されたスクリプト内の同じですか?
cd
は必要ありません。次の行も同じようにする必要があります。
/WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin/Java -cp \
/usr/my.jar com/com.my_comapny_witt_entire_name/myMain
バックスラッシュの継続を使用して、コマンドラインを2行に分割しました。継続して機能させるには、円記号と改行の間に文字があってはなりません。
別の方法は、Javaを含むディレクトリの前にJava binディレクトリをPATH変数に追加することです。コマンドwhich Java
は、どのJavaが使用されるかを教えてくれます。
PATH=/WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin:$PATH
Java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain
まず、cd
の終了ステータスを常に確認することをお勧めします。
cd /WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin && ./Java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain
cmd1 && cmd2
は実行を意味しますcmd2
if cmd1
成功します。
ここでの問題は、そのスクリプトがそのOMVSシェルによって解釈されていないことだと思います(これはPOSIXシェルであるため、これら2行の解釈で機能するはずです)。
または、もちろん、comapny
コマンドが見つかったときに、これらのタイプミス(witt
、Java
)が原因である可能性があります。これは、それが見つかるためには、現在のディレクトリと/WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin
ただのバックスラッシュ
cd /WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin ./Java -cp \
/usr/my.jar com/com.my_comapny_witt_entire_name/myMain