3

我正在编译 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)
# 哪个java
/usr/bin/java

# java -版本
java版本“1.7.0_03-icedtea”
OpenJDK 运行时环境 (IcedTea7 2.1) (ArchLinux build 7.b147_2.1-1-x86_64)
OpenJDK 64 位服务器 VM(构建 22.0-b10,混合模式)

我究竟做错了什么?

4

2 回答 2

3

Arch Linux具有Java 运行时环境 (JRE)包和Java 开发工具包 (JDK)之间的通常区别,如如何下载和安装预构建的 OpenJDK 包中的其他操作系统所示,例如对于 Debian 或 Ubuntu:

openjdk-7- jre包仅包含 Java 运行时环境。如果您想开发 Java 程序,请安装 openjdk-7- jdk 包。[强调我的]

OpenJDK各自的软件包名称在这方面显然有点不幸和误导(尽管可以理解),因为这两个软件包的名称都包含openjdk,但只有一个是实际的 JDK——同样的相似性适用于 Arch Linux jre7-openjdkjdk7 -openjdk包双倍。

因此,您只需为 Arch Linux 安装适当的 JDK 包,并且应该很好,即根据Arch Linux 包数据库搜索 jdk可能是jdk7-openjdk

祝你好运!

于 2012-02-21T18:04:25.380 回答
3

在这里找到答案:https ://bbs.archlinux.org/viewtopic.php?id=135775

Arch tomcat7 包坏了。

我卸载了tomcat7:

吃豆人-R tomcat7

然后将普通的 Tomcat 7 文件从 Apache.org 复制到 /usr/share/tomcat7

现在一切正常。

于 2012-02-23T03:38:51.713 回答