新入社員の方々からよく頂く質問と回答です。
以下の環境で検証しています。
Eclipse IDE for Java Developers (includes Incubating components)
Version: 2022-09 (4.25.0)
Build id: 20220908-1902
OS: Windows 10, v.10.0, x86_64 / win32
Java vendor: Eclipse Adoptium
Java runtime version: 17.0.4.1+1
Java version: 17.0.4.1
- ソースコードを書き換えてコンパイルしたはずなのに意図した結果になりません。
- プロジェクト名やパッケージ名、ファイル名を間違えました。
- 画面がごちゃごちゃしてきました。最初の画面構成に戻したいです。
- ショートカットキーをカスタマイズしたいです。
- tomcatの起動に失敗します。
- JSP/Servletの文法(決まり文句)が多すぎて覚えきれません。
- プロジェクトが多すぎてプロジェクトエクスプローラが見づらくなってきました。
- 効率よくたくさんのソースファイルを作成する方法はありますか?
- ついついソースコードをフォーマットするのを忘れてしまいます。
- 二つのファイルを比較したいです。
- 以前のソースコードに戻したいです。
- バックログ(積み残しの作業)を管理するいい方法はありませんか?
- servletを変更して保存(コンパイル)して再度実行しても変更内容が反映されません。
- Eclipseの検索機能について教えてください。
- Eclipseのコード補完をキビキビ動くようにしたい。
- コード補完を「Ctrl + Space」を押さなくても働くようにしたい
- 実行時にファイルを自動で保存するようにしたい
- 問題が発生'localhostのTomcat9に公開中…'に問題が発生しました。localhostのTomcat9のサーバー構成を公開できませんでした。サーバーlocalhostのTomcat9は起動に失敗しました。というダイアログボックスが表示され、Tomcatが起動しません。
- 問題が発生 'localhostのTomcat9に公開中…'に問題が発生しました。localhostのTomcat9のサーバー構成を公開できませんでした。複数のコンテキストに'xxx'のパスがあります。というダイアログボックスが表示され、Tomcatが起動しません。
- 画像ファイル、CSSファイル、JavaScriptファイルが読み込めません。パスの指定は間違っていないのですが。
- JavaScriptのテンプレートリテラルはJSPファイルの中では使えないです(長くなったので別ページにリンクしました)
- 2つのファイルを比較したい
- 設定項目が多すぎて目的の項目が見つかりません
- 1.ソースコードを書き換えてコンパイルしたはずなのに意図した結果になりません。
メニューの「プロジェクト」>「クリーン」を試してみてください。
- 2.パッケージ名やファイル名を間違えました。
間違えたパッケージ名、または、ファイル名をクリックして「ShiftキーとAltキーを押しながらRキーを押す」と名前変更のダイアログ・ボックスが開くので新しい名前を入力します。
- 3.画面がごちゃごちゃしてきました。最初の画面構成に戻したいです。
パースペクティブをリセットします。メニューの「ウィンドウ」から、「パースペクティブ」→「パースペクティブのリセット」をクリックします。 確認メッセージが表示されますので、「パースペクティブのリセット」をクリックします。
- 4.ショートカットキーをカスタマイズしたいです。
キーバインディングを設定します。以下の画面はJavaアプリケーションの実行に「Shift+F6」を割り当てているところです。メニューの「ウィンドウ」>「一般」>「キー」を選択すると以下の画面になります。「コマンド」を選択して「バインディング」で実際にそのキーを押します。「適用して閉じる」をクリックすれば設定できます。
なお、上記の一番下「コマンドが呼び出されたときにキー・バインドを表示する」>「キーボード」のチェックを入れると以下のようにショートカット実行時にキーが表示されて便利です。
- 5.Tomcatの起動に失敗します。
Tomcatを入れ直すことで改善することが多くあります。
※本来であれば原因究明すべきですが、研修時間も限られておりますので。
①「サーバー」のタブからローカルホストのTomcatを右クリックして「削除を選択」すとダイアログボックスがでるので「OK」を押す。
②「使用可能なサーバーがありません。このリンクをクリックして新規サーバーを作成してください」と表示されるので、そのリンクをクリックします。
新規サーバー画面が表示されます。
③新規サーバー画面で、Apacheの中のサーバー(この例ではTomcat v9.0)を選択し、完了ボタンをクリックするとサーバーが追加されます。
④それでもだめだった場合は、OSを再起動してみてください。改善されることが良くあります。
- 6.JSP/Servletの文法が多すぎて覚えきれません。
スニペットを使い定型的な入力内容を貼り付けることができます。
自分オリジナルのスニペットを作成することもできます。
スニペット使用方法は以下の通りです。
①メニューの「ウィンドウ」から「ビューの表示」>「その他」を選びます。
⑤スニペットに追加を選ぶとカテゴリーを聞いてきますので、選択するか新しく入力します。
⑥以上でいつでも好きなときにスニペットを呼び出すことができます。
- 7.プロジェクトが多すぎてプロジェクト・エクスプローラが見づらくなってきました。
ワーキングセットを使ってプロジェクトを整理できます。
①プロジェクト・エクスプローラの右側に並んでいるアイコンのうち右から3番目のビューメニューを選択します。
②「ワーキング・セットの選択」を選びます。
③今回は新しくワーキング・セットを作るので「新規」を選びます。
④「タスクおよびリソース」を選択します。
⑤ワーキング・セット名を入力し、ワーキング・セットの内容を選択して「完了」を選択します。
- 8.効率よくたくさんのソースファイルを作成する方法はありますか?
コピー貼り付けを使うのが一番手っ取り早いです。ただし、Servletをコピーした際に@WebServletアノテーションの文字列が同じになってしまうとエラーが起きるので気を付けてください。
①元になるファイルをプロジェクト・エクスプローラ上で選んでから(下記の①)「Ctrl + C」でコピーしてそのまま「Ctrl + V」で貼り付けます。
②すると上記②のように名前の提案もしてくれますので、適切な名前を入れてOKをクリックするだけです。
③また、一度に大量のファイルを作ることもできます。上記のようにエディタ上にpublicなクラスを作りたい名前で作りたいだけ作ります。
④上記①のように選択したうえで「Ctrl + X」で切り取りしてから、目的のパッケージを選択して「Ctrl +V」で貼り付ければOKです。
- 9.ついついソースコードをフォーマットするのを忘れてしまいます。
保存のたびに自動でソースコードがフォーマットされるように設定します。
①ウインドウ>設定>Java>エディター>保存アクション を開きます。(以下の①~④)
②デフォルトですとソース・コードのフォーマットにチェックが入っていないと思いますので、チェックを入れて「適用して閉じる」を選びます。
③保存のたびにソースコードのが整形されます。
新人エンジニアの皆さんに真っ先に覚えていただきたいショートカットが「Shift + Ctrl + F」(フォーマット)です。それと同時にこの設定もお忘れなく。
- 10.二つのファイルを比較したいです。
サンプルコードと自分のコードを比較してどこが違っているかを確認したいことはよくあります。
そのようなときには比較を使うと便利です。「Diffをとる」と表現することもあります。
①パッケージ・エクスプローラでCtrlキーを押しながら比較したい2つのファイルを選択状態にします。
②右クリックして、比較>相互を選びます。
③上記のような比較の画面が開きます。違いがハイライト表示されていますのですぐにわかります。
- 11.以前のソースコードに戻したいです。
ローカルヒストリー機能が便利です。
①以前の状態に戻したいファイルをパッケージ・エクスプローラから選択し、右クリックして比較>ローカル・ヒストリーを選びます。
②以下のような画面になります。下の欄にリビジョン時刻がありますので、適切なものを選択すると以下のような画面になり、差分がハイライト表示されます。
③赤枠で囲った「右から左に全ての非競合をコピー」を選択すればその時点のファイルに戻ります。
- 12.バックログ(積み残しの作業)を管理するいい方法はありませんか?
- 13.servletを変更して保存(コンパイル)して再度実行しても変更内容が反映されません。
通常、「.class」ファイルを新規に作成または更新した場合、コンテナの再起動が必要となります。
Tomcatではサーバ設定ファイル「server.xml」を編集することで、特定のフォルダ配下の「.class」ファイルが更新された場合にも再起動を行わなくても済む方法がありますので、興味があれば調べてみてください。
- 14.Eclipseの検索機能について教えてください。
Eclipseの検索機能は複雑ですが個人的によく使う方法をご紹介します。
①現在のファイル(単一)から文字列を検索する場合
ショートカットキーはCtrl + Fで検索のダイアログボックスが開きます。
検索のテキストボックスに検索したい文字列を入れて「検索」ボタンを押下します。
置換も同様の方法で実現できます。
②複数のファイルから文字列を検索する場合
ショートカットキーはCtrl + H で検索のダイアログボックスが開きます。
スコープのところで「エンクロージング・プロジェクト」を選べばパッケージエクスプローラーで選択中のプロジェクトが検索対象になります。通常は検索対象のあるプロジェクトはわかっていることが多いと思われますのでこの方法を理解すればよいでしょう。
しかし、ワークスペースの中のどこにあるか分からないという場合も稀に発生します。
その場合は、まず、「ワークスペース」を選んで検索を試みます。
ここで見つかればそれで良し、もしも、多すぎる候補が表示された場合には「'検索'内の選択リソース」を選べばさらに対象を絞って検索することができます。
- 15.Eclipseのコード補完をキビキビ動くようにしたい。
コンテンツ・アシストの自動有効化遅延を短くすることでコード補完がスムーズになります。
デフォルトでは200ミリ秒ですが、お好みで設定してください。80ミリ秒くらいだと変化を感じられます。
「ウィンドウ」→「設定」→「Java」→「エディター」→「コンテンツ・アシスト」
- 16.コード補完をもっと便利に使いたい。
コンテンツ・アシストのJavaの自動有効化トリガーに「.abcdefghijkemnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_」と入力するとでどのような文字を入れてもコード補完ができるようになります。
初期設定では「.」とだけ入力されています。そのため変数名などの後にドットを入力するとコード補完が効きます。しかし、上記のようにすべての文字種を入れれば、どのような文字(列)を入れてもコード補完が働くようになります。もう、「Ctrl + Space」を押す必要もなくなります。
「ウィンドウ」→「設定」→「Java」→「エディター」→「コンテンツ・アシスト」
- 17.実行時にファイルを自動で保存したい。
プログラムの実行時にファイルを自動で保存するには、「起動前に必要な編集中のエディターを保存」を「常時」に設定します。
「ウィンドウ」→「設定」→「実行/デバッグ」→「起動」から以下の画面で設定してください。
- 18.問題が発生'localhostのTomcat9に公開中…'に問題が発生しました。localhostのTomcat9のサーバー構成を公開できませんでした。というダイアログボックスが表示され、Tomcatが起動しません。サーバーlocalhostのTomcat9は起動に失敗しました。
対策① まずはこの方法を試す。
- サーバービューを開く:画面下部に「サーバー」ビューが表示されていない場合は、メニューバーから「ウィンドウ」>「ビューの表示」>「サーバー」を選択します。
- Tomcatサーバーを選択:「サーバーズ」ビューに表示されているTomcatサーバー(例:localhostのTomcat9)を見つけてクリックします。
- サーバー構成を開く:Tomcatサーバーの左側にある「>」マークをクリックして展開します。現在のサーバーにデプロイされている全てのアプリケーションがリスト表示されます。
- アプリケーションを除去:除去したいアプリケーションを右クリックして「除去」を選択します。
- サーバーを保存して再起動:サーバーエディタの上部にある「保存」ボタン(ディスクアイコン)をクリックして変更を保存します。変更を反映させるために、サーバーを再起動します。これを行うには、「サーバー」ビューでTomcatサーバーを右クリックして「リスタート」を選択します。
上記で改善しない場合は、urlPatternsが重複したサーブレットがあります。
対策② ワークスペースを検索して同じurlPatternsを見つけ、どちらか一方を書き換える必要があります。
- 検索ダイアログを開く(Ctrl + H)
- 「ファイル検索」タブを選択
- 「含む文字列」フィールドに検索文字列を入力(例.@WebServlet)
- 「スコープ」で「ワークスペース」を選択
- 「検索」ボタンをクリック
上記の画面で同じurlPatterns(上記の例では/Game9)を解消してください。
- 19.問題が発生'localhostのTomcat9に公開中…'に問題が発生しました。localhostのTomcat9のサーバー構成を公開できませんでした。というダイアログボックスが表示され、Tomcatが起動しません。その2
以下のようにプロジェクト名が重複しているのが原因です。おそらく、プロジェクトをコピーしたのだと思われます。
確認と対処方法
プロジェクトを右クリック
Webプロジェクトの設定のコンテキスト・ルートが他のプロジェクトと重複していないかを調べる。
あるいは、以下の方法も試してみてください。
- サーバービューを開く:画面下部に「サーバー」ビューが表示されていない場合は、メニューバーから「ウィンドウ」>「ビューの表示」>「サーバー」を選択します。
- Tomcatサーバーを選択:「サーバーズ」ビューに表示されているTomcatサーバー(例:localhostのTomcat9)を見つけてクリックします。
- サーバー構成を開く:Tomcatサーバーの左側にある「>」マークをクリックして展開します。現在のサーバーにデプロイされている全てのアプリケーションがリスト表示されます。
- アプリケーションを除去:除去したいアプリケーションを右クリックして「除去」を選択します。
- サーバーを保存して再起動:サーバーエディタの上部にある「保存」ボタン(ディスクアイコン)をクリックして変更を保存します。変更を反映させるために、サーバーを再起動します。これを行うには、「サーバー」ビューでTomcatサーバーを右クリックして「リスタート」を選択します。
- 20.画像ファイル、CSSファイル、JavaScriptファイルが読み込めません。パスの指定は間違っていないのですが。
WEB-INF/web-xmlというファイルを用意して、以下のように書き込んでください。
なお、以下の<display-name>MyProject</display-name>の部分にはウェブアプリケーションの表示名(プロジェクト名)を書きます。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>MyProject</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
</web-app>
ポイントは、<servlet-mapping>の部分です。ここでは、特定の拡張子を持つファイルに対して default サーブレットをマッピングする設定をしています。これは、静的リソース (JavaScript、CSS、画像ファイルなど) の処理を行うために使用される一般的な設定です。上記にないものとして、mp4などの動画も必要になることがあります。
web.xml
は、Java ServletやJavaServer Pages (JSP)を使用するJava Webアプリケーションのデプロイメント記述子ファイルです。このファイルは、Webアプリケーションの設定を定義し、サーブレットやフィルタのマッピングを行います。
ちなみに、XML(eXtensible Markup Language)は、データの構造を定義するためのマークアップ言語です。人間と機械の両方が読みやすい形式でデータを保存、転送できます。XMLはタグを使用してデータを囲み、階層構造を持つことで複雑なデータを整理します。例えば、構成ファイルやデータ交換のフォーマットとして広く利用されます。HTMLに似ていますが、タグが自由に定義可能な点が特徴です。
- 21.2つのファイルを比較したい。
2つのファイルを比較したいというニーズには、他のメンバーから渡されたファイルと自分のファイルとの差分を取りたいという場合と、自分自身が作成した過去のバージョンと現在のバージョンを比較したいという場合があると考えます。
以下にその2つのパターンを紹介します。
- プロジェクト内の2つのファイルを比較する場合
- プロジェクトエクスプローラーで比較したい2つのファイルを選択します。
- 比較したい2つのファイルをCtrlキーを押しながらクリックして選択します。
- 選択したファイルを右クリックします。
- コンテキストメニューから「比較」を選択し、次に「相互」を選択します。
2つのファイルの差分を示すウィンドウが表示され、異なる部分が強調表示されます。
- 編集中のファイルと履歴を比較する場合
- 編集中のファイルをアクティブにします。
- 編集ウィンドウ内で右クリックします。
- コンテキストメニューから「比較」を選択し、次に「ローカル・ヒストリー」を選択します。
ローカル履歴のダイアログが表示されるので、比較したい過去のバージョンを選択します。
- 23.設定項目が多すぎて目的の項目が見つかりません。
設定の検索機能が便利です。
以下のように左上部の検索窓にキーワードを入力すると、下に該当する項目が表示されます。
下図はソースコードの「自動保存」の機能を検索した場面です。