
コンパイルしてクラスファイルが出来上がって実行して、ちょっとプログラムを変えてまたコンパイルして、実行したのですが、元のプログラムのままで何も変わらないのです。もちろん保存もきちんとしています。
ためしに、出来上がっているクラスファイルを全て捨てて、再度コンパイルしてみたらクラスファイルが出来ていて、プログラムを変えた実行結果が出ました。
つまり、クラスファイルへの上書きがされないのです。
これっていったいなぜなのでしょう??
簡単に、表示文字だけを変えて再度コンパイル実行としてみても、変える前の結果がでて、またファイル処分してからコンパイルして実行したら、きちんと変わりました。 このクラスファイルがあるときに、新たに上書きされない現象ってどんなところから来る問題なのでしょうか?? 今までこの様なことはぜんぜんなかったのですが・・。現状のプログラムはパッケージ分けして、メインは C→my javaに。
他のクラスは全部sub2に入ってます。クラスファイルは6つくらい。 C→my java →sub→sub2に。
一度はコンパイルして求める結果がでてるので、プログラム上のミスは無いはずです。
なぜ書き換わらないのかまったくわかりません。
現状はJDK1.5.0_06を使っています。
短いプログラムですと書き換えられない問題は起きたことありません。
コンパイルは通るけど、実行時にクラスがファイルが見つからないとエラーが出たときがあり、ファイルが作られていないという現象も起きた事もあります。
(これは新たに保存しなおすと言う事で解決しました。)
これが今までの経験なのですが、今回のは経験した事をためしてみたのですが、わからなくて・・
どうか、ご存知の方がいらっしゃいましたらお教えください。質問がわかりづらければ補足させていただきます。問題が問題だけにお返事いただけないかもと不安ですが、お待ちいたしております。
No.5ベストアンサー
- 回答日時:
「平凡なミス」のような気がしますが…。
---
(1)非常によくあるのが、
「修正したソースファイルの保存(※上書き)し忘れ」
です。
あたりまえのことですが、
ソースコードを修正した"すべての"ソースファイルは、
コンパイルの前に、
「保存(※上書き)」しなくてはなりません。
※1つでも「修正後、保存しなおし忘れたソースファイル」がある場合は、
当然ながら、その分の修正は、
ソースファイルに反映されてないことになります。
(2)コンパイル時のコマンド(javac)、実行時のコマンド(java)は、
コマンドプロンプト(DOS窓)から毎回直接打つのではなく、
「バッチファイル」に用意しておきましょう。
(※理由は、コマンドプロンプトから毎回直接に打つと、
打ち間違えやすいし、
「今、自分はどんなコマンドを打ったのか」の証拠が残らない。
それに、「ある1つのアプリケーション」をつくっている最中は、
コンパイルコマンド、実行コマンドは"そうそう変化しないはず"なので、
その意味でも「(修正がまず生じない)一定のバッチファイル」として用意するべき)
---
(1)(2)の具体的なやり方には言及しませんが、
なんにせよ、このへんの「基礎的な手順」を確実に固めることです。
今後、「修正がクラスファイルに反映されない」という現象に遭遇したら、
まず上記(1)(2)を確認してみてください。
何度もお返事ありがとうございます
やはり基礎的なことなのでしょうか・・・
持続的に画面をみているとおっしゃられる様なことを知らず知らずに忘れているかもですね。
また、専門家のkacchannさんからこの様にアドバイスいただけると言う事は、私の今回の問題は起こりにくい、もしくは基礎的な手順を固めれば普通は起こらないと言うことですね。
大切なお時間、いろいろとありがとうございました^^
No.4
- 回答日時:
>簡単に、表示文字だけを変えて再度コンパイル実行としてみても、
>変える前の結果がでて
その現象が再現する、
「完全」かつ「コンパイル可能」な「ごく短い」ソースコードを
自分でつくってみて
それをここに掲示しましょう。
そうですよね・・、私、漠然とした説明だけしかしてなくて申し訳ないです。
その現象が起こるのって短いのはあまりなく、いくつもパッケージ分けした時に起こりやすいのです。
プログラム自体はコンパイルは通るのに、クラスファイルが出来上がらないので、消しちゃいました・・。
申しわけございません・・。
また、この様な現象が起こると思うのですが、そのときは
kacchannさんのおっしゃられるようにソースも載せさせていただきます。お返事ありがとうございました^^
No.3
- 回答日時:
ここの作業が少し解らないです。
>ただ、関連しているクラスは、sub2に置いたまま
>my javaにあるメインをjavacして結果を見ています。
ここは
C:\my java>javac sub\sub2\hogehoge.java
のようにやっていないという意味でしょうか?
また 関連しているクラスとは
package sub.sub2;
としていますか?
説明不足でごめんなさい。
package してますです。
Arrayとかでのクラスは単体で動かなかったので、ということでしたので、深い意味ではなかったのです。
ごめんなさい^^;
でも、やっぱり、私がしなくてもいいことをしてしまってPCに負担をかけてるから起こる問題なのでしょうか・・。
わけのわからない質問してしまってごめんなさい。
度々のお返事ありがとうございました^^
No.1
- 回答日時:
開発環境の、実行のされかた考え方になんらかの問題があるのだと思います。
何の開発環境を使用しているのかわかりませんが…例えばVBとかだと、コンパイルを、ビルドとリビルドがあって、考え方が異なります。前にコンパイルしたモノが、メモリに残っているなりして、一度コンパイルしても、開発環境の実行ボタンだと、コンパイルした最新のファイルを読み込まないで実行されたりします。また、コンパイル時にファイルを上書きする考え方に、使いづらいバグがあるのだと思います。
プログラミング言語によくあることだと思いますので、そういう方向性で考えてみてください。安っぽいエディタでJavaをやっていてそういうような現象に悩んだ事があります。Eclipseでも、たしか使い方や考え方を間違えると、同じような現象になりました。
あまり深く考えないで、開発環境を変えるか、コンパイルごとに削除する方法で使いこなす方がいいですよ。
開発環境・・・、そういえばsakuraエディタに変えてから起こってるようなきがします・・・。
簡単なものはメモ帳とかで練習してたので、長くなってきたらsakuraに変えました。
でも、これもきちんとしたエディタだと思うので、私の何かミスと言うか、気が付かない内にダメな事をしてるのかもですね・・。
以前他のエディタもご紹介いただいたのですが、ダウンロードの仕方がわからなくて・・、始まらないというのでしょうか^^;
何か他の使い勝手がよくてこの様な現象が起きたことないって言うものを探してみます。
お返事ありがとうございました^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) vba コンパイル 4 2022/10/27 10:01
- C言語・C++・C# Visual studio2022についての質問です。 現在プログラムを作っているのですが、添付した 1 2023/01/16 19:37
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaの問題の動かし方?
-
javax.servlet は存在しません...
-
.jarファイルの中身って書き換...
-
DOS窓でJavaファイルの実行がで...
-
javaが文字コードの影響でコン...
-
log4jについて
-
Javaのコンパイル結果が表示さ...
-
": \\12288 は不正な文字です。...
-
LaTeXでのアンダーバーの入力
-
Javaファイルをコンパイル
-
c++Builder ver6.0のパッケー...
-
サクラエディタでjavaのプログ...
-
eclipseの構文エラーについて
-
コンパイルができないのですが...
-
java サーブレットのサンプルプ...
-
VB.net2010で開発しています。
-
Eclipseで、プロジェクト名のと...
-
マイクラjavaでForgeを入れたい...
-
64ビットでのビジュアルスタイ...
-
VisualC#Expressの最新版
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
javaが文字コードの影響でコン...
-
javax.servlet は存在しません...
-
IIS環境でJAVAを使用したい
-
eclipseの構文エラーについて
-
コンパイルができないのですが...
-
TOMCAT_HOMEって?
-
サクラエディタでjavaのプログ...
-
jadによるclassファイルの逆コ...
-
日本語対応 逆コンパイラについて
-
「識別子がクラス名でも名前空...
-
exlipseでデバックエラーが発生...
-
Javaのコンパイル結果が表示さ...
-
Eclipse3.5EEでJavaのコンパイ...
-
Javaについて教えてね。
-
同一パッケージ内の継承について
-
javaの簡単なソースがコンパイ...
-
MFCアプリでCPropertySheetのサ...
-
Strutsのエラー?それともサー...
-
LaTeXでのアンダーバーの入力
おすすめ情報