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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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質問・相談スレッド77【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1134019617/

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

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

次スレは>>980あたりでお願いしまする。

2デフォルトの名無しさん:2005/12/22(木) 11:33:22
超初心者です。
本を見ながら変数を入力すると結果が出るような物を作っているんですが、

JLabel jlb1 jlb2 jlb3;

のような物を配列を使って表現することは可能なんでしょうか?

String[] stringjlb = {"jlb1", "jlb2", "jlb3"};

JLabel stringjlb[0],stringjlb2,stringjlb3;

みたいな感じなのかと思ったんですが、構文エラーが出てしまいます。
3デフォルトの名無しさん:2005/12/22(木) 11:50:35
JLabel [] jlb = new JLabel[3];
jlb[0] = new JLabel("文字列1");
・・・
4デフォルトの名無しさん:2005/12/22(木) 12:39:49
データとそのデータに対する振る舞いを一まとめにする。
これがオブジェクト指向の全て。
お前ら難しく言いすぎ。
5デフォルトの名無しさん:2005/12/22(木) 12:58:46
>>3
ありがとうございます。
またなんかあったらよろしくお願いします。
6デフォルトの名無しさん:2005/12/22(木) 13:10:55
ファイル読み込みや書き込み操作時のclose()処理について質問です。

1. ------------------------------------------------------------------------------------------------

FileInputStream fis = new FileInputStream(new File("Input.txt"));
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
while (br.ready()) {
System.out.println(br.readLine());
}
br.close();
isr.close();
fis.close();

2. ------------------------------------------------------------------------------------------------

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("Input.txt"))));
while (br.ready()) {
System.out.println(br.readLine());
}
br.close();


1.の場合、FileInputStreamもInputStreamReaderもBufferedReaderもclose()処理を入れていますが、
2.のケースですとBufferedReaderのみのclose()処理があります。

個々のインスタンスを作らずにBufferedReaderのコンストラクタの引数に直接new InputStreamReaderやnew FileInputStreamなどを指定する場合、
これに対してのclose()処理はJVMが自動で行なってくれるのでしょうか。
また、それによってメモリの使用状況なども変わってくるのでしょうか。

そこまで大したものを作るわけではないのですが、少し疑問に思ったので質問させていただきました。
7デフォルトの名無しさん:2005/12/22(木) 14:08:47
どのclose()も
コンストラクタの引数に指定したストリームのclose()を呼び出すから大丈夫。
この場合だとBufferedReaderのclose()がInputStreamReaderのclose()を呼び出して、
InputStreamReaderのclose()がFileInputStreamのclose()を呼び出す。

1.はbr.close();だけで全部閉じるので後の2つはいらない。
8デフォルトの名無しさん:2005/12/22(木) 14:52:05
http://ex11.2ch.net/test/read.cgi/news4vip/1124359566/980
人を納得させるなら
話術を使って攻めるがよし
技術を習得しつつ話術も極めると
説得力がある。技術も無いのに話術だけあっても
胡散臭く思われるだけだからな。

もっとアジャイル開発について調べてみてくれ。
上があれこれ言ってもこちらで勝手にクラスを作ってしまうのもよし。
早い者勝ちで済まされることもあるからな。
自分で作ってこうすればこういう利点があると説明し、
実際に動いているところをみせれば
かなりの説得力がある。デザインパターンにしても同様。
ソースコードを見せてみるといい。
見せるだけでなく、実際に動かすこと。
それからコードをちょっと修正した場合のケースも見せること。
プレゼンやレポートとしてまとめてみせるのもやってみること。

Java標準APIにもデザインパターンが使われていることを示してみると良い
Javaがインストールされたときに一緒についてくるsrc.zipの
中身を解凍して彼らに見せるもよし。サンプルコードで解説だ。
98:2005/12/22(木) 14:53:22
10デフォルトの名無しさん:2005/12/22(木) 15:03:49
署名なしのJavaアプレット上でHTMLを表示させたいんですが、
何か良い方法はありませんでしょうか?
ちなみに署名有りではうまくいくのですが。。。

JEditorPane htmlPanel = null;
try {
ResourceBundle2 resBundle = ResourceBundle2.getBundle2("resources.system");
String urlString = resBundle.getString(URL);
String urlnocase = urlString.toLowerCase();
URL url = new URL(urlString);
htmlPanel = new JEditorPane(url);
htmlPanel.setEditable(false);
} catch(Exception e) {
e.printStackTrace();
}
11デフォルトの名無しさん:2005/12/22(木) 15:10:05
質問なのですが
Javaで書いたプログラムの中でPerlのプログラムを
実行させることってできますか?
ある条件に一致したらperlのプログラムを実行させるようなのです。
12デフォルトの名無しさん:2005/12/22(木) 15:15:05
>>11
Runtimeでググれ
13デフォルトの名無しさん:2005/12/22(木) 16:18:53
JLabel [] jlb = new JLabel[6];//ラベル
JTextField[] jtf= new JTextField[6];//テキストフィールド

jlb[0] = new JLabel(" A ");//ラベル1
jlb[0].setBounds(35,20,40,20);
jtf[0] = new JTextField();//テキストフィールド1
jtf[0].setBounds(85,20,100,20);



jtf[6] = new JTextField();//テキストフィールド7
jtf[6].setBounds(85,20,100,20);

for(int a=0; a <= 6; a++){
 gcp.add(jlb[a]);
 gcp.add(jtf[a]);
}}
としたのですが、ArrayIndexOutOfBoundsExceptionエラーが出てしまいます。
何が悪いんでしょうか・・。
14デフォルトの名無しさん:2005/12/22(木) 16:21:41
>>13
釣りじゃなければ余りにも酷いので以降は参考書熟読してから来い

>JLabel [] jlb = new JLabel[6];//ラベル
で6個分しかメモリ確保してないのに

>jtf[6] = new JTextField();//テキストフィールド7
7個目の要素入れればどうなるか分かるよな?
15デフォルトの名無しさん:2005/12/22(木) 16:22:03
>>13
配列で要素を6個しかつくってないのに7個使おうとしてるだろ
その配列の添え字は 0〜5 の範囲だ
16デフォルトの名無しさん:2005/12/22(木) 16:22:50
>>13
ArrayIndexOutOfBoundsException の意味も調べとくように
17デフォルトの名無しさん:2005/12/22(木) 17:01:41
大変失礼なお願いなんでが...
Javaで年賀状を作っていただけないでしょうか?
ソースを貼っていただけるとありがたいです
18デフォルトの名無しさん:2005/12/22(木) 17:09:58
>>17
うせろ
19デフォルトの名無しさん:2005/12/22(木) 17:11:38
Javaで年賀状???
20デフォルトの名無しさん:2005/12/22(木) 17:23:37
ぬるぽ
21デフォルトの名無しさん:2005/12/22(木) 17:36:49
>>10
なんで署名したくないんだ?
22デフォルトの名無しさん:2005/12/22(木) 17:38:11
>>17
「作っていただけないでしょうか」じゃなくて
「作り方をご教示していただけないでしょうか?」
だろ
23デフォルトの名無しさん:2005/12/22(木) 17:57:23
さっさと作れよ
24デフォルトの名無しさん:2005/12/22(木) 18:45:36
JavaMail 使って自分で作れ
25デフォルトの名無しさん:2005/12/22(木) 21:22:59
26デフォルトの名無しさん:2005/12/22(木) 23:38:44
「ポインタ」という言葉の本来の意味は「参照」とほぼ同等かもしれないが、
この業界ではC言語の影響が非常に非常に強いため、
『「ポインタ」と言えば暗黙的に「C言語でポインタと呼ぶもの、またはその機能」を指す。』
↑これを認めるかどうかが『Javaに「ポインタ」があるかどうか』と同義。

