web-dev-qa-db-ja.com

CentOS 6でJava_HOMEおよびCLASSPATHを設定する

Jdkを/ usr/Java /に解凍しました。

そして、以下のようにCLASSPATH、PATH、Java_HOMEを/ etc/profileに入れます。

export Java_HOME=/usr/Java/jdk1.7.0_21
export PATH=$PATH:$Java_HOME/bin
export CLASSPATH=$Java_HOME/jre/lib/ext:$Java_HOME/lib/tools.jar

そして、/ usr/Java/jdk1.0.7_21/binのJavaファイルをコンパイルすると、

できます。しかし、私が他のフォルダーで同じことをしているときはそうではありません。

NoClassDefFoundErrorが表示されます。

だから、エコー経由でClASSPATH、PATH、Java_HOMEをチェックしました。

以下のように表示されます。

[[email protected] a]# echo $Java_HOME
/usr/Java/jdk1.7.0_21
[[email protected] a]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/guest/bin:/usr/Java/jdk1.7.0_21/bin:/usr/Java/bin:/usr/Java/jdk1.7.0_21/bin
[[email protected] a]# echo $CLASSPATH
/usr/Java/jdk1.7.0_21/jre/lib/ext:/usr/Java/jdk1.7.0_21/lib/tools.jar

コンソールでJavaを使用したいのですが、この状況で何ができますか?

前もって感謝します。

PS。私がしたコースの_source /etc/profile

=================私が直面しているエラー======================

when I command Java A(私のクラス名はA)。

Error: Could not find or load main class A

case IコマンドJava -cp/home/guest/workspace/AAA/src/a/A

Exception in thread "main" Java.lang.NoClassDefFoundError: A (wrong name: a/A)
    at Java.lang.ClassLoader.defineClass1(Native Method)
    at Java.lang.ClassLoader.defineClass(ClassLoader.Java:791)
    at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
    at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:449)
    at Java.net.URLClassLoader.access$100(URLClassLoader.Java:71)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:361)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:423)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:308)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:356)
    at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:482)

=====================私のコードの完全なコンテンツ======================== ============== Java part。path is /usr/guest/workspace/AAA/src/a/A.Java

package a;

public class A {
    public static void main(String[] args) {
        System.out.println("a!\n");
    }
}

/ etc/profileパーツ。左側がデフォルトです。

export Java_HOME=/usr/Java/jdk1.7.0_21
export PATH=$PATH:$Java_HOME/bin
export CLASSPATH=$Java_HOME/jre/lib/ext:$Java_HOME/lib/tools.jar

他の部品が解決に役立つ場合があります。

  • which Javaは「/ usr/Java/bin」を出力します。シンボリックリンクがあります。
  • 私のjdkの場所は/usr/Java/jdk1.7.0_21です。 ./bin内では、すべてのコードが正常に機能します。
  • /root/.bash_profileには触れませんでした。/etc/profileを編集しました。

そのような関心をありがとう。理解できなくても。あなたの助けは私にとって大きな癒しでした:D再びありがとう。

25
Juneyoung Oh

/ home/prasanthにaという名前のフォルダーを作成し、コードをA.Javaという名前のファイルにコピーしました。/home/prasanthからjavac a/A.Javaとしてコンパイルし、javac a.Aを実行します。私は次のように出力しました

a!
3
prasanth

検索 ここ centos jreはすべてのユーザーをインストールします:

CentOSで環境変数を設定する最も簡単な方法は、エクスポートを次のように使用することです

$> export Java_HOME=/usr/Java/jdk.1.5.0_12

$> export PATH=$PATH:$Java_HOME

ただし、このような方法で設定された変数は一時的なものです。つまり、シェルを終了するとすぐに消えます。これは、システムの再起動時にも持続する必要のある環境変数を設定する場合、明らかに役に立ちません。このような場合、システム全体のプロファイル内で変数を設定する必要があります。 CentOS(私はv5.2を使用しています)では、フォルダー/etc/profile.d/がシステムプロファイルにカスタマイズを追加するための推奨される場所です。たとえば、Sun JDKをインストールするときに、Java_HOMEおよびJRE_HOME環境変数を設定する必要がある場合があります。この場合:[Java.shという新しいファイルを作成します

vim /etc/profile.d/Java.sh

このファイル内で、必要な環境変数を初期化する

export JRE_HOME=/usr/Java/jdk1.5.0_12/jre
export PATH=$PATH:$JRE_HOME/bin

export Java_HOME=/usr/Java/jdk1.5.0_12
export Java_PATH=$Java_HOME

export PATH=$PATH:$Java_HOME/bin

マシンを再起動すると、Java.sh内の環境変数が自動的に初期化されます(/etc/profile.d/のファイルのロード方法に興味がある場合は、/ etc/profileをチェックアウトしてください)。

PS:マシンを再起動せずにJava.sh内の環境変数をロードする場合、次のようにsourceコマンドを使用できます。

$> source Java.sh
36
asraful009

手順:

  1. デスクトップパネルのTerminalアイコンをクリックして、ターミナルウィンドウを開き、コマンドプロンプトにアクセスします。
  2. コマンドwhich Javaを入力して、Java実行可能ファイルへのパスを見つけます。
  3. コマンドsu -を入力して、rootユーザーになります。
  4. コマンドvi /root/.bash_profileを入力して、Viテキストエディターでシステムbash_profileファイルを開きます。 viを好みのテキストエディタに置き換えることができます。
  5. ファイルの下部にexport Java_HOME=/usr/local/Java/と入力します。 /usr/local/Javaをステップ2で見つかった場所に置き換えます。
  6. bash_profileファイルを保存して閉じます。
  7. コマンドexitを入力して、ルートセッションを閉じます。
  8. システムからログアウトし、再度ログインします。
  9. コマンドecho $Java_HOMEを入力して、パスが正しく設定されたことを確認します。

centosでJava_homeを設定

6
bonecrusher

環境変数に問題はないようです。

Srcからファイルをコンパイルします

javac a/A.Java

次に、プログラムを次のように実行します

Java a.A

1
prasanth

javacの提供は/etc/alternatives/javac 、. bash_profileに追加できます。

Java_HOME=$(l=$(which javac) ; while : ; do nl=$(readlink ${l}) ; [ "$nl" ] || break ; l=$nl ; done ; echo $(cd $(dirname $l)/.. ; pwd) )
export Java_HOME
0
alxdrl

新しいパスを指すように/etc/profile.d/Java_env.shを変更してから、ログアウト/ログインする必要がありました。

0
BruceG

次の手順を実行します:

  1. 須藤-s
  2. yum install Java-1.8.0-openjdk-devel
  3. vi .bash_profile、および.bash_profileファイルに以下の行を追加して、ファイルを保存します。

export Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64 /

注-OSとしてCentOS7を使用しています。

0
Indrajeet Gour