- ベストアンサー
classファイル
プログラムを書いて、コマンドプロンプト上でコンパイルとしたところエラーが表示されたのですが、.javaとかかれたソースファイルのあるフォルダに.classというファイルが出来るのはなぜですか?エラーが発生したのでコンパイルは失敗したのですが。お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
コンパイル対象のソースファイルが複数あって、その内コンパイルが成功したものと失敗したものがあったのではないかと想像します。 ・コンパイルをしたときのコマンド ・ソースファイルの名前と内容 ・作成されたクラスファイルの名前 を教えていただければ、もっと詳しくお教えできます。
その他の回答 (3)
- ngsvx
- ベストアンサー率49% (157/315)
データ量が多くても、実行時ならともかく、 コンパイル時には関係ない気がします。 エラーも別な場所で出てますしね。 ところで、複数のソースが対象になるというのは、 //**************************************** //Test1.java //**************************************** class Test1 { Test2 test2; public Test1(){ test2 = new Test2(); } } //**************************************** //Test2.java //**************************************** class Test2 { } と2つのソースがあって、 コマンドを javac Test1.java とした場合です。 この場合、Test1.javaniエラーがあっても Test2.javaのコンパイルは成功します。 (Test2.classが作成される) 当初はこれかと思ったのですが、 そうではないようです。 どうも、「あなたの勘違い」という気がします。 「コンパイルが成功したのに気がつかないで、 ソースを修正しエラーが発生した」 というパターン。 それを確認するために、na3.javaとna3.classの ファイルの日付・時刻を教えてください。
補足
ファイルの日付は.javaと.classのどちらも同じ日付・時刻でした。try文の中で大量のデータを扱ったから出たエラーですかね?
- ngsvx
- ベストアンサー率49% (157/315)
#2の方の通り、エラーメッセージも必要でしたね。 何か忘れてると思った。(^^; さて、このコードの byte [] imagedata = {-1, -40, -1, ・・・ -1, -39}; の部分だけ、 byte [] imagedata = {-1, -40, -1,-1, -39}; に変えましたが、コンパイルしたら、正常終了しました。 エラーが出た後に、ソースを修正していませんか? また、出来たと言っているクラスファイル(.class)は、 na3.classでいいですか?
補足
ありがとうございます。byte [] imagedata = {-1, -40, -1, ・・・ -1, -39}の部分なのですが{}の中に静止画像データが入っているため280行くらいの数字が入っています。このためデータ量が多かったのですかね? エラーが出た後には特別なことは何もしていません、出来たファイルはna3.classであってます。 na3.htmlというファイルを作り起動したらエラーが3つ出たのですが正常に動きました。不思議です。
- yuji
- ベストアンサー率37% (64/169)
エラーメッセージを教えてください。
補足
na3.java:304: try 文のコードが大き過ぎます。 try{mt.waitForAll();}catch( InterruptedException e ){} ^ na3.java:313: try 文のコードが大き過ぎます。 try{pg.grabPixels();}catch(InterruptedException e){;} ^ na3.java:321: try 文のコードが大き過ぎます。 }catch(Exception ex){;} ^ エラー 3 個 というエラーが発生したんですよー ソースはngsvxさんに補足しました。
補足
コンパイル対象のソースファイルが複数ある場合もあるのですね。実際に動かしたら動きましたし。プログラムはこうなっています。 import java.applet.*; import java.awt.*; import java.awt.image.*; public class na3 extends Applet implements Runnable { Thread thread; Image img,eimg,uneimg,buffer; boolean state=true; int dly=10; MediaTracker mt = new MediaTracker(this); Toolkit tk = Toolkit.getDefaultToolkit(); public void init() { byte [] imagedata = {-1, -40, -1, ・・・ -1, -39}; img = Toolkit.getDefaultToolkit().createImage(imagedata); mt.addImage( img, 0 ); try{mt.waitForAll();}catch( InterruptedException e ){} int w = img.getWidth(this); int h = img.getHeight(this); int[] pixels = new int[w * h]; int[] epixels = new int[w * h]; int[] uepixels = new int[w * h]; int scan = w; int offset = 0; PixelGrabber pg = new PixelGrabber(img,0,0,w,h,pixels,0,scan); try{pg.grabPixels();}catch(InterruptedException e){;} for(int i=0; i < w*h ; i++){ try{ int r = (int)(pixels[i]&0x00ff0000); if (r!=0x00000000){r = ((int)((pixels[i]&0x00ff0000)*0.5)&0x00ff0000);} int g = (int)(pixels[i]&0x0000ff00); if (g!=0x00000000){g = ((int)((pixels[i]&0x0000ff00)*0.5)&0x0000ff00);} int b = (int)(pixels[i]&0x000000ff); if (b!=0x00000000){b = ((int)((pixels[i]&0x000000ff)*0.5)&0x000000ff);} if((((w+i)/w)%2)!=0){epixels[i] = 0xff000000| r | g | b ;uepixels[i]=pixels[i];} else {epixels[i] = pixels[i];uepixels[i] = 0xff000000| r | g | b ;} }catch(Exception ex){;} } eimg = createImage( new MemoryImageSource( w, h, epixels, 0, scan )); uneimg = createImage( new MemoryImageSource( w, h, uepixels, 0, scan )); } public void start() {thread = new Thread(this);thread.start();} public void stop() { try { thread.sleep(1000); } catch(InterruptedException e){} } public void update(Graphics g) {paint(g);} public void paint(Graphics g){ if(state){buffer=eimg;} else {buffer=uneimg;} g.drawImage(buffer,0,0,null);state = !state;} public void run() { try {mt.waitForAll();}catch (InterruptedException e) {return;} while( true ) {repaint();try {Thread.sleep(dly);} catch (InterruptedException e) {}} } } 長いですけど、このようなプログラムなんです・・