2017-04-03 2 views
0

J'utilise Apache James comme serveur de messagerie à des fins de développement sur mac Sierra - v 10.12.3Impossible d'exécuter Apache James sur mac Sierra

Lorsque je tente de démarrer/exécuter en tant que super-utilisateur

sudo ./run.sh 

j'obtenir l'erreur suivante:

ERROR: JAVA_HOME not found in your environment. 

Please, set the JAVA_HOME variable in your environment to match the 
location of the Java Virtual Machine you want to use. 

Lorsque je tente de l'exécuter sans sudo, je reçois le texte suivant:

Using PHOENIX_HOME: /Users/myUserName/Dev/james-2.3.2.1 
Using PHOENIX_TMPDIR: /Users/myUserName/Dev/james-2.3.2.1/temp 
Using JAVA_HOME:  /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 
Running Phoenix: 

Phoenix 4.2 

James Mail Server 2.3.2.1 
Remote Manager Service started plain:4555 
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "pop3server" failed to pass through the Starting stage. (Reason: java.net.BindException: Permission denied (Bind failed)). 
at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354) 

La variable JAVA_HOME a été définie correctement jusqu'à présent.

Lorsque je tape $ JAVA_HOME dans le terminal I obtenir:

-bash: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home: is a directory 

dans les fichiers .profile et .bash_ j'ai:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 

Toute idée de ce que pourrait être la raison s'il vous plaît?

Répondre

0

Résolu ... la solution consistait à définir la variable d'environnement JAVA_HOME pour Sudo. et ceci a été fait le: /etc/sudoers. J'ai utilisé 'vi' pour éditer le fichier via le terminal.

sudo visudo 

, puis en ajoutant la ligne suivante après les paramètres par défaut pour les variables d'environnement:

Defaults  env_keep += "JAVA_HOME" 

C'est tout. Pour vérifier si la variable d'environnement JAVA_HOME a été correctement définie pour sudo, j'ai simplement tapé cette commande dans le terminal.

sudo printenv