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

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

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

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

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

Q&A

解決済

3回答

29931閲覧

2回目以降、コンパイル時にクラスファイルが更新・生成されない

curushimi4949

総合スコア13

Java

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

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

0グッド

1クリップ

投稿2017/01/17 08:57

###発生している問題・エラーメッセージ
クラスファイルの含まれていないプロジェクトフォルダをターミナルから初めてコンパイルしたときは正常に各javaファイルのクラスファイルが生成されるのですが、2回目以降、コンパイル時にクラスファイルが更新または生成されません。
ただ、全てのファイルではなく、Main.javaなど更新・生成されるファイルもあります。

コマンド:javac Main.java
最初にコンパイルするときは問題なくコンパイル・実行でき、2回目以降もエラーメッセージなどがでないため原因が分かりません。

急にこの現象が起き、解決策も見当たらない状態ですので、少しでも心当たりのある方がいましたら、是非ご教示下さい。
よろしくお願いします。

Mac OS X 10.9.5 Sublime Text Build 3126 ターミナル バージョン 2.4

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/01/17 10:36

ソースファイルを上書きまたは保存してから再コンパイルしていますか?
guest

回答3

0

確かにクラスファイルを削除すればコンパイルできますね!
根本的な原因が何かわからないですしこれは楽でいい気がしますね

ありがとうございます!

投稿2017/11/19 04:45

tatataro

総合スコア23

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

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

0

ベストアンサー

もし、コンパイルしたいjavaファイルが全て同じディレクトリに存在するなら
クラスファイルを消すことで、javac Main.java で関連するすべてのjavaファイルをコンパイルすることができると思います。
私は
rm *.class;javac Main.java
としてコンパイルしています。

一部の関連するクラスファイルが残っていると、コンパイルは通るのに
実行時にクラスファイルがないというエラーが起きます。

参考になれば幸いです。

投稿2017/11/16 06:12

編集2017/11/16 06:16
jgamer

総合スコア30

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

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

0

javacコマンドは、クラスファイルの生成以降に変更されたソースのみ再コンパイルします。
つまり無駄なコンパイルが行われないようになっています。

質問を拝見した限りだと何か不具合が発生しているということでもなさそうですが、何がお困りなのでしょう?

投稿2017/01/17 09:10

carimatics

総合スコア740

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

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

carimatics

2017/01/17 09:15

回答に書いたのは自動コンパイルの場合です。 明示的にソースファイルを指定してコンパイルした場合は再コンパイルされると思います。(未検証)
curushimi4949

2017/01/17 10:32

ご返答ありがとうございます。 記入し忘れてましたが、クラスファイルの作成されたjavaファイルを変更してもクラスファイルの更新がされないのです。 そして更新がされないjavaファイルは、最初のコンパイルで生成されたクラスファイルを削除してもう一度コンパイルしてもクラスファイルが生成されません。 分かりづらい書き方になってしまい申し訳ないのですが、もし原因に心当たりがありましたら再度ご教示下さい。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問