我正在编译Amazon Web Services Elastic Beanstalk演示并尝试在全新安装的Arch linux上运行它(在本地,在tomcat7上)。
每次都无法通过控制台:
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 :(得分: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运行时环境。 如果要开发Java程序,请安装openjdk-7- jdk 包。 [强调我的]
OpenJDK的相应软件包名称在这方面显然有点不幸和误导(虽然可以理解),但两个软件包的名称中都包含 openjdk ,但实际只有一个JDK - 相同的相似性适用于Arch Linux jre7-openjdk和jdk7-openjdk包double。
因此,你只需要为Arch Linux安装适当的JDK软件包,并且应该很好,即{em> jdk7-openjdk Arch Linux Package Database search for jdk。
祝你好运!答案 1 :(得分:3)
在这里找到答案:https://bbs.archlinux.org/viewtopic.php?id=135775
Arch tomcat7包已损坏。
我卸载了tomcat7:
然后将正常的Tomcat 7文件从Apache.org复制到/ usr / share / tomcat7
现在一切正常。