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

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

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

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

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

Apache Tomcat

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

Q&A

解決済

1回答

2422閲覧

Java動的 Webプロジェクトでのクラスファイルのコンパイルについて

ken_chann

総合スコア12

Java

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

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

Apache Tomcat

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

0グッド

0クリップ

投稿2020/07/08 02:28

編集2020/07/08 02:49

前提・実現したいこと

Java動的Webプロジェクトで、
クラスファイルのコンパイルがEclipse(IDE)上で新しく行われているかどうかを確かめたいです。

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

Java動的Webプロジェクト上でコンパイル実行時、クラスファイルが更新されているかが不明。

ソースの修正内容も実行結果に反映されていないようです。

試したこと

下記の記事あたりを参考に、Eclipse上で

https://www.javadrive.jp/eclipse3/step/index6.html
https://migratory-worker.com/archives/2682

・プロジェクトのクリーン
・プロジェクトからすべてビルド
・プロジェクトのリフレッシュ
・(サーバビューから)Tomcatワークディレクトリのクリーン

等も行いましたが、
該当の.classファイルのエクスプローラ上のファイル更新日時と容量に変わりがありません。
(コンパイルが実行されると、クラスファイルの日時は更新されるものでしょうか?)

また、実行結果にも反映されないようです。

Eclipse上で.javaファイルのソースを上書き保存すれば、
自動的にクラスファイルへコンパイルされると認識していますが正しいでしょうか?
(コンパイルエラーが無ければ)

その他、考えられる原因や調査の対象などありましたら教えていただけないでしょうか?

よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

(IDE)Eclipse Java EE IDE for Web Developers、Version: Mars2 Release(4.5.2)
Java 1.8
Tomcat v7.0
Windows 10 (64bit)

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

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

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

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

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

m.ts10806

2020/07/08 02:49

どういうコードをどう変更したのでしょうか。
ken_chann

2020/07/08 03:03

クラスのメソッド内で、 StringIndexOutOfBoundsException例外が発生する箇所を try ~ catchで囲みました。
m.ts10806

2020/07/08 04:03 編集

実際のコード(web.xml含む)を提示してください。
ken_chann

2020/07/08 04:42

申し訳ありません、、この度は社外秘の為、提示することが出来ません。 せっかく丁寧に回答いただいたのに申し訳ありません。
guest

回答1

0

ベストアンサー

コンパイルが実行されると、クラスファイルの日時は更新される

はい、更新されます。

Eclipse上で.javaファイルのソースを上書き保存すれば、自動的にクラスファイルへコンパイルされると認識しています

プロジェクトの自動ビルドを設定していれば、自動的にコンパイルされます。

エクスプローラから参照しているclassファイルの場所が正しい場所なのか(デフォルトでは、プロジェクト内の build 以下に入ります)、またWebアプリケーションとして更新されているかは、デプロイ先のフォルダ(ディレクトリ)を確認しましょう。

投稿2020/07/08 03:03

A-pZ

総合スコア12011

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

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

ken_chann

2020/07/08 03:22 編集

ご回答いただきありがとうございます。 >>エクスプローラから参照しているclassファイルの場所が正しい場所なのか>>(デフォルトでは、プロジェクト内の build 以下に入ります) こちらですがbuild配下には何も存在しておらず、 エクスプローラから参照しているclassファイルの場所はbuildと同じ階層に存在している、classesというディレクトリです。 また、この動的Webプロジェクトは新規で作成したものではなく 外部からプロジェクトとして追加したものになります。 (Eclipse) File → New → Project → Web → Dynamic Web Project → Next 追加した元のディレクトリの構成は以下のようになっています。 (WEB-INFを丸ごとプロジェクトとして追加しています) tree dir_name -L 2 dir_name ├── WEB-INF │   ├── classes │   ├── lib │   ├── resource │   ├── src │   └── web.xml ※追加した時点で既にclasses内に.classファイルが存在しています。
ken_chann

2020/07/08 06:58

build配下にコンパイルし直されたclassファイルが作成されていました。 Eclipseからは何故か、build配下を参照出来ませんでしたが エクスプローラーから開くとbuild/classesというディレクトリが存在しており、日時が更新されたクラスファイルが作成されていました。 この度はありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問