- - PR -
JAVAの動作環境について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-01-13 17:23
みーむと申します。
いつも、お世話になっています。 redhat9上で、rootにてjava.1.4.2_03をrpmからインストールしたのですが、 ユーザがrootなら問題なくプログラムが動くのですが、 他のユーザでは、全く動かないのです。 ためしに"java -version"を実行してみると、 Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object っていうメッセージが返ってきます。 j2sdkのフォルダー以下の所有権を実行ユーザーと同じにすると、 そのユーザでも実行可能なのですが、 j2sdkのインストールとは、そのようなものなのでしょうか? 今回も、とても初歩的な質問で申し訳ない出のですが、 解決策が見つからずに困っています。 どうか、すこしのアドバイスでもいただけると、助かります。 よろしくお願いします。 |
|
投稿日時: 2004-01-13 18:13
> j2sdkのインストールとは、そのようなものなのでしょうか?
いえ。違います。 J2SDKのインストールファイルに、不適切なパーミッションが設定されているようです。 rootで、J2SDKのインストール先にcdして、 find . -type f -not -perm -o=r -or -type d -and -not -perm -o=rx と打ってみると、ファイルやディレクトリがリストされます。 これらが、不適切なパーミッションが設定されたものです。(パーミッションが正常なら、上記コマンドを打っても、何もリストされません) その場で、 find . -type d -not -perm -o=rx |xargs chmod go+rx find . -type f -not -perm -o=r |xargs chmod go+r とか打つと、一般ユーザーでも実行できるようになります。 なぜこのような不具合が発生したのかについては、恐らくumaskの設定だと思います。 多分rootでumaskと打つと、0*6とか0*4とか(*は、0-7の数字が入る)表示されるのでは ないでしょうか? |
|
投稿日時: 2004-01-13 18:16
root 以外のユーザで j2sdk をインストールしたディレクトリ以下を参照する(cd してみるとか、ディレクトリ以下のファイルを指定して ls してみるとか、テキストファイルがあれば cat してみるとか)とどのようになりますか?
単に、一般ユーザにディレクトリの read と execution(search)、ファイルの read が許可されていないだけのように思えます # redhat は触っていないので UNIX 一般の回答ですが、的外れでしたらご容赦を(_ _) |
|
投稿日時: 2004-01-13 19:54
みなさま、有難うございます。
t-wadaさまの、おっしゃるように、 一部のjarファイルのパーミッションが600となっていたので、 これを変更すると、他のユーザでも実行可能となりました。 /etc/bashrcにて、umaskを066にしているのが、 原因でしょうか? umaskの設定値は、rpmでのインストールといった そのユーザにおけるファイル作成に 関わる全ての作業に反映されるのでしょうか? umaskはデフォルト022から変更しないほうがよいですか? |
|
投稿日時: 2004-01-13 22:33
> /etc/bashrcにて、umaskを066にしているのが、
> 原因でしょうか? まさにそれですね。umaskが066と言うことは、新規作成ファイル やディレクトリの、グループとその他のrw権限がマスクされてし まうので、600(ファイル)とか711(ディレクトリ)とかになっ てしまいます。 > umaskの設定値は、rpmでのインストールといった > そのユーザにおけるファイル作成に > 関わる全ての作業に反映されるのでしょうか? そうです。 > umaskはデフォルト022から変更しないほうがよいですか? 少なくともrootユーザーは、022にしておくべきでしょう (/root/.bashrcなどでumaskを設定しなおす)。 |
|
投稿日時: 2004-01-14 00:24
みーむです。
t-wataさま、ご親切に解説いただき感謝しています。 umaskの設定はデフォルトの022に戻すことにしました。 アドバイス、本当にありがとうございます。 |
1
