web-dev-qa-db-fra.com

définition de Java_HOME et CLASSPATH dans CentOS 6

J'ai décompressé mon jdk dans/usr/Java /.

et je mets CLASSPATH, PATH, Java_HOME dans/etc/profile comme ci-dessous.

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

Et quand je compile un fichier Java dans /usr/Java/jdk1.0.7_21/bin, 

Ça marche. Mais quand je fais la même chose sur un autre dossier, ce n'est pas le cas.

Il affiche NoClassDefFoundError.

J'ai donc vérifié ClASSPATH, PATH, Java_HOME via echo.

Cela se voit comme ci-dessous.

[root@localhost a]# echo $Java_HOME
/usr/Java/jdk1.7.0_21
[root@localhost 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
[root@localhost a]# echo $CLASSPATH
/usr/Java/jdk1.7.0_21/jre/lib/ext:/usr/Java/jdk1.7.0_21/lib/tools.jar

Je veux utiliser Java dans la console, que puis-je faire dans cette situation?

Merci d'avance.

PS. de couse je l'ai source /etc/profile.

================= Les erreurs auxquelles je suis confronté ======================

quand je commande Java A (le nom de ma classe est A).

Error: Could not find or load main class A

case je commande Java -cp/home/invité/espace de travail/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)

==================== Tout le contenu de mon code ======================== ============== Partie Java. chemin est /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 partie. la partie gauche est la valeur par défaut.

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

d'autres parties pourraient être utiles à résoudre.

  • which Java affiche "/ usr/Java/bin". il y a un lien symbolique.
  • Mon emplacement jdk est /usr/Java/jdk1.7.0_21. À l'intérieur de ./bin, chaque code fonctionne bien.
  • Je n'ai pas touché /root/.bash_profile. Je viens de modifier/etc/profile.

Merci pour cet intérêt. même si cela n’a pas été résolu. votre aide m'a beaucoup aidée: D Merci encore.

23
Juneyoung Oh

J'ai créé un dossier nommé a dans/home/prasanth et copié votre code dans un fichier nommé A.Java. J'ai compilé à partir de/home/prasanth en tant que javac a/A.Java et exécuter javac a.A. Je suis sortie comme 

a!
3
prasanth

Rechercher ici pour centos jre installer tous les utilisateurs:

Le moyen le plus simple de définir une variable d'environnement dans CentOS consiste à utiliser export comme dans

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

$> export PATH=$PATH:$Java_HOME

Cependant, les variables ainsi définies sont transitoires, c’est-à-dire qu’elles disparaîtront dès que vous quitterez le Shell. Évidemment, cela n’est pas utile lorsque vous définissez des variables d’environnement qui doivent être conservées, même lorsque le système redémarre. Dans ce cas, vous devez définir les variables dans le profil système. Dans CentOS (version 5.2), le dossier /etc/profile.d/ est l'emplacement recommandé pour ajouter des personnalisations au profil système . Par exemple, lors de l'installation du JDK de Sun, vous devrez peut-être définir les variables d'environnement Java_HOME et JRE_HOME. Dans ce cas: Créez un nouveau fichier appeléJava.sh

vim /etc/profile.d/Java.sh

Dans ce fichier, initialisez les variables d'environnement nécessaires

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

Maintenant, lorsque vous redémarrez votre ordinateur, les variables d'environnement de Java.sh seront automatiquement initialisées (consultez/etc/profile si vous êtes curieux de savoir comment les fichiers de /etc/profile.d/ sont chargés).

PS: Si vous souhaitez charger les variables d'environnement dans Java.sh sans avoir à redémarrer la machine, vous pouvez utiliser la commande source comme suit:

$> source Java.sh
34
asraful009

Instructions:

  1. Cliquez sur l'icône Terminal dans le panneau du bureau pour ouvrir une fenêtre de terminal Et accéder à la commande Invite.
  2. Tapez la commande which Java pour rechercher le chemin d'accès au fichier exécutable Java
  3. Tapez la commande su - pour devenir l'utilisateur root.
  4. Tapez la commande vi /root/.bash_profile pour ouvrir le fichier système bash_profile dans l'éditeur de texte Vi. Vous pouvez remplacer vi par Votre éditeur de texte préféré.
  5. Tapez export Java_HOME=/usr/local/Java/ au bas du fichier . Remplacez /usr/local/Java par l'emplacement indiqué à l'étape deux.
  6. Enregistrez et fermez le fichier bash_profile.
  7. Tapez la commande exit pour fermer la session racine.
  8. Déconnectez-vous du système et reconnectez-vous.
  9. Tapez la commande echo $Java_HOME pour vous assurer que le chemin d'accès a été défini correctement

set Java_home in centos

6
bonecrusher

Il semble que vous n’ayez aucun problème avec les variables environnementales. 

Compilez votre fichier de src avec 

javac a/A.Java

Ensuite, lancez votre programme en tant que 

Java a.A

1
prasanth

Je devais changer /etc/profile.d/Java_env.sh pour qu'il pointe vers le nouveau chemin, puis vous déconnecter/vous connecter.

0
BruceG

Suivez les étapes suivantes:

  1. Sudo -s
  2. miam installer Java-1.8.0-openjdk-devel
  3. vi .bash_profile, et ajoutez la ligne ci-dessous dans le fichier .bash_profile et enregistrez-le.

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

Remarque - J'utilise CentOS7 comme système d'exploitation.

0
Indrajeet Gour