- PR -

Linuxでjarファイル実行時のエラーについて

投稿者投稿内容
まき
常連さん
会議室デビュー日: 2006/01/24
投稿数: 23
投稿日時: 2006-01-24 23:34
はじめまして。java初心者です。Linuxでjarファイルの実行をしようとしましたがエラーが出てしまいました。

#java -cp agent.jar agent.socket.Agentとうち実行したところ、

libgc-java-placeholder.sh

This script is a placeholder for the /usr/bin/java
master link required by jpackage.org conventions. libgcj's rmiregistry,
rmic and jar tools are now slave symlinks to these masters, and are managed by the
alternatives( system.

This change was necessary because the rmiregistry, rmic and jar tools installed by previous versions of libgcj conflicted with symlinks installed by jpackage.org JVM packages.

This script was designed to be overridden by the supported RHEL3 JRE packages, java-1.4.2-bea and java-1.4.2-ibm. It is installed as an alternativesymlink as /usr/bin/java. Itwill override a third-party (non-RHEL3) JRE's java command if the JRE's bin directory is listed after /usr/bin in PATH. In that case, it is recommended that the third-party JRE's bin direcgtory be listed first in PATH instead.

gij: unrecognized -- '-cp'
Try 'gij --help' for more information

とでてきました。ネットで検索すると、javaが入っていないと出るみたいなことが書いてあり、確かめたところ、usr/binにいくとjavaというのがありました。ただ、rpm -qa | grep javaというコマンドを実行すると何も出てきませんでした。これはjavaがインストールされていないのですか?またその場合どのような処理をすればよいのかを教えてください。よろしくお願いします。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-01-25 01:03
引用:

まきさんの書き込み (2006-01-24 23:34) より:
gij: unrecognized -- '-cp'



難し〜くいえば
そのJVMはJITコンパイラ専用です。ネイティブなjar(?)が認識できません。
(技術的にそんなことはないのですが)
このエラー自体は、"-cp"というコマンド引数が認識できないというエラーです。

ということになります。

簡単に言ってどうすれば?
要するにSunのJDKをインストールしてください。

http://java.sun.com/j2se/1.5.0/ja/download.html
の中の

jdk-1_5_0_06-linux-i586-rpm.bin

をダウンロードして、

sh ./jdk-1_5_0_06-linux-i586-rpm.bin

して適当にリターンキーを押せば終わります。

で、/usr/java/jdk-1.5.0-06?下にあるので、パスを通すなり、
直接java.exe(ぢゃないけど)を起動してください。

で、出来るはずです。とりあえず。
まき
常連さん
会議室デビュー日: 2006/01/24
投稿数: 23
投稿日時: 2006-01-25 03:29
加納さん、夜分にありがとうございます。

私はjavaもLinuxも初心者で、、、確認したいのですが、@jdk-1_5_0_06-linux-i586-rpm.binをダウンロードし、A/usr/java配下でsh ./jdk-1_5_0_06-linux-i586-rpm.binを実行する。B/usr/java/jdk-1.5.0-06/bin/java -classpath. agent.jar agent.socket.Agent、とすればよいのでしょうか?

ご教授いただけたらと思います。よろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-25 04:00
えーと、まずやってみてはいかがでしょうか?
それで不明な点なり別のエラーがでるなりしたら追加で質問すれば良いかと。
加納正和さんの仰っていることをほとんどそのまま聞き返しても何がわからないのかわかりませんよ。
まき
常連さん
会議室デビュー日: 2006/01/24
投稿数: 23
投稿日時: 2006-01-25 08:32
インギさん、そのとおりですね。私一人が焦ってました、、、自分でやってから分からないところを聞くようにします。ご指摘ありがとうございました。

さて、加納さんにご教授いただいたことをやろうとしました。まず、@jdk-1_5_0_06-linux-i586-rpm.binを/usr/java配下に置こうとしたのですが、「/usr/javaは存在しますが、ディレクトリではありません」と表示されたので、自分で/usr/java2というディレクトリを勝手に作成し、そこにrpmを入れてしまいました。A次に、sh ./jdk-1_5_0_06-linux-i586-rpm.binを実行したところ、最後に、
エラー: unpacking of archive failed on file /usr/java/jdk-1_5_0_06/COPYRIGHT;43d6b7d9: cpio: lastat failed -ディレクトリではありません

Done.

と表示されました。ちなみに、usr/java2配下にはjdk-1_5_0_06-linux-i586.rpmというのができています。

エラーが出ているのでだめな気がするのですが、どこがいけなかったのでしょうか?またこの作業のあとのパスの設定およびjarファイルの実行について、もう一度教えていただけないでしょうか?申し訳ありませんがよろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-25 09:06
/usr/java 以下に展開しようとしたけども、ディレクトリでないファイルが既に存在していて展開に失敗した、ということではないでしょうか。
まき
常連さん
会議室デビュー日: 2006/01/24
投稿数: 23
投稿日時: 2006-01-25 09:33
インギさんありがとうございます。

/usr/javaをmv java java2と名前を変えました。(これはよいのかな?)そして/usr/javaディレクトリを作成し、sh ./jdk-1_5_0_06-linux-i586-rpm.binを実行したらエラーはでませんでした。

そして、その後、vi /etc/profileで行の最後にexport JAVA_HOME=/usr/java/jdk1.5.0_06
export PATH=$PATH:$JAVA_HOME/bin をしてクラスパスを通したつもりです。

最後に/usr/java/jdk1.5.0_06/binでjava -cp cg.jar agent.socket.Agentとしたら一番最初に書き込んだエラーがでてきました(libgc-java-placeholder.sh )。

どこに落ち度があるのでしょうか?すみませんが教えてください。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-25 09:50
起動しているのは /usr/java/jdk1.5.0_06/bin/java ですか?
カレントディレクトリがパスに入っていなければ別の(前からはいってたやつ)が起動されているのかもしれません。
./java 、とかフルパスを指定してやってみてはいかがでしょう。

スキルアップ/キャリアアップ(JOB@IT)