Ответ 1
В соответствии с Tomcat Docs:
Может использоваться любая установленная Java 7 или более поздняя версия JRE (32-разрядная или 64-разрядная версия).
Это tomcat 8 (сегодня как RC1 - см. this), поддерживающий Java 8, даже если он все еще находится в бета-версии?
Среди прочих Tomcat 8 поддерживает Java EE 7:
У меня были проблемы с с Tomcat 7/Java 7, поэтому я задаю этот вопрос.
Обновление
Интересная статья о infoq указывает, что tomcat 8 готов для java 8. Даже Tomcat 7 будет.
См. статью здесь
Если вы видите какую-либо проблему совместимости, я сообщу об этом здесь.
В соответствии с Tomcat Docs:
Может использоваться любая установленная Java 7 или более поздняя версия JRE (32-разрядная или 64-разрядная версия).
Протестированный Tomcat 7.0.50 с веб-приложением, написанным на Java 8 + Spring 4.0.2, с использованием лямбда-выражений, ссылок на методы и потоков - работает как шарм!
Он не поддерживается из коробки. Вы должны внести некоторые изменения. в apache home\conf\web.xml добавьте следующие строки в раздел jsp.
<init-param>
<param-name>compiler</param-name>
<param-value>modern</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>suppressSmap</param-name>
<param-value>true</param-value>
</init-param>
Я также добавил к своему пути к классам в setenv.sh(или bat) следующую запись:
экспорт CLASSPATH=$JAVA_HOME/lib/tools.jar:$CLASSPATH
Обратите внимание, что мне также нужно установить java_home в 1.8 (немного здесь, но, возможно, стоит упомянуть)
Вот некоторые источники: http://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html http://mail-archives.apache.org/mod_mbox/tomcat-dev/201301.mbox/%[email protected]d04.prod.outlook.com%3E
Tomcat 8.0 предназначен для работы на Java 7. Для справки поддерживаются следующие спецификации:
См. больше на: http://blog.gopivotal.com/products/apache-tomcat-8-what-it-is-what-you-need-to-know#sthash.nVw8CTJ9.dpuf
Я пробовал Linux, и он не работает. Когда дело доходит до выполнения лямбда-выражения на странице JSP, возникает следующая ошибка
Лямбда-выражения допускаются только на уровне источника 1,8 или выше Apache Tomcat/8.0.14
работает на JDK jdk1.8.0_25
Спасибо Chewy, я искал последние 1 час для компиляции lambdas внутри jsp, это сработало для меня.
Обновлен раздел jsp в tomcat web.xml следующим образом (требуется только такое изменение):
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>compiler</param-name>
<param-value>modern</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>suppressSmap</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>mappedfile</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
вы можете инициализировать значение компиляции внутри web..xml то вы можете использовать Tomcat8.
Tomcat 8: сервлет 3.1, JSP 2.3 и EL 3.0.