トップページ⇒tech
1001コメント352KB

【初心者】Java質問・相談スレッド79【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/01/11(水) 15:23:13
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・内部クラスから外部クラスのローカル変数は使えない。他の方法を考えろ。

前スレッド
【初心者】Java質問・相談スレッド78【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1135217569/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりでお願いしまする。
01531422006/01/13(金) 16:47:08
package bean;


public class StringBean {
private String message = "No message specified";

public String getMessage() {
return(message);
}

public void setMessage(String message) {
this.message = message;
}
}
で、http://localhost:8090/aoki/lesson01_1/bean/StringBean.jspで実行しました。パスの設定はできていると思うんですが・・・:
01541422006/01/13(金) 16:48:33
ご教授お願いします。それでは学校に行ってきます
0155デフォルトの名無しさん2006/01/13(金) 16:49:18
うぜぇwwwww
0156デフォルトの名無しさん2006/01/13(金) 16:58:55
青木さん
0157デフォルトの名無しさん2006/01/13(金) 16:59:11
そもそも>>152はJSPじゃねーだろ
0158デフォルトの名無しさん2006/01/13(金) 17:02:48
まるなげでどっかいくなんて宿題スレと間違えてるんだろ
>>152みればエラーメッセージどおりだし






またただの釣りかもしれん
0159デフォルトの名無しさん2006/01/13(金) 18:01:15
なにこれjavaプログラマ用に特化した荒らし?

昔スタックとレースが止まらない夢でうなされたことがある
Y/N
01601422006/01/13(金) 18:24:56
学校の環境でも実行できません。本のソースコードそのままなんですが、
間違っているのですかね?
0161デフォルトの名無しさん2006/01/13(金) 18:34:32
>>160
指摘された箇所は無視かよ
01621422006/01/13(金) 18:41:38
すいません。何がなんだかさっぱりです・・・すいません
01631422006/01/13(金) 19:16:56
おまえら態度でかすぎ
教えてやろうって気ないだろ
そんな奴このスレに不要だ
0164デフォルトの名無しさん2006/01/13(金) 19:20:35
ワロス
0165名無し募集中。。。2006/01/13(金) 19:26:13
ワロス
01661422006/01/13(金) 19:26:16
おさわがせしてます、142です
他の142は偽者です
実は>>142も偽者です
0167デフォルトの名無しさん2006/01/13(金) 19:26:41
すいません、EclipseとTomcatでJSPを作ってるんですが、JSPがJAVAになったもののパッケージがどのフォルダに置いても「org.apache.jsp」になってしまい、エラーになってしまいます。
どうすればいいですか?
01681672006/01/13(金) 21:09:20
詳しくは>>142を見てください
0169デフォルトの名無しさん2006/01/13(金) 21:55:29
どこに書こうか迷ったけど人多そうだからここにする。
https://jep.dev.java.net/
JEPって言語のプロジェクトあるんだけど知ってた?
JSPの次って感じ?
0170デフォルトの名無しさん2006/01/13(金) 23:13:49
javaで今GUIをやっており、今画像がスクロールするものを作っております

キーボードの上(↑)が押されたら、その画像を消す見たいなのはどうやったらできるでしょうか?
0171デフォルトの名無しさん2006/01/13(金) 23:14:50
GUIで曲を流すにはどうすればいいですか
0172名無し募集中。。。2006/01/13(金) 23:24:57
>>171
ClipかSourceDataLineを使う

APIにJavaSoundの説明が詳しく乗っているので自分で調べろ
0173デフォルトの名無しさん2006/01/13(金) 23:35:44
そういやJavaSoundDemoって5.0からは動かないんだよね
0174デフォルトの名無しさん2006/01/13(金) 23:41:12
142みたいな空気読めないやつは現実でもこんな感じなの?
0175デフォルトの名無しさん2006/01/13(金) 23:50:44
現実では空気嫁愛用
0176名無し募集中。。。2006/01/13(金) 23:53:54
空気が読めるなんてエアマスターみたいだな
0177デフォルトの名無しさん2006/01/14(土) 00:31:03
mainメソッドであらかじめ用意してたものが、愛と同じだったらloveと表示させたいんですが
☆☆☆の部分にはどう記述すればいいんでしょうか?他にも違う箇所があったら教えてください。

