2012-02-18 4 views
3

Я составляю демо-версию Amazon Web Services Elastic Beanstalk и пытаюсь запустить ее (локально, на tomcat7) при новой установке Arch linux.Компиляция AWS Elastic Beanstalk demo выбрала исключение Отсутствует компилятор Java

Каждый раз, когда он не в консоль с:

Feb 18, 2012 2:31:41 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [jsp] in context with path [/TryTwo] threw exception [java.lang.IllegalStateException: No Java compiler available] with root cause 
java.lang.IllegalStateException: No Java compiler available 
at org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:228) 
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:638) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
 
# which java 
/usr/bin/java 

# java -version 
java version "1.7.0_03-icedtea" 
OpenJDK Runtime Environment (IcedTea7 2.1) (ArchLinux build 7.b147_2.1-1-x86_64) 
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode) 

Что я делаю неправильно?

+0

Возможно, вы захотите попробовать 'javac -version', чтобы убедиться в наличии Java-компилятора - по-видимому, он просто не установлен, см. Мой ответ для [объяснения] (http://stackoverflow.com/a/9382717/45773) в случае. –

+0

javac -version дает «javac 1.7.0_03» –

ответ

3

Найдено ответ здесь: https://bbs.archlinux.org/viewtopic.php?id=135775

tomcat7 пакет Arch сломана.

Я удалил tomcat7:

pacman -R tomcat7

А потом копировали обычные Tomcat 7 файлов из Apache.org Теперь штраф/USR/доли/tomcat7

Все работает.

+0

+1 (а затем некоторые ...) для отслеживания вашего решения, несмотря на неудачный подсчет голосов;) –

3

Arch Linux показывает обычное различие между Java Runtime Environment (JRE) пакета и Java Development Kit (JDK), как показано для других ОС в How to download and install prebuilt OpenJDK packages, а также, например, для Debian или Ubuntu:

OpenJDK-7- JRE пакет содержит только Java Runtime Environment. Если вы хотите разработать Java-программы, установите пакет openjdk-7- jdk . [курсив мой]

Соответствующие имена пакетов из OpenJDK, очевидно, немного жаль, и вводит в заблуждение в этом отношении (хотя понятно), поскольку оба пакета имеют OpenJDK в его названии, но только один фактический JDK - такое же сходство применяется для пакета Arch Linux jre7-openjdk и jdk7-openjdk.

Таким образом, вы просто должны установить соответствующий пакет JDK для Arch Linux и должны быть хорошо идти, то есть вероятно jdk7-OpenJDK как в виде Arch Linux Package Database search for jdk.

Удачи вам!

+0

Я уже установил пакет jdk7-openjdk: # pacman -S jdk7-openjdk дает «предупреждение: jdk7-openjdk-7.b147_2.1-1 обновлен - переустановка " –

+1

Тем не менее, я ценю вашу помощь. вот весь вывод сборки, если это помогает: http://pastebin.com/N3EdWcgm –