だからJavaにポインタがあるなんていう奴は(ry
27デフォルトの名無しさん:2005/12/22(木) 23:54:06
何度か挑戦したんだけど
インスコ→ハロー蛇場をやったあたりで挫折しちゃう。
どうすれば楽しく続けられるかな?
参考文献は「JAVAのe本」
28デフォルトの名無しさん:2005/12/23(金) 00:09:15
>>26
Javaにポインタがあると言う人は
見識も視野も広いって事でしょ
29デフォルトの名無しさん:2005/12/23(金) 00:09:30
292 名前:デフォルトの名無しさん 投稿日:2005/12/22(木) 16:51:44
大変ぶしつけなお願いなんですけど。。。
javaでクリスマスカードをできれば4つ作っていただけませんか?
簡単なものでよいです。
ソースを貼っていただければ幸いです。



293 名前:デフォルトの名無しさん 投稿日:2005/12/22(木) 17:00:02
ただ漠然とクリスマスカードといわれても・・・
もう少し詳しく要求仕様を書かないとどうしようもないよ。


294 名前:デフォルトの名無しさん 投稿日:2005/12/22(木) 17:00:36
課題:Javaで、年賀状を作成せよ。

どなたか助けてください!留年しちゃう!!
30デフォルトの名無しさん:2005/12/23(金) 00:28:59
javaでSystem.out.println("あけましておめでとう")って作って
あとはパイプでプリンタなりメイラーに出力しとけ
31デフォルトの名無しさん:2005/12/23(金) 00:31:27
>>30
GJ
32デフォルトの名無しさん:2005/12/23(金) 00:53:36
jspの質問もここでしていいんですか?
33デフォルトの名無しさん:2005/12/23(金) 00:53:40
Javaはポインタの塊だ。
ったくC厨はどいつもこいつもゴチャゴチャ屁理屈うるせぇんだよ。
34デフォルトの名無しさん:2005/12/23(金) 00:54:53
>>6
close処理はfinally句でやれ。
35デフォルトの名無しさん:2005/12/23(金) 02:29:05
単発質問です。

たまに見かける単語「フィールド変数」って何ですか?
クラス変数やインスタンス変数とはまた違うもの?
36デフォルトの名無しさん:2005/12/23(金) 03:32:34
推測だが、ローカル変数に対比する表現ジャマイカ
37デフォルトの名無しさん:2005/12/23(金) 05:04:09
単発質問です。
クラスメソッドとインスタンスメソッドって
どう使い分ければ良いですか?
singletonとかと同じ感じなのでしょうか?
38デフォルトの名無しさん:2005/12/23(金) 07:26:34
>>28
ちょっおまっっっ
39デフォルトの名無しさん:2005/12/23(金) 09:23:34
こんにちは。わたしはjava初心者ですが、
下の方のサイトにおいてあるjava appletは無料で利用できるのでしょうか?
使用する際に何らかの金銭が発生しないのでしょうか?
Anfyという方は日本語の説明らしきものが載っていたのですが、
権利関係についてよく判らないので、一つのサイト内で下のサイトのjava appletが無料で自由に使えるかどうか教えていただけないでしょうか?

http://www.fouda.de/html/home/
http://www.anfyteam.com/
40デフォルトの名無しさん:2005/12/23(金) 09:24:37
>>39
サイト管理者に聞け
41デフォルトの名無しさん:2005/12/23(金) 10:57:24
>>37
抽象的な答えで悪いが、
インスタンスの状態に関わるような処理はインスタンスメソッドを使用する。
クラスメソッドはそれが関係ないときか、クラスに対する操作の時に使用。
Singleton分かってるなら分かりきった答えだろうな…すまない。
42デフォルトの名無しさん:2005/12/23(金) 11:55:44
ねえ。昨日さ、JDK5.0っていうの入れてみたんだよ。
でさあ、コンパイルしようとおもって、javac ってやったら
エラーになってさ、binフォルダみてもjavac.exeってないじゃん。
もちろんbinフォルダにPathは設定してあるよ。

どうやってコンパイルすればいいのかな?教えてクリ。
43デフォルトの名無しさん:2005/12/23(金) 11:57:50
>>42
Runtimeのみのほう落としてないか?
44デフォルトの名無しさん:2005/12/23(金) 12:23:47
>>43
SDKをおとしたよ。
45デフォルトの名無しさん:2005/12/23(金) 12:27:48
SDKと一緒にインストールされるJREのbinディレクトリを見ている、に一票
46デフォルトの名無しさん:2005/12/23(金) 12:28:29
javacで検索すれば?
47デフォルトの名無しさん:2005/12/23(金) 12:41:10
>>45
すみません。。ないです。
>>46検索したら、Cドライブ(Dドライブにインストールした)のbinディレクトリ
にあったんです。でもCドライブにbinディレクトリなんてないよ。。でも、日付がえらいふるいや。。
これは、違うな。

2回目のダウンロード→インストールなんですよ。。どうしてかな。。
48デフォルトの名無しさん:2005/12/23(金) 12:43:37
>>47
インストールするときに、何も考えずにOKとか押すのやめて
どこにインストールされるか、どんなオプションなのか確認
する癖つけた方がいいよ
49デフォルトの名無しさん:2005/12/23(金) 12:49:48
>>48
一応、DドライブにJavaというフォルダを作ってそこにインストールしました。。
Cドライブが満タンだったから。。検索してもみつからん。。昨日、インストールした
All-In-OneEclipseだと、なぜかコンパイルできるんすよ。。

変なの。。
50デフォルトの名無しさん:2005/12/23(金) 12:54:52
eclipse使ってるならjavacは必要ない。気にせず進め。
51デフォルトの名無しさん:2005/12/23(金) 12:56:41
Eclipseは自前のコンパイラを持ってるからな
52デフォルトの名無しさん:2005/12/23(金) 13:12:27
>>50-51
そうなんですか。ありがとうございました。エクリプスでいこうとおもいます。

皆々様、お手数をおかけしました。
53デフォルトの名無しさん:2005/12/23(金) 15:14:24
>>49によると
Cドライブを検索したがDドライブは検索してないと言うことか。
54デフォルトの名無しさん:2005/12/23(金) 23:59:55
>>41
CとかC++は知らないのですが
所謂グローバル関数的な物なんですかね??
Mathクラスとかは全部クラスメソッドですよね・・?
う〜ん
55デフォルトの名無しさん:2005/12/24(土) 00:58:48
ボタンイベントでファイルチューザーを動かすようにしているのですが、
一旦そのボタンを押すと、何故か押されたままになってしまいます。
元の押されていない状態に戻すにはどの様にしたら良いでしょうか?
56デフォルトの名無しさん:2005/12/24(土) 01:06:57
>>35

クラス変数やインスタンス変数とは異なります。
クラス変数かインスタンス変数はstaticであるかどうかであり、フィールドはメソッド内で定義されるローカル変数とは異なり、クラスに属する変数になります。
つまり、フィールドのあり方として、クラス変数かインスタンス変数があるということです。

>>37

・クラスメソッド
 そのクラスの状態に関係ないメソッドに使用する。
 入力されたものを変換して出力するだけのものはクラスメソッドにします。
 例えば、java.lang.Mathクラスのようにユーティリティクラスに使用します。

・インスタンスメソッド
 そのクラスの状態に関係のあるメソッドに使用する。
 通常のオブジェクト指向的な使い方になります。
 
57デフォルトの名無しさん:2005/12/24(土) 01:16:01
>>56
?
58デフォルトの名無しさん:2005/12/24(土) 03:19:33
生成したインスタンスを、GCにたよることなく
自分から破棄(メモリ開放)したいのですが
何か方法はあるのでしょうか?

swingで円や四角の図形を使ってプログラムを組んでいるのですが、
そこで描画とマウスの扱いの為に使う自前のクラスのインスタンスが
repaint()等を呼び出しても
そのインスタンスがいつまでも消えず問題になっています。
つまり、再描画はされており一見問題ないようにみえるけれども
マウスの処理が残っているため、動作において問題になっている
という状況です。

実際問題としては不必要なのですが
処理上ではまだ動作しているようなので、
GCなどでは破棄されません。
また、そのクラスのインスタンスが生成され続けると
動作に問題が出るだけでなくメモリがどんどん埋まっていく可能性があります。
59デフォルトの名無しさん:2005/12/24(土) 03:34:09
>>58
任意のタイミングでの解放は無理
自分でVM作ってください

基本的に、実装の仕方が悪い
コントローラーがイベント発生の度に生成されるんでしょ?
ありえないよ、そんな実装。
60デフォルトの名無しさん:2005/12/24(土) 04:13:46
>>58
>処理上ではまだ動作しているようなので
って事は、動作していること自体が想定外なんでしょ?
そのバグを改修する事が先だろ。
61デフォルトの名無しさん:2005/12/24(土) 04:26:25
Javaでhtmlのtableタグのようなデザインにするためには
どのようまレイアウトマネージャーが必要でしょうか
62デフォルトの名無しさん:2005/12/24(土) 06:43:29
ようようま
63デフォルトの名無しさん:2005/12/24(土) 07:32:01
>>58
宿題スレでソース晒したほうがいいと思うよ
自分で何をつくっているのか把握できてないと思う
64デフォルトの名無しさん:2005/12/24(土) 09:06:15
>>58
ハッキリ言って君のバグ。
6558:2005/12/24(土) 10:12:01
わかりました。
基本的なとこを直します。
どうもありがとうございます。
66デフォルトの名無しさん:2005/12/24(土) 11:45:36
ちなみに、どういったインスタンスが残り続けてるの?
イベントリスナーとかいろいろあると思うけど
67デフォルトの名無しさん:2005/12/24(土) 15:44:10
JSPとサーブレットで簡単なサイトを作ろうと思っています。
Javaで実装したいのですが、
「こんにちは○○さん」
の○○さんをデータベースから取得して表示したいのですが
サンプルプログラム、もしくは参考サイト教えて下さい。
68デフォルトの名無しさん:2005/12/24(土) 16:01:02
>>67
JavaでHelloworld
でぐぐるといいかもしれない。
ServletからJDBCまで簡単に使える方法が載っている。
69デフォルトの名無しさん:2005/12/24(土) 17:02:16
数が不定のデータをArrayListで受けて、固定長配列に置き換えて処理する、
という手法を用いる際に、受けるデータはプリミティブ型では無理なのでしょうか?

やりたいのは、
入力として任意の数(個数は動的に決定する)のintがあり、
入力の完了時に内部変数として固定長のint配列に置き換えて
以後の処理を行いたい
のですがどのようにすれば実現可能でしょうか?

ArrayListにはInteger型で追加し、置き換え時にInteger配列をint配列に置き換える、
辺りを自前で作るべきなんでしょうか…

よろしくお願い致します。
70デフォルトの名無しさん:2005/12/24(土) 17:12:48
>>69
commons primitives の ArrayIntList 使えば?
71デフォルトの名無しさん:2005/12/24(土) 17:13:38
>>69
凄く悪い答え方するけど、『基本型でも全く問題なく格納できるよ』
72デフォルトの名無しさん:2005/12/24(土) 17:19:02
>>69
1.4ならそれしかないが

1.5なら
>ArrayListにはInteger型で追加し
の部分はintのままで追加できる
しかし
>置き換え時にInteger配列をint配列に置き換える
っていうのはやはり自前しか無さそう
toArray()でもそこまでやってくれなさそう
73デフォルトの名無しさん:2005/12/24(土) 17:22:14
自作してもすぐに終わるしな
74デフォルトの名無しさん:2005/12/24(土) 17:27:05
>>70も言っているように、そういうListのクラスを自分でつくるっちゅ-のも面白いと思う
7569:2005/12/24(土) 17:28:55
レスありがとうございます。
現在の環境、環境を変更する権限を持たないことを考慮すると
自前で書いちゃった方がよさそうですね。

沢山アドバイスありがとうございました。
76デフォルトの名無しさん:2005/12/24(土) 17:44:55
数値を入力して図形を描くプログラムを作ってるんですが、
窓の大きさを変えると毎回図形が消えてしまいます。
大きさを変えてもグラフィックが残るようにするにはどうすればいいんでしょうか。
77デフォルトの名無しさん:2005/12/24(土) 17:56:58
>>69=75
お勧めしないが
ByteArrayOutputStreamにintをbyte*4として突っ込み
toByteArrayでできたbyte[]をByteBufferにラップし
asIntBufferでIntBufferに変換してそこからint[]にする。
78デフォルトの名無しさん:2005/12/24(土) 17:57:15
描き直せば良い (マジで)
79デフォルトの名無しさん:2005/12/24(土) 18:03:21
>>76
まずは、ダブルバッファリングで検索かけて、それを理解すること。
もう一つは、ウィンドウのリサイズで描画範囲が変わっているので、
それを意識したプログラミングをすること。
最初はこのくらいかな。
80デフォルトの名無しさん:2005/12/24(土) 18:07:55
>>76
図形の描画はOnPaintに描くんだよ
81デフォルトの名無しさん:2005/12/24(土) 18:13:11
好きな位置に好きな大きさのボタンとかテキストフィールドとかが追加できない・・・
82デフォルトの名無しさん:2005/12/24(土) 18:29:49
strictfpって何?
83デフォルトの名無しさん:2005/12/24(土) 18:36:12
>>81
レイアウトマネージャについて勉強して
84デフォルトの名無しさん:2005/12/24(土) 18:39:46
>>82
まずぐぐれよ
85デフォルトの名無しさん:2005/12/24(土) 19:29:48
>>76
SwingならpaintComponent()の中で描画してる?
86デフォルトの名無しさん:2005/12/24(土) 19:32:11
>>84
知らないからって・・・
87eclipse:2005/12/24(土) 19:46:52
javaAppleにSWTを組み込めますか?
88デフォルトの名無しさん:2005/12/24(土) 19:47:39
Mac版のEclipseがあるなら可能なんじゃない?
89eclipse:2005/12/24(土) 19:54:18
WindowsXPでは不可能ですか?
90デフォルトの名無しさん:2005/12/24(土) 19:58:18
javaApple かぁ・・・
91デフォルトの名無しさん:2005/12/24(土) 19:59:11
だからMac版のEclipseがあればと言ってるじゃないか
まぁMac OSXなら最悪Linux版のをエミュレートして実行できるかもしれないね
92eclipse:2005/12/24(土) 20:08:14
意味が今ひとつ理解できません。
93デフォルトの名無しさん:2005/12/24(土) 20:09:29
何で理解できないのか理解できません。
94eclipse:2005/12/24(土) 20:13:35
なぜwindowsのはなしにMacが出てくるんですか?
95デフォルトの名無しさん:2005/12/24(土) 20:15:15
自分でふっといて何言ってんの・・・
96デフォルトの名無しさん:2005/12/24(土) 20:15:24
たぶん>>87は、Java Appletと書いたつもりでは?
97デフォルトの名無しさん:2005/12/24(土) 20:16:17
>>96
そこは確実にわかった上でバカにしてるんだと想像
98デフォルトの名無しさん:2005/12/24(土) 20:17:51
じゃあこのへんにしとくか
サンドボックスの制限に引っかかるはずだから無理なんじゃない?
99デフォルトの名無しさん:2005/12/24(土) 20:22:46
>>87
SWTのスレで聞いたら?
100デフォルトの名無しさん:2005/12/24(土) 20:23:00
101デフォルトの名無しさん:2005/12/24(土) 20:23:41
できなくもないが実質できない
SWT_AWTってのがあるらしいからそれもあり
ただしSWT自体がアレですので
102デフォルトの名無しさん:2005/12/24(土) 20:31:30
マカはCocoaとかいうのを使わないと無理だから、純粋なJavaじゃないし。
103デフォルトの名無しさん:2005/12/24(土) 20:40:28
>>102
それは誤解だな。
普通にPure JavaアプリもEclipseもTomcatも動いてるよ。
104デフォルトの名無しさん:2005/12/24(土) 23:59:10
Javaでシリアルポートから通信をしようとしているのですが、
CommPortIdentifierがポート名を一つも返しません。

サンからのCommunicationsAPIに付属しているサンプルプログラム(SerialDemo.java)をコンパイルして走らせてみたのですが、ポート選択のリストボックスに何も出ない状態です。
コンパイル・実行とも、エラーメッセージ等は一切出ません。
OSでポートは認識されているし、デバイスの競合も無し。
WindowsXP,Linux、両方(ハードウェアも違う)で試しましたが、どちらも駄目です。(現在SunはWindows版のCom~APIの公開をやめています)
ルートやアドミニストレーター権限でログインして試しました。
原因としてどういう可能性が考えられるでしょうか?
105デフォルトの名無しさん:2005/12/25(日) 00:30:01
シリアルポートを持っていない
106デフォルトの名無しさん:2005/12/25(日) 01:01:55
OSでポートは認識されているし
107デフォルトの名無しさん:2005/12/25(日) 01:10:00
OSネイティブのAPIだとどうなの?
認識できてるの?
108デフォルトの名無しさん:2005/12/25(日) 04:47:07
interface Xmas {

public void insert();
public givePresent(String obj);

}

ここのは居心地が良いな〜
109デフォルトの名無しさん:2005/12/25(日) 06:07:18
さ あ 、 性 の 6 時 間 の 始 ま り で す

.  / / /// ./ /  /j  / // 〃!|| | ||ll| | | ヽヽ ヽ   |     |       |,  -──- 、    /
  i  l l l l ll  l /!.| ,! / | /゙!゙"゙"゙"゙ll| | |  !_ヾ゙r、,__.l  ,. -‐''´ ̄`ーァ'"´        ヽ、/
  l  !. | | | |l  | || li |/| l| ! |     l! ! | |  |ミミヾ,| .l7lー‐- 、                __/
    | | | | |l  l. _lki'l |! l! l+-l、_  ,j l/,!.l  |三ニ、jイ l l三ヽ |             r'´        _
    l i l l lヽ, i´ !_i!ヽl l l!   __ `メノl !l !  |=、ニ/ ! l/ヽ== 、-‐'"´ ̄ ̄`ヽ、   /        /
       ヽヽ ヽ ヽ,r=ミ !    ,. ==ミ、 /// j l、 }彡r'、\ \ l_、 ̄`丶、    \ /         |
  ,. -─-、ヽヽヽヽ!::::::::: , /    ::::::::::: `/// //'∠ !_{,l、 \ヽヽ, |  !l ̄`ー-、`ヽ 、 /  __         l、
/,r‐,=≧--‐'´__.',     ___      /ノ/ //´ヽj \ ̄ ̄二>‐、-!!,_   \ r'´ /ヽ l        | l
/rチ'"´ _,ィャヶ'´rt‐\.  l'´ !    ///./  /   lヽ/'´ ̄  | ヽ,  `ヽ、 \‐'   } |   r !  lノ l
/_,.ィ=彡/   l !   \ ー'       /  /  /  //      l、 ヽ,    \ ヽヽ  lノ   / 」/  ヽ
12月24日の午後9時から翌25日の午前3時までの6時間は
1年間で最もセックスをする人の多い「性の6時間」です。

貴方の知り合いや友人ももれなくセックスをしています。
普段はあどけない顔して世間話してるあの娘もセックスをしています。
貴方が片想いしているあの綺麗な女性もセックスをしています。
貴方にもし年頃の娘さんや姉・妹がいて、いま家にいないのでしたら間違いなくセックスしてます。
貴方と別れたあの娘も貴方がその娘にやってきたことを別の男にやられています。
貴方の将来の恋人や結婚する相手は、いま違う男のいちもつでヒィヒィ言っています
110104:2005/12/25(日) 09:34:39
OSネイティブAPIでは大丈夫です。
111デフォルトの名無しさん:2005/12/25(日) 10:44:24
String hoge;

hoge = "1";

hoge = "2";

とするとhogeの中身が変わるのではなく
hogeの参照位置が変わると思うのですが
hogeの中身だけを変えたい場合はどうすればよいでしょうか?
112デフォルトの名無しさん:2005/12/25(日) 10:47:18
>>111
Stringオブジェクトは変更不可能なオブジェクトなのです
なので、どうしようもありません。

どうにかしたければStringBufferやStringBuilder使うか、
SmalltalkみたくCollectionを継承したクラスとして
新しいStringを実装してください
113デフォルトの名無しさん:2005/12/25(日) 11:13:27
>>111
Stringに関していえば>>112の内容
一般的にオブジェクトの状態を変えたければ
オブジェクトが持っているメソッドをコールする
=は代入演算子だから変数が参照すべきオブジェクトを
指定しているだけで、状態を変えるものではない
114デフォルトの名無しさん:2005/12/25(日) 11:42:03
>>112,113
さんくつ。

なるほど。そうですよね。
よく考えるとできるほうがおかしいですね。
ありがとうございました。
115デフォルトの名無しさん:2005/12/25(日) 15:26:15
Jarファイルの中の画像ファイルなどに
アクセスする方法があれば教えてください。
116デフォルトの名無しさん:2005/12/25(日) 15:28:10
リソースとクラスパスについて勉強しましょう
117デフォルトの名無しさん:2005/12/25(日) 15:48:34
コマンド プロンプトでMicrosoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>  のC:\  >が消えないのですが。
全くの初心者です。
118デフォルトの名無しさん:2005/12/25(日) 15:52:53
そうですか
119デフォルトの名無しさん:2005/12/25(日) 16:20:39
Jama
120デフォルトの名無しさん:2005/12/25(日) 16:25:29
画面をクレンザーでこすってみたらどうかな?
121デフォルトの名無しさん:2005/12/25(日) 16:38:17
prompt $l$p
prompt $h
prompt $_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_$_
122デフォルトの名無しさん:2005/12/25(日) 18:07:07
さーおまいら問題だ

String s1="test";
String s2="test";

if(s1==s2) {
System.out.println("おなじ");
}
else {
System.out.println("違う");
}

さぁ どっちが表示される?
いや、通常どっちが表示される?のほうがいいかな?
123デフォルトの名無しさん:2005/12/25(日) 18:14:35
>>122
違う
124デフォルトの名無しさん:2005/12/25(日) 18:18:13
>>122
なんだ?「通常」とかいうのは
常に"違う"だ、きちんと規定されている

仮に文字列の一致を確かめるならequals()使う
125デフォルトの名無しさん:2005/12/25(日) 18:28:39
>>122
言語規定に従ってるなら「おなじ」。

> 各文字列リテラルは,クラスString(4.3.3)のインスタンス(4.3.1,12.5)への参照(4.3)とする。
> Stringオブジェクトは,定数値をもつ。文字列リテラル(より一般的には,
> 定数式(15.28)の値となる文字列)は,メソッドString.internを使用して,
> 一意なインスタンスを共有するために"intern"される。
126デフォルトの名無しさん:2005/12/25(日) 18:41:28
>>125
は?
127デフォルトの名無しさん:2005/12/25(日) 18:44:35
違うとほざく奴は試してから言ってみろやw
128デフォルトの名無しさん:2005/12/25(日) 18:45:40
>>124みたいなのが一番タチが悪い
129デフォルトの名無しさん:2005/12/25(日) 18:56:29
>>124
きちんと規定されている、なんてよくも言えたものだ。
おまいの組むプログラムはバグだらけだったりパフォーマンスに問題が出たりしそうだな。

ちなみに、

String s1 = new String("test");
String s2 = new String("test");

if (s1 == s2) {
System.out.println("おなじ");
}
else {
System.out.println("違う");
}

この場合は"違う"だ。

ちゃんと勉強し直せよ。
130デフォルトの名無しさん:2005/12/25(日) 19:05:32
要は==での文字列判定はリテラルが共有されるので、
結果が不定だからやっちゃいかんということだね。
得意になってる>>129も痛いが、いったい何に使うつもりだい。
131122:2005/12/25(日) 19:49:04
はっはー

>>124
やっぱひっかかるやつおるなー

俺がわざわざ「通常」と書いた意味考えてくれよ
132デフォルトの名無しさん:2005/12/25(日) 19:55:54
定数なら同じになるってこと?
133デフォルトの名無しさん:2005/12/25(日) 20:05:23
>>131
すまん、「通常」じゃない状況を教えてくれ
134デフォルトの名無しさん:2005/12/25(日) 20:27:50
通常
String s1 = "test";
String s2 = "test";

通常じゃない
String s1 = new String("test");
String s2 = new String("test");
とか
char[] c = {'t', 'e', 's', 't'};
String s1 = new String(c);
その他、変なVMを使った場合(漏れは見たことがないが・・・)
135デフォルトの名無しさん:2005/12/25(日) 20:30:48
>>122は「通常」とかいってる時点で分かってないと思われ。
言語仕様に通常も何もないわけだが。

リテラルがらみの言語仕様をまとめると以下のような感じだな。
String s = "hoge";と定義されているとき、

1.リテラル文字列
 →同じオブジェクトへの参照を表現する。

  s == "hoge" → true

2.定数式によって計算される文字列
 →コンパイル時に計算され,リテラルであるかのように扱われる。

  s == ("ho" + "ge") → true

3.実行時に計算される文字列
 →新しく生成されるものであって,別の文字列とする。

  String ge = "ge";
  s == ("ho" + ge) → false

4.計算された文字列を明示的に収容(intern)した結果
 →同じ内容をもつ既存のリテラル文字列と同じ文字列とする。

  String ge = "ge";
  s == ("ho" + ge).intern() → true
136デフォルトの名無しさん:2005/12/25(日) 20:32:42
さーおまいら問題だ
137デフォルトの名無しさん:2005/12/25(日) 20:33:52
通常
String s1 = "test";
String s2 = "test";

通常じゃない
String s1 = new String("test");
String s2 = new String("test");

意味ちがうから当たり前どと思うが
138デフォルトの名無しさん:2005/12/25(日) 20:37:18
質問です

Calendar型の比較メソッドの after() や before() 辺り、引数が
Calendar型ではなくObject型になっているのはなぜなんでしょうか。

類似の日付型でも判定してくれるのかとDate型を渡してみても
正しく判定されてるようではないですし…


下らん疑問ではありますが何か理由があるのだとしたら今後の
参考にしたいと思いますのでよろしくお願いします。
139デフォルトの名無しさん:2005/12/25(日) 20:41:46
ぶっちゃけカレンダー関連は気にしない方がいい
いろいろ設計が間違えている
140デフォルトの名無しさん:2005/12/25(日) 20:47:55
>>138
わからん。設計者に聞けって感じだな。
Calendar以外のものをぶち込めるようにしたかったんだろうなぁ。
141138:2005/12/25(日) 20:54:01
>>139
>>140
むむぅー。設計者のみぞ知る…ですか…

ぐっと飲み込んで気にするな、ってとこですかね…;
レスありがとうございました。
142デフォルトの名無しさん:2005/12/25(日) 21:06:48
このスレ読んで、「さーおまいら問題だ」とか言っちゃう痛い子にならないためにひとつアドバイスだ。
143デフォルトの名無しさん:2005/12/25(日) 21:15:01
本屋で買った参考書を元に独学で勉強をしている者です。
自分で作ってみたのですがうまくいかないのでどこがいけないのか
アドバイスもらえると嬉しいです。
interface Animal1{
void eat();
}
interface Dog1 extends Animal1{
void run();
}
interface Bird1 extends Animal1{
void fly();
}
class OldException extends Exception{
OldException(String message){
super(message);
}
}
144続き:2005/12/25(日) 21:16:01
class Shiba1 implements Dog1 extends OldException{
int age;
Shiba1(int age)throws OldException {
if(age < 5){
this.age = age;
}else throw new OldException{
System.out.println("年齢が高すぎます" + age + "歳");
}
}
int getAge(){
return this.age;
}
public void eat(){
System.out.println("シェパードが食べます");
}
public void run(){
System.out.println("シェパードが走ります");
}
}
145続き:2005/12/25(日) 21:17:06
class Swan1 implements Bird1 extends OldException{
String name;
Swan1(String name)throws OldException {
if(age < 5){
this.age = age;
}else throw new OldException{
System.out.println("年齢が高すぎます" + age + "歳");
}
}
int getAge(){
return this.age;
}
public void eat(){
System.out.println("白鳥が食べます");
}
public void fly(){
System.out.println("白鳥が飛びます");
}
}
146続き:2005/12/25(日) 21:17:47
class Test{
public static void main(String[] args){
try{
Animal1[] animal = {new Shiba1(4),new Swan1(3)};
System.out.println("年齢を設定しました");
for(int j = 0;j < animal.length;j++){
System.out.println("年齢は" + animal[j].getAge() + "歳です。");
}
}catch(OldException oe){
System.out.println(oe.getmessage);
}
for(int i = 0; i < animal.length; i++){
animal[i].eat();
if(animal[i] instanceof Shiba1){
((Shiba1)animal[i]).run();
}else if(animal[i] instanceof Swan1){
((Swan1)animal[i]).fly();
}
}
}
}
147デフォルトの名無しさん:2005/12/25(日) 21:24:41
変な構文
throw new OldException{
System.out.println("年齢が高すぎます" + age + "歳");
}

これって
throw new OldException("年齢が高すぎます" + age + "歳");
って書きたいのじゃないの?
148デフォルトの名無しさん:2005/12/25(日) 21:28:41
それとSwan1にフィールドageがない希ガス
149デフォルトの名無しさん:2005/12/25(日) 21:34:43
>>143
見て無いが販売元のサイト見て正誤表が無いか調べるのが一番早い気がする
150143:2005/12/25(日) 21:35:55
>>147>>148レスありがとうございます。
ほんと間違えまくってますね・・・。
とりあえず int age;を設定して
>>147さんに指摘してもらったところを
Shiba1(int age)throws OldException {
if(age < 5){
this.age = age;
}else{
throw new OldException("年齢が高すぎます" + age + "歳");
}
}
に変えてみたのですが(Swan1も同様に)どうもうまくいきません。
自分的には
class Shiba1 implements Dog1 extends OldException{

この一文が不安なのですが・・・。
151デフォルトの名無しさん:2005/12/25(日) 21:37:33
>Animal1[] animal = {new Shiba1(4),new Swan1(3)};
Swan1には数値を取るような引数を持ったコンストラクタはない。

メソッド名の間違い oe.getmessage → oe.getMessage();
152デフォルトの名無しさん:2005/12/25(日) 21:40:12
>>149
参考書に載っている問題を元に、年齢が高い時だけ例外をスローするように
自分が勝手に付け加えたのでそれは出来ないんですよ。
153デフォルトの名無しさん:2005/12/25(日) 21:43:50
>class Shiba1 implements Dog1 extends OldException{
普通はimplementsよりもextendsが先だし、OldExceptionを継承して何するの?
Shiba1もSwan1もそれ自体は例外ではないと思うが。

それと、151のはじめ2行は自分で気づいたようなので気にしないで。
154デフォルトの名無しさん:2005/12/25(日) 21:52:46
AnimalではgetAgeを定義して無い
155デフォルトの名無しさん:2005/12/25(日) 21:57:25
>>153ですよね・・。
さっき Shiba1とSwan1にextends OldException{は要らないことに気がつきました。
そしてTestクラスを
try{
Animal1[] animal = {new Shiba1(4),new Swan1(3)};
System.out.println("年齢を設定しました");
for(int j = 0;j < animal.length;j++){
System.out.println("年齢は" + animal[j].getAge() + "歳です。");

for(int i = 0; i < animal.length; i++){
animal[i].eat();
if(animal[i] instanceof Shiba1){
((Shiba1)animal[i]).run();
}else if(animal[i] instanceof Swan1){
((Swan1)animal[i]).fly();
}
}
}
}catch(OldException oe){
System.out.println(oe.getMessage());
}
}
}
に変えてみたところとりあえずエラーが一つになりました。
もう少しがんばってみます。
156デフォルトの名無しさん:2005/12/25(日) 22:04:43
AnimalやらDogやらは抽象クラスでいいんじゃない?
age,getAge()をAnimalが持ってやれば
157デフォルトの名無しさん:2005/12/25(日) 22:04:46
ヒント:try {}の中でAnimal1[] animalと書いてるけど、
これではブロックの中でしかアクセスできない。
158143:2005/12/25(日) 22:05:20
完成しました。
レスくれた方ありがとうございました!

>>154
ご指摘ありがとうございます。その通りでした。
そのアドバイスを修正していくと出来ました。
どうもありがとうございました。
159デフォルトの名無しさん:2005/12/25(日) 22:13:40
すみません
-128以上127以下の整数をランダムで10個ほど生成したいんですが、どうすればよいでしょうか?
160デフォルトの名無しさん:2005/12/25(日) 22:16:25
API読め
161デフォルトの名無しさん:2005/12/25(日) 22:18:41
(int)(Math.random() * 256.0) - 128;
162デフォルトの名無しさん:2005/12/25(日) 22:33:11
>>161
サンテェス
やっぱりint型ですよね
なにか特別な型でも使うのかと思ってました
163159:2005/12/25(日) 22:40:02
無事にできました
161ありがとう!
164デフォルトの名無しさん:2005/12/25(日) 22:54:25
すいません。質問です。

Java Image I/O は J2SE 1.4 からコアパッケージとなりましたが、
それ以前はオプションパッケージとして存在していたわけですよね?

それはバージョンいくつのときだったったのでしょうか?
165デフォルトの名無しさん:2005/12/26(月) 00:09:08
>>162
>>161は釣りだよ
166デフォルトの名無しさん:2005/12/26(月) 03:42:00
PNGやJPEGファイルに書き込まれている文字情報を
Javaではどうやって取り出したらいいんでしょうか?
167デフォルトの名無しさん:2005/12/26(月) 03:49:33
規格にっしたがってアクセスすればいいよ
168デフォルトの名無しさん:2005/12/26(月) 08:31:52
>>166
画像処理のとこで聞きな
169デフォルトの名無しさん:2005/12/26(月) 12:57:11
170デフォルトの名無しさん:2005/12/26(月) 16:39:28
独自でイベントリスナー的なものを作りたいのですが、
単純なサンプルプログラムないでしょうか?
171デフォルトの名無しさん:2005/12/26(月) 16:45:27
>>170
デザパタ本みたほうが分かりやすいと思う
172デフォルトの名無しさん:2005/12/26(月) 16:49:40
>>171
ビンボーなのでWebページでお願いします(;。;)
または、誰かソース書いてくれないかな…。
Buttonのソース読んだんですけど、ごちゃごちゃしてわかりませんでしたorz
173170:2005/12/26(月) 16:52:12
名前、付け忘れました。
えーと、interface作って、Lisner登録する側はそのinterfaceをimplementsしなきゃいけないということはわかるのですが…
174デフォルトの名無しさん:2005/12/26(月) 17:01:54
独自イベントを作る
独自イベントを発生させるクラスを作る
独自イベントを受取るクラスを作る

以上
175デフォルトの名無しさん:2005/12/26(月) 17:05:16
>>174
> 独自イベントを作る  
extends java.util.EventObject

> 独自イベントを発生させるクラスを作る
add~Listener
remove~Listener
fire~Listener

> 独自イベントを受取るクラスを作る
>>173

> 以上
176デフォルトの名無しさん:2005/12/26(月) 17:12:38
>>172
Swingのイベント周り見るとよく分かるよ
APIのソースよめというわけだ

Sunのコードは分かりやすいから大丈夫だと思う
177170:2005/12/26(月) 17:31:09
もうちょっと四苦八苦してみます。
ありがとうございます。
178デフォルトの名無しさん:2005/12/26(月) 17:45:17
>>170
JUnitのソース読め。
TestResult.java
TestListener.java
いいサンプルだ。
179デフォルトの名無しさん:2005/12/26(月) 17:50:18
立ち読みで十分だけどな
180デフォルトの名無しさん:2005/12/26(月) 18:06:51
int size;
byte[] data;
InputStream in=null;

try
{
in=Connector.openInputStream("scratchpad:///0;pos=0");
size=(int)(in.read()&0xFF);
data=new byte[size];
if(size>0)
{
in.read(data);
text=new String(data);
}

in.close();
}

Iアプリのプログラムなんですが
(in.read()&0xFF);の部分で何をやっているのか良くわかりません
read():10101010
&
0xFF :11111111
= :10101010
で&0xFFの意味がないと思うんですが
181デフォルトの名無しさん:2005/12/26(月) 18:09:13
いつも思うんだが、せめてtabを全角スペースに変換して
ソースを貼り付けて欲しいと思うのは俺だけか・・・。

インデントが無いのが激しく見づらい。
182デフォルトの名無しさん:2005/12/26(月) 18:10:03
まあ本気で答えてやろうってときは、エディタに貼り付けて
オートインデントさせるからどうでもいいな。
183デフォルトの名無しさん:2005/12/26(月) 18:13:32
>>180
-1 が返ってきた時に NegativeArraySizeException で落ちたくないとか。
書いてみた人に聞いてみんとわからんけど。
184デフォルトの名無しさん:2005/12/26(月) 18:15:57
>>180
unsignedが無いから
185デフォルトの名無しさん:2005/12/26(月) 18:28:24
>>184
InputStream#read() の戻り値は int型で 0 〜 255 にマップされる。
186デフォルトの名無しさん:2005/12/26(月) 18:29:21
unsignedが無いとなんで&0xFFが必要なんでしょうか?
in.read()で読み込んだビットが符号なし10000001(10進で129)だった場合
符号あり10000001(10進で-1)に変換するってことでしょうか?

ビット周りよくわかってないんで見当違いな事聞いていたらすみません
187デフォルトの名無しさん:2005/12/26(月) 18:38:58
よくわからんが携帯iアプリスレできいてみたらどうだろう

iモード携帯電話用Java(iアプリ) Part10
http://pc8.2ch.net/test/read.cgi/tech/1131603113/
188デフォルトの名無しさん:2005/12/26(月) 19:32:25
>>169
ありがとうございます
javax.imageio.metadata を使って読めました
189デフォルトの名無しさん:2005/12/26(月) 20:15:06
インデントは個人差が有るからな。ヲレインデント通して整形する癖を付けた方がいいよ。
190デフォルトの名無しさん:2005/12/26(月) 21:01:59
質問失礼します。
JComboBoxを使う時に

combo = new JComboBox();
combo.addItem("itemA");
combo.addItem("itemB");
combo.addItem("itemC");

という風に設定してコンボボックスを表示した時、
最初に追加したitemA以外を初期値として表示する事は可能でしょうか?
わかりにくい説明ですいません。


191デフォルトの名無しさん:2005/12/26(月) 21:19:16
>>190
API見ろ
192デフォルトの名無しさん:2005/12/26(月) 21:35:19
>>190
JComboBox#setSelectedIndex(int anIndex) または
JComboBox#setSelectedItem(Object anObject)
でできる
193デフォルトの名無しさん:2005/12/26(月) 21:36:03
みんなデバッガなに使ってんの?
194デフォルトの名無しさん:2005/12/26(月) 21:36:07
普通にAPIみればわかるな
難しいことは何にもないし
195デフォルトの名無しさん:2005/12/26(月) 21:42:03
あーみんなデバッガみたいな弱虫ツール使わねーのかー
だよなー
196デフォルトの名無しさん:2005/12/26(月) 21:46:16
みんな漢だよなぁ
いや、さすがムー板だ。此処だけは本物が揃ってるわ・・・
つーか根性入りまくりだ
統合開発環境とか金出して買う奴の顔が見たいって連中ばっかだよ
197デフォルトの名無しさん:2005/12/26(月) 22:06:16
gcにかかりやすくするため、close()やnullセットをしているのですが、
ちゃんとできていることを証明したいので、一括してチェックするツールはないのでしょうか?
198デフォルトの名無しさん:2005/12/26(月) 22:10:03
closeとnullセットは意味違うし

意味のないnullセットしてるやついたらぶん殴る
199デフォルトの名無しさん:2005/12/26(月) 22:12:25
nullセットなんてしても99%は無意味
200197:2005/12/26(月) 22:13:49
>>198
失礼しました。
close()はFindBugsでチェックできてました。

残るはnullセットができているかチェックしたいです。
201デフォルトの名無しさん:2005/12/26(月) 22:15:27
>>197
プログラマ辞めれば
202デフォルトの名無しさん:2005/12/26(月) 22:18:29
nullセットはすべきでない
203デフォルトの名無しさん:2005/12/26(月) 22:28:11
nullセットをしてはいけない理由はなんですか?
204デフォルトの名無しさん:2005/12/26(月) 22:40:03
>>203
Javaの理論と実践: ガベージコレクションとパフォーマンス
http://www-06.ibm.com/jp/developerworks/java/040312/j_j-jtp01274.html
グーグル先生に聞いて見つけたものだけど
205デフォルトの名無しさん:2005/12/26(月) 22:53:42
>>204
先生有り難うございます!
206デフォルトの名無しさん:2005/12/27(火) 00:30:46
nullにしなきゃいけないということは変数の使いまわし
これは推奨できない

意識的にnullいれるようなところはやめてかわりに変数のスコープを制限すべし
{ }
使ってね
207デフォルトの名無しさん:2005/12/27(火) 06:04:18
すいません、公開されているRDFのラッパークラスで何かいいものはありますでしょうか?
RSS用のライブラリはいっぱいあるようなのですが・・・。

あるデータのメタデータをちょっとRDFで吐いて読みたいだけなので、
標準ライブラリのXMLクラスを使ってゴリゴリ書いてもいいのですが、
ちゃんと動いている奴があるのならそっちを使った方がいい気がするので。
208197:2005/12/27(火) 07:12:58
>>206
スコープ制限はやっています。
使い回しはしていないです。

アプリサーバ上で動いてる分なんですが、たまにパンパンになって、
gcかかりまくりレスポンス悪くなるので。
209デフォルトの名無しさん:2005/12/27(火) 07:28:48
アプリ構造見直せ
210デフォルトの名無しさん:2005/12/27(火) 12:30:48
>>208

鯖のパフォーマンス調整の問題なのになんでnullセットという思いつきしたのかが気になるところだ
211デフォルトの名無しさん:2005/12/27(火) 15:50:37
nullを入れた方がGCが効率的にメモり回収してくれるから。
212デフォルトの名無しさん:2005/12/27(火) 15:57:23
>>211
そんなことねぇよ
213デフォルトの名無しさん:2005/12/27(火) 16:00:35
参照カウント制だから変わらないよねぇ。
どっちかといえば、プログラマーの参照消し忘れ防止効果じゃね?
214デフォルトの名無しさん:2005/12/27(火) 16:05:13
ときどきGC.collect()をしとけばよくね?
215デフォルトの名無しさん:2005/12/27(火) 16:15:35
>>214
ん?
216デフォルトの名無しさん:2005/12/27(火) 16:35:05
>>213
参照カウントだけでやったら循環参照に対応できないし、
マルチスレッドを前提にすると、参照カウンタにアクセスするのに
排他処理が必要になるから下手すると mark/sweep より遅くなるかもよ。
217デフォルトの名無しさん:2005/12/27(火) 16:39:17
>>214
C# と勘違いしてるのかな?
218デフォルトの名無しさん:2005/12/27(火) 16:42:28
javaにはないの?
219デフォルトの名無しさん:2005/12/27(火) 16:43:47
System.gc()だが
結局は>>204
220デフォルトの名無しさん:2005/12/27(火) 17:15:46
鯖は世代別GCやってもセッションがどんどん旧世代にいくからねぇ
並列GCやってないとひどいことにはなる

nullセットしてたらその会社からはもう仕事とらんけどな
221デフォルトの名無しさん:2005/12/27(火) 17:55:06
222デフォルトの名無しさん:2005/12/27(火) 18:01:34
もうIBMもNECもあふぉだな
223デフォルトの名無しさん:2005/12/27(火) 18:05:57
IBMはSWT見ればひどさが分かる希ガス
224デフォルトの名無しさん:2005/12/27(火) 18:14:53
>>204の記事をじっくり読んでしまったが、一番下に要約があって少し悲しくなった。
225デフォルトの名無しさん:2005/12/27(火) 19:24:21
スレ違い覚悟で質問です。
Javaをインストールできません。
Winなのでインストーラ版を落として実行すると、異常終了してしまいます。
試しにMSIのバージョンを3にしてみたら、インストール画面がでてくるようになったのですが、コンポーネントの選択みたいなとこから「次へ」を押した瞬間に異常終了します。
何か心当たりがある方はいらっしゃいますか?
(JDK/1.5.0をWinXPにインストールしようとしてます。)
226デフォルトの名無しさん:2005/12/27(火) 19:27:25
WinXP がそもそも正常稼動しているのかどうかが謎。
227デフォルトの名無しさん:2005/12/27(火) 19:28:17
ダウンロードに失敗してないか?
228デフォルトの名無しさん:2005/12/27(火) 19:32:44
nullの話なんだけどさ
2重のclose気持ち悪いからnull代入してfinallyでは実行しないようにするのと、finally以外にclose書かないのどっちが良いと思う?
229225:2005/12/27(火) 19:33:50
>>226-227
即レスどうもです!
XPは2年間以上まともに動いてます。(逆にそのせいで色々インストールしすぎたのが原因?)
ダウンロードは何度かやり直してみたのですが、毎回同じ結果に終わってしまいます。
通常はこんなこと起こりえませんよね・・・?
230デフォルトの名無しさん:2005/12/27(火) 19:42:38
>>228
finallyで実行しないってなんだ?
普通はfinally以外でcloseは書かない
231デフォルトの名無しさん:2005/12/27(火) 19:44:25
>>229
WindowsUpdateしてる?
232デフォルトの名無しさん:2005/12/27(火) 20:10:47
finallyの中にtry~catch書くときもち悪くて

FileReader fr = null;
try {
  fr = new FileReader("test.txt");
  int i = 0;
  while ((i = fr.read()) != -1) {
    System.out.print((char)i);
  }
} catch(IOException e) {
  e.printStackTrace();
} finally {
  try {
    if (fr != null) {
      fr.close();
    }
  } catch(IOException e) {
    e.printStackTrace();
  }
}
233デフォルトの名無しさん:2005/12/27(火) 20:19:48
>>232
どの変が気持ち悪いかしらんけど
普通のコードでしょ?

これ以外の書き方はないと思うけど

234デフォルトの名無しさん:2005/12/27(火) 21:19:18
>>221
null入れるのbeaの人から教わった。
235デフォルトの名無しさん:2005/12/27(火) 21:27:52
みんな聞いてくれ

俺って天才かもしれん
236デフォルトの名無しさん:2005/12/27(火) 21:28:23
beaもあんな宣伝してるようじゃ死んでるだろ
237デフォルトの名無しさん:2005/12/27(火) 21:52:02
>>235
聞いてやるから言ってみろ
238デフォルトの名無しさん:2005/12/27(火) 22:50:18
java始めて6日のものです…。
個数を入力したら自動的に合計金額を計算。ただし,個数に数字以外の文字列を入力した場合は,赤文字に変更して間違い個所がわかるようにする
ようなものを作っているのですが、とにかく動きません。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1356.txt
でソースを表示して間違い箇所の指摘をお願いします。
239デフォルトの名無しさん:2005/12/27(火) 22:55:17
>>238
それJavaじゃないです。。
240デフォルトの名無しさん:2005/12/27(火) 22:56:33
こっちかな。
それはJavaじゃなくてJavaScriptという別物なのね。

Web制作
+ JavaScript の質問用スレッド vol.44 +
http://pc8.2ch.net/test/read.cgi/hp/1134536221/
241デフォルトの名無しさん:2005/12/27(火) 23:08:52
>>232

try {
 FileReader fr = new FileReader("test.txt");
 try {
  int i = 0;
  while ((i = fr.read()) != -1) {
   System.out.print((char)i);
  }
 } finally {
  fr.close();
 }
} catch (IOException e) {
//e.printStackTrace();
 throw new IllegalStateException(e);
}
242デフォルトの名無しさん:2005/12/27(火) 23:51:45
>>241の書き方だとクローズ前に処理しなくちゃいけないとき駄目じゃないか?
243デフォルトの名無しさん:2005/12/28(水) 00:22:14
>>211
それはよくある誤解だよ。
昔はそれで通じたけど。
nullを入れたらかえってパフォーマンス低下に繋がることも。

詳しくは dw ガーベッジコレクタ null でぐぐって
244デフォルトの名無しさん:2005/12/28(水) 00:32:14
>>242
何を処理しなくちゃいけないの?
245デフォルトの名無しさん:2005/12/28(水) 00:32:34
あととにかくfinalってのも1.4以上使っていてやるやつはぶんなぐる
1.3.1でもぶんなぐるけど
246デフォルトの名無しさん:2005/12/28(水) 00:33:10
>>244
ものによっちゃ例外時にロールバックとか処理しなきゃいけないようなこともあるでしょ
247デフォルトの名無しさん:2005/12/28(水) 00:49:00
>>245
どゆこと?
248デフォルトの名無しさん:2005/12/28(水) 00:51:14
>>247
昔はfinalつけるかつけないかでパフォーマンスが変わっていた
finalをとにかくつけて現場を混乱させていたやつもいたということだ
249デフォルトの名無しさん:2005/12/28(水) 00:52:30
今のfinalは定数化やメソッド内変数を参照する名無しクラスメソッドとかのためにしか使わないね
250デフォルトの名無しさん:2005/12/28(水) 00:57:23
ああ、そういうことか。finally の流れでいきなり final が出てきたから混乱したっス。
…… Immutable なオブジェクト作るために final 使いまくった記憶アリ。許せ OTL
251デフォルトの名無しさん:2005/12/28(水) 00:58:17
組み込みだと未だにfinalを気にする人が残っている。しかし
この手の分野でも、finalを付けても動作に影響がない場合には、
自動的にfinalを付けるようコンパイル後にバイトコードを再構築
するポストプロセッサがあって、ソースレベルでfinalを意識する必要はなくなってきている。
252デフォルトの名無しさん:2005/12/28(水) 01:05:52
いまどきの VM は、final つけなくてもインライン化し、
ポリモーフィズムの必要性が出てきたところでインタプリタに戻す
というような話を、少し昔に聞いた覚えがある。

が immutable なオブジェクトや、継承を想定して作ったクラス以外は、
オブジェクトの整合性を守るために final 使いまくりなのではないのか?

SWT のように、「final じゃないけど、継承禁止」とか
文書化する手もあるだろうが、これって、普通なのだろうか。
253デフォルトの名無しさん:2005/12/28(水) 01:10:18
>>251
組み込みでfinalやるとメモリ余分に食うと聞いたが。

finalは誤って値を代入することを防ぐことができる利点がある。
メソッド引数にも使える。

finalをよく使う例は不変クラスの作成かな

254デフォルトの名無しさん:2005/12/28(水) 01:26:21
try {
 FileReader fr = new FileReader("test.txt");
 try {
  int i = 0;
  while ((i = fr.read()) != -1) {
   System.out.print((char)i);
              ~~~~~~
               ↑何これ?
255デフォルトの名無しさん:2005/12/28(水) 01:27:27
オーバロードメソッドがあるから(char)にキャストしなくてもいいといっておくのもええんでない?
256デフォルトの名無しさん:2005/12/28(水) 01:27:33
アルファベッドで出力するキーワードだろ
257デフォルトの名無しさん:2005/12/28(水) 01:27:56
という言い方は誤解を招くけど。
258デフォルトの名無しさん:2005/12/28(水) 08:11:20
http://up.isp.2ch.net/up/640b16bff2ae.zip
この中のk.classというファイルをデコンパイルしようといろいろ試しているのですが、どうしてもできんとです。
できる方お願いします
259デフォルトの名無しさん:2005/12/28(水) 08:45:44
>>254
(char)つけないと
あ→12354
い→12356
のように出力されました。
260デフォルトの名無しさん:2005/12/28(水) 12:05:01
以下のようなTelnetのサンプルを使ってLinux(FedoraCore2)にaaaというディレクトリを作りたいのですが、作れません。
どこが悪いのでしょうか?

whoコマンドでユーザを確認できるのでログインまでは上手くいっているようです。
もしかしてJavaじゃなくてLinuxの方の設定だったりするかも知れませんが許してくださぃ。。

public static void main(String[] arg) throws Exception {

String user = "***";
String password = "***";
String prompt = "\\s";

// クライアントの生成
TelnetClient telnet = new TelnetClient();

// サーバに接続
telnet.connect( "*.*.*.*" );
261デフォルトの名無しさん:2005/12/28(水) 12:06:50
// 通信用の入出力ストリームの生成
InputStream istream = telnet.getInputStream();
OutputStream ostream = telnet.getOutputStream();
Reader reader = new InputStreamReader( istream );
Writer writer = new OutputStreamWriter( ostream );

// 認証の実行
readMessage(reader, ".*login: $");
writer.write( user + "\n" );
writer.flush();
readMessage(reader, "Password: $");
writer.write( password + "\n" );
writer.flush();

// プロンプト出力待ち
readMessage(reader, ".*" + prompt);

// コマンド実行
writer.write( "mkdir aaa\n");
writer.flush();

// ネットワークの切断
telnet.disconnect();
}
262デフォルトの名無しさん:2005/12/28(水) 12:08:22
>>260
その情報で回答者が回答できると考えるあなたの脳の作りを疑います。

TelnetClientって何よ。
263デフォルトの名無しさん:2005/12/28(水) 12:16:23
>>262さん
説明不足でした。
Commonsnet内のクラスだと思われます。
264デフォルトの名無しさん:2005/12/28(水) 12:57:27
作ったファイルでローカルのHTMLを呼ぼうとしたんですが
下のメッセージがでてしまうんです。

java.lang.IllegalArgumentException
at sun.net.www.ParseUtil.decode(Unknown Source)
at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
at java.net.URL.openConnection(Unknown Source)
at sun.applet.AppletPanel.getAccessControlContext(Unknown Source)
at sun.applet.AppletPanel.getClassLoader(Unknown Source)
at sun.applet.AppletPanel.createAppletThread(Unknown Source)
at sun.applet.AppletPanel.init(Unknown Source)
at sun.plugin.AppletViewer.appletInit(Unknown Source)
at sun.plugin.viewer.LifeCycleManager.initAppletPanel(Unknown Source)
at sun.plugin.viewer.WNetscapePluginObject$Initer.run(Unknown Source)

同じ状況に直面した人いませんか?
265デフォルトの名無しさん:2005/12/28(水) 12:59:05
>>264
file:で始めてる?
266デフォルトの名無しさん:2005/12/28(水) 16:28:21
>>264
URLはどんな文字列だ?
267デフォルトの名無しさん:2005/12/28(水) 16:51:50
doubleを任意の小数点以下桁数で丸めるにはどうすればいいですか?
268デフォルトの名無しさん:2005/12/28(水) 16:57:46
>>267
double a = 2.342598462389;
double n = 3;
double digit = Math.pow( 10, n );
a = ((int)(a * digit + 0.5))/digit;
269デフォルトの名無しさん:2005/12/28(水) 17:08:00
>>268
ありがとうございます。
270264:2005/12/28(水) 18:02:35
http://localhost/%90V%82%b5%82%a2%83t%83H%83%8b%83_/

です。2バイト文字を前提として開発してるので、
フォルダ名変更だけは避けたいです。
271デフォルトの名無しさん:2005/12/28(水) 18:07:49
>>270
localhost で HTTPD は動いてますか?
272デフォルトの名無しさん:2005/12/28(水) 18:13:50
>>268
round()使えよ。
273197:2005/12/28(水) 20:50:39
明示的null代入していたところをすべてやめました。
いろいろありがとうございました。
アプリサーバも後々変更予定。
274デフォルトの名無しさん:2005/12/28(水) 22:14:30
PERLの
if ($str =~ /(abc|def)/) { print $1; }
みたいなことをRegexで行うにはどうしたらよいのでしょうか?
275デフォルトの名無しさん:2005/12/28(水) 22:44:07
Pattern p = Pattern.compile("(abc|def)");
Matcher m = p.matcher(str);
if (m.find()) {
System.out.println(m.group(1));
}
276これでいいや:2005/12/28(水) 22:49:21
Matcher m = Pattern.compile("(abc|def)").matcher(str);
if (m.find()) {
System.out.println(m.group(1));
}
277デフォルトの名無しさん:2005/12/28(水) 22:56:36
わざわざ例に似せてくれてありがと。
割とそのままいけるみたいですね。
リネームツールでもつくろかしら。
278デフォルトの名無しさん:2005/12/28(水) 22:57:01
if(Pattern.compile("(abc|def)").matcher(str).find()) {
System.out.println(m.group(1));
}
279デフォルトの名無しさん:2005/12/28(水) 22:59:36
java.util.regexのgroupは0からじゃなかった?
280デフォルトの名無しさん:2005/12/28(水) 23:00:20
Javaアプレットに関してわからない事があります。
HTMLで開いてそこにあるボタンを押したらMySQLの情報操作を行うというもので
今回は試しにDELETEボタンを配置して、そのボタンを押したら
MySQLのDELETE文が実行されるというものを作ってみました。
アプレットを使わないで行う基本文での操作はうまくできましたが
今回はHTMLとボタンは無事に表示されてもボタンを押すとエラーが出て
先へ進めなくなってしまいました。
何か分かる事があれば教えてください。
281デフォルトの名無しさん:2005/12/28(水) 23:01:24
import java.sql.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class MySQL extends Applet implements ActionListener {
Button delete1;
public void init(){
delete1 = new Button("ボタン");
add(delete1);
delete1.addActionListener(this);}
public void actionPerformed(ActionEvent ae){
try {
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS";
Connection con = DriverManager.getConnection(url,"root","root");
Statement stmt = con.createStatement();
String sql = "DELETE FROM test "+"WHERE a=1";
int result = stmt.executeUpdate(sql);
System.out.println(result + "行削除");
sql = "SELECT * FROM HELLO_WORLD_TABLE";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int a = rs.getInt("a");
System.out.println(a);}
stmt.close();
con.close();}
catch (Exception e) {
e.printStackTrace();}
}
}
282デフォルトの名無しさん:2005/12/28(水) 23:02:00
java.lang.ExceptionInInitializerError
at com.mysql.jdbc.Connection.<init>(Connection.java:1175)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java
:266)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at MySQL.actionPerformed(MySQL.java:22)
at java.awt.Button.processActionEvent(Button.java:382)
at java.awt.Button.processEvent(Button.java:350)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Caused by: java.lang.RuntimeException: Unable to initialize character set mappin
g tables
at com.mysql.jdbc.CharsetMapping.<clinit>(CharsetMapping.java:73)
... 15 more

以上です。
283デフォルトの名無しさん:2005/12/28(水) 23:19:05
>>279
0はマッチ文字列全体だよ
284デフォルトの名無しさん:2005/12/28(水) 23:23:16
>>280
ソースを使え。
285デフォルトの名無しさん:2005/12/29(木) 11:58:43
いまさーSunのサイトからJDKがダウンロードできないんだけど… 俺だけ?
286デフォルトの名無しさん:2005/12/29(木) 12:35:41
>>285
java.sun.com の jdk 5.0 update 6 落とせたぞ。
287デフォルトの名無しさん:2005/12/29(木) 12:52:48
落とせない
288デフォルトの名無しさん:2005/12/29(木) 12:55:03
ダウンロード先のアドレスが192.18・・・になってるんだけど
これLAN側ネットワークアドレスじゃね?168だったら間違いないだろうけど
そんなアドレス存在するのかなWhoisもこねーし
289デフォルトの名無しさん:2005/12/29(木) 12:56:28
>>228
w
290288:2005/12/29(木) 12:59:45
291デフォルトの名無しさん:2005/12/29(木) 13:03:25
>>288
192.18.ddd.ccc はプライベートアドレスじゃないぞ。
nslookup で逆引きもできるけど。
292デフォルトの名無しさん:2005/12/29(木) 13:35:34
馬鹿は放置
293デフォルトの名無しさん:2005/12/29(木) 13:36:57
JREが落とせないぞ
294デフォルトの名無しさん:2005/12/29(木) 13:39:45
404
295285:2005/12/29(木) 13:44:27
俺の環境だとJ2SE SDKも落とせないんだ。
j2sdk-1_4_2_10-linux-i586.binが欲しくてダウンロードを試してみてるんだけど。。

でも285を書いた当時はダウンロードのリンクをクリックすると
404が返ってきてたんだけど、
今は応答が来ないようになった。もうちょっと待ってみるよ。
296デフォルトの名無しさん:2005/12/29(木) 15:43:59
ああ、逝けないね
でも漏れはこの前ダウンロードしたから困ってない
こういうのうpろだに上げたらまずいんだよね?
297デフォルトの名無しさん:2005/12/29(木) 15:52:00
止めといた方が良い
298デフォルトの名無しさん:2005/12/29(木) 18:21:38
サードパーティのLook And Feelってないの?
誰でも作れるようなものではないのか?
ライセンシーにならんと作れないとか?
299デフォルトの名無しさん:2005/12/29(木) 18:31:44
>>298
普通にあるでしょ。

俺はこれ↓とか結構気に入ってる
http://substance.dev.java.net/
300デフォルトの名無しさん:2005/12/29(木) 18:58:20
>>299
おおぁさんくす!!
301デフォルトの名無しさん:2005/12/29(木) 18:58:57
302デフォルトの名無しさん:2005/12/29(木) 19:45:00
303デフォルトの名無しさん:2005/12/29(木) 20:42:54
public abstract class Animal
public class Snake extends Animal
public class Lion extends Animal

があるとします。
ここで、Animalをランダムに選別して、吠えることができるなら、吠えるようにするという機能を付与したいとします。
私は、下の二つのどちらかになると思うのですが、どちらが良いのでしょうか?

(1)interfaceを作り、Lionでimplementsする
public interface barkable() {
 public void bark();
}

(2)Animalに下記を追加し、Lionでオーバーライドする
public boolean isBarkable() { return false; }
public void bark() { throw new UnsupportedOperationException(this.getClass().getName() + " can't bark! "); }
304デフォルトの名無しさん:2005/12/29(木) 21:08:32
ケースバイケース
305デフォルトの名無しさん:2005/12/29(木) 21:24:09
ばかぶる?
306デフォルトの名無しさん:2005/12/29(木) 21:34:13
俺なら
そのAnimalが吠える事が可能かという属性が必要なら、Animalクラスに持たせる。
Animalかどうかに関係なく、ただ単に吠える事が可能かどうかならinterfaceにする。
この場合、Animalでない(?)ナベツネも吠えることが可能になる。
307デフォルトの名無しさん:2005/12/29(木) 21:45:19
JTextFieldに文字を入力することができません。どうしたら入力できるようになるのでしょうか?

JWindow w = new JWindow();
w.add(new TextField());
w.setSize(200, 50);
w.setVisible(true);
308デフォルトの名無しさん:2005/12/29(木) 21:48:33
>>307
JWindowでなくJPanelにのせよう
309デフォルトの名無しさん:2005/12/29(木) 21:58:34
やってみましたが、これでもできませんでした。

JWindow w = new JWindow();
JPanel p = new JPanel();
p.add(new TextField());
w.add(p);
w.setSize(200, 50);
w.setVisible(true);
310デフォルトの名無しさん:2005/12/29(木) 22:00:43
なんで JTextField 使わずに TextField 使ってるんだ?
311デフォルトの名無しさん:2005/12/29(木) 22:04:43
この前Animal,Bird,Dogクラスで悩んでたやつか?
312307:2005/12/29(木) 22:05:30
>>310
Jを入れるのを忘れてました。でも、JTextFieldにしても入力できません。
313デフォルトの名無しさん:2005/12/29(木) 22:08:27
JWindowのかわりにJFrameつかったら?
314デフォルトの名無しさん:2005/12/29(木) 22:09:20
>>309
p..getContentPane().add(new TextField());

ふつうはこうじゃないの?
315デフォルトの名無しさん:2005/12/29(木) 22:20:30
>>303
どっちでも良いけど
(2)で属性追加する必要あるの?
Animalは全て吠えるを持つ事にして吠えないものは何もしないようにすれば良いんじゃない?
316伝説新人タクシ:2005/12/29(木) 22:38:57
>>309
Fieldの幅が小さいから、入力できてないように見えてるとか?
TextField("", 10)で大きくなるけど。
それとも、クライアント領域いっぱいに大きいか。
ttp://www.javadrive.jp/tutorial/
ここ見てSwingやったら?
とりあえずFieldは表示はされてるの?
317デフォルトの名無しさん:2005/12/29(木) 22:59:34
ぁい、先生、質問です。

[1] SJC の質問はこのスレでOK?
[2] SJC-A, SJC-P の合格ラインって、正答率何%くらい?
[3] 在学中には取っておきたいんだけど、A と P どっち取るべき?
[4] ぶっちゃけ、推奨コース受けなくても平気?
318デフォルトの名無しさん:2005/12/29(木) 23:04:18
>>317
Sun認定Java資格 実用情報 3 【SJC-P用】
http://pc8.2ch.net/test/read.cgi/prog/1117031782/
319デフォルトの名無しさん:2005/12/29(木) 23:07:35
お、すまん。ム板だけしか探してなかったよ。ありがとう。
320303:2005/12/29(木) 23:21:06
>>306
吠えることができるクラスが、Animalの範囲に収まるかどうかが大事ということですね。
無闇にinterfaceにすると、汎用性は高まるけど、
TomatoにもPhilosophyにも吠えさせることが可能になってしまうから、
きっちりJavaDocコメントを書くなどの注意が必要になりますね。
つまり、>>304の仰るケースバイケースってことですね。

>>305
英語はなんとなく動詞+ableで○○できるって意味になると思ったので、
そんな名前にしてみました。

>>311
はい。先般はお世話になりました。

>>315
吠えない生き物が吠え(ようとし)たら、それは異常事態で例外扱いだと思うんです。
実装者のミスというか。
前もってif文で分岐しておくべきだと思っています。

皆さん、どうもありがとうございます。
321デフォルトの名無しさん:2005/12/29(木) 23:28:52
例外にするか、何もせずに返るかは、他のクラスとの兼ね合いで考えたほうが良いよ。
やっぱりケースバイケース。
322デフォルトの名無しさん:2005/12/29(木) 23:36:55
何でもif文で分けるのは感心できない
同じような分岐がプログラム上で何回も出てくるのは宜しくないし
デザインパターンの何かが使えるんじゃないとか
デザパタについて余り詳しくないのに言ってみるテスト
323デフォルトの名無しさん:2005/12/29(木) 23:36:58
すみません。
以前別のサイトで質問した内容なのですが、
回答がなかったので質問させてください。
eclipseではjarファイルの作成ができました。
フリーのJava Studio Enterprise 8で、jarファイルを作成しようとすると、
作成できても、jarファイルをダブルクリックで起動しようとすると
「Could not find the main class. Program will exit.」と表示されます。
どこかのフォーラムでも同様のことが質問されていました。
windowsxpでの開発ですが、これについての解決策はありませんでしょうか?
素人の質問で申し訳ありませんが、よろしくお願いします。
324デフォルトの名無しさん:2005/12/29(木) 23:38:49
マニフェストは?
325デフォルトの名無しさん:2005/12/29(木) 23:38:54
つ[ MANIFEST.MF ]

……綴り合ってたっけ?
326303:2005/12/30(金) 00:02:53
>>321 >>322
確かに、if文が増えてしまうと見づらくなるきらいはありますね・・・。
ケースバイケースで、状況によって考えてみます。
デザインパターンは積ん読になってる本があるので、
それで調べてみます。
327デフォルトの名無しさん:2005/12/30(金) 00:22:12
例外をifの代わりにする奴はあほ
328デフォルトの名無しさん:2005/12/30(金) 00:24:10
唐突だな
329デフォルトの名無しさん:2005/12/30(金) 00:33:09
if を例外の変わりにするのはアリだけどな。
330デフォルトの名無しさん:2005/12/30(金) 00:46:42
>>324様、>>325様、ありがとうございます。
意図する返事と違うかもしれませんが、
jarファイルを回答して、META-INFフォルダのMANIFEST.MFの中身を見ますと、

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.2
Created-By: 1.5.0_04-b05 (Sun Microsystems Inc.)
Main-Class: javaapplication14.Main
X-COMMENT: Main-Class will be added automatically by build



となっていましたが、あまりよくわかっていません。
Java Studio Enterpriseが自動的にjarファイルに付加したものです。
後、ごめんなさい。
いつの間にか、システムが不調になってしまい、
JavaVirtualMachineが起動できなくなっていました。
ちょっとなんだかよくわからなくて焦ってしまいました。
OSの再インストールをしなおして、もう一度やり直してみようと思います。
もしかすると、Java開発環境を入れすぎたのかもしれません。
すみませんでした。
331デフォルトの名無しさん:2005/12/30(金) 05:41:16
>>295
j2sdk-1_4_2_10はJISAutoDetectにバグがあって
なんか知らないけどClassCastException投げるから
公開中止とか。
j2sdk-1_4_2_09にしとけば?
332デフォルトの名無しさん:2005/12/30(金) 07:30:13
>>331
いや、どうせコンパイルにしか使わないのでそういうのは平気です。
昨晩、再度ためしたところ落とせたのでOK
333307:2005/12/30(金) 09:24:31
>>313
JFrame使ったらできましたが、JWindowでできないのはなぜでしょうか?
334デフォルトの名無しさん:2005/12/30(金) 09:26:04
JFrameとJWindowの違い判ってる?
335307:2005/12/30(金) 09:37:17
本にタイトル(ボーダー)があるかないかだと書いてあったのですが、それ以外のことはわかりません。
336デフォルトの名無しさん:2005/12/30(金) 10:25:55
ArrayIndexOutOfBoundsException通称アレックスが、あるスレッドの終わりで発生します。
デバッガが止まってるのは最後の } で、Arrayとは関係ないところなんです。
なんででしょう? だれかエスパーの人おねがい・・
337デフォルトの名無しさん:2005/12/30(金) 10:30:09
それじゃどうにもならん
スタックトレースと該当ソース晒せ
338デフォルトの名無しさん:2005/12/30(金) 10:43:56
.NETだとデバグが止まっている矢印の一つ上のステートメントで
例外が出てるんだけどね
339デフォルトの名無しさん:2005/12/30(金) 11:50:01
脇にそれますが、
>>336の通称アレックスというのはJava業界ではメジャーな用語ですか?
ぐぐる先生に聞いたところでは皆無ですた
340デフォルトの名無しさん:2005/12/30(金) 12:08:21
アレックスと言えばRX-78-NT1だろ
341デフォルトの名無しさん:2005/12/30(金) 12:08:46
メジャーじゃない、2ちゃんだけだろ
ArrayIndexOutOfBoundsExceptionなんて
NullPointerExceptionに比べたら遙かに発生しにくいし
342デフォルトの名無しさん:2005/12/30(金) 14:08:35
下のプログラムでは実行時間に2倍以上の開きがあります。
変数を初期化するかどうかの違いですが、実行時間が
こうも開くのはどうしてでしょうか?
public static void main(String[] args) {
final int SIZE = 1 << 15;
final int LOOP = 1000;
long start, end;
List<Integer> list = new ArrayList<Integer>(SIZE);

for (int i = 0; i < SIZE; i++) {
list.add(Integer.valueOf(i));
}

start = System.currentTimeMillis();
Integer[] integer1;//nullで初期化しない
for (int j = 0; j < LOOP; j++) {
integer1 = list.toArray(new Integer[list.size()]);
}
end = System.currentTimeMillis();
System.out.println(end - start);

start = System.currentTimeMillis();
Integer[] integer2 = null;//nullで初期化する
for (int j = 0; j < LOOP; j++) {
integer2 = list.toArray(new Integer[list.size()]);
}
end = System.currentTimeMillis();
System.out.println(end - start);
}
343デフォルトの名無しさん:2005/12/30(金) 14:17:20
>>342
実行するのが面倒だから聞くけど、後者の方が早いの?
integer1とinteger2の初期化の方法を逆にしても結果は同じ?
344342:2005/12/30(金) 14:55:05
前者の方が早いです。
初期化の方法の方法を逆にしても
nullで初期化しないほうが早いです。
345デフォルトの名無しさん:2005/12/30(金) 15:14:38
ほんとだ
この命令が違うだけなんだけどね
aconst_null
astore
346デフォルトの名無しさん:2005/12/30(金) 15:40:36
>>342
ちなみに、mustang の clientVM だと殆ど変わらない。
serverVM だと前者のがちょっとだけ速いみたいだけど。
347デフォルトの名無しさん:2005/12/30(金) 16:26:37
俺も実行するのがめんどくさいから邪推だけど
計算結果の integer1 や integer2 がその後使われてないから
何かしらの最適化が行われてるんじゃないかな。

初期値が与えられていない方は、その値を確定するために
ループを回しているとか。

計算結果を表示させるようにすれば、同じ速度になったりしない?
348デフォルトの名無しさん:2005/12/30(金) 16:52:42
InputStreamを使ってテキストファイルから以下のような文字列を読み込んで
";"ごとに分割するプログラムを組んだのですが

1:AAAAA;
2:BBBBB;

分割すると
1:AAAAA;
改行文字2:BBBBB;
となってしまいます。改行文字を除去するにはどうしたらいいでしょうか?
349デフォルトの名無しさん:2005/12/30(金) 16:54:33
どうやって分割してるの?
350デフォルトの名無しさん:2005/12/30(金) 17:00:13
>>348
InputStream 使わずに BufferedReader 使えば?
351デフォルトの名無しさん:2005/12/30(金) 17:16:25
>349
substringとindexOfを使って先頭から";"が見つかったところまで(";"を含む)分割
2週目は一行目の";"の次を先頭に";"が見つかったところまで(";"を含む)分割

ってやっています

>350
書き忘れてたんですがIアプリなんで
BufferdReaderはないです;

352デフォルトの名無しさん:2005/12/30(金) 17:27:12
>>351
;の次の改行は取り除けばいいんじゃない?
substringとindexOf使って
353デフォルトの名無しさん:2005/12/30(金) 17:28:47
改行コードと「;」のタイミングは不規則?
348にあるサンプルデータ列だと改行で切り分けて
とってくりゃいいように見えるんだが

そうじゃないなら文字列から改行コード抜いて
文字列再生成するような関数自前で作るとか

StringTokenizerで改行とセミコロン両方で区切るようにして
末尾の区切り文字判定で処理かえるとか
iアプリでStringTokenizer使えるかどうかはしらんが
354デフォルトの名無しさん:2005/12/30(金) 17:39:32
>352

2行目をprintln("2::"+2行目)で表示すると

2::
2行目

と表示されるので
2行目の文字列は \n2:BBBBB; だと考えて
2行目 = 2行目.subString(1,2行目の長さ);
とやった後にprintln("2::"+2行目)と表示しても

2::
2行目

となって改行文字が消えないんですが何か間違ってますか?;

>353
改行は規則的に出てくるのでやってみます
355デフォルトの名無しさん:2005/12/30(金) 17:50:24
>>354
\r\n
356デフォルトの名無しさん:2005/12/30(金) 17:56:49
>355
2文字だったんですね・・・・orz
これならなんとか自己解決できそうです。
みなさん、レスありがとうございました。
357デフォルトの名無しさん:2005/12/30(金) 18:10:15
>>340
ガンダム業界ですね
>>341
了解です。恥書かずに済みます
358デフォルトの名無しさん:2005/12/30(金) 18:37:59
>>356
Windows 上でテキストファイルを作っている場合は \r\n
Linux 上でテキストファイルを作っている場合は \n
Mac 上でテキストファイルを作っている場合は \r

だったっけ、うろおぼえ

いずれにせよ、テキストファイルをどうやって作るかに依存
とりあえず、\r と \n を消しておけばいいのかな
359デフォルトの名無しさん:2005/12/30(金) 19:30:11
ちょっと聞きたいんですが、
アプレットの大きさを動的に動かせるプログラムを教えて欲しいのです。
360デフォルトの名無しさん:2005/12/30(金) 19:53:20
>>359
アプレットから別ウィンドウ立ち上げたら?
361デフォルトの名無しさん:2005/12/30(金) 20:21:18
アプレットの大きさってHTMLで指定されるんじゃないの?
362デフォルトの名無しさん:2005/12/30(金) 21:52:22
>>260 >>263
Jakarta Commons NetやAntのtelnetタスク、sshタスクを使いたくなってしまう。
勉強のために自作するというのも悪くは無いが。
363デフォルトの名無しさん:2005/12/30(金) 23:05:29
javaの速度は二の次でいいんじゃねーか?
破棄されずに誤動作起きるよりnull入れてこうよ

remove呼んだのにあんじゃん、とか勘弁してよ
364デフォルトの名無しさん:2005/12/30(金) 23:19:34
>>363 それはさすがに馬鹿すぎ。
365デフォルトの名無しさん:2005/12/30(金) 23:21:12
>>362
そのCommons使ってるんじゃない?
366デフォルトの名無しさん:2005/12/30(金) 23:21:49
>>363
null の代入が必要なときに限り null を入れるべき
手抜きする人とは一緒に仕事したくない
367デフォルトの名無しさん:2005/12/30(金) 23:22:32
>>363
企業のコーディング規約は未だに
「使い終わった変数にはnullを代入している:○、×」
みたいなのはあるね
368デフォルトの名無しさん:2005/12/30(金) 23:35:05
>>367
二択クイズみたいなコーディング規約だな
369デフォルトの名無しさん:2005/12/30(金) 23:51:10
ああぁ、コーディングチェックシートだ、それは
規約の方には「代入する」って指示が書かれてる
370デフォルトの名無しさん:2005/12/31(土) 03:21:16
通常 main メソッドから動くクラスで new X() とすると
以下のどのクラスローダが使われるのでしょうか?

Thread.currentThread().getContextClassLoader()
ClassLoader.getSystemClassLoader()
ClassLoader.getSystemClassLoader().getParent()

Class.forName()メソッドは、2番目のクラスローダが使われると
記述されているので、2番目なのかなと思っているのですが・・ちょっと
自信なしです。

環境は Sun J2SDK 1.4.2 です。
371デフォルトの名無しさん:2005/12/31(土) 04:18:07
自己レスです・・
rt.jar内のクラスはブートストラップローダ(3番?)、CLASSPATHを辿って
見つけることができるクラスは2番である事がわかりました。
1番はどのシーンで使われるか分かっていませんが、とりあえず解決できました。
372デフォルトの名無しさん:2005/12/31(土) 05:55:16
うむ。おれの言ったとおりだな。
373デフォルトの名無しさん:2005/12/31(土) 09:36:23
>>370
クラスをロードするのってVMじゃないの?
374デフォルトの名無しさん:2005/12/31(土) 11:50:13
>>367
その企業はIBMのdwのあの記事をよく読んでいないってことが
よくわかるね
375デフォルトの名無しさん:2005/12/31(土) 12:18:03
>>374
日本のIさんに言ってください><
いいスペックの筐体を売るための罠だとしか思ってませんが
376デフォルトの名無しさん:2005/12/31(土) 12:52:58
Javaってメソッドの引数参照渡しだから下のできますよね?

//メインループ
List list = null;
hoge( list );
hage( list );
hige( list ); // 0, 1, 2を表示

private void hoge( List l )
{
 l = new ArrayList();
 l.add( 0 );
}

private void hage( List l )
{
 l.add( 1 );
 l.add( 2 );
}

private void hoge( List l )
{
 for ( Iterator it = l.iterator(); it.hasNext(); ) {
  int i = (int)it.next();
  System.out.println( i );
 }
}

377デフォルトの名無しさん:2005/12/31(土) 12:55:14
>>376
参照渡しではありません。
hogeは×
hageは○
higeは○
378デフォルトの名無しさん:2005/12/31(土) 12:58:29
>>376
hogeでぬるぽ
379デフォルトの名無しさん:2005/12/31(土) 12:59:13
上は間違えで、hageでぬるぽです。
380デフォルトの名無しさん:2005/12/31(土) 13:04:36
あ…hogeが二個ありますね
失礼しました forでPrintln回してるのがhigeです
実際やってみるとぬるぽが出てるんです
なんで駄目なのかよくわかんないんですが、教えていただけますでしょうか?
381デフォルトの名無しさん:2005/12/31(土) 13:09:32
>>380
メソッドhogeで変数lにArrayListを参照させてるけど、
メインの処理にある変数listがそのArrayListを参照するわけではない

そのため、メソッドhageの引数であるlistはnullのままで、
メソッドhageないで参照している変数lもnull
で、このnull参照の変数に対してaddメソッドを呼んでるのでぬるぽが発生
382デフォルトの名無しさん:2005/12/31(土) 13:15:33
>>376
Java にはプログラミング言語界隈でいうところの「参照渡し」はない。
Java 言語規定でいうところの『参照値が「値渡し」』される。
383デフォルトの名無しさん:2005/12/31(土) 13:15:51
>>381
List list = new ArrayList();
hage( list );
hige( list );

だと大丈夫で、hageとかには参照渡しになるんですかね?
intとかの基本型の変数だと値渡しで、Stringとかのクラスの変数だと参照渡しと
理解していたのですが…
うーん、よくわからないな…
384デフォルトの名無しさん:2005/12/31(土) 13:17:10
>>383
> intとかの基本型の変数だと値渡しで、Stringとかのクラスの変数だと参照渡しと
両方とも値渡し。

参照型の場合はC言語的に言うと、ポインタが値渡しされる。
385デフォルトの名無しさん:2005/12/31(土) 13:22:33
JarFile jarFile = new JarFile(file);
Manifest manifest = jarFile.getManifest();
Attributes attr = manifest.getAttributes("My-Class");

これでattrがnullになるんですがなぜでしょうか?
jarファイルをlhacaで解凍したところ
META-INFフォルダの中にMANIFEST.MFファイルがあり、

My-Class: MyClass

というようにきちんと書いてあるのですが。
386デフォルトの名無しさん:2005/12/31(土) 13:26:04
言語を学習するときは新しい気持ちで学習した方が効率的
C(C++)だったらこうで、Javaだったら・・・
確かにその場では理解が早くなった気になるけど、
最終的にどっちがいいと言ったら、断然新しい気持ちで学習したほう
参照渡しだの既存の考えで考えている以上>>376こういった疑問はつきない
387デフォルトの名無しさん:2005/12/31(土) 13:31:02
>>385
jarをlhacaで作ったの?
388385:2005/12/31(土) 13:32:48
>>387
antです。
389デフォルトの名無しさん:2005/12/31(土) 13:41:12
>>384
ではJavaではListとかを引数にした場合、そのコピーがメソッドに渡される訳ですよね?
じゃ複数のメソッドにまたがって変数を参照する場合はそれらより上位で
変数の中身を確定しておかなければならず、またそれらのメソッドの中で
その変数を変更(Listに値をaddとか)しても、上位にある元々も変数には
影響が出ないって事ですか?
390デフォルトの名無しさん:2005/12/31(土) 13:41:59
>>386
んなことはない。値渡しや参照渡しの概念は重要

ところで、Javaの変数は、
その型がオブジェクトであるときは実体でなく参照を格納する
(C言語的にいうと、変数はポインタ)
391デフォルトの名無しさん:2005/12/31(土) 13:47:50
>>389
惑わされるな。
コピーはされない。
コピーされるのはintとかdoubleとかだけ。
392デフォルトの名無しさん:2005/12/31(土) 13:48:31
>>385
× Attributes attr = manifest.getAttributes("My-Class");
○ String value = manifest.getMainAttributes().getValue("My-Class");
393デフォルトの名無しさん:2005/12/31(土) 13:49:47
>>389
C言語のポインタは理解してる?
394デフォルトの名無しさん:2005/12/31(土) 13:51:57
>>389
> ではJavaではListとかを引数にした場合、そのコピーがメソッドに渡される訳ですよね?
参照値がコピーされる。オブジェクト自体がコピーされるわけじゃない。

> その変数を変更(Listに値をaddとか)しても、上位にある元々も変数には
参照されたオブジェクトには影響がでる。
参照値自体を変更しても元々の参照変数には影響がでない。
395デフォルトの名無しさん:2005/12/31(土) 14:02:12
>>393
一応は…
深く突っ込まれるとボロがでると思いますが

>>394
ん〜……じゃあ

List list = new ArrayList();
hage( list );
hige( list );
private void hage( List l ){
 l.add( 1 );
 l.add( 2 );
}
private void hige( List l ){
 for ( Iterator it = l.iterator(); it.hasNext(); ) {
  int i = (int)it.next();
  System.out.println( i );
 }
}

はOKだけど

//メインループ
List list = new ArrayList();
hoge( list );
hage( list );
hige( list );
private void hoge( List l ){
 l = new LinkedList();
}
とかやっても、listはArrayListのままってことですかね?
396デフォルトの名無しさん:2005/12/31(土) 14:05:45
>>395
そんな感じ。
397デフォルトの名無しさん:2005/12/31(土) 14:06:52
JVM 側に malloc() っぽい事させたのを
C君が使う、このC君はfree()しないとリーク起こる?
398377:2005/12/31(土) 14:10:03
>>395
俺の書いたことは無視か。
399デフォルトの名無しさん:2005/12/31(土) 14:10:11
> JVM 側に malloc() っぽい事させた
表現があいまいなので答えられません。
400デフォルトの名無しさん:2005/12/31(土) 14:14:07
>>397
freeの心配より前にJava側でGCされてC君がアクセスしてあぽん
401デフォルトの名無しさん:2005/12/31(土) 14:15:28
>>390
それを理解するのに既存の言語に
あてはめる必要はないってことだよ
既存の言語の埋解度によっては
混乱を招くため
402デフォルトの名無しさん:2005/12/31(土) 14:25:43
>>398
いや、なんでそうなるのかよくわかんなかったんで…
ともかくありがとうございました
403デフォルトの名無しさん:2005/12/31(土) 14:29:32
>>401
既存の言語ってなんだよ
既知の言語だろ
404デフォルトの名無しさん:2005/12/31(土) 14:31:50
>>392
トンクス
405デフォルトの名無しさん:2005/12/31(土) 14:59:31
>>375
406デフォルトの名無しさん:2005/12/31(土) 16:16:13
0:00までに実家に帰れるプログラムを作ってください><
407デフォルトの名無しさん:2005/12/31(土) 16:42:49
>>405
dw書いている良いIさんとnull代入させるIさんがいるってこと
408デフォルトの名無しさん:2005/12/31(土) 18:00:05
J2SE 5.0 と J2SE 1.4.2 はどう違うんでしょうか?
どっちをインストールすれば良いんですか?
409デフォルトの名無しさん:2005/12/31(土) 18:01:52
努力しなさい
410デフォルトの名無しさん:2005/12/31(土) 18:06:26
>>408
5.0 の方が新しい。 5.0 インストールしておけばよさげ。

使いたいソフトが 5.0 に対応してないとかの事情で 1.4.2 が必要とかでなければの話だけど。
411デフォルトの名無しさん:2005/12/31(土) 18:08:54
>>410
ありがとうございました(`・ω・´)
412 :2005/12/31(土) 18:15:16
はぁ、年末年始も返上で卒研プログラムの作成か・・・。
このままPCにへばりついたまま年越しだろうな
413デフォルトの名無しさん:2006/01/01(日) 02:03:22
>>412
武勇伝武勇伝武勇でんでんででんでん
414デフォルトの名無しさん:2006/01/01(日) 06:31:17
実行中に動的にクラスパスを追加するルーチン作ったけど、あんまし使い道ない事に気づいた。
415デフォルトの名無しさん:2006/01/01(日) 07:44:23
XML言語のお勉強をしようと思い、『やさしいXML(高橋麻奈 著)』で勉強していますが、
VALIDATE.JAVAをコンパイルできません。(本書で使うツール p.xiv)
本に書いてあるとおり、ソースファイルがある場所で"JAVAC VALIDATE.JAVA"とコマンドを打ったのですが。。。
”コマンドまたはファイル名が違います.”としか表示されません。。
JDK1.5がWIN98をサポートされていないからですか?
誰か教えて下さい、よろしくお願いします。

私のPCのOSはWIN98で、SecondEditionではありません。
ちなみに下記が、私のPCのAUTOEXEC.BATです。
@ECHO OFF
loadhigh c:\windows\COMMAND\nlsfunc.exe c:\windows\country.sys
rem - By Windows Setup - \dos\mscdex.exe /D:cdrom001 /L:g
SET PATH=%PATH%;c:\PROGRA~1\COMMON~1\AUTODE~1;C:\Program Files\Java\jdk1.5.0_06\bin
416デフォルトの名無しさん:2006/01/01(日) 08:54:01
SET PATH=%PATH%;c:\PROGRA~1\COMMON~1\AUTODE~1;C:\PROGRA~1\Java\jdk1.5.0_06\bin;
:SET JAVA_HOME=など

とりあえず、空白含まない場所にインストールするのが無難だよ
それか
echo "C:\Program Files\Java\jdk1.5.0_06\bin\javac.exe" %* >javac.bat
417デフォルトの名無しさん:2006/01/01(日) 12:25:34
>>414
どうやってるのか教えてください
418デフォルトの名無しさん:2006/01/01(日) 12:30:46
>>415
パスの設定ができてないだけに見えるが・・・OSは関係ないと思う
419デフォルトの名無しさん:2006/01/01(日) 13:32:34
415です。        教えてくれた人、ありがとう。
家に帰ってパスを再設定してみます。
420 【大吉】 【1095円】 :2006/01/01(日) 16:37:46
さすがに今日は人が少ない
421デフォルトの名無しさん:2006/01/02(月) 01:16:00
JFileChooserを開くだけのプログラムなんだけど、
これを実行しては閉じる、実行しては閉じると30回くらいやっていると、
デッドロックを起こしたようにフリーズする時が来る。
フリーズは1回目になるかもしれないし、30回こえても起きないかも知れない。
こちらの環境(Win2K。jre1.5.0_06)では50回以内にはかならず起きている。
JFileChooserに問題があるようで、JOptionPaneなどの場合は起きない。
というわけで、余裕のある方、確認してみて欲しいです。

import javax.swing.*;
import java.io.*;

public class BugDemonstration {
static JFileChooser file = null;
public static void main(String args[]) {
final JFrame frame = new JFrame("The Frame");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
file = new JFileChooser();
file.setMultiSelectionEnabled(true);
file.setDialogTitle
("Select lots of files..." );
file.showDialog(frame.getContentPane(), "Demonstrate problem");
}
});
}
}
422デフォルトの名無しさん:2006/01/02(月) 02:26:39
invokeLater の引数に与えた Runnable 内で
例外が出てないかまず確認してはどうか。
423デフォルトの名無しさん:2006/01/02(月) 02:46:37
>>422
不勉強ですいません。
それはどうやって確認すればいいですか?
コマンドラインから実行していますが今はフリーズしても例外は出ません。
424デフォルトの名無しさん:2006/01/02(月) 02:48:44
>デッドロックを起こしたようにフリーズする時が来る。

だって
>SwingUtilities.invokeLater
だからな。
425デフォルトの名無しさん:2006/01/02(月) 02:58:22
あーん、おしえてくだせぇ。知ってるなら。
426java勉強中:2006/01/02(月) 03:14:46
質問ですorz

チェックボックスの配置を指定するにはどうやったらいいですか?

yes/no の二択を5個出したいのですが、すべて連なってしまい、

yes no
yes no
みたいに縦になってくれません。

どうしたらいいでしょか?
427デフォルトの名無しさん:2006/01/02(月) 03:16:45
>>426
どうやっているのかプログラム晒してよ
awtかSwingすら書いてないし・・・
428デフォルトの名無しさん:2006/01/02(月) 04:07:38
これでもフリーズするよ。
38回目でフリーズした。
どうして?

import java.awt.Container;
import javax.swing.*;
import java.io.*;

public class Test3 {
public static void main(String args[]) {
JFileChooser fc = new JFileChooser();
fc.showDialog(null, "Hoge");
}
}
429デフォルトの名無しさん:2006/01/02(月) 04:25:44
>フリーズした。
どのタイミングでフリーズするの?
実行してから何も表示されないの?
それとも、JFileChooserが表示された後にフリーズ?
430デフォルトの名無しさん:2006/01/02(月) 04:39:41
>>429
表示される前にフリーズします。
正確にはものすごーく重くなって、JFileChooserが表示されるべきエリアが
グレーに塗りつぶされて領域を確保したのが分かって、おそらくそのまま長
時間ほっておけば、JFileChooserの絵が完成するのかもしれないと思いつつ、
あまりに遅いし、Win全体が重くなって使えなくなるので、Ctrl-C連打して止めるか、
タスクマネージャで強制終了しています。

431デフォルトの名無しさん:2006/01/02(月) 04:49:56
今ためしたところ、グレーのパネルが出たあと1分から2分放置したら、
JFileChooserが表示され普通に使えるようでした。
さらにひつこくもう一度フリーズさせて、数分以上放置しましたが、
フリーズしたままでした。

テストプログラム
import javax.swing.*;
import java.io.*;

public class Test3 {
public static void main(String args[]) {
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(null);
}
}
432デフォルトの名無しさん:2006/01/02(月) 04:55:36
とりあえず、UIコンポーネントは
UIスレッドからのみアクセスするようにしてみる。
433デフォルトの名無しさん:2006/01/02(月) 04:57:01
>>432
最初その方法でダメだったんだろ
434デフォルトの名無しさん:2006/01/02(月) 05:01:06
>>433
メインスレッドでUIコンポーネントを作成していた気がするが、
まあいいや、原因違うかもしれないしガンバレ
435デフォルトの名無しさん:2006/01/02(月) 05:06:05
>>421のプログラムだってsunのサイトにあったサンプルひっぱってきたのです。
他にもいくつかネットにあるJFileChooserのサンプルでためしてるんだけど、
例外なくフリーズはおきるようだけど。こっちの環境固有の問題?
436デフォルトの名無しさん:2006/01/02(月) 05:09:24
>>435
>sunのサイト

ソースおくれ
437デフォルトの名無しさん:2006/01/02(月) 05:13:52
あー、めんどくさいから、ちゃんと言うと

昔は、pack か setVisible などでUIコンポーネントを表示する前は
スレッドセーフにアクセスできるとか言ってたんだけど、
いつの間にか、いつでもUIスレッドじゃないとだめだという話になってた。
SUN のチュートリアルも、そうなってる。

昔のSUNのチュートリアルとか、
それを見て作った人のサンプルとかは、UIスレッドを用いずに
UIコンポーネントを構築しているものがあるかもしれない。
438デフォルトの名無しさん:2006/01/02(月) 05:14:45
>>436
http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4712307
これは別のバグをデモしてるんだけど。
439437:2006/01/02(月) 05:21:57
というわけで、ぶっちゃけ

public class Hoge {
 public void main(String[] args) {
  SwingUtilies.invokeLater(new Runnable() {
   いろいろ
  }
 }
}

とかが安全。今回の挙動とは関係ないかもしれないけど
それだけ
440デフォルトの名無しさん:2006/01/02(月) 05:27:38
>>439
確かにそれはお約束だな
まぁ、setVisible(true)の部分だけソコに書けばいいのだけど
441デフォルトの名無しさん:2006/01/02(月) 05:34:59
>>440
ちがう。と思う

たしかに、invokeLater によって、
メインスレッドとUIスレッドの同期をイベントキューを通じて行えるかもしれないが、
invokeLater が実行される前に
UIコンポーネントに UI スレッドがアクセスする可能性がある場合、
UIスレッドからは不完全に見えるオブジェクトにアクセスする可能性がある。
442デフォルトの名無しさん:2006/01/02(月) 05:42:36
これだと48回目にフリーズしたけど30秒ほど待ったら大丈夫だった。
その後100回までためしたけど、問題はおきなかった。
でもなんかまだ怪しいような気がします。

import javax.swing.*;
class Hoge {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(null);
}
});
}
}
443デフォルトの名無しさん:2006/01/02(月) 07:42:50
みんな誰に投票するの?
ttp://www.bidders.co.jp/dap/sv/applex1?type=MISS06
444デフォルトの名無しさん:2006/01/02(月) 11:55:29
>>442
ダイアログ周りは怪しいみたい。
前にJDialogを使ったときに、Modalなはずのダイアログが最前面に出なくてUIが操作できなくなったことがあった。
そのときは、ダイアログの親フレームを指定するようにしたら解決した。
そのプログラムも、showOpenDialog()の引数に有効なJFrameオブジェクトを指定すればうまくいくかも。
試してないが、健闘を祈る。
445デフォルトの名無しさん:2006/01/02(月) 15:12:34

>>62
なぜそこで中国人ヴァイオリニストYOYOMA(ヨーヨーマ)がでてくるのか?
446デフォルトの名無しさん:2006/01/02(月) 16:28:41
>Modalなはずのダイアログが最前面に出なくてUIが操作できなくなったことがあった。
>そのときは、ダイアログの親フレームを指定するようにしたら解決した。
それに関しては当然だと思うが・・・
447デフォルトの名無しさん:2006/01/02(月) 18:09:12
>>444
ありがとう。
サンプルは話を簡単にするため簡略化してカキコしたものです。
もとはownerを指定していました。それでもフリーズします。
とりあえずこういうものだと諦めて作業を先に進めます。
448デフォルトの名無しさん:2006/01/02(月) 18:34:12
>>444
その問題は5.0で解決してるみたいよ
449デフォルトの名無しさん:2006/01/02(月) 18:48:46
JOptionPaneは親Frameを指定しない場合(null)、勝手にフレーム探すって本当ですか?
450デフォルトの名無しさん:2006/01/02(月) 19:03:44
>>424
のいう、
>だって
>>SwingUtilities.invokeLater
>だからな。
というのが気になるなー
JFileChooserを呼ぶときinvokeLaterを使ったらまずいのですか?
451デフォルトの名無しさん:2006/01/02(月) 20:56:14
>>445
台湾系アメリカ人のチェリストじゃなかったっけ?
452デフォルトの名無しさん:2006/01/02(月) 21:15:33
>>367
こちらも規約に、null代入するように書いてある。納品前にチェックあるし。
なんで?と聞くと、gcにかかりやすくするためと言われる。
Sunの人が効果ないよって言ってくれたら信用してもらえるのかな。
当方、dwの記事読んでも効果があるのかないのか理解できないので説明は無理。
453デフォルトの名無しさん:2006/01/02(月) 23:05:42
>416
>418
コンパイルできました。(Validate.classが作成されました)
ありがとうございました。
454デフォルトの名無しさん:2006/01/03(火) 01:04:36
>>452
最も大きな効果は、意味のない記述をソースから除去できること。

その場の使い捨てでない限り、ソースは人間が読むものであり、
意味のある記述だけを含むべきである。

そうでなければ、何が書かれているのかが把握しにくくなり、
ひいては不具合を引き起こしたり、その発見に支障をきたす。

通常、ソース(ロジック、アルゴリズム)の難解さは
何らかのトレードオフによって生まれるのだろうが、
こと null 代入に関しては、欠点だけしかない。


などと上に口答えできる環境にいる人は幸せ
455452:2006/01/03(火) 07:36:57
>>454
thanks
意味のある記述、の話したことあるけど、gcにかかりやすくする意味があるんだよ
と言われて負けっぱなしです。
が、上の方に書いてあったnull代入してもgcに影響与えないなら、↑の意味はないのですね。

あぁ、returnの前に =null;が並ぶ.。。。。。漏れがないかチェックさせられてる。。。。。
456デフォルトの名無しさん:2006/01/03(火) 09:27:25
>>455
なんのためのgcやら…malloc()+free()と一緒じゃん。
SunのTech TipsとかIBMのdeveloperworksにその辺の話、なかったっけ。
457デフォルトの名無しさん:2006/01/03(火) 11:11:08
そのうち各メソッドの終わりにSystem.gc()が必須になりそうだな。
隙を見てIBMの記事を印刷してデスクに置いておくとか
458デフォルトの名無しさん:2006/01/03(火) 11:19:23
null代入は全く意味の無いことじゃないって。
場合によってはnullしとかないとメモリリーク起こす場合もある。
459デフォルトの名無しさん:2006/01/03(火) 11:22:10
すみませんどなたかnull代入の件のdwの資料のURLお願いできませんでしょうか?
いつか読んだことがあって、
それ以降null代入はtry-finally節で変数の後処理の時しかしないのですが、
もう一度読みたくなったけど見つけられないです。
460デフォルトの名無しさん:2006/01/03(火) 11:23:22
204ですた
461デフォルトの名無しさん:2006/01/03(火) 11:24:27
>>459
パフォーマンスへの目: オブジェクトを参照する
http://www-06.ibm.com/jp/developerworks/java/031114/j_j-perf08273.html

Javaの理論と実践: ガベージコレクションとパフォーマンス
http://www-06.ibm.com/jp/developerworks/java/040312/j_j-jtp01274.html

他にもあるかもしれないけど…
462デフォルトの名無しさん:2006/01/03(火) 11:33:38
>>458
VMのバグとコーディング規約を一緒に考えてはいけない
463デフォルトの名無しさん:2006/01/03(火) 11:34:56
>>461
ありがとうございます。

GCの仕組みによっても違ってきそうですね。
464デフォルトの名無しさん:2006/01/03(火) 11:52:05
糞プログラマが作ったアプリレベルがどうこうできるほど、
最近のVMはバカじゃない。
465デフォルトの名無しさん:2006/01/03(火) 12:21:13
糞プログラマがシングルトンなオブジェクトとかで
参照解放せずに つかみっぱなしにしてる場合は GC じゃ どーにもなりません。
466デフォルトの名無しさん:2006/01/03(火) 12:45:49
>>458
具体的にどうゆう場合?
467デフォルトの名無しさん:2006/01/03(火) 12:58:11
>>466
>>465のような場合だろ。

>>465のような実装は糞を通り越してるレヴェルだがなwww
468デフォルトの名無しさん:2006/01/03(火) 12:59:45
>>467
>>465の場合はnull代入すれば大丈夫なのか?
469デフォルトの名無しさん:2006/01/03(火) 13:07:32
>>468
他の部分の実装如何で大丈夫とは言い切れないが、
少なくともGCの対象にするためには
当該のオブジェクトからの参照を切るためにnull代入は必要。
470デフォルトの名無しさん:2006/01/03(火) 13:09:55
>>469
なるほろThx
471デフォルトの名無しさん:2006/01/03(火) 13:27:52
誤爆したので改めてこちらに質問です

最近Java始めたばっかり何ですが、メソッドやフィールド変数は
クラス(オブジェクト)に属するってのはわかったのですが、
+などの算術演算子やforなどの制御文ってどのクラスに属するのですか?
472デフォルトの名無しさん:2006/01/03(火) 13:36:02
>>471
算術演算子や制御文が記述されている変数やメソッドが属するクラス(またはそのインスタンス)。
473デフォルトの名無しさん:2006/01/03(火) 13:41:09
位置づけとしては何になるのですか?
メソッド?
474デフォルトの名無しさん:2006/01/03(火) 13:46:13
位置づけとしては、演算子・制御文でしかない。
475デフォルトの名無しさん:2006/01/03(火) 13:47:38
そうですか・・・
ありがとうございました
476デフォルトの名無しさん:2006/01/03(火) 13:57:03
long で保持している秒数を 2 hours 23 mins 35 secs みたいにフォーマットして出力する簡単な方法はないでしょうか?
477デフォルトの名無しさん:2006/01/03(火) 14:08:35
>>476
java.text.DecimalFormatでも使えば?
478デフォルトの名無しさん:2006/01/03(火) 14:14:22
>>455
そういうチェックは自動化できるだろ(いややらんでもいいって結論みたいだが)
FindBugsとかAspectJとかで
479デフォルトの名無しさん:2006/01/03(火) 14:25:50
>>467
シングルトンってインスタンスどうせ1個だし
メモリに与える影響って少ないとおもうんだけどなーって思ったけど
どうなの?

例えばシングルトンででかい配列を使ったとして、
その定数的なでかい配列を生成するコストを減らすのも
シングルトンのメリットかなと思うけど。
480デフォルトの名無しさん:2006/01/03(火) 14:36:24
>>455
nullセットして意味あるのは使いもしない変数が
残ってる場合じゃない?それだとnullセットしないと参照が切れないから
使わなくなったらするにnullセットする意味はあると思う
でもスコープ抜けると参照切れるからreturnの前でnullセットするのは全然意味ないような
その前にスコープの設定がおかしい可能性が高いからリファクタの余地がありそうだね

ま、そういうアホみたいな設計に当たったら説得するより、次にいいプロジェクト入るor立ち上げる方に
労力使った方がいいとおもう
481デフォルトの名無しさん:2006/01/03(火) 14:37:20
話がシングルトンにずれてるね。

>>458
>場合によってはnullしとかないとメモリリーク起こす場合もある。

>>465
>糞プログラマがシングルトンなオブジェクトとかで
>参照解放せずに つかみっぱなしにしてる場合は GC じゃ どーにもなりません。

>>466
>具体的にどうゆう場合?

>>467
>>465のような場合だろ。

ほら、話がずれてますね。メモリリークの話に戻そうぜ。
クラス設計できない糞プログラマのことはどーでもいいんです。
482デフォルトの名無しさん:2006/01/03(火) 15:13:32
null 代入するくらいならスコープを切る
というか、VM の最適化の邪魔にしかならないんじゃないか?
483デフォルトの名無しさん:2006/01/03(火) 15:16:09
>>481
お前一人ですれば?
484デフォルトの名無しさん:2006/01/03(火) 15:20:12
>>482
ほぼそうだとdw読んだら書いてあった。
485480:2006/01/03(火) 15:32:12
null 代入とは関係ないけど、WeakHashMapとかあるのね
private void test() {
int preSize = 0;
for (int i = 0; i < 50000; i++) {
Integer var = new Integer(i);
gMap.put(new Integer(i), var);
var = null;
if (preSize >= gMap.size()) {
System.out.println("gMap: gc success");
}
preSize = gMap.size();
}
preSize = 0;
for (int i = 0; i < 50000; i++) {
Integer var = new Integer(i);
gWeakMap.put(new Integer(i), var);
var = null;
if (preSize >= gWeakMap.size()) {
System.out.println("gWeakMap: gc success");
}
preSize = gWeakMap.size();
}
486デフォルトの名無しさん:2006/01/03(火) 16:22:46
null 代入意味無いわけないだろ
いい例えが見つからないけど
System.props みたいな持ち方してるのとかさ
こいつの場合だと読み直させるのに
System.initProperties(null);
これしかないぜ

スコープがなにかわかんない人はばんばんnull入れて行こうぜ
null 代入なしは一歩先行く人達の技だ
487デフォルトの名無しさん:2006/01/03(火) 16:51:05
SwingのJFrameにAWT関係のものを使う場合って動作保証外ですか?
488デフォルトの名無しさん:2006/01/03(火) 16:55:58
489デフォルトの名無しさん:2006/01/03(火) 16:56:22
通常Javaでは

/**
@version 1.0
*/

のようにクラスのバージョンを設定できますが、
クラスにバージョンを設定するメリットって何でしょうか?
プログラムのバージョンと同じと考えても良いのでしょうか?
また、バージョン管理はどのようにするべきでしょうか?
例えば、Aというプログラムではversion1.0のクラスを
Bというプログラムではversion1.1のクラスを使っている場合、
version1.0の方のクラスも上書きせずに残しておくべきでしょうか?
490デフォルトの名無しさん:2006/01/03(火) 17:53:51
>>455
実際にnullを入れた場合と、
入れていない場合とで
パフォーマンスにどう影響を与えるか、
メモリリークにどう影響を与えるか
テストコードを書いて実行して
比較して結果をレポートしてみるのはどうだろう?
491デフォルトの名無しさん:2006/01/03(火) 18:01:30
>>489
.NETフレームワークとは違って
Javaではバージョンを管理識別する仕組みはないから
単なるコメント以上の意味はないでしょう
運用ルールは好きにすればいい

正直.NETのバージョン管理うざいので何とかなりませんか
492デフォルトの名無しさん:2006/01/03(火) 18:08:19
>>489
> 通常Javaでは
>
> /**
> @version 1.0
> */
>
> のようにクラスのバージョンを設定できますが、
> クラスにバージョンを設定するメリットって何でしょうか?
> プログラムのバージョンと同じと考えても良いのでしょうか?
プログラムの「そのクラスだけ」のバージョンと同じ。
プログラムのバージョンを考慮するのは@sinceのほう。

> また、バージョン管理はどのようにするべきでしょうか?
> 例えば、Aというプログラムではversion1.0のクラスを
> Bというプログラムではversion1.1のクラスを使っている場合、
> version1.0の方のクラスも上書きせずに残しておくべきでしょうか?

バージョン管理システムCVSやSubversionを使えばリポジトリサーバに
差分情報だけを残しておくのも簡単で管理が楽になる。
さらにソースコードに
@version $Id$ と書いておくと、サーバにコミットするたびに
$Id$の部分に自動的にバージョン番号をふってくれるので非常に便利。
CVSよりもSubversionがお勧めだ。

詳しくはこちら
Subversion r4
http://pc8.2ch.net/test/read.cgi/tech/1129642894/
493デフォルトの名無しさん:2006/01/03(火) 18:12:06
>>486
意味のある null 代入が 意味のない null 代入に紛れるのが問題

スコープがなにか分からない人は勉強しる
ソースは文書であり、読み手が解読に苦労する文書は最低
494デフォルトの名無しさん:2006/01/03(火) 18:18:39
>>491
何をいっているんだおまいは。
VSSが.NET frameworkの一部だと思ってないか?
495デフォルトの名無しさん:2006/01/03(火) 18:40:52
>>494
VSSの話じゃないよ
アセンブリのバージョン管理の話
496455:2006/01/03(火) 19:18:49
>>480
残念ながら規約がそうなっているのでどのプロジェクトでも同じです。

>>490
一応そのつもりです。

VMが良くなっているなら、そういうリリースノートがあっても良いとおもうんだが。
これからはnull代入不要になります。みたいな。
497デフォルトの名無しさん:2006/01/03(火) 20:04:44
CVSでも$Id$の補完ぐらいしてくれるよ。
Subversion廚必死だな。
498デフォルトの名無しさん:2006/01/03(火) 20:12:07
クラスファイル単位でのバージョン管理って将来的にもサポートの予定
ないんだっけ? JSR-277だとモジュール単位でしか管理できないよね。
499480:2006/01/03(火) 21:40:38
500480:2006/01/03(火) 22:15:09
>>486
たとえばサーブレットだとsetAttribute("key", "value")ってやったのを
removeAttribute("key")せず(orにあたるメソッドがなくて)
setAttribute("key", null)してるってこと?
501デフォルトの名無しさん:2006/01/04(水) 04:38:41
>>491-492
ありがとうございます
502デフォルトの名無しさん:2006/01/04(水) 08:31:55
Javaでファイルのオープンとクローズは、次のようにするのが正しいとかいわれて、
正確にはそうすべきだってのもわかるけど、
IOExceptionが出てしまうときってHDDのアクセスに限っていえば、
たぶんハードウェア的にぶっこわれたとか、どうしようもない事態のほうが多いと思うんだよね。
どうせSyste.exitするしかないわけで、しゃったらリソースの開放とかどうでもいいじゃない。

FileInputStream fis = null;
try {
  fis = new FileInputStream(file);
}catch(IOException e) {
  System.out.println(e);
} finally {
  try {
    fis.close();
  }catch(Exception e) { ; }
}
だからなにがいいたいのかというと、とてもシビアなプログラム書いてる人には
上記の書き方が必要なのだろうけど、ほとんどのケースは

try {
  FileInputStream fis = new FileInputStream(file);
}catch(IOException e) {
  System.out.println(e);
}
で充分であって、万に一つの例外のために冗長なコードを書くのはちょっと
馬鹿げてるように思えるんだが、相場的にはどうなんでしょう?
503デフォルトの名無しさん:2006/01/04(水) 08:34:37
訂正
>どうせSyste.exitするしかないわけで、しゃったらリソースの開放とかどうでもいいじゃない。
どうせSyste.exitするしかないわけで、そのときはリソースの開放とかどうでもいいじゃない。

二つ目のサンプルはclose忘れてた。スマソ。
try {
  FileInputStream fis = new FileInputStream(file);
  fis.close();
504デフォルトの名無しさん:2006/01/04(水) 08:45:24
>>502の1番目

その書き方ではファイルが見るからないときNullPointerExceptionが発生します。
505デフォルトの名無しさん:2006/01/04(水) 09:06:45
>>502
きちんとclose処理されていないと不安で夜も眠れません
506デフォルトの名無しさん:2006/01/04(水) 09:12:02
>>504
それはtryに入る前にfile.exists()で確認してから入れるって事で良いのでは。
>>505
だから二つ目のでも、正常にファイルが指定されていれば、クローズできるのではという問いなんです。
万に一つのケースのために最初の書き方を頑なに守るべきなんでしょうか。
507デフォルトの名無しさん:2006/01/04(水) 09:14:47
万に一つと思うならそれでいいんじゃないの?
日曜プログラミングならそれで十分
508デフォルトの名無しさん:2006/01/04(水) 09:22:46
>>507
いや、だからそれを聞いてるんですよ。
万に一つじゃないなら、それはどんな状況なのかしりたいのです。
で、そんな状況を自分の場合想定しなくても良いとわかれば、
安心して日曜プログラミングの書き方でいきたいなと。
509デフォルトの名無しさん:2006/01/04(水) 09:51:52
>>506
File#exists() の直後に new FileInputStream() しても
同名のファイルが常に存在してる保証はない。
クライアントサイドでアプリケーション一個だけしか立ち上げない、
ファイル操作してるのはユーザーだけとかならそれでも良いだろうけど。

exists と new FileInputStream の並びがアトミックだと保証されてるなら
シングルプロセッサ上では大丈夫だろうけど、そんなもん保証されてなかったと思うし。
510デフォルトの名無しさん:2006/01/04(水) 10:05:46
>>508
IOExceptionでも必ずしも終了しなくてもいいと思うが。
外付けとか、メモリーカードを抜いちゃったとか。
511デフォルトの名無しさん:2006/01/04(水) 10:28:01
>>509
サーバーサイドで動くアプリの場合はそうあるべきって感じですか。
複数のユーザもしくはスレッドが次々と対象となっているファイルを
削除したり書き換えてるような状況であれば最初の書き方が必要なのは理解できます。

今私はクライアントサイドでアプリケーション一個だけしか立ち上げない、
ファイル操作してるのはユーザーだけというようなものを書いてるので、
日曜プログラマ的な書き方で良さそうですね。
512507:2006/01/04(水) 10:28:10
ぶっちゃけgcされるときにcloseすることがfinalizeで保証されているから
いらないといえばいらないかも
513デフォルトの名無しさん:2006/01/04(水) 10:31:18
ファイルが使用中でIOExceptionの可能性もあるわけで。
exitしないでリトライくらいはしてくださいね。
514デフォルトの名無しさん:2006/01/04(水) 10:37:01
>>510
外付けドライブの場合は、それは当然ですね。
でもHDD上ならまず考慮しなくて良いのでは。
先のマルチユーザ、マルチスレッドの例をのぞけば。
515デフォルトの名無しさん:2006/01/04(水) 10:42:03
>>514
好きにしていいと思うよ
516デフォルトの名無しさん:2006/01/04(水) 10:45:06
>>513
使用中だからといって、1msもあけずにリトライしたところで
普通はまずbusyでしょ。じゃあn分ごとにリトライ?
他のアプリが掴んで離さない場合はいくら待ってもしかたがないし。
そんな諸々の状況までめんどうみてたらきりがないじゃないですか。
もちろん求められる要件次第ですが。
517デフォルトの名無しさん:2006/01/04(水) 10:46:46
>>515
そんなの言われなくてもわかってますよ。
どんな書き方しようが自由ですもん。
でもそういう話をしてるんじゃないのはわかるでしょ。
518デフォルトの名無しさん:2006/01/04(水) 10:48:27
>>512
それはいいこと聞きました。ありがとう。
調べてみます。
519デフォルトの名無しさん:2006/01/04(水) 10:50:11
>>517
人の意見を否定する人とは話したくないんでね
「求められる要件次第」
520デフォルトの名無しさん:2006/01/04(水) 10:53:07
>>518
gcはいつ起きるか分かんないから
521デフォルトの名無しさん:2006/01/04(水) 10:56:51
>>519
そのおまえにおまえの意見ってどれとどれだよ。いってみな。


522デフォルトの名無しさん:2006/01/04(水) 10:57:49
>>519
訂正
>そのおまえにおまえの意見ってどれとどれだよ。いってみな。

そのまえにおまえの意見ってどれとどれだよ。いってみな。
523デフォルトの名無しさん:2006/01/04(水) 10:58:34
スルーしろよ
今は冬休みだぞ?
524デフォルトの名無しさん:2006/01/04(水) 11:00:09
>>523
たぶん、冬休みだから暇な人が遊んでんだと思う
525507:2006/01/04(水) 11:23:09
>>517 こんなところで聞いてるんだからそれぐらいのレス我慢しる
未だに冬休みな暇な人なんでlog4Jの実装走り読みしてみた
たとえば実際に書き込んでるとことは
http://svn.apache.org/repos/asf/logging/log4j/trunk/src/java/org/apache/log4j/helpers/QuietWriter.java
のwriteとかflushあたりなんだけど
もしエラーが起きたらerrorHandlerのerrorが呼ばれるんだけど、そこにclose処理はあるのかどうかを調べると面白いかも
適当に呼んだ限りでは見つからなかった
log4jのfinalize自体はここでclose処理を呼び出してる
http://svn.apache.org/repos/asf/logging/log4j/trunk/src/java/org/apache/log4j/AppenderSkeleton.java
ただ、今eclipseにソース落として適当に検索かけただけだから全部嘘かもw
真面目に知りたかったら、自分で調べるか、お金払ってどっかで聞くか、調べた内容公表してどっかのコミュニティで聞くといいよ(多分
526デフォルトの名無しさん:2006/01/04(水) 11:56:43
なんで>>502のような阿呆を相手するのかわからん

他人の意見に対しては
あたかもそれを既に想定していたかのような返しをしている
だが,自分がどのような場合に一番目の書き方をしなければならないかは
全くか書かず,他人のレスに便乗しているだけ

527デフォルトの名無しさん:2006/01/04(水) 12:25:43
私は万にひとつの例外を拾って何らかの処理をさせたいとあとになって思うかも
知れないので、分かる範囲でならパフォーマンスに大きく影響しない限り冗長に書く。

メンテしないと確定している、その場限りの作業なら何も気にしない。
528507:2006/01/04(水) 12:33:18
>>526
んー、>>502がきっかけで自分も気になったからね
でlog4jみたら実際エラー時に明示的にcloseしてなさそうだし
冗長なロジックは自分も嫌いだからね、ビジネスロジック集中したいじゃん
>>502はgcとかfinalizeも分かってなくてこれから調べますって言ってるし
本当は基礎は一通り抑えてよ、とは思うけど 全く疑問を持たないよりは好きだよ
529デフォルトの名無しさん:2006/01/04(水) 12:35:14
>>526
HDDのアクセスに限っていえばって書いてある。よく読めよ馬鹿。
530デフォルトの名無しさん:2006/01/04(水) 12:37:42
>>527
その万に一つを拾いたがるのがプログラマーの愚かな性質なんだよ。
よく指摘されるけど。どれだけそれで時間を無駄にしてることが多いか。
531デフォルトの名無しさん:2006/01/04(水) 12:39:46
> メンテしないと確定している、その場限りの作業なら何も気にしない。

そーゆー場合は try も catch もせずにメソッドに throws IOException つけるかも。
532デフォルトの名無しさん:2006/01/04(水) 12:47:36
人間がトラブルすべてを予測できたら東証のようなことは起きないよね?
533デフォルトの名無しさん:2006/01/04(水) 12:52:10
>>532
だからどうあるべきだと?
534デフォルトの名無しさん:2006/01/04(水) 12:54:41
ニューヨーク証券取引所は東証よりレスポンスよくて、
東証みたいに半日止まったりしないって記事見掛けたけどホントかね?
もし、そうなら日本は悲しい限りだな
535デフォルトの名無しさん:2006/01/04(水) 13:07:42
Javaの最新版をDLしようとしたら、インストール先のディレクトがロックされてる
っとかでるんだけど、どういうことなの?
536デフォルトの名無しさん:2006/01/04(水) 13:07:47
>>530
それはプログラマー自体のパフォーマンスを落としてるから、そういうときは書かない。
そもそも日曜プログラミングなら時間の無駄なんて関係ない。
仕事なら仕様にないものを実装するときは先に打ち合わせするものだと思う...

>>531
なるほど
537デフォルトの名無しさん:2006/01/04(水) 13:10:58
>>530
お前みたいなのが東証ダウンさせちゃうんだろうな
538デフォルトの名無しさん:2006/01/04(水) 13:14:19
>>537
無批判に定型ロジックいれる方が危ないぞ
もちろん、理解もせずテストもせず勝手に省くやつは論外だが
539デフォルトの名無しさん:2006/01/04(水) 13:17:10

>>497
CVS厨必死だなといいたいところだが百済なすぎ。
Subversionのほうが高機能でファイル/ディレクトリ名の変更、移動
があってもバージョンと差分情報を保持できる利点がある。
SubversionはApacheのいくつかのプロジェクトですでに使われている。
CVSはSourceForgeやEclipseなどで過去の遺産が残っているために
そう簡単に移行できないから仕方が無く使われている程度
540デフォルトの名無しさん:2006/01/04(水) 13:20:56
>>536
なにがおきるかわからないからとにかく極力安全な書き方以外はしないっていいたいのかな
541デフォルトの名無しさん:2006/01/04(水) 13:27:52
>>519
> >>517
> 人の意見を否定する人とは話したくないんでね
> 「求められる要件次第」
ちょっとまて、肯定しかしない人間としか話をしたくないのか?

だれかがお前のことを死刑にするといったとする。
そこである慈悲深い者がお前を助けるために
お前が死刑になるという意見を否定したとする。
だがお前は人の意見を否定する人間とは話したくない
といってそれを拒否した。
まもなくお前は処刑された!!!!!!


それでもいいのか貴様!!!!

いいのか? 殺されてもいいのか!!!!!?
542デフォルトの名無しさん:2006/01/04(水) 13:29:58
>>519は聖徳太子時代の性善説を未だに信じている
綺麗事しかいえない反アメリカ主義の左翼系儒教信者
543デフォルトの名無しさん:2006/01/04(水) 13:30:55
いよいよくだらない精神論に発展してきたな。
544デフォルトの名無しさん:2006/01/04(水) 13:31:50
>>502
日曜プログラムという話は最初出てきてないのでただの釣り

人様に公開するならそれなりのことはしておいてほしいな
nullセットにしても釣りが多すぎ
545デフォルトの名無しさん:2006/01/04(水) 13:34:48
冬休みだから論点がずれやすいみたいね。w
まあいいけど。
546デフォルトの名無しさん:2006/01/04(水) 13:36:51
>>534
> ニューヨーク証券取引所は東証よりレスポンスよくて、
> 東証みたいに半日止まったりしないって記事見掛けたけどホントかね?
> もし、そうなら日本は悲しい限りだな

速さに拘り過ぎた結果もたらした悲劇だな。

旧日本軍の戦闘機みたいだ。軽くて性能はいいが日本軍の無計画さ
が太平洋戦争で露わになった。
その無計画さは未だに日本人に根強くのこっている。
物質よりも精神を重視すると称してあまりにも無計画であることが
日本のこのIT業界の蕭然さを表している。

最後の最後も精神論を持ち出して特攻隊で多くの人を死に追いやった。
刀や竹槍だけで勝てるなどと過信して多くの人々が犠牲になった。
547デフォルトの名無しさん:2006/01/04(水) 13:37:52
>>519は「人の意見を否定する者」を否定している。
よって、>>519は矛盾しているw
548デフォルトの名無しさん:2006/01/04(水) 13:38:16
それじゃただのイエスマン
549デフォルトの名無しさん:2006/01/04(水) 13:39:19
>>519==イエスマン
は否定的な意見をいうことで新たな発見に
つながるということが理解できないのかな?
否定的な意見はすべて徹底的に排除するとは
一体何事やら
550デフォルトの名無しさん:2006/01/04(水) 13:40:36
肯定しかいわない奴は詐欺師や悪徳セールスマンに多い。
罠にはまる可能性があってアブナイから気をつけよ。
フィッシング詐欺の手口でも最近よくみかける。
551デフォルトの名無しさん:2006/01/04(水) 13:41:37
現実解は

否定的な意見をいいつつ肯定的な意見も同時にいうことだ。

否定しか言わない、肯定しか言わないのはどちらも建設的ではないし
技術革新は一切起こらない。
552デフォルトの名無しさん:2006/01/04(水) 13:42:38
科学技術の進歩は、なにかに疑いを持つことから始まる
よって否定を否定することは(ry
553デフォルトの名無しさん:2006/01/04(水) 14:33:12
おまいら、いーかげんにしてくだちい。
ここ、質問スレなのよ(´・ω・`)
554507:2006/01/04(水) 15:12:28
javaの話書き込んでいいのか分かりませんが
log4jはあまりIOExceptionは考えてないみたいなので参考にならないぽい
ということでberkeley db java edition見てます
555デフォルトの名無しさん:2006/01/04(水) 15:28:04
DBならかなり厳重にやってそうやね
556507:2006/01/04(水) 15:59:30
>>555
やはり違いますね オープンに失敗したらcatchしてcloseしてる
ただ、トランザクションのコミットとかの場合はユーザまで例外が飛んで
ユーザがcatchしてcloseしないといけないみたい(finalizeは使ってないみたい

そういえばDBだと明示的にcloseしますね プールの解放にも関係したりするので
結局、要件しだいと
557デフォルトの名無しさん:2006/01/04(水) 16:00:50
java.awt.geom.AffineTransformクラスで
画像を台形に変形できますか?
558デフォルトの名無しさん:2006/01/04(水) 16:02:05
Javaのコーディングは教科書通りにくそまじめに書いてたら
冗長で読みにくいもっさりしたソースになる。リソースも無駄に消費する。
いかに安全に手抜きするかが勝負。
559507:2006/01/04(水) 16:06:26
>>558
大規模なシステムだといかにカプセル化して
何度も同じロジックかかなくていいようにするかが大事だね
560デフォルトの名無しさん:2006/01/04(水) 16:10:05
Integer intobj = 0;

Integer intobj = null;
って同じ意味ですか?
561デフォルトの名無しさん:2006/01/04(水) 16:17:01
>>560 java勉強するのに使った本、サイトって何ですか?
562sage:2006/01/04(水) 16:26:59
>>560
コンパイルエラー

intobjにnullが入る

nullが入るって変か?
563デフォルトの名無しさん:2006/01/04(水) 16:36:36
質問です。
Javaからシリアル通信をしたいと考えています。
色々調べているうちにJava Communication APIというものがあるのを
知ったのですが本家SunにはWinのバージョンがありませんでした。
どこにもログ落ちてなさそうですし。
どうすればいいのでしょうか??
564デフォルトの名無しさん:2006/01/04(水) 16:42:37
>>562
javac1.5からはエラーじゃないんだな。
565デフォルトの名無しさん:2006/01/04(水) 16:45:18
>>564
マジで?!
場っばばっ場っ場バージョンアプーしないと!
ArrayListもなんか使いやすくなったらしいし
566デフォルトの名無しさん:2006/01/04(水) 16:47:33
>>564
まじよ。わたしゃめんどくさがりーだからこういう手抜きできるのは好き。
567560:2006/01/04(水) 16:50:28
結局>560はどっちも同じ意味ですか?
568デフォルトの名無しさん:2006/01/04(水) 16:50:31
さらにこれもありだw
Integer intobj = 0;
intobj = intobj + 120;
569デフォルトの名無しさん:2006/01/04(水) 16:51:31
>>564
たとえばそれって
Integer i=0xff;
Integer e=023;
とかやっても意図する動きするの?
だったらかなり便利だな
570デフォルトの名無しさん:2006/01/04(水) 16:54:02
>>567
うんとねー
System.out.println(intobj);
して自分で確認するといいよ。
571デフォルトの名無しさん:2006/01/04(水) 16:56:05
AutoBoxingかぁ、>>569もいけるね
572デフォルトの名無しさん:2006/01/04(水) 16:57:15
>>569
するけど、やっぱこれはダメかってケースもあった。
それがなんだったか今すぐは思い出せんけど。
573デフォルトの名無しさん:2006/01/04(水) 17:01:38
おーとぼくしんぐ?

あっ!

パンチングマッすィーンか!
574デフォルトの名無しさん:2006/01/04(水) 17:02:26
>>556
Jakarta Commons DBUitlsを使え
575デフォルトの名無しさん:2006/01/04(水) 17:05:53
>>558
たとえばどんなふうに?
576デフォルトの名無しさん:2006/01/04(水) 17:12:15
Integer i=0xff;
System.out.println(i == 0xff);
trueだってさ、いいねこれ
577デフォルトの名無しさん:2006/01/04(水) 17:19:07
AutoBoxingなんて5.0の目玉機能の一つだろ?
5.0なんてだいぶ前に出てるのに今ごろ何言ってんだ?
578デフォルトの名無しさん:2006/01/04(水) 17:19:56
このスレ最高
いいお年玉だ
http://love3.2ch.net/test/read.cgi/kageki/1136118877/
579デフォルトの名無しさん:2006/01/04(水) 18:18:16
今日、釣りに行った
竿を置いたまま昼寝してたら
たくさん掛かってた
580デフォルトの名無しさん:2006/01/04(水) 18:21:36
>>578
キモイ
581デフォルトの名無しさん:2006/01/04(水) 19:39:21
>>579 そんなクマつられ
582デフォルトの名無しさん:2006/01/04(水) 22:00:28
PrintStreamを使って

PrintStream ps = new PrintStream(new FileOutputStream(filename), true);
for(int i=0; i<NUM ; i++){
ps.print(hairetu[i]);
ps.rint('\n');
}

のようにファイルに出力したあとに
そのファイルの"行頭"に、また別の要素をprintしたいんですが
psの行頭に書き込む方法はなにかないでしょうか?
(全部読み込んでから書き込むと時間がかかるような処理のため)
583デフォルトの名無しさん:2006/01/04(水) 22:36:25
そういうのはRandomAccessFileの仕事
584デフォルトの名無しさん:2006/01/04(水) 22:52:11
>>583
なにいってんの?w

>>582
新しいファイルつくって新しい要素書き込む
そのあと追記で元のファイルの内容を書き込んで
ファイル名変えればいい
585デフォルトの名無しさん:2006/01/04(水) 22:54:58
>>582
1. bufferにため込んではく
2. RandomAccessFile(後から書き込むバイト数が分からない場合は移動も必要)
メモリ次第でどちらかかな
586デフォルトの名無しさん:2006/01/04(水) 22:57:12
>>584はRandoAccessFileの使い方が分からないと判明
587585:2006/01/04(水) 22:57:14
お?ごめん、読み込んでから書き込むの意味が分かってなかったぽ
588デフォルトの名無しさん:2006/01/04(水) 22:58:13
そんな理由でRandomAccessFileつかうの効率悪い
通常は原始的な方法しかない
新しいファイルに書くしかないというか、それが普通の考え
589585:2006/01/04(水) 22:59:12
行頭って言ってるけど一行だけ?
590デフォルトの名無しさん:2006/01/04(水) 23:00:21
同感。
つーか俺は理由は違うけどな。
RandomAccessなんかやってる最中例外起きたらどないすんだろ?こいつら。
トランザクション設計できない時点で糞だなぁ。
ファイルは元に戻すことは出来ないんだよ?w
591デフォルトの名無しさん:2006/01/04(水) 23:03:02
ファイル名変更なんてやってるから例外起きるんだろ
592デフォルトの名無しさん:2006/01/04(水) 23:06:16
っていうかファイルの先頭に行を追加するような
仕様を考えたヤシが一番イタイ
593585:2006/01/04(水) 23:12:49
結局、ファイルの先頭なのか各行頭なのかも分からんし
594582:2006/01/04(水) 23:17:05
みなさん、レスありがとうございます

分かりにくくてすみません、
ファイルの1行目だけに要素をひとつ追加したいってことです
595デフォルトの名無しさん:2006/01/04(水) 23:19:47
1行だろうと複数行だろうと変らないよ
原始的な方法をやるしかない
596582:2006/01/04(水) 23:21:48
ps.close()
をしてから、出来たファイル(out.txt)をもう一度読み込み
1行目に追加したい要素をprint
2行目以降はout.txtを読み込んでprint

って原始的な方向で書いてみようと思います。ありがとうございました
597デフォルトの名無しさん:2006/01/04(水) 23:26:58
全部読み込むと時間がかかるっていうのにまた読み込むんだな
少しずつなら速いのか?
598デフォルトの名無しさん:2006/01/04(水) 23:36:19
あーあ、ブタに真珠なげてもわからないからもとの方法におちつくとw
599デフォルトの名無しさん:2006/01/04(水) 23:42:15
600デフォルトの名無しさん:2006/01/04(水) 23:44:23
25過ぎの頭の弱いPGが集まるスレはここですか?
601デフォルトの名無しさん:2006/01/04(水) 23:47:19
大卒で26以上のPGは終わってると思うが
それはまた別のスレでやれ
602デフォルトの名無しさん:2006/01/05(木) 00:20:43
高卒のほうがすごいということですか
603デフォルトの名無しさん:2006/01/05(木) 02:04:10
ブタにもわかるように頭の強いPGの方説明してください
604デフォルトの名無しさん:2006/01/05(木) 04:04:20
>>601
40代でJudeを作った香具師が終わっているとでも?
彼は凄いぞ。

25過ぎたら終わってるという根拠を示してくれ by 26歳
605デフォルトの名無しさん:2006/01/05(木) 04:07:33
過酷な環境に気が狂って
何度も柱にぶつけても壊れない頭を持っているPG
606デフォルトの名無しさん:2006/01/05(木) 07:38:28
>>604
それは特殊な例
貴方には当てはまらないから
それにPGがというよりまともな設計が
できるんでしょ、その40代の人
そんなことも気付けない貴方は
やっぱり…
607デフォルトの名無しさん:2006/01/05(木) 08:06:09
PGは設計できないの?
608デフォルトの名無しさん:2006/01/05(木) 09:32:37
PG、SEとか、型通りの区分けしかできない会社で働いてるんじゃない?
609デフォルトの名無しさん:2006/01/05(木) 10:19:52
>>608
型どおりでない区分けで成功してるって事例を教えてください
今後の参考にしたいので。
610デフォルトの名無しさん:2006/01/05(木) 11:03:19
いきなり質問すいません。
Javaのアプレットでテキストフィールドに入力した文字列を変数に入れる時は
getText()でできますが、JPanelではgetText()でできませんでした。
初心者なんで質問の仕方がおかしかったらすいません。
理由が分かる方がいましたら教えてください。
611デフォルトの名無しさん:2006/01/05(木) 11:12:57
JPanelのどこにテキストを入力したんだ???
612デフォルトの名無しさん:2006/01/05(木) 11:15:21
26でPGって信じられない
4年もPGしてたらSEやアーキテクトへ進むのが普通だと思っていた
世の中自分の周りだけ見てたら気付かない事もあるんだと気付いた2006年新春
613デフォルトの名無しさん:2006/01/05(木) 11:16:27
井の中の蛙大海を知らず
614デフォルトの名無しさん:2006/01/05(木) 11:19:20
4年以内のPGだけが組んだシステムは使いたくないな
それで動くのか?よっぽどアーキテクトが素晴しいだろうなw
615デフォルトの名無しさん:2006/01/05(木) 11:23:25
>>610 JTextFieldとか使った?
616デフォルトの名無しさん:2006/01/05(木) 11:34:29
>>615
使っていなかったので使ってみましたがだめでした。
617デフォルトの名無しさん:2006/01/05(木) 11:42:33
>>616
コード晒してみ
618デフォルトの名無しさん:2006/01/05(木) 11:53:52
>>616
アプレットはAWTでやったけど、今Swing勉強してるだよね?
ちなみに変数を*入れる*のはsetText(String)だけ、そんな落ち?
619デフォルトの名無しさん:2006/01/05(木) 12:00:03
>>611,615,617,618
できました。ありがとうございました。
620デフォルトの名無しさん:2006/01/05(木) 12:20:24
>>609
研究部門があるところは、そんな区分けないところの方が多いんじゃない?
例えば、携帯電話関連の新機能開発とか。
B向けでも、ハード&ソフトやってる小規模の会社は分けてないと思う。
621デフォルトの名無しさん:2006/01/05(木) 12:21:49
コード書かなくなって久しいヤツの設計はクソ
622デフォルトの名無しさん:2006/01/05(木) 12:25:20
うちんところは全部ソフトウェア開発者だな
623デフォルトの名無しさん:2006/01/05(木) 13:15:33
Javaの質問かどうか分からないのですが、
MVCできちんと書こうとした時、処理の途中でユーザーへ問い合わせしたい事態が発生した場合、
皆さんはどのように処理していらっしゃいますか?
624デフォルトの名無しさん:2006/01/05(木) 13:16:24
んじゃ仕様書く人とコーディングする人ごちゃまぜってこと?
625デフォルトの名無しさん:2006/01/05(木) 13:38:06
>>606
なんだ
PG=設計ができないという勝手な決めつけで
25過ぎたら終わってるという根拠を持ち出しているわけだね。

アメリカじゃPGはSEやアーキテクトややってることも
すべてできるとされている。だからアメリカのプログラマは地位が高い。
そして日本のソフトウェアの品質は非常に低い。
プログラマの地位が低ければソフトウェアの品質も悪くなるのは当たり前。
それに気づかないワンマン馬鹿経営者や顧客は多いが。
626デフォルトの名無しさん:2006/01/05(木) 13:40:32
>>612

これでも読んで目を覚ませ。
26歳じゃプログラミング経験はまだまだ浅い。まだまだ生兵法しかできないレベルだ。

プログラミングを独習するには10年かかる
http://www.yamdas.org/column/technique/21-daysj.html
627デフォルトの名無しさん:2006/01/05(木) 14:08:04
ところで、みなさんリファクタリングってやってます?
お金もらってやってますか?
新規の機能追加のついでに工数当ててます?
共通に手を入れたくなったらどうします?今動いてるやつのテストとかすべてやりますか?
というか、このスレの話題じゃない気もしますが、流れにのって質問
628デフォルトの名無しさん:2006/01/05(木) 14:09:01
>>623
もう少し詳しく
629デフォルトの名無しさん:2006/01/05(木) 14:47:07
いきなり済みません。

質問なのですが、
Javaだとデフォルト引数使えないんですか?
↓の様にやったら「")"がありません」、「";"がありません」とエラー。

public int getMDays(int year = this.c_year,int month = this.c_month){

  :
}

デフォルト値を定数にしてみても同じエラーでした。
jdk1.5.0_05です。
630デフォルトの名無しさん:2006/01/05(木) 15:14:16
>>629
> Javaだとデフォルト引数使えないんですか?
使えない。

public int getMDays(){ getMDays(this.c_year, this.c_month); }
public int getMDays(int year, int month){
 //処理
}
とかすれば良いのでは?
631デフォルトの名無しさん:2006/01/05(木) 15:15:40
>>629
そんな記述はじめてみたよ。無理なはず。
しかも可読性悪いな・・・。
632デフォルトの名無しさん:2006/01/05(木) 15:18:30
っつか、質問するまえに JLS 読めよ。
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.1

BNF読めりゃデフォルト引数が無い事ぐらいわかるだろ。
633デフォルトの名無しさん:2006/01/05(木) 15:22:14
>>630
引数なしの方、return 抜けてんじゃね?
634デフォルトの名無しさん:2006/01/05(木) 15:27:20
こうだな
public int getMDays(){ return getMDays(this.c_year, this.c_month); }
635デフォルトの名無しさん:2006/01/05(木) 15:29:04
c_yearみたいな命名は嫌だ、それだけで保守する気がうせる
636デフォルトの名無しさん:2006/01/05(木) 15:33:40
どういう命名がいいのよ?
637デフォルトの名無しさん:2006/01/05(木) 16:09:51
>>628
例えば、UI側からデータクラス側のファイル保存メソッドを呼んだとするじゃないですか。
で、書き込もうとしたら既にそのファイルが存在していた、と。
普通のプログラムは、書き込む前にユーザーに問い合わせますよね。

まぁ、この場合は事前に調べる関数を呼べば良いのかもしれませんが、
その手が使えないケースではみなさんどうしているのかな、と。

何か大きな勘違いをしている気もしますが・・・(^^;
638デフォルトの名無しさん:2006/01/05(木) 16:10:26
cYearってことでは?
639デフォルトの名無しさん:2006/01/05(木) 16:15:49
コーディング規約に従えばいいんじゃないかな?
640デフォルトの名無しさん:2006/01/05(木) 16:22:20
>>637
ユーザに問い合わせるのは上書きするかってこと?
画面増やすか、もとの画面にメッセージを表示するべきかを聞きたいのかな
自分はMVCと関係あるのかも分かんないやw
WebProg板で聞いてみたら?
641629:2006/01/05(木) 16:23:29
ありがとうございます。
やはり使えないですか・・・。
教えて頂いたように、分けて記述する事にします。
642デフォルトの名無しさん:2006/01/05(木) 16:38:10
>>640
例えば、

actionPerformed(ActionEvent e){
 data.store();
}

...

public void store(){
 File f = new File("hogehoge.dat");

 if(!f.exists()){
  FileOutputStream out = new FileOutputStream(f);
  out.write(param);
 }
 else{
  ...
 }
}

というコードがある時に、存在したら上書きするか聞きたいわけですが、当然elseの部分にはUIロジックを書きたくない。
けど、そうするには処理を中途で放り出したままreturnしてUIロジックに戻らなきゃいけないことになるので、
どうしたらきれいに書けるんだろう、と。
643デフォルトの名無しさん:2006/01/05(木) 16:48:14
PG否定されると必死になる奴いるけど
PGって肩書きが良いの?
アメリカ云々も良いけどそんなに肩書きにこだわる理由が判らない
644デフォルトの名無しさん:2006/01/05(木) 16:54:47
PG否定してるやつの視野がせまいからつっこまれてるんでは?
システム開発にはPGとSEしかいないような言い方だし
645デフォルトの名無しさん:2006/01/05(木) 16:56:07
>>642
store()の中でelseのときには例外をthrowするんじゃだめなの?
ActionPerformedで例外をcatchしたら処理をUIに戻すという方法。
646デフォルトの名無しさん:2006/01/05(木) 17:26:10
>>645
外でcatchしても、store()に復帰できましたっけ?
この辺が思い違いなのかな。
647デフォルトの名無しさん:2006/01/05(木) 17:40:48
復帰にこだわってるけど、ユーザに聞くなら
storeはキャンセルしてactionPerformedを終了して、
ユーザからの結果に応じてまた処理を実行するしかないような
648デフォルトの名無しさん:2006/01/05(木) 18:29:14
やはりそれしかないですかね・・・。

これに限らず、「ModelとViewを分ける」というのは理屈はいいんですけど、
ユーザーの反応を見なきゃいけない時にどうすれば良いのか分からないんですよ。
たとえば、今のを何個についてもループさせなければいけない時とか。
適宜処理段階ごとにメソッドを分けるしかないのかな・・・。
649デフォルトの名無しさん:2006/01/05(木) 18:58:48
>>648
ModelとViewを行ったり来たりするだけじゃないのか?
基本的にはすべての画面で確認があり、条件が整っている時は確認は端折るイメージとか
650デフォルトの名無しさん:2006/01/05(木) 20:29:39
>>636
c_year
駄目すぎ。
 ↓
cYear
まあいまあだがもっとわかりやすく
 ↓
currentYear
わかりやすいがmonthまでもcurrentMonthに
するくらいだったらメソッド名をわかりやすい名前に変えて
 ↓
year

だけでいんじゃねえのか
651デフォルトの名無しさん:2006/01/05(木) 20:31:39
>>643
プログラミング経験の乏しいウザイ営業やSEがプログラマのことを見下しているから
ムカっとくるんじゃないか?

SEはプログラミングしなくてもいいといってるやつもウザイ香具師に見えるし。
プログラミング経験がないSEは論外

652デフォルトの名無しさん:2006/01/05(木) 21:41:24
ずっとCをやってきて最近Javaをやることになって頭が混乱してる者です。
関数呼出のときにCでいうポインタ渡しってどうやるのでしょうか?

int val1, *val2, val3[10];
val2 = (int *)malloc(...);
foo1(&val1);
foo2(val2);
foo3(val3);

みたいなのはJavaではそれぞれどういうふうに書くのでしょう?
あまりにもアホな質問なのかもしれませんが、よろしくお願いします。
653デフォルトの名無しさん:2006/01/05(木) 22:09:32
WindowsXPsp2を使用しているものです。
異なるバージョンのDevelopmentKitを共存させる方法はないでしょうか?
ご存知の方、お教えください。
654デフォルトの名無しさん:2006/01/05(木) 22:23:54
public class Test {
public static void main(String[] args) {
StringBuffer s = new StringBuffer();
test(s);
Ssytem.out.println(s);
}
static void test(StringBuffer sb) {
sb.append("⊂二二二( ^ω^)二⊃");
sb = new StringBuffer();
sb.append("test");
}
}
655デフォルトの名無しさん:2006/01/05(木) 23:23:21
すみませんが教えて下さい。
サーブレットってマルチスレッドで動作しますよね。
皆さんはStrutsなどを使用してアクションクラス作成する時に
同期処理ってどのように意識しますか?
やたらめったらsynchronized使うわけではないですよね?
どのように順序処理の整合性を保っていますか?
質問が大雑把ですみませんが、何か指針のようなものを
示していただけると助かります。
また、上述の事柄について解説してある書籍またはサイトを
紹介していただけると助かります。
656デフォルトの名無しさん:2006/01/05(木) 23:28:08
>>655
メンドクサイからEJB作ってそっちで同期
657デフォルトの名無しさん:2006/01/05(木) 23:28:25
>>655
Actionクラスのフィールドを使わない

以上
658デフォルトの名無しさん:2006/01/05(木) 23:32:31
>>655
Actionにビジネスロジックを実装しなければいい
659デフォルトの名無しさん:2006/01/05(木) 23:45:53
>>652

int val1;
Integer val2;
int[] val3;
val2 = (Integer) malloc(...);
foo1(Integer.valueOf(val1));
foo2(val2);
foo3(val3);
660デフォルトの名無しさん:2006/01/05(木) 23:47:25
>>652

int val1;
Integer val2;
int[] val3 = new int[10];
val2 = malloc(...);
foo1(Integer.valueOf(val1));
foo2(val2);
foo3(val3);
661デフォルトの名無しさん:2006/01/05(木) 23:48:01
>>655
値の保持はローカル変数のみで行う
662デフォルトの名無しさん:2006/01/05(木) 23:49:22
663デフォルトの名無しさん:2006/01/06(金) 00:02:55
>>653
普通にインストールすると別にセットアップされるだろ
JREも同じ
あくまでもデフォルトがパス設定やレジストリ設定されてるだけ
664デフォルトの名無しさん:2006/01/06(金) 00:26:09
>>649
遅レスですが、そう考えた方が良いのかもしれませんね。
ありがとうございました。
665デフォルトの名無しさん:2006/01/06(金) 00:39:47
655です。
皆さんありがとうございました。

また質問なのですがよろしくお願いします。

アクションクラスの内部から、ビジネスロジックを記述したbeanのインスタンスを
生成した場合、そのbeanインスタンス内部では同期処理を考えなくても
良いのでしょうか?
n個のリクエストがほぼ同時にあるアクションクラスに到達した場合に、
そのアクションクラスの内部でbeanインスタンスを生成すると、
メモリ上にはn個のbeanインスタンスが別々に生成されると考えれば
良いのでしょうか?

ご指導お願いします。
 
666デフォルトの名無しさん:2006/01/06(金) 00:47:43
ループ設定を1回にしたGIFアニメがあるんですが
それをJavaプログラム上で表示させると無限ループになってしまいます

どうすればよいでしょうか?
667デフォルトの名無しさん:2006/01/06(金) 00:52:14
>>665
アクションクラスのメソッドの中でBeans(sが必要)のインスタンスを作成する
668デフォルトの名無しさん:2006/01/06(金) 01:08:01
655です。
はい。 >>667 さんの言うとおりです。私の書き方が間違ってました。
669653:2006/01/06(金) 01:22:58
>>663
どうもありがとうございました。
最近、ようやくOSを98からXPにしたばかりなので、コマンドプロンプトの使い方が
よくわからなかったのです。
調べてみます。
重ねて御礼申し上げます。
670デフォルトの名無しさん:2006/01/06(金) 01:23:58
>>665
はい。メソッド内ならそうなります。

>>666
いえ。無限ループになる訳はありません。なにかの間違いです。
671デフォルトの名無しさん:2006/01/06(金) 02:08:19
すいません、ふと疑問に思ったことがあるのですが、
StringBufferのappendは、なぜStringBufferを返すのでしょうか?

StringBuffer sb = new StringBuffer();
sb.append("A"); //これで値が変わるのに
sb = sb.append("A"); //こうした代入ができるようになっている
672デフォルトの名無しさん:2006/01/06(金) 02:13:58
>>671
StringBuffer sb = new StringBuffer();
sb.append("こんな")
 .append("使い方も")
 .append("できるから")
 .append("じゃないでしょうか");
673java:2006/01/06(金) 02:20:33
すみません、聞きたいことがあります。
MouseEventでjavaアプレットを起動しているのですが
そのアプレット内にあるActionEventが実行されません。
何が原因なのでしょうか?
ActionEventのみで作ったプログラムは動きます。
よろしくおねがいします。
674デフォルトの名無しさん:2006/01/06(金) 02:30:31
>>673
JavaではEventはイベントキューに入れられて、一つずつ順番に実行されます。
MouseEventによって呼び出されたメソッド内で、他のEventを発生させても
それはイベントキューに入れられたままで、MouseEventのメソッドが終了するまで
実行される事はないのです。
675デフォルトの名無しさん:2006/01/06(金) 02:45:58
>>672
なるほど。言われてみれば、そんな使い方を便利だなぁと感じたこともありました。
ありがとうございます。お陰で今日はよく眠れそうです。
676java:2006/01/06(金) 09:41:09
>>674
ありがとうございます。
では、具体的にどうすればよいのでしょうか?
MouseEventとActionEventを交互に実行するのは
そもそもできない作業なのでしょうか?
677デフォルトの名無しさん:2006/01/06(金) 11:54:26
大規模なソフトウェアは事前に設計を入念に行わないと作れないとかいわれますが
どれくらいの規模からが大規模なんでしょう?
クラスにして何クラスとか、総ステップ数何行くらいからとか、、、

678デフォルトの名無しさん:2006/01/06(金) 11:59:17
>>677
入念な設計をしないで破綻する様になったら大規模

と言うよりも
基本的には時間・予算という限られたリソースの中でどれだけ手を抜く事が出来るのかという考え方に立たないとダメ
679デフォルトの名無しさん:2006/01/06(金) 12:02:47
MouseEventからActionEventを実行する場合、どのようにしてMouseEventメソッドを終了したらいいのですか?
680デフォルトの名無しさん:2006/01/06(金) 12:20:46
>>679
イベントメソッドからイベントメソッドを呼ぶべきじゃないな
681デフォルトの名無しさん:2006/01/06(金) 12:21:26
>>673はマルチだぞ
682デフォルトの名無しさん:2006/01/06(金) 12:25:45
>>678
それやったら姉歯
683デフォルトの名無しさん:2006/01/06(金) 12:44:36
>>679
public void mouseClicked (MouseEvent e) {
new Thread() {
public void run () {
ActionEvent を呼ぶ処理
}
}.start();
}

こんな風にアクションイベントを呼ぶ処理を別スレッドでするのが
一つの方法です
684デフォルトの名無しさん:2006/01/06(金) 14:17:14
>>678
どやったら手ぬけますか?
685初心者:2006/01/06(金) 14:39:18
すみません。
ActionEventでウインドウを破棄するためSystem.exit(0)を使っているのですが、
うまくいきません。
他に方法はないのでしょうか?
686デフォルトの名無しさん:2006/01/06(金) 15:03:48
JTableのセルにJButtonなんかのコンポーネントを使った場合、イベントはどこで取得すればいいんでしょうか?
687デフォルトの名無しさん:2006/01/06(金) 15:15:33
>>685
どううまく行かないの?
dispose() はどう?
688デフォルトの名無しさん:2006/01/06(金) 15:20:22
>>686
JButtonで
689686:2006/01/06(金) 15:23:18
>>688
CellRendererで返してるJButtonは描画のためだけに使われてるみたいで
イベントが飛んでこないんですよ
690デフォルトの名無しさん:2006/01/06(金) 15:28:38
>>686
JTableのレンダラとしてJButtonを使った場合と仮定すると、
その場合イベントを受け取るのはあくまでJTable。
レンダラは描画のみで、イベントの送信先にならないことに注意。
JTableのイベントでクリックされた座標を取得して、
それがJButtonを描画した列ならなにがしの処理、とする。
691686:2006/01/06(金) 15:31:42
>>690
ありがとうございます。やってみます。
692デフォルトの名無しさん:2006/01/06(金) 16:16:26
>>686
JTableにセットするTableCellEditor実装クラスを作成して、
それにJButtonを所持させます。
TableCellEditor#getTableCellEditorComponentメソッドの返値は
そのJButtonにします。
そのJButtonに任意のActionListenerをアタッチする事により
ボタン押下のイベントをJButtonで受け取れます。
693デフォルトの名無しさん:2006/01/06(金) 21:04:04
文字列を整数に変換しようとしたらNumberFormatExceptionと起こられたのですが
どういう文字や文字列が変換できないのでしょうか?

下のようなソースで実行しました。

String str="LAPL:ADFURAL:http"

String stuck = String.valueOf(str.charAt(0));
int param = Integer.parseInt(stuck);
System.out.println(param);

これだと大文字のLが変換できて無いようなのですがorz
694デフォルトの名無しさん:2006/01/06(金) 21:12:52
// 693 は何か強烈な勘違いをしている気がする
int num = Integer.parseInt( "1234" );

// 693 が望んでいることはこっちかと
int num = "LAPL".charAt(0);
695デフォルトの名無しさん:2006/01/06(金) 21:16:44
>694
自分アホ過ぎた・・・・・・orz
レスありがとうございます、無事解決しました。
696デフォルトの名無しさん:2006/01/06(金) 23:06:36
>>660
ありがとうございます。

つまりオブジェクト(この用語でいいのかわかりませんが)で渡せば必ずCで言うポインタ渡しになるということでしょうか?
intのような基本のデータ型のポインタを渡すことはできないということでしょうか?
また、オブジェクトをポインタ渡しで渡したくない場合はどうするのでしょう?

Java(というかオブジェクト指向?)がよくわかっていないため、的はずれな質問かもしれませんが
よろしくお願いします。
697デフォルトの名無しさん:2006/01/06(金) 23:15:55
>>696
> intのような基本のデータ型のポインタを渡すことはできないということでしょうか? 
出来ないが、int なら Integer, float なら Float のように対応するラッパークラスが用意されてる

> また、オブジェクトをポインタ渡しで渡したくない場合はどうするのでしょう?
出来ない
698デフォルトの名無しさん:2006/01/06(金) 23:21:59
新しい言語を学んでるんだし
ポインタって言葉は忘れたほうが良いよ
混乱を招く元
699デフォルトの名無しさん:2006/01/06(金) 23:24:06
まあ、ポインタはあらゆるプログラミングデータの根幹を為すものだから
忘れる訳にはいかんだろ。
アセンブラを知らない若い衆ほど、C言語でポインタを正確に理解しておらず
軽んずる傾向が強いのは嘆かわしい限り
700デフォルトの名無しさん:2006/01/06(金) 23:54:21
なら速攻デスマに投入させないで勉強する時間をくださいよ
701デフォルトの名無しさん:2006/01/07(土) 00:57:09
>>699
ポインタという概念自体は軽んじてないように見えるけどなー。

Javaの場合、ポインタの概念を含めて考えると混乱する部分が多いので
頭の中で変な置き換えをしないためにも、Java⇔Cみたいな考え方を
しないほうがいいよっていう忠告だと思った。

あとアセンブラを知ってるとポインタ理解の助けとなることは同意だけど
知らないから理解できないというのはどうかなぁ。軽んじているのじゃなくて
無理解から負け惜しみを言っただけかも知れないし。

ポインタについては「難しい」という漠然とした風潮があることにも原因があると思う。
実際普通に勉強していけば理解できるはず。入門書なんかでも、そこだけ
気合入れすぎてかえって難しくなってる気がするよ...スレ違いごめんなさい。
702デフォルトの名無しさん:2006/01/07(土) 01:01:02
自分もJavaはクラスとインスタンス、参照だけ意識した方がシンプルだと思う
プリミティブ型の位置づけが微妙だけど
703デフォルトの名無しさん:2006/01/07(土) 01:10:24
そういや、CのポインタとC++のポインタ、
若干違うんだよね
C++のほうが扱いやすくてわかりやすいけど
704デフォルトの名無しさん:2006/01/07(土) 01:11:13
>>702
その微妙な問題があるために
ラッパークラスやObject#clone()が用意されているわけだが
705デフォルトの名無しさん:2006/01/07(土) 01:41:12
|これをいちいちポインタという、C/C++の概念で説明する必要はない
↓(ポインタという概念が無意味という意味ではない)

変数はオブジェクトを参照するためのもの(参照しているもの)

変数をメソッドの引数としたときは、メソッドに渡されるのは変数そのものではなく
変数が参照しているオブジェクトが渡される
⇒foo(bar)→barが参照しているオブジェクトが渡されるのであって、barに関する情報が渡されるのではない

メソッド内で、引数に渡されたオブジェクトの状態を変えると呼び出し元に影響を与える
⇒呼び出しもとと同じオブジェクトを対象としているのだから当然
bar := hoge new.
foo(bar).
---
foo(Object boo) {
 boo.method();
}

メソッド内で、引数の変数が参照するオブジェクトを変えても呼び出し元へは影響しない
⇒引数と渡しているのはあくまで変数が参照するオブジェクトであって、変数の情報ではない
bar := hoge new.
foo(bar).
---
foo(Object boo) {
 boo := nil.
}
706デフォルトの名無しさん:2006/01/07(土) 03:26:07
非オブジェクト言語の作法で理解するのが無理が有る。
ポインタは忘れた方がいいよ。

Javaに限らず新しい言語を覚える時は新鮮な気持ちで学習した方が効率がいいよ。
あとで振り返って、言語間の扱いかたの差異を気にする程度で十分。
日本語に直して英語を覚えても、日本語風英語になってしまうのがいい例。ネイティブ英語を身につけたければ日本語文法は忘れたほうがいい。


PGにも姉歯みたいに手抜き設計する香具師が居るんだね。
法整備進めて、アフォな設計するPGに責任取らせないと良くならないかな。
707デフォルトの名無しさん:2006/01/07(土) 04:52:00
>>706
後半禿
708デフォルトの名無しさん:2006/01/07(土) 12:51:53
>>703
型チェック以外何かあるか?
709デフォルトの名無しさん:2006/01/07(土) 13:52:04
javaからhtmlに直接繋ぐ方法がわかりません。
javaでwindowを作って、そこにリンクのような形でhtmlに繋げる方法ってのは
ありますか?
710デフォルトの名無しさん:2006/01/07(土) 13:57:25
Javaでウインドウ作るメリットって何?
はじめのウインドウもIEなどのブラウザじゃだめなの?
711デフォルトの名無しさん:2006/01/07(土) 14:06:48
>>708
Cのポインタは、ただデータのアドレスを示す抽象的な値だけど
C++のポインタは、それをReferenceとして抜き出せる具体的な値で
だから型チェックができるじゃない
712デフォルトの名無しさん:2006/01/07(土) 14:11:41
713709:2006/01/07(土) 14:15:25
>>710
javaから繋げることができれば、最初のウィンドウはIEでも全然問題ないです。
javaでGUIを作っていて、そのGUIのヘルプメニューみたいなものから直接htmlに繋げたかったんです。
714デフォルトの名無しさん:2006/01/07(土) 14:29:45
>>709
JEditorPaneあたりを使うのが一般的なんだろうがJLabelでも簡易表示は可能だ。
SWTのBrowserみたいにネイティブのブラウザをラップしたものもあるので
そのあたりを使うのも可能。
715709:2006/01/07(土) 14:33:38
>>710
ありがとうございます。JEditorPaneってのを使ってやってみようと思います。
716デフォルトの名無しさん:2006/01/07(土) 14:43:40
717デフォルトの名無しさん:2006/01/07(土) 16:21:32
718デフォルトの名無しさん:2006/01/07(土) 17:57:45
719デフォルトの名無しさん:2006/01/07(土) 18:13:33
string型のIPアドレス(IPv4,IPv6両者)をbyte[]に変換するようなメソッドはないのでしょうか?
少し探してみたのですが、なくて困っています・・・

もしくは、string型のIPアドレスからInetAddressクラスを生成する方法でもかまいません。
どなたか、ご教授ください
よろしくお願いします
720デフォルトの名無しさん:2006/01/07(土) 18:14:24
自分で作れば?
721デフォルトの名無しさん:2006/01/07(土) 18:54:33
InetAddress.getByName() はダメなん?
722デフォルトの名無しさん:2006/01/07(土) 19:03:16
>>721
できました!!
ありがとうございました。
getByName(String)に直接IPアドレスを与えるとは全く思いつきませんでした
本当に助かりました。
ありがとうございました
723デフォルトの名無しさん:2006/01/07(土) 19:13:27
>>706
姉歯問題ならSOX法で解決!
724デフォルトの名無しさん:2006/01/07(土) 20:24:46
>>722
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/InetAddress.html#getByName(java.lang.String)

ってか、Javadocくらい読んだら?
ホスト名は「java.sun.com」のようなマシン名か、IP アドレスのテキスト表現です。リテラル IP アドレスが指定された場合、
アドレス形式の有効性だけをチェックします。

と書いてあるじゃん。
725デフォルトの名無しさん:2006/01/07(土) 20:27:23
>>724
結局「初心者」って言葉が免罪符だと思ってる奴ばっかってことだよ
726デフォルトの名無しさん:2006/01/07(土) 21:53:38
SwingのLayoutで、BorderLayout内にFlowLayoutを並べたい場合はどうすればよいですか?
727デフォルトの名無しさん:2006/01/07(土) 21:58:09
BorderLayoutのJFrameに
FlowLayoutで配置したJPanelをAddする
728デフォルトの名無しさん:2006/01/07(土) 22:02:50
>>723
硫黄酸化物? とか思った俺はロートル。
729デフォルトの名無しさん:2006/01/07(土) 22:49:41
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/StringBuffer.html

いまひとつ翻訳しきれてないように見えるんだが。
730デフォルトの名無しさん:2006/01/07(土) 23:30:26
>>697
ありがとうございます。よくわかりました。
intとintの配列とクラスのインスタンスと・・・とごっちゃになってました。
少し頭の中が整理できました。

>>698,701-706
ご忠告ありがとうございます。ずっとCだったのでとても苦労してます。
731デフォルトの名無しさん:2006/01/08(日) 09:51:19
お願いします;
javaでmp3ファイルを読み込むのはどんなクラスを使ったらいいでしょうか?
mp3以外の音声ファイルでもいいです;

読み込んだものを表示してみたいと思いました。
732デフォルトの名無しさん:2006/01/08(日) 10:11:13
>>563 氏も同様の質問をされていますが)
現状ではWindowsでJava Communication APIを使う方法はないのでしょうか?
sunのサイトではダウンロードできないみたいなんですが…
よろしくお願いします
733デフォルトの名無しさん:2006/01/08(日) 10:11:28
>>731

Java Sound API
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/sound/sampled/package-summary.html
ガイド:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/sound/programmer_guide/contents.html

mp3はデフォルトでは使えなかったような気がするが、wavは使える。
734デフォルトの名無しさん:2006/01/08(日) 11:28:51
>>732
そういったNativeな機能はあまり期待しない方がいいよ
そういったことがやりたければC++をやりなさい
735デフォルトの名無しさん:2006/01/08(日) 12:48:18
仕事で使う場合はイーサシリアル変換機つかったほうが楽だな
736デフォルトの名無しさん:2006/01/08(日) 14:09:50
>>731
JMFかJLayerを使う手もある。
737デフォルトの名無しさん:2006/01/08(日) 16:02:02
HTMLを読み込んでJAVAでしっかり表示してボタンとかも押したらちゃんさせたいんです、どうしたらいいでしょうか
738デフォルトの名無しさん:2006/01/08(日) 16:36:45
>>737
java製のブラウザならjdkのサンプルかなんかにあった気がする
>ボタンとかも押したらちゃんさせたい
フォームのサブミットボタンでポスト送信していってこと?
まずは基本的な用語を覚えてないと人に丸投げすることもできないぞ
http とか htmlとか勉強しる
739デフォルトの名無しさん:2006/01/08(日) 16:38:01
s/していって/したいって/
俺はキータイプの勉強だな orz
740デフォルトの名無しさん:2006/01/08(日) 16:42:22
>>737
楽にやりたいなら JDIC の browser コンポーネント使えば?
741732:2006/01/08(日) 22:34:20
ご返答ありがとうございます。

>>734
既にjavaで開発しているソフトがあって、それをシリアルの機材に対応させたいんです…。
実際の通信の部分は外部のCプログラムを呼び出すというのも検討してみます。

>>735
そんなものがあるとは知りませんでした。
それを使えばマックでもいける可能性があるわけですね!
742デフォルトの名無しさん:2006/01/08(日) 22:47:26
>>741
わりとFA用途でつかわれてるよ
ソケット通信すればそれがシリアルになる
フロー制御はあらかじめ設定するだけ

TCPIPが使えればいいだけなのでMacでもWinでもなんでもOK
743デフォルトの名無しさん:2006/01/08(日) 23:22:50
javaのバージョンが違う場合、
エラーがあったときの表示のされ方は異なるんですか?
744デフォルトの名無しさん:2006/01/08(日) 23:30:50
public class test {
public static void main(String[] args) {
String str1 = new String("あああ");
String str2 = new String("あああ");
String str3 = "あああ";
String str4 = "あああ";

System.out.println( (str1 == str2) ? "同じ" : "違う" );
System.out.println( (str3 == str4) ? "同じ" : "違う" );
}
}

new String だとインスタンスの比較なのか "違う" となるのは分かったのですが、
もう片方は よく分かりません。 なぜ "同じ" となるのか教えて下さい。m(_ _)m
745732:2006/01/08(日) 23:34:08
>>742
なるほど、かなり魅力的な装置ですね。
ありがとうございました
746デフォルトの名無しさん:2006/01/08(日) 23:34:38
>>744
""で囲まれたリテラルは使いまわされるから
str3もstr4も同じ"あああ"を指す
747744:2006/01/08(日) 23:37:29
>>746
なるほど、使いまわされるのですね。
ありがとうございました。
748デフォルトの名無しさん:2006/01/08(日) 23:59:27
>>746
>""で囲まれたリテラルは使いまわされるから
だからさ、毎回そうなるとは限らないということを何度いったら・・・
749デフォルトの名無しさん:2006/01/09(月) 00:15:43
釣られるなよクマー
750デフォルトの名無しさん:2006/01/09(月) 00:17:50
よし釣られないぞ。
751デフォルトの名無しさん:2006/01/09(月) 00:18:16
>>748
例えば?
752デフォルトの名無しさん:2006/01/09(月) 00:18:40
>>751 釣られるなよ。
753デフォルトの名無しさん:2006/01/09(月) 00:22:54
754デフォルトの名無しさん:2006/01/09(月) 00:27:42
>>732
IBMは1.3/1.4/1.5の各バージョンにおいて、Java Comm APIのWindows
実装を出してるぞ。
755デフォルトの名無しさん:2006/01/09(月) 00:28:08
正解はこうだ
「""で囲まれたリテラルは、大抵の場合==で比較すると同じになる」
                  ̄ ̄
つまり
「""で囲まれたリテラルは、==で比較すると常に同じになるわけではない」

最近、このスレだったか他のスレだったか忘れたけど
「そんな、あやふやなことはありえない、どっちかに確定する(どっちかは忘れたが・・・)」みたいなこといっている奴がいたけど、それは間違い。
このように、「使いまわされるかどうかはそのときに決まる」というのが正解。
こんなの簡単なプログラム書けばすぐ終わる事だって。

756デフォルトの名無しさん:2006/01/09(月) 00:29:29
釣りじゃなくてリアルなのか? こいつ。
757デフォルトの名無しさん:2006/01/09(月) 00:30:07
「小泉純一郎」→「%BE%AE%C0%F4%BD%E3%B0%EC%CF%BA」といったように、
euc-jpの各バイトを「"%" +2桁の16真数表現」に変換する方法がわかる方いますか
758デフォルトの名無しさん:2006/01/09(月) 00:31:29
>>757
こんなの簡単なプログラム書けばすぐ終わる事だって。
759デフォルトの名無しさん:2006/01/09(月) 00:33:36
>>757
はい、分かる方はここにいます
760デフォルトの名無しさん:2006/01/09(月) 00:35:31
文字列リテラル として記述した場合は同一になる
(コンパイル時にinternされる)

実行時に新しいインスタンスが構築される場合は
基本的に同一にならない(同値ではあるけど)
761757:2006/01/09(月) 00:36:34
>>759
分かる方、教えてください
762デフォルトの名無しさん:2006/01/09(月) 00:36:37
>>760
おかぁさんといっしょに、おうちかえりましょうね〜
763デフォルトの名無しさん:2006/01/09(月) 00:39:35
>>757

おれは759じゃないけどな、
「小泉純一郎(euc)」の文字列をeucで読み取ってバイト配列にすればいいんじゃないの?
%は自分でつけるんだろうが・・・

まぁなんだ、それってJavaの質問なのかといいたい。
C言語から始めてください。
基本の基を知らないうちにプログラム始めるからそうなるのですよ。
764デフォルトの名無しさん:2006/01/09(月) 00:46:53
>>763
Javaを学習するのにCは不要
JavaはC言語を拡張したものではなく、C言語記法をまねただけ
おわかり?
765757:2006/01/09(月) 00:56:34
public static void main(String[] args) {
String str = "小泉純一郎";
HexDumpEncoder enc = new HexDumpEncoder();
System.out.println(enc.encode(str.getBytes()));

}

結果

0000: 8F AC 90 F2 8F 83 88 EA 98 59


この方法は間違いですよね
助言をお願いします
766デフォルトの名無しさん:2006/01/09(月) 01:00:27
Javaで縮小化したときにタスクバーの右上に
アイコンを表示させるアプリケーションは作れますか?
767デフォルトの名無しさん:2006/01/09(月) 01:01:18
文字列の同値・非同値に関しては言語仕様で決まってるんだからそれを参照しろよ。
「Java 言語仕様 3.10.5 文字列リテラル」より。

同じパッケージ(7.)の同じクラス内(8.)のリテラル文字列は,同じオブジェクト String(4.3.1)への参照を表現する。
同じパッケージの異なるクラス内のリテラル文字列は,同じオブジェクト String への参照を表現する。
異なるパッケージの異なるクラス内のリテラル文字列は,同様に,同じオブジェクト String への参照を表現する。
定数式(15.27)によって計算される文字列は,コンパイル時に計算され,それらがリテラルであるかのように扱われる。
実行時に計算される文字列は,新しく生成されるものであって,別の文字列とする。
計算された文字列を明示的に収容した結果は,同じ内容をもつ既存のリテラル文字列と同じ文字列とする。
768デフォルトの名無しさん:2006/01/09(月) 01:02:16
まず、その方法だとソースファイルもEUCにしないといけない
もうひとつ、str.getBytes()の時点でOSがWindowsなら化けた文字でbyte[]に変換されてしまう
769デフォルトの名無しさん:2006/01/09(月) 01:04:08
>Javaで縮小化したときにタスクバーの右上に
>アイコンを表示させるアプリケーションは作れますか?

意味がよくわからない
縮小化したときのタスクバーの右上ってどの部分なのか?
770デフォルトの名無しさん:2006/01/09(月) 01:06:21
ごめん自分で読み直してもよくわからなかった。
>縮小化したときのタスクバーの右上ってどの部分なのか?
Windowsのタスクバーの右端(時計表示のすぐ左)ってことです。
771デフォルトの名無しさん:2006/01/09(月) 01:08:49
>>770
それを言うなら「タスクトレイ」な
あーそれは無理、タスクトレイに常駐アイコンとかも無理
772デフォルトの名無しさん:2006/01/09(月) 01:11:33
>>767
とうとう、頭おかしい奴が現れたか・・・というか・・・勘違いって奴?
==は何を比較していますか?
equals(Stringの)は何を比較していますか?
equals(Objectの)は何を比較していますか?
773デフォルトの名無しさん:2006/01/09(月) 01:12:54
オブジェクトの同一と同値を理解していない馬鹿がいるな
774デフォルトの名無しさん:2006/01/09(月) 01:16:58
>>771
ありがとう。タスクトレイっていうのか。

無理ですかorz
常駐して動作するアプリ作ろうと思ったんだけど(メモリ掃除ソフトみたいな)
Cの方がいいのかな(´・ω・`)
775デフォルトの名無しさん:2006/01/09(月) 01:19:29
>オブジェクトの同一と同値を理解していない馬鹿がいるな

で?おまいさんは>>772の3つの答えをわかって言っているの?
776デフォルトの名無しさん:2006/01/09(月) 01:21:15
773じゃないけど、上から【参照】【内容】【参照】。
777デフォルトの名無しさん:2006/01/09(月) 01:21:37
>>774
あとは6でできるようになるから、出るのを待つか。
778デフォルトの名無しさん:2006/01/09(月) 01:24:09
ということは?>>767の話は、ちょっと違うよね?と言いたい わかる?
779デフォルトの名無しさん:2006/01/09(月) 01:26:26
論争するのは良いが
アフォの俺にもわかるように結論書いてくれよ最後に
780デフォルトの名無しさん:2006/01/09(月) 01:29:16
>>779
だから、>>755
「""で囲まれたリテラルは、==で比較すると常に同じになるわけではない」 以上
781デフォルトの名無しさん:2006/01/09(月) 01:31:55
同じにならない条件は何?
782デフォルトの名無しさん:2006/01/09(月) 01:34:50
>774
これでも使うとよろし
http://systray.sourceforge.net/
783767:2006/01/09(月) 01:35:30
同値・非同値でなく同一・非同一と書いたほうがよかったか?

""で囲まれた同値な文字列のリテラルは「かならず」同一Stringオブジェクトになります。
784デフォルトの名無しさん:2006/01/09(月) 01:40:07
>>782
おお
サンクス
785デフォルトの名無しさん:2006/01/09(月) 01:42:17
"あああ"はリテラル
new String("あああ")はリテラルじゃない
786デフォルトの名無しさん:2006/01/09(月) 01:45:07
ちなみに
同じパッケージの同じクラス内
同じパッケージの異なるクラス内
異なるパッケージの異なるクラス内
で同一になるという言語仕様を満たすため、
クラスファイルを読み込むときにVMは
クラスファイルの定数プールに含まれる文字列を
VM内の文字列プール内で一意にまとめるという処理を行なっている。
787デフォルトの名無しさん:2006/01/09(月) 01:51:15
だから俺みたいなアフォにもわかるように結論を頼む
788デフォルトの名無しさん:2006/01/09(月) 01:52:05
『参照が同じだ』って明記してあるのに、なんで >>780 とかに勘違いするのか。
789デフォルトの名無しさん:2006/01/09(月) 01:53:04
つか、781の答えをだれか頼む。
反例だから一個あれば十分なんだけど、これまで誰も==がtrueにならない
例を出してないよね。
790デフォルトの名無しさん:2006/01/09(月) 01:54:51
いや、リテラルに関しては反例を認めないって言語規定に書いてあるのに……
791デフォルトの名無しさん:2006/01/09(月) 02:00:37
>>790 なら780は釣りか真性ってことでOK?
792デフォルトの名無しさん:2006/01/09(月) 02:01:43
どうでも良いから明日の朝までに結論出しておいてくだせぇ
793デフォルトの名無しさん:2006/01/09(月) 02:04:05
こんなの簡単なプログラム書けばすぐ終わる事だって。
794デフォルトの名無しさん:2006/01/09(月) 02:10:43
>>793
じゃあ、書いてみて
795デフォルトの名無しさん:2006/01/09(月) 02:11:27
って言うか言語仕様読め。サンプルプログラムまで書いてあるから。
http://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#101083

package testPackage;
class Test {
   public static void main(String[] args) {
      String hello = "Hello", lo = "lo";
      System.out.print((hello == "Hello") + " ");              // 同一クラスのリテラルどうしの参照検査
      System.out.print((Other.hello == hello) + " ");          // 他クラスとのリテラルどうしの参照検査
      System.out.print((other.Other.hello == hello) + " ");   // 他パッケージとのリテラルどうしの参照検査
      System.out.print((hello == ("Hel"+"lo")) + " ");        // リテラルどうしを加算したものとの参照検査
      System.out.print((hello == ("Hel"+lo)) + " ");           // リテラル+変数を加算したものとの参照検査
      System.out.println(hello == ("Hel"+lo).intern());         // 上記の結果を intern したもの
   }
}
class Other { static String hello = "Hello"; }

package other;
public class Other { static String hello = "Hello"; }
796続き:2006/01/09(月) 02:12:13
これらは,次を出力する。

true true true true false true             // これらが出力されることが規定されている
797デフォルトの名無しさん:2006/01/09(月) 02:15:39
こんなこともわからないのはC言語を勉強してないからだよw
798デフォルトの名無しさん:2006/01/09(月) 02:19:04
いっぱい釣れましたクマー
799デフォルトの名無しさん:2006/01/09(月) 02:24:55
>>795
otherパッケージの方、public付けわすれてるよ
800デフォルトの名無しさん:2006/01/09(月) 02:26:03
801デフォルトの名無しさん:2006/01/09(月) 03:10:09
>>755>>780>>793>>797
""で囲まれたリテラルって連結も話題になってたんだね
Javaしか勉強してないと心が読めないな
802デフォルトの名無しさん:2006/01/09(月) 03:17:09
String url = "http://www.yahoo.co.jp/";
try {
URLConnection conn = new URL(url).openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
System.out.println(sb.toString());
} catch (Exception e) {
e.printStackTrace();
throw new Exception("error");
}

htmlを表示したいんですが、日本語が文字化けしてしまいます
既出かとは思うんですが、この場合の解決策を教えてください
803デフォルトの名無しさん:2006/01/09(月) 03:18:58
既出なので探してください
804802:2006/01/09(月) 03:20:48
ヒントを教えてください
805デフォルトの名無しさん:2006/01/09(月) 03:23:33
Yahooのサイトの文字コードは何か調べてみてください
806デフォルトの名無しさん:2006/01/09(月) 03:35:27
System.out.println(sb.toString());



String test = URLEncoder.encode(sb.toString(),"euc-jp");
System.out.println(test);

euc-jpでした
自分なりにやってみたのですがだめでした
「"Java質問・相談スレッド" 文字化け」で検索したのですがなかなか見つからないので
わかる人すいませんがお願いします
807デフォルトの名無しさん:2006/01/09(月) 04:01:45
まず自分が書いたコードで使われているクラスやメソッドのマニュアルは
全て目を通すこと。そうすれば、
InputStreamReader(InputStream in)
を使ってはいけないことと、かわりに何を使えばいいかがわかるでしょ。
808デフォルトの名無しさん:2006/01/09(月) 04:13:52
>System.out.print((hello == ("Hel"+"lo")) + " "); // リテラルどうしを加算したものとの参照検査
これもtrueか。
コンパイル時に計算すましてるのか。

>System.out.print((hello == ("Hel"+lo)) + " "); // リテラル+変数を加算したものとの参照検査
もしloがfinalならコンパイル時に確定できるわけだけどどうなるの?
コンパイラいれんのじゃまくさい。
809デフォルトの名無しさん:2006/01/09(月) 04:20:45
よーし、俺も釣られちゃうぞ。
>>755=>>793
「簡単なプログラム書けばすぐ終わる」ならさっさと書きやがれ。
お前が同じにならない例を1つでも出せばそれで終わるんだからな。
まあ、そんな例出せるわけないわな。pgr
810デフォルトの名無しさん:2006/01/09(月) 04:38:01
>>808
http://www.y-adagio.com/public/standards/tr_javalang2/lexical.doc.html#101083
>・定数式(15.28)によって生成される文字列は,コンパイル時に計算され,リテラルのように扱われる。
http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#5313
>コンパイル時の定数式 (constant expression) は,次のものだけを使用して構成されるプリミティブ型の値又は String を表す式とする。
>・初期化子が定数式である final 変数を参照する単純名
811デフォルトの名無しさん:2006/01/09(月) 05:02:50
ここまで釣ったのだから、
責任を持って >>755 は反論しる
ワクテカ
812デフォルトの名無しさん:2006/01/09(月) 07:48:17
Windows 用の J2SE Development Kit 5.0をインストール
しています。インストーラではインストールする項目
が選べますが、

【開発ツール】J2SE Development Kit 5.0 (専用 JRE 5.0 を含む)
【Public JRE】スタンドアロン JRE

このうち、上の「専用 JRE」てのはなんなんでしょうか?
813デフォルトの名無しさん:2006/01/09(月) 08:24:21
Sun の JVM って、起動時に固定サイズのメモリがっつりOSから
取るんでしょうか?それともアプリケーションからの要求に
応じて動的にメモリ取ってくれるんでしょうか?

Java アプリ動かすと、javaw.exe が激しくメモリ
占有しているんで、気になります。
814デフォルトの名無しさん:2006/01/09(月) 08:32:30
>>755は前にも出てきた半端な知識のリアル厨房だろ
釣りじゃなくてリアルで分かってないと思われ
815デフォルトの名無しさん:2006/01/09(月) 08:35:59
>>813
動的にとるが上限あり
816デフォルトの名無しさん:2006/01/09(月) 08:56:43
>>815 ありがとうございます。安心しました。
817デフォルトの名無しさん:2006/01/09(月) 08:57:23
CDT って C/C++ Indexer を On にしていると、
激しく固まったりして使い物にならないのはなぜ?
818817:2006/01/09(月) 09:00:53
すんません、 Eclipse スレと間違えました。
華麗にスルーしてください。
819デフォルトの名無しさん:2006/01/09(月) 09:45:36
>>774
mustang ならタスクトレイ使えるよ。
メモリ掃除ソフトは作れないと思うけど。
820デフォルトの名無しさん:2006/01/09(月) 10:26:05
>>812

privateJREというやつだ
SDKを動かすためにいれるランタイム

publicはレジストリ登録やパスを通していてシステム全体で使えるものだが
privateJREはそのアプリが必要とするランタイム

だから、publicとしてシステムには1.4.2をいれておいて
開発用に1.5.0ということも普通にある

また、細かいリビジョンでの違いが存在するため挙動を確保するために
アプリにつけて配布というのはよくあること
821デフォルトの名無しさん:2006/01/09(月) 10:57:43
もうString同値の話題は禁止にしようぜ
822デフォルトの名無しさん:2006/01/09(月) 11:03:39
すれば。脳内で。
823デフォルトの名無しさん:2006/01/09(月) 11:51:00
マルムシさんがタウリン入り飴を好きなように
民度の低そうなやつに限ってGUIアプリだの、
常駐アプリだのを作りたがるね
824デフォルトの名無しさん:2006/01/09(月) 12:05:11
>>809
わからない奴らだな、”常に==が同じになるとは限らない”といっている意味がわからないのか?
どうなるかは常にわからないのだから、何回も繰り返して表示するプログラム書けばいいでないの。
そのうちたまにfalseになるんだから
825デフォルトの名無しさん:2006/01/09(月) 12:09:59
>>824
阿呆だな
「常に〜とは限らない」のならば
常で無い場合には必ず何がしかの条件があるはずだろ
その条件も提示せず結論のみ言ってるのは
細木かずこの占いより信用できない
826デフォルトの名無しさん:2006/01/09(月) 12:13:14
確かに「==比較の結果」だけ着目すれば、既出のように
変数の初期化の仕方によって結果は異なるね。

>>825
勘違いしている
"aaa" == "aaa"
は確かに常にtrueだけど、>>824が言っているのは「==」の部分
両辺のオブジェクトについては触れてないだろ?
比較したいオブジェクトによって結果は異なる。

"aaa" == "aaa" の "=="かもしれないし、
new String("aaa") == new String("aaa") の "=="かもしれない
827826:2006/01/09(月) 12:14:58
ごめん、俺こそ勘違いだな
>そのうちたまにfalseになるんだから

これはあり得ないね
忘れてくれ
828デフォルトの名無しさん:2006/01/09(月) 12:16:09
>>825
意味の捉え方が違う
スレッドで割り込むタイミングが全く一緒でしょうか?
アレと同じだよ
829デフォルトの名無しさん:2006/01/09(月) 12:19:37
>>828
それは条件を提示する事が出来るが
>>824は結果のみfalseになる場合もあると言ってる
条件提示できずとも,そのプログラムを是非晒してもらいたいものだ
830デフォルトの名無しさん:2006/01/09(月) 12:26:47
なぜ、equals使いなさいといわれるのかよく考えてくれ

==で常に同じ結果になるとそこまで言うのなら(リテラルパターンの場合だけだが)
==使ってもいいじゃない?なのに(多分)おまえらは使っていないだろう?なぜ?

>条件提示できずとも,そのプログラムを是非晒してもらいたいものだ
そのまえによーお前の使っているPCの種類おしえろやCPUな
831デフォルトの名無しさん:2006/01/09(月) 12:30:01
>>755
簡単なプログラムを書いてくれないためにループしてる件について
期待age
832デフォルトの名無しさん:2006/01/09(月) 12:31:24
>>830
ThinkPadX31(PentiumM1.7GHz)、WindowsXP
VMはIBM1.4.2とSUN1.5.0

で、何で==を使って比較しないか。
それは両辺のオブジェクトの生成経緯を知らないから。
明らかにリテラルなら使うかもしれないが、そもそも
同一リテラルを比較することが明白なら
if(true)とでもしたほうがまし。
833デフォルトの名無しさん:2006/01/09(月) 12:34:22
>>830
ハイ,条件が一つ出ました
どうやらfalseになる条件にCPUの種類が関係するそうです
期待ageage
834デフォルトの名無しさん:2006/01/09(月) 12:36:57
>簡単なプログラムを書いてくれないためにループしてる件について
>期待age

プログラムは簡単だけどよー
環境構築の手順書くのがめんどいんだよ
ここでも読んでくれ
http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html

835デフォルトの名無しさん:2006/01/09(月) 12:39:17
>>834
環境構築はTOMCATのサイト見るんで、
プログラム書いてよ
836デフォルトの名無しさん:2006/01/09(月) 12:40:12
>>834
わかった
環境はなんとかしよう
まずはその簡単なプログラムを提示してくれ
837デフォルトの名無しさん:2006/01/09(月) 12:43:29
>なぜ、equals使いなさいといわれるのかよく考えてくれ

リテラル値とは限らないからだろ。
838デフォルトの名無しさん:2006/01/09(月) 12:44:43




   も し か し て



   再 現 で き な い の ?




839デフォルトの名無しさん:2006/01/09(月) 12:47:37
次の言い訳
JDKをピッチでダウンロードしている
Eclipseをピッチでダウンロードしている
Tomcatをピッチでダウンロードしている
Apacheをピッチでダウンロードしている
Cygwinをピッチでダウンロードしている
Apache-Tomcatコネクタをコンパイルしている
840デフォルトの名無しさん:2006/01/09(月) 12:52:28
>ピッチ
家に無線LAN来る前はそんなことやっていたな
841デフォルトの名無しさん:2006/01/09(月) 12:54:11
SPARCじゃないと再現できない

とかですか?
842デフォルトの名無しさん:2006/01/09(月) 13:01:35
ロードバランサー環境か・・・ふぅ〜
843デフォルトの名無しさん:2006/01/09(月) 13:11:47
なんかつまんないね
844デフォルトの名無しさん:2006/01/09(月) 13:14:18
要は別VMに持っていった時にfalseになることもあるっていいたいわけ?
845デフォルトの名無しさん:2006/01/09(月) 13:15:21
RMI
846デフォルトの名無しさん:2006/01/09(月) 13:15:54
視野の狭い奴ら
847デフォルトの名無しさん:2006/01/09(月) 13:18:54
そもそもリテラルとStringオブジェクトの区別をつけろよな
リテラルは別なVMにはもってけないだろ
848デフォルトの名無しさん:2006/01/09(月) 13:19:35
そういや昔このスレで、やっぱり==はfalseになるって言ってるやつがいて、
根拠は「BeanShellで確認したから間違いない」だった。突っ込み入れる
気力も失せたね。
849デフォルトの名無しさん:2006/01/09(月) 13:29:09
俺にはすっげぇ趣味の悪いストレス発散の方法があって、
道行くカップルの女のほうに、
「あ、ミキちゃん!久しぶり!
 え〜と、彼氏?同伴?かっこいいね〜!
 ってかミキちゃん最近店で見ないよね〜!!
 また行くからヌイてよね!!ミキちゃんうまいから!!」
とまくし立てて逃げて、隠れて様子を見るのが好きなんだけど、
この前同じ事したら、女のほうが泣きそうになりながら、
「違うよ!人違いだよ!私そんな事してない!!」
とか喚くのね。普通は「?」って感じでスルーするヤツが多いんだけど、
この女ものすごいリアクションとるのよ。
ぎゃーぎゃー喚いて、違う!本当に違う!の連発。
マジで風俗女か前歴があるとしか思えないほどの焦りっぷり。
じゃ、彼氏のほうが、「もういいって」とか言って涼しい顔。
なーんだ、おもんねぇと思った瞬間。女殴った。
街中で。グーで。思いっきり振りかぶって、顔を。
女は鼻血ダラダラ流して、泣きながら男の後を追う。
「本当にじでないよ!ね”ぇ!!ゆうぢゃんだけだよぉ!!」
とか叫びながら。

もう一個のストレス発散方法は、ありえない議論をさもそうであるかのように熱弁し
有識者のみしか対応できないようにして「中途半端な知識をもったやつら」を排除しようと言う試み
どこまでわかっているのかを探る
850デフォルトの名無しさん:2006/01/09(月) 13:29:12
851デフォルトの名無しさん:2006/01/09(月) 13:30:14
日本語を英語に変換するにはどのように書けばいいんですかね?
852デフォルトの名無しさん:2006/01/09(月) 13:32:53
>>851
つ 和英辞書
853デフォルトの名無しさん:2006/01/09(月) 13:33:32
>>851
ドラゴンブック読んでコンパイラの仕組みを学んで
あなたがこれから中学で学習する英語の知識をそこに
当てはめればいいよ
854デフォルトの名無しさん:2006/01/09(月) 13:34:04
ひらがなをローマ時表記に変えるにはどのようにかけばいいんですかね?
855デフォルトの名無しさん:2006/01/09(月) 13:50:31
javaでmp3を扱うためにJavaZOOMのライブラリを使ってるんですが、
iTunesとかのaacを扱うのにいいライブラリってないでしょうか?
MEPG関係のライブラリでは扱えないですよね?
856デフォルトの名無しさん:2006/01/09(月) 14:03:22
>>855
ffのJava版
857デフォルトの名無しさん:2006/01/09(月) 14:20:03
>>838
www
お隣の不思議の国の黄教授が思い浮かんだ。
858デフォルトの名無しさん:2006/01/09(月) 14:28:27
>>854
自前
859855:2006/01/09(月) 15:23:08
>856
ありがとう。
いまからいじってくるよノシ
860デフォルトの名無しさん:2006/01/09(月) 15:43:39
(数字2つ:数字2つ)に一致する正規表現を作ろうとして

Pattern.compile("([^(]\d{2}:\d{2})",Pattern.CASE_....);
とやるとエスケープ文字が不正ですとかでるんですが
\dで1〜9の整数値になるんですよね?
861デフォルトの名無しさん:2006/01/09(月) 15:53:17
通常の正規表現だと
\(\d{2}:\d{2}\)
でよいとは思うが、Javaの場合
\\(\\d{2}:\\d{2}\\)
となるかな
862デフォルトの名無しさん:2006/01/09(月) 16:14:47
>861
\\ですか、レスありがとうございます
863デフォルトの名無しさん:2006/01/09(月) 16:43:53
続きはないのか?
ほとぼりが冷めたころ、また

>だからさ、毎回そうなるとは限らないということを何度いったら・・・

でループするのか?
864デフォルトの名無しさん:2006/01/09(月) 17:26:00

OS WindowsXP
java j2sdk1.4.2
Tomcat Tomcat5.0.28

Tomcatをインストールしました。
startup.batを起動すると、
「'-Djava.endorsed.dirs=' が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。」
というエラーが出ます。
yahooで検索したところ、似たような質問があったのですが、解決出来ませんでした。
わかる方いますか?

http://search.yahoo.co.jp/search?p=Tomcat+Djava.endorsed.dirs+%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93&ei=UTF-8&pstart=1&dups=1
865デフォルトの名無しさん:2006/01/09(月) 17:30:26
String問題引っ張ってるのは「さあおまいら問題だ!」の人かな。
866デフォルトの名無しさん:2006/01/09(月) 18:28:34
済みません。教えてください。
appletの中でFilewhiterを動かそうとすると
Exception in thread "main" java.security.AccessControlException: access denied (
java.io.FilePermission c:\temp\hoge.txt write)
というエラーが発生するのですが、どうすれば動くようになるのでしょうか?
867デフォルトの名無しさん:2006/01/09(月) 18:33:50
>>866
あきらめて設計を見直しな
アプレットを使うのはネットワーク上の不特定多数ということで
自分の環境で動くようにしたとしても意味ないから
868デフォルトの名無しさん:2006/01/09(月) 18:34:11
アプレットの制限って知ってるよな?
知ってる上で使うのなら
Policyファイルでググれ
869デフォルトの名無しさん:2006/01/09(月) 18:34:41
>>866
署名する
870デフォルトの名無しさん:2006/01/09(月) 21:08:27
インターフェースを使うメリットのガよくわかりません
たしかに実装することによってそのメソッドを確実に使わなければならないっていう保証として
プログラミング時に便利なのかもしれませんが
そんなの仕様書にでも必ずそのメソッドを入れろって書いておけばすむような話の気がしますが
871デフォルトの名無しさん:2006/01/09(月) 21:12:05
>>870
あなたが利点が分かってくるのは大分先っぽい
いまはそんなもんだとおもっておいたほうがよさげ
872デフォルトの名無しさん:2006/01/09(月) 21:17:52
>>870
インターフェースは、オブジェクト指向厨のオナニーなので
あまり深く考える必要はないんだよ。
873デフォルトの名無しさん:2006/01/09(月) 21:28:50
>>870
インタフェースのメリット一つとして、
実装を差し替えられることを挙げておこう。
たとえば、以下のコードは便利だとは思わないか?

interface Executale { public void execute(); }

があったとして、

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

この"HogeExec"という文字列を外部ファイル化しておけば、
コードを再コンパイルせずに、実装を切り替えることができる。
ファクトリーやランチャー、デバッグモジュールなど
アイデア次第で使い道が広がるだろう?
874デフォルトの名無しさん:2006/01/09(月) 21:32:08
>>873
875デフォルトの名無しさん:2006/01/09(月) 21:36:06
>>870
インターフェースって何に使うかっていうとポリモーフィズム実現のために使うんだ
オブジェクト指向の要のうちの一つといってもいい

ポリモーフィズムってのは、同一のメッセージでもレシーバーによって振る舞いを
変えられるってことね

Smalltalkの様に型という概念がない場合は、すべてのオブジェクトに対して
任意のメッセージを送信できる。オブジェクトにメッセージに答えられるメソッドが
なければ実行時エラーになるけど

それに対して、Javaは型がある言語
876デフォルトの名無しさん:2006/01/09(月) 21:37:02
途中で送信してしまった

型がある言語では継承以外にポリモーフィズムを実現するための
手段だってことだ
877デフォルトの名無しさん:2006/01/09(月) 21:37:39
>>874
わるいわるい。
自明だったので、ちょっと説明が足りなかった。

public class HogeExec implements Executable {
public void execute() {
....
}
...
}
という実装があるってことね。
例えばこれを以下のクラスに変えることもできるってことだな。
public class Hoge2Exec implements Executable {
public void execute() {
....
}
...
}
878デフォルトの名無しさん:2006/01/09(月) 21:44:16
>>877
それって
Executableインターフェースがあってそこから
それぞれHogeExecクラス、HogeExec2クラスを見に行くって事?
879デフォルトの名無しさん:2006/01/09(月) 21:48:01
Objective-CもSmalltalkの特徴を持った言語で、
本来はメッセージパッシングは実行時に動的に処理されるが、
protocol(Javaでいうところのinterface)を導入している。
これはNeXTが確か分散オブジェクト機能の発展とともに
その必要性を考慮したからだと思った。
見知らぬ外部から送り込まれたオブジェクトが、
interfaceに合致しているかどうかということは
実行において重要だからね。
880デフォルトの名無しさん:2006/01/09(月) 21:50:19
な〇あ〇〇はJava〇オブジェクト指向〇〇が〇き〇〇のかP.128だな。
881デフォルトの名無しさん:2006/01/09(月) 21:53:15
>>878
newInstance()で作られたオブジェクトを
Executableでキャストして利用するってこと。
実装がどうなっていてもExecutableに適合していれば
使えるってこと。
EJBとかも基本はこんなような仕組みだよ。
882デフォルトの名無しさん:2006/01/09(月) 22:08:30
ちょっと蛇足だけど書いておくと、
この手法は継承を使っても同じことができることに気がつくだろう。
共通の親クラスを継承していれば、親クラスにキャストできるからね。

ただ、以下の点は考慮に入れておいた方がいい。
1.継承は高価。
2.親クラスの仕様に依存する。
これらの点を考慮に入れても、
インタフェースでなく親クラスを使うことに価値がある場合もある。
継承なら、基本ロジックを親側に埋め込めるからね。
適所適所で適切に選択すればいい。
883デフォルトの名無しさん:2006/01/09(月) 22:21:46
>>870
>>875
ポリモーフィズムは抽象クラスでも実現できるよ。
実装の変更がさも便利みたいに言ってるが、実作業じゃメソッドの実装よりも
その定義自体を変更したくなるケースが多いんだよ。
つまり、どう作るかよりも(how)、何の作るか(what)の方が難しく重要なワケ。
しかし、インターフェースは作ったが最後、その後に動的にメソッド定義を
拡張する事が出来ないので全く無用の長物に成り下がってるんだよ。
例えば、デザパタの一つ、ブリッジ・パターンで実装(インプレメンター)と
動作定義(アブストラクター)をそれぞれ別個に拡張できて便利とか言ってるけど、
ここで一番重要なのは、基本となるアブストラクター(Javaでいうインターフェース)の
メソッド定義だ。その初めのメソッド定義に不都合があると後で修正できない為に
全然使えなくなってしまう。しかし、これを上手く定義するのは予知能力者でないと事実上ムリ。
結論からするとインターフェースというのは、実作業で起こる最もポピュラーな
問題をはぐらかしてるだけの無用の長物であり、オブジェクト指向厨の自己満足オナニーに
過ぎないと思う。
884デフォルトの名無しさん:2006/01/09(月) 22:25:53
>>883が設計能力の無い上司に使われていた可哀想なPGだとうことは分った
885デフォルトの名無しさん:2006/01/09(月) 22:28:30
>>883
あなたの場合、抽象クラスもインターフェースも
問題をはぐらかしているだけの無用の長物だと思う
そして、「インターフェースは自己満足オナニー」と
評価してオナニーしているにすぎない
886デフォルトの名無しさん:2006/01/09(月) 22:31:55
>>885
アナタの方がよっぽどオナニストだろう
887デフォルトの名無しさん:2006/01/09(月) 22:35:02
>>886
どのへんが?
888デフォルトの名無しさん:2006/01/09(月) 22:44:44
>>883
抽象クラスは動的にメソッド定義を拡張できるのか?
889デフォルトの名無しさん:2006/01/09(月) 22:52:03
>>883
インターフェイスってのは、ソフトウェア工学的に仕様定義が開発の初期段階として重要な位置を占めることがわかってきたから、それを言語レベルで実現するためのものでしょ。
「仕様定義なんて難しいからインターフェイスなんていらないやーい!」とか言っているように聞こえる。
890デフォルトの名無しさん:2006/01/09(月) 22:59:21
>>883
そこでDependency Injection(DI)の話を展開できれば
聞いてやったのに、、、
891デフォルトの名無しさん:2006/01/09(月) 23:04:10
アスペクト指向も設計厨のオナニーにすぎない。
892デフォルトの名無しさん:2006/01/09(月) 23:06:56
アスペクト指向に関してはなくてもいいがな
893デフォルトの名無しさん:2006/01/09(月) 23:08:30
スレッドについておしえてください。
参照おこなうときは、ワーキングメモリから、メインメモリにコピーされて参照され、
代入をおこなうときは、ワーキングメモリから、メインメモリにコピーされるとききました。
volatileとか、synchronizedでまもらないと、いつ、参照と、代入が、
メインメモリに対しておこなわれるかわからないともききました。
ということなのですが、以下のようなプログラムの場合、mapにputした値が消えたり、
putした値がみえなかったりするもんなのでしょうか。
import java.util.*;
class Runner implements Runnable {
  private String key;private Map map;
  public Runner(String key, Map map) {
    this.key = key;this.map = map;
  }
  public void run() {
    for (int i = 0; i < 1000; i++) {
      String buf = key + i;
      map.put(buf, buf);
    }
  }
  public static void main(String[] args) {
    Map map = new HashMap();
    for (int i = 0; i < 1000; i++) {
      new Thread(new Runner(String.valueOf(i), map)).start();
    }
  }
}
それ以前に、複数スレッドからスレッドセーフでないHashMapを守らずに利用するのが間違いとはおもいますが。
894デフォルトの名無しさん:2006/01/09(月) 23:08:46
おれもアスペクト指向はどうでもいい
あれって単体じゃどうしようもないものな
895893:2006/01/09(月) 23:10:43
>参照おこなうときは、ワーキングメモリから、メインメモリにコピーされて参照され、
参照おこなうときは、メインメモリから、ワーキングメモリにコピーされて参照され、

の間違いでした。
896デフォルトの名無しさん:2006/01/09(月) 23:24:26
>>893
良くは知らんが、そういう場合は例外があがると思うけどね。
まずいと分かってるなら、改善すれば良いと思う。
897デフォルトの名無しさん:2006/01/10(火) 00:00:59
Javaでパケットをキャプチャするソフトとか作りたいんですけど
どういった勉強したらいいでしょうか?
本とか探したんですけどなかなか見つからなくて。
良い本があったら紹介してください。
お願いします。
898デフォルトの名無しさん:2006/01/10(火) 00:09:48
>>897
実装の目的は何?
プロトコル解析?

Etherealじゃだめなの?
899デフォルトの名無しさん:2006/01/10(火) 00:10:23
>>897
この質問頻繁に見るけどなんだろ
900デフォルトの名無しさん:2006/01/10(火) 00:16:53
散々考えてどうにもならなかったので、助けていただきたく初カキコします。

method.invokeを利用して取得したObjectの中にString[]が入っているのですが
これをString[]型の値として扱う方法を探しています。

現状ではmethod.getReturnType().isArray()を使用して配列を確認した後
中の配列数分のループを処理しようとしています。

どなたかお分かりになる方いらっしゃいませんか?
901897:2006/01/10(火) 00:18:14
>>898
勉強のためです。javaと同時に勉強できて効率良いかなみたいな。

>>899
そうなんですか。初めてこのスレに来たもので。
902デフォルトの名無しさん:2006/01/10(火) 00:26:07
>>901
少なくとも、本を見ながらでないと学習できない人にとっては効率悪い

>>900
String配列でキャストすればいいじゃん
903デフォルトの名無しさん:2006/01/10(火) 00:27:39
>>893
> 以下のようなプログラムの場合、mapにputした値が消えたり、
壊れやすさは HashMap の実装によって変わると思うけど、
それだと put しかしてないので基本的には壊れ難いと思うよ。
仮に put した値が消えても、別のスレッドでも重複した値を put してるから
消えてるのか調べるのも大変だし。

壊れるテストをしたいなら 片方のスレッドでは同じキーで put と get を繰り返し、
もう片方のスレッドでは clear だけを繰り返せば もっと簡単に壊せるよ。
904デフォルトの名無しさん:2006/01/10(火) 00:29:43
>>902
レスありがとうございます。
最初はそう思ったのですが実際にやってみると
InvalidTypeExceptionが発生してしまったのです。

String[] strs = ( String[] ) object;
※ object( String[2] )
905デフォルトの名無しさん:2006/01/10(火) 00:30:12
限りなくしょぼい質問ですが、どなたかお願いします。

DOS窓でコンパイルして作ったクラスファイルを実行すると
「クラスファイルが見つからない」
と出ます。
以前に作ったクラスファイルさえも実行できません。もちろん以前と同じ手順です。
以前と変わった事といえば、
年が変わった
iTunesを入れた

だけです。
独学なので泣きそうな事態です。
よろしくお願いします。
906デフォルトの名無しさん:2006/01/10(火) 00:32:42
>>905
>iTunesを入れた
これをいれるとQuickTimeもいっしょにインストールされる。
すると、QuickTime for Javaもインストールされて、環境変数CLASSPATHが
書き換えられる。実際にはQTJava.jarはlib/ext/にインストールされるから
全く必要のない書き換えなんだけどなぜかAppleの糞インストーラはこれを行う。
というわけでCLASSPATHを見直すこと。
907デフォルトの名無しさん:2006/01/10(火) 00:33:17
>>904
あれ、だめなんだっけ?
元々のメソッドのシグニチャって何?
public Object foo();
とかだったりする?
908デフォルトの名無しさん:2006/01/10(火) 00:33:59
見直すつーか、もうCLASSPATH削除しちゃっていい。
そうすればデフォルトでカレントディレクトリからクラスファイルを
検索してくれるから。
909デフォルトの名無しさん:2006/01/10(火) 00:35:19
ってか、クラスパスは実行時に明示的に指定しようぜ
910897:2006/01/10(火) 00:38:32
>>902
そんな、初心者つかまえてそんなこと言わなくても。
教えてください、お願いします。
911デフォルトの名無しさん:2006/01/10(火) 00:44:07
>>877
遅レスだが、イメージとして
クラスをインスタンス化ではなく、実態のないインターフェースをインスタンス化させて
そのインターフェースがそれぞれ自分を実装している
クラスのメソッドを見に行くって感覚?

それだとどのクラスが自分(インターフェース)を実装してるのかってわかるの?
912デフォルトの名無しさん:2006/01/10(火) 00:49:05
>>904
object.getClass().toString() の結果と、
String[] array = (String[])object; したときの InvalidTypeException の FQN は?

キャストしなくても、一応 java.lang.reflect.Array.get(object, index) で配列の要素が、
Array.getLength(object) で配列の長さが取れるけどね。
913デフォルトの名無しさん:2006/01/10(火) 00:55:22
>>910
事実だから
本気で学びたい人はこんなところで悠長なことしてないよ
914デフォルトの名無しさん:2006/01/10(火) 01:00:43
>>903
>基本的には壊れ難いと思うよ

いや、やめた方がいい。
実装の処理を隅々まで眺めて
どのタイミングで割り込まれても大丈夫と判断しないかぎり、
何が起こるかわからない。
915デフォルトの名無しさん:2006/01/10(火) 01:05:23
課題5と6が全くわからないんですが、
よければメールで教えてくれるかたいませんか?スレ地外本当にすみません・・。
課題5と6はGroupServer.javaのみ変えればいいのでしょうか?
http://page.freett.com/kb100000/m.lzh

916905:2006/01/10(火) 01:06:54
>>906
>>908
>>909

本当にありがとうございます!
まさかQuicktimeがJavaの邪魔をするなんて、、、

PATHの見直しと、
C:\からの入力を癖にしたいと思います。
917デフォルトの名無しさん:2006/01/10(火) 01:08:33
>>916
c:\からの入力というより、-cp使ってクラスパス指定する癖ね
918905:2006/01/10(火) 01:15:55
>>917
真性の初心者丸出しで恥ずかしい限りです、、、

知識をつけていただき有難うございます^^
919デフォルトの名無しさん:2006/01/10(火) 01:38:49
釣り士が多いな。チャレンジしてみよう。

(1)具象クラスでもポリモーフィズムは実現できる。
 だから、インタフェースや抽象クラスは無用な長物である。

(2)クラスがなくたってプログラムは作れる。
 だからオブジェクト指向言語は無用な長物である。

(3)プログラムがなくたって人間は生きていける。
 だから、プログラムは無用な長物である。

(4)人間なんか居なくたって地球は太陽の周りを回り続ける。
 だから、人間は無用な長物である。
920デフォルトの名無しさん:2006/01/10(火) 01:41:21
>>919
クラスがなくてもプログラムはできるね
クラスがなくてもオブジェクト指向は成り立つよ
921915:2006/01/10(火) 02:04:23
相当バカな俺です。
http://www.ipa.go.jp/security/awareness/vendor/programming/a03_03_main.html
見て、ほんの少しだけわかりそうな感じです。
どのファイルに変化を加えればいいか、教えていただけるとありがたいです。
GroupServer.javaとかMember.javaですか?
922デフォルトの名無しさん:2006/01/10(火) 02:13:51
>>921
宿題スレにでも池
923915:2006/01/10(火) 02:30:50
>>922
すみません、そうですよね、でも宿題スレ進行遅いので・・。

連投スマン。問5は、変えるのはGroupServer.javaだけかな?
グループからメンバーを離脱できるようにlist.remove(m)を付け加えればいいって
感じかな?
問6とか、もうわからん‥。答え聞いて覚えたい。明日同じ研究室の人に聞いてみることにします。。。
ほんとやばいんすよ俺。相当頭悪いし、5回レポート提出したんですが、受理は最初の2回だけで、残り3回は採点中・・。
課題無視してテキトーだったのもあるから当然っちゃ当然。
http://www.ipa.go.jp/security/awareness/vendor/programming/a03_03_main.htmlのサイトのようだと
まだ少し分かるんですが・・。あと1年くらいはこういうシステムの研究なのですが、
わかりやすく勉強できるのないですかね?俺、頭の悪い駄目人間なので同じ研究室の人に勇気もって
聞いてやるしかないですかね?なんか勉強しやすいサイトとかあったら是非教えて欲しい。
てか、答え聞いてから勉強するやりかたがいい。そっちのほうが明らかに効率的だし、そうじゃないと
俺バカだからできないから。説明不十分だし日本語もわけわかんない。これ必修だから落としたら
留年決定・・。これ落とさなければほぼいける。。自分で勉強してもわからないしさ、来るとこ間違えた。
てか、もう昔から駄目人間。マンツーマンでずっと教わりながらやりたい。研究室の人俺以外みんなできるから。
完ぺき主義者だから1個1個全ての説明が欲しい。無理だぁ。
924915:2006/01/10(火) 02:34:40
金払って、課題送って、いろいろ詳しい説明つけて送り返してくれるって
有料のサービスとかあるんすかね。そういうの使わなくちゃ駄目かもしんない、俺。
925デフォルトの名無しさん:2006/01/10(火) 02:34:44
>ほんとやばいんすよ俺。相当頭悪いし、5回レポート提出したんですが、受理は最初の2回だけで、残り3回は採点中・・。
課題無視してテキトーだったのもあるから当然っちゃ当然。

助ける義理はない上に、スレ違いを指摘されて(しかも適正なスレを教えてもらって)
まだ居座るとはいい度胸だな、オイ。勝手に課題落として死ねよ。
926デフォルトの名無しさん:2006/01/10(火) 02:37:13
答え聞いてから勉強するやりかたがいい。

とか、自分で考える気はいっさいありません。
ありがとうございました。
927デフォルトの名無しさん:2006/01/10(火) 02:49:16
>>923
留年ってなんのためにあると思う?
大学(高校)の面子を保つため
馬鹿をほいほいと進級させられるわけないだろ
928915:2006/01/10(火) 02:51:33
今日はあまり寝ずに自分でやってみて、明日研究室の人に聞いて見ます。
分かんないっていうか、ホントはだらけて自分でやってないだけですからね‥。
そんな俺も株の勉強し続けているんで、いつかはそっちの道で食っていきたいし、
例え退学・留年になってもいいかなぁって感じです(ならんけどね)
もっとこの駄目人間を叱ってください。
929915:2006/01/10(火) 03:00:32
ちなみにピンチなのは研究室のこの授業だけで、選ぶ研究室を間違えたようでした。。
友達曰く、一番難しい研究室とのこと。
他の普通の授業のテスト勉強などはみんなで過去門とか回して単位は結構取れているので、
あとはこの研究室さえとれればいける感じです。
まだ採点中のやつも、分かるところはちゃんとやったし、分からないところもネットからそれっぽいところを
持ってきたり、「終わりませんでした」って書いたり。(←これは、駄目だね)
まぁ、採点中のままなので再提出になったら頑張ってやります。
採点中なのにいきなりダメってことにはならんと思うから。以上、駄目人間でした。
930デフォルトの名無しさん:2006/01/10(火) 03:02:35
教授に泣きつけw
分かりません、教えてくださいと・・・
多分勉強不足だ!と言われるんだろうけど、今の時点で精一杯の努力を見せてみれば?
931915:2006/01/10(火) 03:15:03
>>930
ありがとう。優しいですね。でも自分の研究室そんなところじゃないんですよね。
先生もみんな優しいし。とりあえず、親が俺に月3万くらい負担させてきて精神的に駄目になってる部分もあるけど、
わがままな自分がだらけてる部分が多いです。不満ばかり感じたり。
とりあえず、1月乗り切れば、2月3月休みなので、そこである程度マジメに勉強やるしかないですね。
就活&株もやりたいですけど。来年は奨学金(月5〜10万くらい)もらう予定なので、それで少しは精神的に余裕が出るかもしれません。
まぁ全然追いつけないとは思いますけど、今日、明日くらいは徹夜でがんばってみますね。
(結構、健康主義者なので不健康なのは嫌いなんですけどね…;)
932デフォルトの名無しさん:2006/01/10(火) 03:30:11
>>931
いろいろ難癖つけて何もしない人間でしょ、あんた
933デフォルトの名無しさん:2006/01/10(火) 03:32:05
でも遅かったですね
なきつくなら、1年のときから泣きつかないとw

漏れはそのオカゲで優ばかりだよw
934デフォルトの名無しさん:2006/01/10(火) 06:03:51
株は当てにして(ry
935デフォルトの名無しさん:2006/01/10(火) 06:08:23
サーブレットについて質問なんです。
以下のような動作をさせたいです。
・現在ある画面が開かれている。
・その画面のあるボタンを押す
・入力チェックをし、エラーなので、画面のエラーメッセージ枠にエラーメッセージを表示させる。
 ただし、エラーメッセージ以外はボタンを押す前と全く同じ状態にしておきたい。

「エラーメッセージ以外はボタンを押す前と全く同じ状態にする」という部分の実現方法で悩んでいます。
私の知識で思いつくのは、以下のいまいちなやり方だけです。
・前画面表示データをセッションに入れておく。
・前画面表示データを全部サーバーに送る(サーバーでは、リクエストデータを丸ごとレスポンスに写し、エラーメッセージだけレスポンスに追加する)

何かスマートな方法があったら教えてください。

大概のフレームワークを使うと、レスポンスセッターみたいなものがあって、
アクション前後で画面遷移がない場合、レスポンスに設定したデータのみ画面で上書かれてたんですが、
フレームワーク上でどうやってたか知らないもので。。。
936デフォルトの名無しさん:2006/01/10(火) 06:18:31
かならずBeanにセットするようにすればいまいちとは思わないかも
最初からBeanの内容を表示するようにしていれば表示も簡単

Jspはなし?
937デフォルトの名無しさん:2006/01/10(火) 06:25:09
>>936 なんかわかりずらい説明ですいません。
jsp使用です。
jspにはjspと1対1のBeanを用意しています。

サーバ側のアクションクラスで、
エラーチェックに引っかかったときに、
bean.setErrMsg("エラーですよ");
とすると、エラー以外は空の画面が出てしまいます。

同様に、検索ボタン押下⇒結果表示のような場合も、
bean.setKekkaA("A");
bean.setKekkaB("B");
とすると、検索結果は表示されるが、検索条件入力が空になってしまう。

jspからサーバー側にBeanごとリクエストに渡す。
なんてことはできますか?
938デフォルトの名無しさん:2006/01/10(火) 06:33:12
ボタンを押す前と全く同じ状態にするって、入力データの保持ってこと?
value=で渡せばいいじゃん。
全く新規なら、「ここに名前を入れる」とかのデフォルト文字列を入れてHTMLを生成するとか。

JavaというよりHTMLのことだね。PG的発想でありがちな罠。
939デフォルトの名無しさん:2006/01/10(火) 06:40:03
>>938

>ボタンを押す前と全く同じ状態にするって、入力データの保持ってこと?
そういうことです。

>value=で渡せばいいじゃん
入力データを渡して、出力データに○○コピーするということでしょうか?
そうだとすると、こんなやり方にしようかと思うんですが、なんか変なところあったら是非指摘をいただきたいです。

・jspでは、フィールドは全てformで囲む。
・アクションクラスの引数はビーンとする。
・コントローラでは、リクエストのデータをビーンにマッピングし、アクションクラスに渡す。
・アクションクラスでは、上書きしたデータのみビーンに設定し、jspに渡す。

これ今日中にインターフェース提出しないといけないんですよ。。。
940デフォルトの名無しさん:2006/01/10(火) 07:25:05
計画的に学習せよ
941デフォルトの名無しさん:2006/01/10(火) 08:39:55
>>910
前回質問したのは俺。

jpcapでぐぐると2種類のライブラリが見つかるけど、
片方はVMがクラッシュして使い物にならなくて、
もう片方はキャプチャ自体ができなかったから、
結局
http://www.microolap.com/products/network/tcpdump/
をRuntime#execで結果を解析して
IpPacketって言うクラスとそれを継承したTcpPacketとかのクラスを作って、
ヘッダ部分の値とか取れるようにしたけど、
tcpdumpの仕様でフラグメントしたデータのidentificationが一致しなかったり、
フラグメントオフセットが全部0だったりして、
完璧なものはできなかった・・・・
それ以外の部分ではうまくできたんだけどね
942あぼーん:あぼーん
あぼーん
943デフォルトの名無しさん:2006/01/10(火) 18:45:27
java.util.Propertiesクラス(↓)のloadFromXMLというメソッド(XML形式で書かれたpropertiesファイルを読み込む)を使用して、
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Properties.html

javaのバージョンが5.0〜5.0_05では、問題無く動作する文字変換用プログラムを作成しました。
ところが、Javaのバージョンを5.0_06に変えた途端、

java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: URI was not reported to parser for entity [document]
java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: URI was not reported to parser for entity [document]

というエラーが出るようになり、propertiesファイルが読み込めなくなってしまいました。
5.0_05から5.0_06のバージョンアップで、XMLpropertiesの仕様変更などがあったのでしょうか?

ちなみに、loadFromXMLメソッドを使用して、XML形式のファイルを読み込むメソッドは次のようにしています。
private static Properties loadProperties(String filename){
Properties prop = new Properties();
try{
InputStream stream = new FileInputStream(filename);
prop.loadFromXML(stream);
stream.close();
} catch(Exception e){
System.out.println(e);
}
return prop;
}

また、propertiesファイルは次のような形式にしています。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="変換前1">変換後1</entry>
<entry key="変換前2">変換後2</entry>
</properties>
944デフォルトの名無しさん:2006/01/10(火) 18:49:46
はじめまして。
今、Javaで、お絵かきソフトを作ってるんですが、
どうしても書いた画像を保存できません。
どうやって保存するのでしょうか?
教えてください。
945デフォルトの名無しさん:2006/01/10(火) 19:08:51
どうやって保存しようとしてるの?
946デフォルトの名無しさん:2006/01/10(火) 19:16:16
落としてきたソース(正式リリースのもの)からeclipseでjarファイル作ってそれを利用したとき
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jusb in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)

・・・・・のようなエラーが起きます。調べたら「Java 仮想マシンが、native と宣言されたメソッドの適切なネイティブ言語の定義を見つけることができない場合にスローされます。」
とあったので、これはもしかしてjar作成の際にnative型を間違ってなんらかに変更してしまったと考えていいのでしょうか?
それともライブラリパスに変更がいるのでしょうか。
まちがってたらすいません。

947デフォルトの名無しさん:2006/01/10(火) 19:56:52
再描画のため座標値をVectorに保存しているので
それを使って、ファイル入出力処理で
保存しようとしましたが、できませんでした。

それで今度はピクセル情報を取得して
ビットマップ保存をしようとしているのですが
やりかたがわからないのです。
どうやればいいのでしょうか?
948デフォルトの名無しさん:2006/01/10(火) 20:16:49
JPEGとかなら簡単に保存できるけど独自フォーマットがええのんか?
949デフォルトの名無しさん:2006/01/10(火) 20:21:43
>>946 システムプロパティjava.library.pathをjusbのネイティブライブラリ
が存在する場所に設定。
950デフォルトの名無しさん:2006/01/10(火) 22:15:43
ウインドウプログラムで
x座標とy座標を入力して、(x,y)座標に
ドットを表示させて、
また座標を入力して、ドットをその座標に
移動させて・・・
の繰り返しってできますか?
951デフォルトの名無しさん:2006/01/10(火) 22:22:26
もちのろん
952デフォルトの名無しさん:2006/01/10(火) 22:25:27
出来ないと思う理由ってなんだろ・・・
953950:2006/01/10(火) 22:44:42
ウインドウを最小化して
元の状態に戻さないと座標が
移動しないのですがどうすればよいでしょうか?
954デフォルトの名無しさん:2006/01/10(火) 22:55:26
Update
955デフォルトの名無しさん:2006/01/10(火) 22:56:03
revalidate
956950:2006/01/10(火) 23:19:54
http://aploda.org/dat1/upload410751.txt
なのですが一度見ていただけないでしょうか?
957デフォルトの名無しさん:2006/01/10(火) 23:38:33
見たよー。
958デフォルトの名無しさん:2006/01/10(火) 23:40:20
滅茶苦茶
959デフォルトの名無しさん:2006/01/10(火) 23:42:13
OK。実行してないから適当だけど、main3行目、なんで DrawingPanel を new してんの?
この DrawingPanel は DrawingFrame に追加してないから、そもそも表示すらされてないから repaint かけても無駄なのに。
960デフォルトの名無しさん:2006/01/10(火) 23:43:27
あと、『static int x=100, y=100;』 の static は削除するように努めたほうがいいよ。色んな意味で。
961デフォルトの名無しさん:2006/01/10(火) 23:45:02
このプログラムを書くほうが難しいな
962デフォルトの名無しさん:2006/01/11(水) 00:09:50
Javaで暗号化をいじっているのですが、

KeyGeneratorで作った鍵を、一度Base64にしてから復号したものを戻して
もう一度SecretKeySpecで鍵にし、
cipher.init(Cipher.DECRYPT_MODE, key);
とやると、「Parameters missing」とエラーが出てしまいます。
Base64前と復号後は同じデータになっていますし、
鍵同士をequalsしても同じと出るので、鍵自体は正しいと思うのですが・・・。

ちなみに、暗号化モードはAES/CBC/PKCS5Paddingです。
963950:2006/01/11(水) 00:19:35
staticは削除しましたが
他にどうしていいかわかりませんorz
964950:2006/01/11(水) 00:24:55
DrawingFrameに追加したらrepaintでいけました
こんなこともわからないなんて・・・
ホントにありがとうございました
でも書き方めちゃくちゃなんだろうなぁorz
965デフォルトの名無しさん:2006/01/11(水) 00:30:44
>>962
PBEParameterSpecを指定してないのでは?
966デフォルトの名無しさん:2006/01/11(水) 00:31:01
>>964
DrawingPanel、1枚無駄に追加してたりしてないか?
967950:2006/01/11(水) 00:36:33
はい、無駄に追加していたので
共用するようにしました
968デフォルトの名無しさん:2006/01/11(水) 00:37:24
>>964
Integer.valueOf(reader.readLine()).intValue();

Integer.parseInt(reader.readLine());

プロパティ(たとえば座標のx、y)は隠蔽し、
外部に対してはsetting methodを提供しましょう。

static int x, y;

private int x;
private int y;

public void setX(int x) { this.x = x;}
public void setY(int y) { this.y = y;}

もしくは
setPoint(int x, int y) {
this.x = x;
this.y = y;
}
とかね
969デフォルトの名無しさん:2006/01/11(水) 00:43:15
>>950
モンテカルロ法の実装をやってるんだね
まずはpaintではなくてpaintComponentね
データをSystem.inから入力するのはあまりにも非現実的なので、
乱数による自動生成にした方がいいね
970950:2006/01/11(水) 00:43:18
>>968
ありがとうございます
たしかカプセル化というものですね
いろいろ直してみます^^
971デフォルトの名無しさん:2006/01/11(水) 00:44:27
あと、次の式

x-1、y-1

これだけでは意味のわからない演算なので
メソッドにしてしまってもいいかもしれません。
972デフォルトの名無しさん:2006/01/11(水) 00:47:53
>>970
そうそう、最初はそれでいいと思うよ

いきなりよい設計なんて無理なんで、
リファクタリングして良いものにしていけば
いいんじゃないかな
そのうち身に付くよ
973950:2006/01/11(水) 00:59:07
みなさんありがとうございます
少しずつですがわかってきた気がします^^
974デフォルトの名無しさん:2006/01/11(水) 01:24:51
>>965
「パスワードベースの暗号化」用とあるんですが、関係あるんでしょうか?
とりあえずやってみます。
975デフォルトの名無しさん:2006/01/11(水) 01:43:20
>>974
AlgorithmParameterSpecの実装クラスから
適切なのを選んで使ってみて
976デフォルトの名無しさん:2006/01/11(水) 02:43:14
色々調べてみたら、フィードバックモードをCBCにした時はIV(初期化ベクタ)を設定しなければならないそうで、
設定してみたら通りました。ありがとうございました。
977デフォルトの名無しさん:2006/01/11(水) 03:15:46
【サーブレットに関して】
画面からサーバに入力項目を送信する時に
<input type="text" name=... value=...>
とやるじゃないですか。
所謂入力フィールドでない部分を、送信する方法はありますか?
見た目は出力フィールドなんだけど、実は入力フィールドでもあるみたいな。

出力フィールドとして書いて、更にhiddenとして書く必要があるんでしょうか?
978デフォルトの名無しさん:2006/01/11(水) 03:25:01
入力フィールドやら出力フィールドとは何ですか?
送りたいものを自分で勝手に送ればいいんじゃないですか?
全然Java関係ないし。
979デフォルトの名無しさん:2006/01/11(水) 03:37:39
確かにJava関係なかったですね。htmlの問題です。
要はテキストフィールドの値はサーバーに送信できたんですが、
表の中身とか普通のテキストがサーバーに送信できません。
どうしたらいいですか?
ということです。
すいません。
980デフォルトの名無しさん:2006/01/11(水) 09:15:33
Java以外の質問は受け付けてないので・・・
981デフォルトの名無しさん:2006/01/11(水) 10:20:14
Appletの開発はずっとテキストエディタのみでやってきたのですが、
GUIを作るのが面倒なのでIDEを導入したいと思っています。
GUIを編集するのにオススメのIDEを教えていただけないでしょうか?
できれば日本語対応のもので。
982デフォルトの名無しさん:2006/01/11(水) 10:35:51
>>981
Eclipse+VisualEditor
【Java/C/PHP/D/他】統合開発環境Eclipse M19
http://pc8.2ch.net/test/read.cgi/tech/1131604081/1-3
983デフォルトの名無しさん:2006/01/11(水) 10:51:14
>>981
netBeans
【Java】NetBeans【Sun】
http://pc8.2ch.net/test/read.cgi/tech/1132079321/
984デフォルトの名無しさん:2006/01/11(水) 10:51:23
GUI作るならJBuilderかNetBeansのほうがいいような希ガス

985デフォルトの名無しさん:2006/01/11(水) 11:00:33
java.util.Propertiesクラス(↓)のloadFromXMLというメソッド(XML形式で書かれたpropertiesファイルを読み込む)を使用した、文字変換用のプログラムを作成しています。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Properties.html

ようやく、エラーもなく、問題無く動作する物が完成しました。(jdk 1.5.0_05)
しかし、Javaのバージョンを5.0_06に変えた途端、

java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: URI was not reported to parser for entity [document]
java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: URI was not reported to parser for entity [document]

というエラーが出るようになり、propertiesファイルが読み込めなくなってしまいました。 なぜですか?

ちなみに、propertiesファイルは次のような形式にしています。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="変換前">変換後</entry>
</properties>
986デフォルトの名無しさん:2006/01/11(水) 11:21:21
それstoreToXMLで書き出したふぁいる?
987デフォルトの名無しさん:2006/01/11(水) 11:35:14
とりあえず、UTF-8で書き出すのが無難だと思うけど。

Charset utf8 = new Charset("UTF-8");
new OutputStreamWriter(in, utf8);
988デフォルトの名無しさん:2006/01/11(水) 13:10:05
携帯電話って、Webにアクセスする時にユーザーエージェント以外に何か情報送ってるんですか?
JAVAでそれらの固有情報を取得する方法があったら教えてください。
ログイン処理に使いたいです。
989デフォルトの名無しさん:2006/01/11(水) 13:15:37
>>978
HttpServletRequest#getHeaderNames()
でリスト取得すれば良いじゃん
990デフォルトの名無しさん:2006/01/11(水) 14:19:41
List<Double> l を double[] a に直したいんですが、どうすればいいでしょうか?
double[] a = (double[])l.toArray( new double[0] );
としても、toArrayは引数double[]に適用できませんと言われます
引数無しだとObject[]をdouble[]にキャストできないと言われますし
今までは仕方なくforで回して要素一個ずつ代入していました
991デフォルトの名無しさん:2006/01/11(水) 14:23:26
>>990
doubleはクラスじゃないからl.toArray( new double[0] )はできんよ
992デフォルトの名無しさん:2006/01/11(水) 14:42:05
>>991
丸ごと変換するような方法は提供されてないんですかね?
いちいちforで回して一個ずつ代入するのもなんだかなぁって感じなんですが
993デフォルトの名無しさん:2006/01/11(水) 14:47:57
>>992
Commons-primitivesを使ったらどうかね?
994デフォルトの名無しさん:2006/01/11(水) 15:23:45
次スレ
【初心者】Java質問・相談スレッド79【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1136960593/
995985:2006/01/11(水) 15:31:55
自己解決しました。
拡張子を .properties から .xml にすることで、jdk1.5.0_06でも動作するようになりました。

>>986-987
ありがとうございました。
996995:2006/01/11(水) 16:19:07
と思ったのですが、
Windowsでは>>995のやり方で正常に動作するようになりましたが、
Linuxではやはりダメでした。
エラーは出ないもののxmlファイルが認識されません。
997デフォルトの名無しさん:2006/01/11(水) 18:12:02
生め
998デフォルトの名無しさん:2006/01/11(水) 18:12:53
埋め
999デフォルトの名無しさん:2006/01/11(水) 18:13:22
1000デフォルトの名無しさん:2006/01/11(水) 18:14:07
1000ならあややとセクロス
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。