public class Test{
public static void main(String args[]){
toE('愛');
}
static void toE( char ai ){
if (☆☆☆.equals('愛')) {
System.out.println("love");
}
}
}

0178デフォルトの名無しさん2006/01/14(土) 00:35:10
プリミティブ使うならイコールでかいていいよ
01791772006/01/14(土) 00:55:21
>>178
ありがとう。できました。
0180デフォルトの名無しさん2006/01/14(土) 01:05:23
Microsoft の MSJVM ってもうダウンロードできないんだっけ?
ちょっと動作確認したいんだけどな。
0181デフォルトの名無しさん2006/01/14(土) 01:08:55
Swingコンポーネントのキーボードバインドを変更したいのですが
ActionMapとInputMapがよくわかりません。
いまは3種類のInputMapを再帰的に探して削除、追加としているのですが
なんか他にもっといい方法ありませんか?
0182デフォルトの名無しさん2006/01/14(土) 02:16:13
>>180
できる。
MSのページはわからない。が、Yahooチャットのヘルプのページに
置いてあることは知っている。
0183デフォルトの名無しさん2006/01/14(土) 04:32:31
すれ違いかも知れませんが質問。

PCを立ち上げてから最初にアプレットを読み込もうとすると、40秒くらい
PCが固まるのは、JVMを立ち上げているからだと理解しているのですが、
スタンドアロンのjavaアプリは、瞬間に立ち上がるのはなぜ? いずれもJVM
なしには走らないと思いますが。

逆にいえば、なぜアプレットは、初回のローディングにあんな時間がかかるの?
あれが、 あるため、Javaにたいして嫌悪感をもっている人は多いと思いますが。
0184デフォルトの名無しさん2006/01/14(土) 09:05:58
クラスロードがあるとか?

でもVM自体の起動はスタンドアロンと変わらないけど
0185デフォルトの名無しさん2006/01/14(土) 09:11:10
アプレットはフラッシュに惨敗しました。
0186デフォルトの名無しさん2006/01/14(土) 11:15:19
>>183
IEやNNとかがメモリーをいっぱい確保してるから
0187デフォルトの名無しさん2006/01/14(土) 11:31:40

windowsでutf-8のjavaファイルをコンパイル/実行すると、なぜ文字化けするのですか?
内容は全く同じなのにshift-jisでは問題ありません。

Java側の問題ですか?
それともwindows側の問題ですか?
utf-8で書かれたファイルも問題なく動かす方法はありますか?

よろしくお願いいたします。
0188デフォルトの名無しさん2006/01/14(土) 11:33:20
>>187
コンパイラにutf8だとおしえてる?
デフォがプラットフォームのエンコーディング使うだけだよ
0189デフォルトの名無しさん2006/01/14(土) 11:54:04
>>187
javacコマンドのドキュメント読もうぜ
最近Javadoc含めてドキュメント読まない人間増えたよね
0190デフォルトの名無しさん2006/01/14(土) 12:14:12
>>188-189

コンパイラに指定すればいいのですね。
調べてみます。
ありがとうございました。
0191デフォルトの名無しさん2006/01/14(土) 12:26:47
質問させて頂きます。
今学校の課題で、データファイルからデータを読み込んでグラフ表示するプログラムを作っています。
それで、JPanelで、縦に三つのPanelを作って、一番上にグラフ、二番目にデータの検索機能、
三番目にグラフを表示した時点での現在時刻を表示するようにしようとプログラムを組んでいたのですが、
Panel1にグラフを作れなくて困っています。

