🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

19796閲覧

JAVA_HOMEの設定済みなのに設定していないとエラーが出てtomcatの起動が出来ない

kozica

総合スコア58

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2019/12/23 03:27

tomcatの起動をしたいのですが、下記のようにエラーが出ます

$ sudo /usr/local/tomcat/apache-tomcat-6.0.18/bin/startup.sh Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program $ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home $ echo $TOMCAT_HOME /usr/local/tomcat/apache-tomcat-6.0.18

JAVA_HOMEの設定はしているにも関わらず、設定していないというエラーが出てどうすればよいかわかりません。

考えられる理由としては、tomcat6をインストールする前にtomcat8を入れて実行しており、
今回はtomcat8を削除しtomcat6を入れたのでそこで何らかのファイルやらが影響しているのではないかと考えてます。
削除する流れは単にtomcat8ファイルを削除するだけでしたこれが問題??

$ rm -rf /usr/local/tomcat/apache-tomcat-8.5.46

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/23 03:33

あなたではなく、tomcat ユーザーに本当に設定されてますか?その環境変数
m.ts10806

2019/12/23 04:47

ログインユーザーでJAVA_HOMEを出力できますか?
kozica

2019/12/23 05:22

上記コマンド同一ユーザーで出力しています。 下記コマンドでログインユーザーに権限付与も指定ます。 $ sudo chown -R [username]:admin /usr/local/tomcat/apache-tomcat-6.0.18 tomcatユーザーを作成しそちらに権限付与すべきなのでしょうか?
TaichiYanagiya

2019/12/25 02:50

sudo で渡される環境変数はあらかじめ許可されたもののみに限られますので、JAVA_HOME が渡らないのでしょう。 startup.sh などのスクリプトに直接 JAVA_HOME を設定してしまう方法はどうでしょうか?
退会済みユーザー

退会済みユーザー

2019/12/25 05:09

tomcatユーザーとか必要ありません。 TaichiYanagiyaさんがおっしゃるように、恐らくsudoで引き継がれる環境変数にJAVA_HOMEが入っていない(設定による)からではないかと思います。確認するためには、 sudo env | grep JAVA_HOME としてください。envは環境変数を全て表示するコマンドなので、何も出なければJAVA_HOMEは引き継がれていません。調べた結果は、質問文に追記してください。 また、デフォルトの設定やsudo自体の挙動が不明確になるので、OSとバージョンも質問文に追記してください。
guest

回答1

0

sudo で環境変数が渡ってないんだと思います。
sudo の設定を変更してもいいんですが、Tomcatの環境変数は bin/setenv.sh に書いた方が良いと思います。

(例)

setenv.sh

1export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 2export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-6.0.18 3export CATALINA_OPTS="-server -Xmx128M -Xms64M -Xss256k -Djava.awt.headless=true"

setenv.sh は catalina.sh からこんな感じで読み込まれます。

catalina.sh

1# Only set CATALINA_HOME if not already set 2[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." ; pwd` 3 4if [ -r "$CATALINA_BASE"/bin/setenv.sh ]; then 5 . "$CATALINA_BASE"/bin/setenv.sh 6elif [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then 7 . "$CATALINA_HOME"/bin/setenv.sh 8fi

投稿2019/12/25 15:59

take88

総合スコア1467

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問