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

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

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

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

Tomcat

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

Apache Tomcat

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

Q&A

0回答

1661閲覧

Eclipse で tomcat を起動できなくなってしまいました

potemaru

総合スコア13

Eclipse

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

Tomcat

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

Apache Tomcat

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

0グッド

0クリップ

投稿2021/01/26 16:21

編集2022/01/12 10:55

pleiades All in one をインストールし、Eclipse を使って Java のシステムを作っています。

Apache-poiライブラリ(バージョン poi-5.0.0)を使った実装を行いTomcatを再起動させたところから、起動失敗するようになってしまい、
一度、プロジェクトエクスプローラーからプロジェクトを削除し、再度プロジェクトを入れ直してTomcat起動したところ、
今度はコンソールに以下のようなエラーが出るようになってしまいました。

確認すべき箇所など、ご助言いただけないでしょうか。

Eclipseの設定内容

・インストール済みのJRE は java11
・コンパイラ準拠レベル 11
・Tomcatバージョンは9

発生している問題・エラーメッセージ

java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

なぜか ClassLoader.java というファイルでデバッガーが止まるのですが、
このファイルのパスを見たところ「C:\pleiades\java\6\src.zip\java\lang\ClassLoader.java」となっており、
なぜJava6の中のクラスが動いているのかも分からず混乱しています。

また、以下がapache-poi導入でエラーが発生するようになった時に追加したソースコードの一部です。
"Workbook workbook = new XSSFWorkbook();" の一文を実装したところTomcat起動失敗するようになりました。

try (Workbook workbook = new XSSFWorkbook(); OutputStream outputStream = resp.getOutputStream()) { Sheet sheet = workbook.getSheetAt(1); Row row = sheet.createRow(1); Cell cell_0 = row.createCell(0); Cell cell_1 = row.createCell(1); Cell cell_2 = row.createCell(2); cell_0.setCellValue(infoList.get(0).getSyainNum()); cell_1.setCellValue(infoList.get(0).getKbn()); cell_2.setCellValue(infoList.get(0).getName()); resp.setContentType("application/vnd.ms-excel.sheet.macroEnabled.12"); SimpleDateFormat simpleDataFormat = new SimpleDateFormat("yyyy-MM-dd"); String fileName = simpleDataFormat.format(new Date()) + ".xlsx"; resp.setHeader("Content-Disposition", "attachments; filename=\"" + fileName + "\""); resp.setHeader("Cache-Control", "no-cache"); resp.setHeader("Pragma", "no-cache"); resp.setDateHeader("Expires", 0); workbook.write(outputStream ); } catch (IOException e) { e.printStackTrace(); }

試したこと

・プロジェクトのクリーンをしましたが状況変わりませんでした。
・プロジェクトを削除し、Tomcat単体で起動しても同じエラーが出てきます。
・JREシステム・ライブラリー、Tomcat JRE ともに Java11 となっていることを確認しています。

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

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

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

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

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

m.ts10806

2021/01/26 22:48

どういう実装になっていますか? コードを提示してください。
退会済みユーザー

退会済みユーザー

2021/01/27 01:26

「インストール済みのJRE は java11」だけど、「プロジェクトのJREがJava6」になってるとか? JREが6でも、コンパイラ準拠レベルは上位バージョンに設定できるので。
potemaru

2021/01/28 02:18

>コードを提示してください。 原因と思われるコードを追記させていただきました。 >「インストール済みのJRE は java11」だけど、「プロジェクトのJREがJava6」 JREシステムライブラリーはJava11のものを読み込んでいるハズなのですが…
m.ts10806

2021/01/28 02:32

「はず」ではなく設定確認を。
potemaru

2021/01/28 02:42

「プロジェクトのJRE」と仰っているのは、Eclipseの設定でいうと、 プロジェクトを右クリック→「プロパティー」→「Javaのビルド・パス」→「ライブラリー」 に設定されている「JREシステム・ライブラリー」という理解で合っているでしょうか? それであればJava11で設定されています。
退会済みユーザー

退会済みユーザー

2021/01/28 05:00

> "Workbook workbook = new XSSFWorkbook();" の一文を実装したところ POIのとこだけJavaアプリケーションにしてみたらどうなります? Tomcat9のJREは何になってますか?
potemaru

2021/01/28 05:40

>POIのとこだけJavaアプリケーションにしてみたらどうなります? 質問文に記載しているtry-catch文をコメントアウトすると、Tomcat通常起動します。 Tomcat9のJREの確認方法はversion.batで合ってますか?JRE_HOMEはJava11になっています。 ``` C:\pleiades\tomcat\9\bin>version.bat Using CATALINA_BASE: "C:\pleiades\tomcat\9" Using CATALINA_HOME: "C:\pleiades\tomcat\9" Using CATALINA_TMPDIR: "C:\pleiades\tomcat\9\temp" Using JRE_HOME: "C:\pleiades\java\11" Using CLASSPATH: "C:\pleiades\tomcat\9\bin\bootstrap.jar;C:\pleiades\tomcat\9\bin\tomcat-juli.jar" ```
退会済みユーザー

退会済みユーザー

2021/01/28 06:15

質問の本文に ・「JREシステム・ライブラリー」のバージョン ・Tomcat9のJRE を、確認したことを追記してください。 >POIのとこだけJavaアプリケーションにしてみたらどうなります? コンソールプログラムで動かして、「ホントにPOIに問題があるか」を確認してください。 ・・・というか、POIのバージョンを書いてください。
potemaru

2021/01/28 08:01

意図が理解できておらず失礼しました。 コンソールプログラムで該当のtry-catch部分を実行したところ、問題なく実行されました。 POIのバージョンは最新の5.0.0を導入しています。
退会済みユーザー

退会済みユーザー

2021/01/29 06:46

> ・プロジェクトを削除し、Tomcat単体で起動しても同じエラーが出てきます。 POIどころか、何にも関係ないですよね。 Eclipse上でTomcat(サーバー構成)作ってたら、Tomcat9でサポートしてるJREをチェックしてるから、そんなことないはず…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問