Panelを複数に分けて、そのうちの一つにグラフを表示したりすることはできるんでしょうか?
よろしくお願いします。
0192デフォルトの名無しさん2006/01/14(土) 13:32:12
できるよ。がんばれ。
0193デフォルトの名無しさん2006/01/14(土) 15:20:04
Javaで式を複数行に分ける場合に何か行末に記号ってつけないとダメなんでしょうか?

System.out.println(str +
str2);

みたいに書くと怒られるので
0194デフォルトの名無しさん2006/01/14(土) 15:24:01
>>193
別に単語の途中でなければどう切ってもいいよ
0195デフォルトの名無しさん2006/01/14(土) 15:26:38
何の理由で怒られてるかわかんねーんじゃねーの?
0196デフォルトの名無しさん2006/01/14(土) 15:29:36
>>194
なんかできました・・ありがとうございました
0197デフォルトの名無しさん2006/01/14(土) 16:30:45
すいません、質問させてください。

クライアントのJavaアプリでなのですが、
特定のURLに関連付けられてるCookieを取得する事ってできますか?

クッキーのセットの仕方は分かったんですが、そのクッキーをどこから
持ってくればいいのかが分からなくて困ってます…。
01981972006/01/14(土) 16:37:35
補足します。

ブラウザはIEのみの前提とさせてください。
というか、そもそもローカルに保存されてるクッキーのファイルを
読み込んで処理するのが当たり前なんでしょうか。。

分かってない感じですね('A`;)
0199デフォルトの名無しさん2006/01/14(土) 16:58:14
クライアント側ってことは、アプレットなのかアプリケーションなのか。
0200デフォルトの名無しさん2006/01/14(土) 17:30:54
キーボードから数値(int型)での入力を読み込むようにしている。
もし文字(String型)で入力されたら、再度読み込み要求をさせるには
どう書けばいいんでしょうか?
0201デフォルトの名無しさん2006/01/14(土) 17:34:17
System.inからは数値だろうと何だろうとStringが返ってくる訳だが
0202デフォルトの名無しさん2006/01/14(土) 17:41:00
都合上、Stringで返ってきたのを、int型に変えてるんです。
str = br.readLine();
n = Integer.parseInt(str); 
入力されたのが文字だったら再読み込みにしたいんですが。
0203デフォルトの名無しさん2006/01/14(土) 17:44:42
while(true){
  str = br.readLine();
  try{
    n = Integer.parseInt(str);
    break;
  } catch(NumberFormatException ex){}
}
0204デフォルトの名無しさん2006/01/14(土) 17:44:57
NumberFormatException 捕まえて readLine もう一回やればいいじゃん
02052042006/01/14(土) 17:45:38
……間に合わなかった orz
0206デフォルトの名無しさん2006/01/14(土) 17:53:18
ありがとうございました。
02071912006/01/14(土) 18:34:08
先ほど質問させて頂いた者です。

>>192さん、ありがとうございます。引き続き作ってみようと思います。

いろいろ調べてみて、Panelの中に図を書くのにpaintComponentという関数を使ってみようと思ったんですが
Panel一つなら簡単にできるんですが、複数あった場合どうやってPanelを指定すればいいんでしょうか?

public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine( 0, 0, 100, 50);
}
Panelが一つなら、このプログラムを組み込むだけでできるようなのですが・・・・・。
0208デフォルトの名無しさん2006/01/14(土) 18:41:19
>>207
先ほど回答させていただいたものです。

JPanel と Panel のどっちを使っているのか、よく分かっていないのですが、
描画処理は大抵 paint(Graphcis g) に書きますね。paintComponent でも良いんですが。


そして肝心なことが一つ。paintComponent ないし paint はどこに書こうとしていますか?
っていうか Panel もしくは JPanel のサブクラスは作ってますか?
02091912006/01/14(土) 18:52:34
どうも理解が行き届いてないようで恐縮です。

JPanelを継承したクラスは作っています。
paintComponentはそのクラスの中に入れてあります。
0210デフォルトの名無しさん2006/01/14(土) 18:56:43
ん〜。

