
シェルからJavaを起動したい
上記ですけど、Linuxで毎回「java パッケージ名.クラス名」を打つのは面倒なので、
シェルスクリプトのファイルを作って、それを実行するだけで起動できるようにしようと思っています。
が、クラスが見つからないってエラーが出て実行できませんでした。
(「java パッケージ名.クラス名」を実行しているディレクトリにシェルを作ってます)
恐らく環境変数などの設定がシェルの中にいるのではないかと思いますが、
シェルスクリプトとかLinuxの環境には疎い為、どういった記述が必要なのか解りません。
どなたか例を提示して頂けないでしょうか?
ちなみに、一般的なJavaの環境変数や、
プロジェクト特有・jarファイル等の環境変数は設定済みです。
それから、シェルは以下のように記述してます。
#!/bin/sh
java パッケージ名.クラス名
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
状況が明確でないので可能性の一つというだけで役に立たないかもしれないが、
そのシェルスクリプトが存在しているディレクトリをカレントディレクトリにして、
java パッケージ名.クラス名
をコマンドラインで直接打てば動作しており、
また、そのカレントディレクトリでスクリプトを実行した場合にも実行できるが、
他のディレクトリからスクリプトを実行した場合にはクラスが見つからないというエラーになるという状況なら、
クラスパスにそのJavaクラスファイル(のトップ階層)へのパスを追加するか、
スクリプト内でカレントディレクトリを変更するかする必要がある。
例えばディレクトリ構成が、
/a/b/c/シェルスクリプトファイル
/a/b/c/パッケージ名/クラス名.class
になっていて、/a/b/cをカレントディレクトリにして、
java パッケージ名.クラス名
で直接実行したり、シェルスクリプトを起動した場合は実行できて、
他のディレクトリをカレントディレクトリにして実行権限をつけたシェルスクリプトを
/a/b/c/シェルスクリプト
や
/a/b/c を検索パスに追加しているならシェルスクリプト名だけ
で実行しようとした時にクラスが見つからない場合は、
#!/bin/sh
java -cp /a/b/c パッケージ名.クラス名
のように/a/b/cをクラスパスに指定する。
他にもクラスパスを設定しているならそれも込みでクラスパスを設定する。
スクリプトが置かれているディレクトリがスクリプト実行時のカレントディレクトリに勝手になるわけではない。
もしくは、Javaプログラムの実行中のカレントディレクトリが、
スクリプトが置かれているディレクトリであることを前提にプログラムが作られていたりするのなら(そうでない場合でもいいが)、
javaコマンドを実行する前にカレントディレクトリを変更するようにスクリプトを書く。
回答ありがとうございます。
また、こちらの少ない情報から、
色々なパターンでの提示も助かりました。
>もしくは、Javaプログラムの実行中のカレントディレクトリが、
>スクリプトが置かれているディレクトリであることを前提にプログラムが作られていたりするのなら(そうでない場合でもいいが)、
>javaコマンドを実行する前にカレントディレクトリを変更するようにスクリプトを書く。
上記のパターンで動きました!
スクリプトを置いてるディレクトリで動くようにしてるんだから、
スクリプトの内容もjavaコマンドだけでいいって勘違いしてました。
アホでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの表にヘンな枠が・・・
-
Mac de プログラム
-
コマンドプロンプト「システム...
-
SONYの音楽ソフト「x-アプリ」...
-
ACCESSレポートをPDFに出力したい
-
シャットダウンバッチがうまく...
-
pingは正常なのにtracerouteで...
-
時間のマクロで最初はその時間...
-
SPI非言語の問題 解説お願いします
-
Linux のシェルスクリプトの強...
-
taskkill をバッチ処理できない。
-
sudoで実行したコマンドの実行...
-
windows10のごみ箱をrd /s /q C...
-
ラズベリーパイに関して質問で...
-
WindowsXPでsubstコマンドで仮...
-
別のユーザーとして実行が表示...
-
macでJythonの文字コードについ...
-
最初の一度しか実行されないロ...
-
コマンドプロンプトとcmdの違い
-
文化祭の書類で不備がありました
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
大手町駅。それはホームから非...
-
pingは正常なのにtracerouteで...
-
お気に入りの処理について。
-
文化祭の書類で不備がありました
-
Linux のシェルスクリプトの強...
-
党首討論を見てます。 この石破...
-
windows10のごみ箱をrd /s /q C...
-
最初の一度しか実行されないロ...
-
python IDLEで訂正、削除のやり...
-
バッチファイル内の各コマンド...
-
SPI非言語の問題 解説お願いします
-
Openイベントを開始させないで...
-
時間のマクロで最初はその時間...
-
sudoで実行したコマンドの実行...
-
emacsでCtrl+zを押してサスペン...
-
PowerShellのスクリプト実行に...
-
シャットダウンバッチがうまく...
-
LD_LIBRARY_PATHって?
おすすめ情報