2015-02-23 3 views
2

Я пытаюсь запустить Apache Hive веб-интерфейс, так что я скачал самую последнюю версию муравья (Ant 1.9.4), и когда я выполняю команду для создания файла hive.warНе удалось найти JAVAC компилятор даже когда JDK присутствует

ANT_LIB=/opt/ant/lib bin/hive --service hwi 

я получаю следующее сообщение об ошибке:

cp=/tmp/Jetty_0_0_0_0_9999_hive.hwi.0.10.0.war__hwi__ae9cmk/jsp 
    cp=null 
    work dir=/tmp/Jetty_0_0_0_0_9999_hive.hwi.0.10.0.war__hwi__ae9cmk/jsp 
    extension dir=/usr/lib/jvm/jdk1.7.0_65/jre/lib/ext:/usr/java/packages/lib/ext 
    srcDir=/tmp/Jetty_0_0_0_0_9999_hive.hwi.0.10.0.war__hwi__ae9cmk/jsp 
    compilerTargetVM=1.5 
    compilerSourceVM=1.5 
    include=org/apache/jsp/index_jsp.java 

15/02/23 09:56:59 ERROR compiler.Compiler: Error compiling file: /tmp/Jetty_0_0_0_0_9999_hive.hwi.0.10.0.war__hwi__ae9cmk/jsp//org/apache/jsp/index_jsp.java  [javac] warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 


15/02/23 09:56:59 ERROR mortbay.log: /hwi/ 
Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 
Perhaps JAVA_HOME does not point to the JDK. 
It is currently set to "/usr/lib/jvm/jdk1.7.0_65/jre" 
    at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:130) 
    at org.apache.tools.ant.taskdefs.Javac.findSupportedFileExtensions(Javac.java:984) 
    at org.apache.tools.ant.taskdefs.Javac.scanDir(Javac.java:961) 
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:932) 
    at org.apache.jasper.compiler.AntCompiler.generateClass(AntCompiler.java:220) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:298) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) 

Я выполнение этого кода в качестве корня. Мой JAVA_HOME правильно установлен на .bashrc:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65 
export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec 
export HADOOP_CONF_DIR=/etc/hadoop/conf 

export PATH=$PATH:$JAVA_HOME/bin 

.bash_profile и файлы:

.bash_profile

# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
     . ~/.bashrc 
fi 

# User specific environment and startup programs 
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65 
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin 

export PATH 

Я хочу знать, почему Ant ссылки на javac в "/usr/lib/jvm/jdk1.7.0_65/jre". Кроме того, здесь моя JDK структура:

[[email protected] ~]# cd $JAVA_HOME 
[[email protected] jdk1.7.0_65]# ls -l 
total 19760 
drwxr-xr-x. 2 root root  4096 Feb 23 04:09 bin 
-r--r--r--. 1 root root  3339 Jun 17 2014 COPYRIGHT 
drwxr-xr-x. 4 root root  4096 Jun 17 2014 db 
drwxr-xr-x. 3 root root  4096 Jun 17 2014 include 
drwxr-xr-x. 5 root root  4096 Jun 17 2014 jre 
drwxr-xr-x. 5 root root  4096 Feb 23 04:09 lib 
-r--r--r--. 1 root root  40 Jun 17 2014 LICENSE 
drwxr-xr-x. 4 root root  4096 Jun 17 2014 man 
-r--r--r--. 1 root root  114 Jun 17 2014 README.html 
-rw-r--r--. 1 root root  499 Jun 17 2014 release 
-rw-r--r--. 1 root root 19902785 Jun 17 2014 src.zip 
-rw-r--r--. 1 root root 110114 Jun 16 2014 THIRDPARTYLICENSEREADME-JAVAFX.txt 
-r--r--r--. 1 root root 173559 Jun 17 2014 THIRDPARTYLICENSEREADME.txt 

, который показывает, что я имею JDK, а не только установлен JRE. Я также рассмотрел похожие вопросы, но никто не смог решить мою проблему. Java - 64bits, плюс я также побежал source как для .bashrc, так и для .bash_profile.

ответ

0

сообщение об ошибке говорит:

Perhaps JAVA_HOME does not point to the JDK. It is currently set to "/usr/lib/jvm/jdk1.7.0_65/jre"

Однако ваш .bashrc имеет:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65

Вы, вероятно, нужно запустить source ~/.bashrc в вашей Bash оболочки для сброса JAVA_HOME в корневой папке установки JDK , Затем снова запустите Ant.

+0

Я сделал это безрезультатно. – cybertextron

+0

Я вижу ссылки на Jetty в сообщениях об ошибках. Можете ли вы перезапустить веб-сервер Jetty? Работает ли сервер Jetty под учетной записью root? –

+0

Все, что я пытаюсь сделать, это выполнить следующую команду: ANT_LIB =/opt/ant/lib bin/hive --service hwi'. Я следую этому руководству: https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface. Я выполняю все как root, и эта команда создаст файл «hive.war» и развернет сервер, используя причал. Я также не очень хорошо знаком с самой «причалой» – cybertextron