>Panel一つなら簡単にできるんですが、複数あった場合どうやってPanelを指定すればいいんでしょうか?
この文がよく分からないです。複数あると何が具合悪いのか。
02112112006/01/14(土) 19:06:21
Mac OSXで作ってOSXのjavacではコンパイルエラーのかったファイルを
Fedra core3 にj2sdk1.4.2.10をインストールして、コンパイルしようとすると、
次のようなエラーが出ます。

18: error: Class or interface `javax.imageio.ImageIO' not found in import.
import javax.imageio.ImageIO;
^
445: error: Class `MessagingException' not found in `throws'.
throws IOException, UnsupportedEncodingException, MessagingException {
^
455: error: Class `MessagingException' not found in `throws'.
throws IOException, UnsupportedEncodingException, MessagingException {
^
3 errors

javax.imageio.ImageIOのエラーもよくわかりませんし、
MessagingExceptionもインポートしています。

原因がよく解らないのですがどなたかお応え頂けませんか?
02121912006/01/14(土) 19:07:28
>>210
どうも頓珍漢なことを書いてるのかもしれません・・・・。
えと、例えばp1とp2というPanelを作った場合、p1にボタンなんかを置こうと思ったら

private JPanel p1;
private JButtun bt1; と宣言して

p1.add( bt1 = new JButton("Test"));
といった感じでボタンを置いてるんです。

最後の一文を、Panel1に「Test」という名前のボタンを作るという意味で、
Panel1に図を書く場合も同じように書くのかと思っていたんですが・・・・・・・。
0213デフォルトの名無しさん2006/01/14(土) 19:12:08
>>212
図を描画するのと Component を配置するのは全く違うよ。
やるべきなのは 『paint メソッドにてグラフを描画する Panel』 クラスを作成して、それを扱うこと。
0214デフォルトの名無しさん2006/01/14(土) 19:17:25
>>211
Fedra ってデフォルトで gcj 使ってたような気がする。

javac -J-version するとか、where javac するとかして、
インストールした j2sdk1.4.2 使ってるか確認してみて
02152112006/01/14(土) 19:24:11
>>214

ありがとうございます。

# whereis javac
javac: /usr/bin/javac

こんな感じになってます。
これじゃまずいのでしょうか?
02161912006/01/14(土) 19:31:01
すみません、どうも仰っていることが今一理解できません。
クラスの中にpaintComponentの部分を入れて、尚且つ他の部分でpaint操作をしなければいけないということでしょうか?
02172112006/01/14(土) 19:34:39
すいません、エラーメッセージはこちらが重要なのかもしれません
毎回出るのでこれはふつうのメッセージだと思っていたのですが、
どうなんでしょうか。

# javac
libgcj-javac-placeholder.sh

This script is a placeholder for the /usr/bin/javac
master link required by jpackage.org conventions. libgcj's
rmiregistry, rmic and jar tools are now slave symlinks to these
masters, and are managed by the alternatives(8) system.

This change was necessary because the rmiregistry, rmic and jar tools
installed by previous versions of libgcj conflicted with symlinks
installed by jpackage.org JVM packages.
gcj: no input files

0218デフォルトの名無しさん2006/01/14(土) 19:46:07
>>217
見るからに gcj 使ってますね。

私はFedraCore使ってないから
http://fedorafaq.yanbaru.dyndns.org/#java とか見て頑張れとしかいえないです。
02192112006/01/14(土) 19:52:13
>128
ありがとうございます。

調べていたら、再インストールで何とかなりそうな
書き込みをみつけたのでやってみます

ttp://bbs.fedora.jp/read.php?FID=2&TID=558
0220デフォルトの名無しさん2006/01/14(土) 19:59:54
>>216
これくらいは出来てる?

public class Test {
    public static void main(String[] args) {
        JFrame  jf  = new JFrame();
        jf.getContentPane().add(new JPanel() {
            public void paint(Graphics g) {
                // ここでグラフを描画
            }
        });
        jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
        jf.setVisible(true);
    }
}
0221デフォルトの名無しさん2006/01/14(土) 20:18:41
>>219
インストールしたsun jdk のbinにPATHを通して、
rpm -qa | grep cgj
で出てきたrpmを
rpm -e gcjなんちゃらかんちゃら
ってやればいいだけとちゃうん?
02222212006/01/14(土) 20:19:38
rpm -qa | grep cgj → rpm -qa | grep gcj
0223デフォルトの名無しさん2006/01/14(土) 20:33:52
SwingではpaintではなくpaintComponentを使う癖をつけよう
02241912006/01/14(土) 20:44:08
どうもそこのmain文とクラス部分との繋がりがわからないです・・・。
基本的なところが理解できてないってことですね。
ちょっと勉強しなおしてきたほうがよさそうですね・・・・・。
0225デフォルトの名無しさん2006/01/14(土) 20:47:52
paint(〜)はイベントのタイミングで描画される
ウインドウを移動したり他のウインドウを重ねたりいろんなところでよばれる

ボタンクリックのイベントで描画が変わるとかやりたいのなら
描画バッファをあらかじめ用意しておいてそれをボタンクリックで変更、
paintComponentでは描画バッファをJPanelに描画する、というのが普通
0226デフォルトの名無しさん2006/01/14(土) 21:00:40
<<<<<<<<<<<<<<<
equals
>>>>>>>>>>>>>>>
==

???
0227デフォルトの名無しさん2006/01/14(土) 21:15:18
>>223
そだっけ?そいつは失礼。
02282112006/01/14(土) 21:48:07
>>221

レスありがとうございます。

> >>219
> インストールしたsun jdk のbinにPATHを通して、
> rpm -qa | grep cgj
> で出てきたrpmを
> rpm -e gcjなんちゃらかんちゃら
> ってやればいいだけとちゃうん?
上記コマンドを試したのですがrpmは出てきませんでした・・・


gcjの存在を初めて知ったのですが、コンパイルできない理由は、
gcjにあるのでしょうか。それともgcjとjavacが衝突した事によるものなんでしょうか?

gcjでも動くなら良いと思ってるのですが・・。
0229デフォルトの名無しさん2006/01/14(土) 22:15:05
Exception in thread "main" java.lang.IllegalArgumentException: adding a window
to a container
at java.awt.Container.addImpl(Container.java:616)
at java.awt.Container.add(Container.java:307)

これってどういうエラーなんでしょうか?
02302212006/01/14(土) 22:16:42
>>228
ぐぐれ

>>229
ぐぐれ
0231デフォルトの名無しさん2006/01/14(土) 22:47:12
>>199
アプリです。
アプレットならブラウザ依存になるからCookieも取れるのかな?
0232デフォルトの名無しさん2006/01/14(土) 23:31:30
test
0233デフォルトの名無しさん2006/01/15(日) 00:52:02
クラスをインスタンス化させる時に、コンストラクタを利用して
クラス名を表示させるにはどう記述すればいいんでしょうか?
0234デフォルトの名無しさん2006/01/15(日) 00:54:03
System.out.println(this.getClass().getName());
0235デフォルトの名無しさん2006/01/15(日) 01:06:13
ありがとう
0236デフォルトの名無しさん2006/01/15(日) 01:38:17
>>231
アプリなら取れる
アプレットならアプレットに発行したCookieなら取れるが
アプレットが乗っかっているブラウザに発行したCookieは取れない
このアプレットとブラウザは別のクライアントとみなされる
ブラウザ2枚立ち上げた場合は取れる、なぜなら通常Cookieの保存場所は同じブラウザでは共有するから
0237デフォルトの名無しさん2006/01/15(日) 02:01:00
別ファイルに作ったクラスを使いたいんだけどどうすればいいんでしょ?
たとえば、main.javaとexample.javaと二つのファイルがあるときに
main.javaからexample.javaに書かれたクラスの利用
0238デフォルトの名無しさん2006/01/15(日) 02:02:16
>237
同じパッケージならそのままクラス名書けば使える。
違うパッケージならインポートすればいい
0239デフォルトの名無しさん2006/01/15(日) 02:12:21
>>238
ありがとう でけた
0240デフォルトの名無しさん2006/01/15(日) 02:32:00
>>870
>インタフェースのメリット一つとして、
>実装を差し替えられることを挙げておこう。
>たとえば、以下のコードは便利だとは思わないか?

>interface Executale { public void execute(); }

>があったとして、

>Executable exec = (Executable)Class.forName("HogeExec").newInstance();
>exec.execute();

>この"HogeExec"という文字列を外部ファイル化しておけば、
>コードを再コンパイルせずに、実装を切り替えることができる。
>ファクトリーやランチャー、デバッグモジュールなど
>アイデア次第で使い道が広がるだろう?

すごいオブジェクツ思考ですな
否定はしないが、同じことが通常のクラスでも出来てしまう例だな
0241デフォルトの名無しさん2006/01/15(日) 02:46:54
>>240
プラグイン系は全部そういう実装だろ
0242デフォルトの名無しさん2006/01/15(日) 02:48:30
>>241
わからんやつだな
インターフェースの話になっていないと言うことだ
0243デフォルトの名無しさん2006/01/15(日) 02:52:41
だからさ、GCが走るタイミングなんて決まっていないだろ?
アレと一緒なんだよ文字列の==比較は・・・・
おまえら全くわかっていないよな
「文字列の==比較は常に答えが決まっているわけではない」と言うことだよ
「大抵の場合、trueになるが・・・」というだけ
0244デフォルトの名無しさん2006/01/15(日) 02:54:02
独り言はブログで
0245デフォルトの名無しさん2006/01/15(日) 02:59:16
===========================================================
243 のブログ                 ご来店 100000人突破記念
===========================================================

今日の訪問者  10人
次のキリ番は? 110000人目です

ごゆっくり
お茶でもどうぞ
^^)っ且

だからさ、GCが走るタイミングなんて決まっていないだろ?
アレと一緒なんだよ文字列の==比較は・・・・
おまえら全くわかっていないよな
「文字列の==比較は常に答えが決まっているわけではない」と言うことだよ
「大抵の場合、trueになるが・・・」というだけ

RSS

この記事のトラックバック
http://pc8.2ch.net/test/read.cgi/tech/1136960593/243
===========================================================
0246デフォルトの名無しさん2006/01/15(日) 03:43:41
>>243
何か嫌なことでもあったのか?
0247デフォルトの名無しさん2006/01/15(日) 08:28:47
今、swingを使って家計簿アプリケーションを造ろうとしているのですが、
まず最初にユーザIDとパスワードを入力するログイン画面を作りました。
ここからその画面にある「ログイン」というボタンを押してログイン後の画面
を描画したいのですがどのような記述をすればよいのでしょうか?
アプレットのようにrepaint()のようなメソッドが用意されているのでしょうか?
0248デフォルトの名無しさん2006/01/15(日) 08:31:43
ユーザ ID とパスワードの入力画面をモーダルダイアログにする。
02492472006/01/15(日) 08:51:48
>>248
なるほど!それは使えそうです!
・・・でも、いくつか画面を遷移していくのでやっぱり画面を再描画する処理が必要なんです('A`)
0250デフォルトの名無しさん2006/01/15(日) 08:53:21
CardLayout
02512472006/01/15(日) 09:23:26
>>250
それなんかいけそうっすね!ちょっと調べてみます
02522472006/01/15(日) 10:38:47
あぁ・・・何か JTabbedPaneっていう素敵なコンポーネントがある・・・
これ簡単だ('A`)
■ このスレッドは過去ログ倉庫に格納されています