web-dev-qa-db-fra.com

Comment installer Java localement - pas de root - sur linux, si possible?

J'ai besoin de Java 1.7 et le serveur n'a que 1.6. Je n'ai pas de privilèges root. J'ai essayé de rechercher quelque chose sur google mais il semble que personne ne le fasse. Puis-je le compiler ou préparer des binaires afin que je puisse les mettre dans mon CHEMIN. Pourriez-vous aider? Le système est Redhat.

20
Pawel Osipowski

C'est assez simple ...

Téléchargez le JDK sous forme d'archive tar à partir d'Oracle (une simple recherche sur google donnera le lien).

Décompressez-le quelque part dans votre $ HOME (par exemple, $HOME/jdk).

Ensemble Java_HOME vers le chemin de l'installation JDK racine; puis ajoutez $Java_HOME/bin à votre PATH.

Et c'est parti.


Ici, j'ai un paramètre particulier dans la mesure où j'exécute trois versions principales différentes du JDK: 6, 7, 8. Par exemple, voici mon fichier source pour configurer le shell actuel pour utiliser Java 8 :

$ cat ~/.jdk/8
export Java_HOME=/opt/sunjdk/1.8/current
export PATH="$Java_HOME/bin:$PATH"

Et en /opt/sunjdk/1.8 (étant donné que /opt/sunjdk est accessible en écriture par mon utilisateur donc je n'ai pas besoin d'être root):

$ ls -l /opt/sunjdk/1.8/* -d
lrwxrwxrwx 1 fge fge  11 Oct 30 10:09 /opt/sunjdk/1.8/current -> jdk1.8.0_25
drwxr-xr-x 1 fge fge 274 Mar 18  2014 /opt/sunjdk/1.8/jdk1.8.0_05
drwxr-xr-x 1 fge fge 274 Sep 18 02:44 /opt/sunjdk/1.8/jdk1.8.0_25

(et oui, j'étais root pour commencer afin d'accorder des permissions d'écriture pour /opt/sunjdk à "mon" utilisateur; si vous n'avez pas une telle liberté, créez simplement un autre répertoire dans votre maison)

38
fge

Oracle propose également JRE et JDK sous * .tar.gz pour Linux. J'ai généralement réussi à télécharger un tel package, à le décompresser/à le décompresser (tar -xzvf jdk-8u25.tar.gz) puis l'exécuter en utilisant le chemin absolu.

6
cello

export Java_HOME =/opt/sunjdk/1.8/current
export PATH = "$ Java_HOME/bin: $ PATH"

Pour moi, cette option n'a fonctionné que lorsque j'ai changé linux pour utiliser bash à la place de ksh. Je ne sais pas si c'est une sorte de configuration dans mon entreprise, mais quand j'ai essayé de courir via ksh en utilisant "set" commande à la place "export" pour définir le chemin d'accès, il a été correctement défini avec le chemin d'accès de ma nouvelle installation Java, mais lorsque j'ai tapé which Java l'ancienne version a été montrée. Mais, quand j'ai exécuté bash et tapé le "export", ça a marché. Donc, si quelqu'un a le même problème pour le configurer en utilisant la commande set, essayez d'utiliser bash avec la commande export. J'utilise Redhat 6.2.

J'ai pu accomplir cela en utilisant conda.

Conda est un gestionnaire de paquets open source par Anaconda , selon le site Web:

Vous n'avez pas besoin d'autorisations administratives ou root pour installer Anaconda si vous sélectionnez un emplacement d'installation accessible en écriture pour l'utilisateur.

Vous pouvez rechercher le référentiel de packages à partir d'un navigateur à anaconda.org ou en ligne de commande, par exemple, voici les résultats pour JDK .

Pour Linux, vous devez télécharger ceci programme d'installation . Voici une ligne de commande qui démarrera le programme d'installation pour plus de commodité:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh

Une fois que conda est installé, vous pouvez installer des packages . Par exemple, pour installer la version JetBrains Runtime OpenJDK:

conda install -c anaconda openjdk

D'autres versions peuvent être disponibles à partir d'autres canaux dans le référentiel.

Les instructions ci-dessus devraient donner une installation fonctionnelle, mais le guide Mise en route est un bon endroit pour commencer. Conda utilise le concept d'environnements pour aider à gérer les versions et les chemins d'accès d'une manière assez simple et directe.

J'espère que ça aidera quelqu'un.

0
Brian Larsen