fc2ブログ
一陣の神風が舞う
東北弁炸裂するショボプログラマの日々(´・ω・`)
12 | 2025/01 | 02
S M T W T F S
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

JRunをEclipseから起動した時にJSPが表示できないぞ!

後輩がこの現象にハマってしまい、自分も一緒にハマることに…。
ということで、さらに補足メモ。

この現象は、J2SE 1.5系を使用したときに起こる可能性がある。
で、これはJRunのせいではないので、TOMCATやWeblogicなどでもぶち当たる。
特徴としては、サーバを直に起動すると動作するが、Eclipse経由だとダメ。

次のようなエラーメッセージが出る時は注意して欲しい。



VMのエラーだとぉ!!
△ JavaVMが吐き出すエラーダイアログ
02/08 16:07:15 error Translator.CompilationFailedExceptionCompiler errors:java.lang.NoClassDefFoundError: com/sun/tools/javac/Main
Exception in thread "main" 

[1]jrunx.compiler.DefaultCFE: Compiler errors:java.lang.NoClassDefFoundError: com/sun/tools/javac/Main
Exception in thread "main" 

	at jrunx.compiler.JavaCompiler.compile(JavaCompiler.java:141)
	at jrunx.compiler.JavaCompiler.compile(JavaCompiler.java:100)
	at jrun.jsp.Translator.compilePage(Translator.java:176)
	at jrun.jsp.Translator.translate(Translator.java:254)
	at jrun.jsp.Translator.translate(Translator.java:101)
	at jrun.jsp.JSPEngine.translateJSP(JSPEngine.java:693)
	at jrun.jsp.JSPServlet.translate(JSPServlet.java:125)
	at jrun.jsp.JSPServlet.service(JSPServlet.java:113)
	at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
	at jrunx.util.DynamicClassLoaderFilter.doFilter(DynamicClassLoaderFilter.java:48)
	at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
	at jrun.servlet.FilterChain.service(FilterChain.java:101)
	at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
	at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
	at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:259)
	at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
	at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
	at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
	at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
[0]javax.servlet.ServletException: Translator.CompilationFailedExceptionCompiler errors:java.lang.NoClassDefFoundError: com/sun/tools/javac/Main

■Eclipseの `JRE システムライブラリ` を修正する

・メニューバーより [ウインドウ]→[設定]
・ツリーから [Java]→[インストール済み JRE] を開く

JREシステムライブラリの設定
△ Eclipseのシステムライブラリを確認。ちゃんとJDKの方を使ってますか?

ここで、システムライブラリのロケーションが「(JAVA)\jre1.5.x_xx」となっていたら原因確定。
`tools.jar`組み込まれていません。

・システムライブラリ(`jre1.5.x_xx`など)をクリックして「編集」ボタン
・JRE のホーム・ディレクトリーを「(JAVA)\jdk1.5.x_xx」に変更する
・OKボタンを押す

JREシステムライブラリの変更
△ Eclipseのシステムライブラリを変更。ライブラリが増えたぞ。

読み込まれるシステムライブラリが増えたと思う。
JREとは`Java Runtime Environment`と呼ばれJava用のバイナリを実行するいわばエンドユーザ用。 開発用ではないのでこれにJSPをJavaに、Javaをclassバイナリにコンパイルする機能はない。

これで、Eclipseから起動した時も、JSPを表示することが出来るはずである。

■原因はEclipseのライブラリ違い

JSPのコンパイルには、`tools.jar`というライブラリファイルが必要。
でも、J2SE1.5系以降はJavaインストール時に「JDK」と「JRE」が別フォルダに配置されるようになっている。 ここで、Eclipseは、基本Javaエンジンとして、エンドユーザ向けの「JRE」を選択しているため、 この `tools.jar` が含まれていないという現象が起きている。

テーマ:プログラミング - ジャンル:コンピュータ

この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://ciablo.blog70.fc2.com/tb.php/55-69bc2748
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Mahny

Author:Mahny
趣味PG派生の職業PG(+SE?)。頭のデキはきっと残念ω

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

ペット