質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

2901閲覧

Lambda expressions are allowed only at source level 1.8 or above

Kosuke0906

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2020/08/17 14:45

##現状

Lambda expressions are allowed only at source level 1.8 or above
Eclipseでログイン機能を作成したのですが、サーバーでtomcatで動かすと上記のエラーが出ます。

コードにエラーは出ていなくしっかり書けているのですが、中々解決策が見えずにいる中です。

##やった事
調べてみるとweb.xmlにcompilerSourceVMとcompilerTargetVM設定を追加と、コンパイラーを1.8にバージョンアップしたりと書いてあったのでやってみたのですがこれが消えずです。

開発環境は
・Macbook Mojave10.14.6
・Eclipse
・Apache Tomcat v8.5
・JREシステムライブラリー java8

イメージ説明
イメージ説明
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dameo

2020/08/19 13:31

少しだけ補足しておきます。 通常eclipseはJavaのコードについてリアルタイムに変更を検出し、ビルドして.java→.classにしてくれるので、コンパイルエラーなどに即時に気付けます。しかし、.jspはHTMLの中にjavaのコードを埋め込んだ形式の言語なので、リアルタイムにビルドがされていません。eclipseは文法チェックなどをしてくれるのですが、ビルドしてもコンパイルされず、サーバーに設置されます。 jspはhtml+javaのような形ですが、Java Servletのjavaソースコードに変換され、他の.javaファイルと同様コンパイルされて.classになります。その変換とコンパイルをしているのがサーバー上のtomcatになります。そしてtomcatのコンパイルがJava8以上で実施されない場合、ラムダ式がエラーになるというわけです。 つまり、eclipseのビルド設定を変更するだけでは不十分で、tomcatのビルド設定を変更してあげる必要があるということです。shiketaさんの説明にあるとおり、お使いのtomcat8はdefaultでjava7でコンパイルしちゃうので、jspにラムダ式などjava8以降の機能を使うなら、そこに対処が必要というわけです。tomcatのバージョンを自分の都合で自由に変えられるなら、9にしちゃうのが楽だと思います。
guest

回答1

0

web.xmlの内容が提示されていませんのでどうかわかりませんが、この記事は参考になりませんか?


Jasper 2 JSP Engine How To

Tomcat8のデフォルトは、1.7のようです。

compilerSourceVM - What JDK version are the source files compatible with? (Default value: 1.7)

compilerTargetVM - What JDK version are the generated files compatible with? (Default value: 1.7)

https://tomcat.apache.org/tomcat-9.0-doc/jasper-howto.html

Tomcat9なら、1.8。だから設定は不要。かな。

compilerSourceVM - What JDK version are the source files compatible with? (Default value: 1.8)
compilerTargetVM - What JDK version are the generated files compatible with? (Default value: 1.8)

投稿2020/08/17 23:15

編集2020/08/17 23:35
shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問