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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

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

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath

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


/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

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

次スレは>>980がお願いします。
2デフォルトの名無しさん:2005/05/22(日) 17:31:48
2
3デフォルトの名無しさん:2005/05/22(日) 17:36:13
http://pc8.2ch.net/test/read.cgi/tech/1114850497/
まずは↑コレを消化するのがスジかと
4デフォルトの名無しさん:2005/05/22(日) 17:38:34
4様

↑はネタスレだと思っているのだが如何。
5デフォルトの名無しさん:2005/05/22(日) 18:06:40
初心に帰れ

だから初心者大歓迎
6デフォルトの名無しさん:2005/05/22(日) 18:13:13
>>5
「初心者は帰れ」に見えた。
7デフォルトの名無しさん:2005/05/22(日) 18:38:09
>>4
やりとりのレベルはネタスレみたいなもんだから
ネタスレだろうと何だろうと消化すればよいかと
8デフォルトの名無しさん:2005/05/22(日) 18:38:31
J2SE5を 1.5.0_01 から 1.5.0_03 にアップグレードしようとしたら
こんなメッセージがでていインストールできなくなった。
どうしてさー。
再度ダウンロードしてるっつーのに。


インストールパッケージを開くことができませんでした。パッ
ケージが存在し、アクセスできることを確認してください。また
はアプリケーションベンダに問い合わせ、このパッケージが
有効なWindowsインストーラパッケージであることを確認し
てください。


玄箱にファイルを保存しちゃいけないっつーのか?
んなわけない。今までJavaを玄箱にダウンロードして玄箱から
exeファイルをダブルクリックしてインストールに成功していたので
何か他のところに問題があるはずだ。

MD5やPGPのチェックサムもないし、一体どうすりゃいいんだ?

9デフォルトの名無しさん:2005/05/22(日) 18:39:21
>玄箱にファイルを保存しちゃいけないっつーのか?
それを確認してから来い
10デフォルトの名無しさん:2005/05/22(日) 18:39:39
>>8
こういうのを見てるとココもネタスレみたいだと思う
11デフォルトの名無しさん:2005/05/22(日) 18:45:06
>>8
その程度のアップグレードそんなにやりたいと思うか?
ほっとけよそんな、ちまいUpグレードたいしたこと無いって
12デフォルトの名無しさん:2005/05/22(日) 18:52:03
DecimalFormat df = new DecimalFormat();

Format nf = NumberFormat.getPercentInstance(Locale.JAPAN);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(" ###.000E00;-###.000E00");

System.out.println(df.format(100.0d));
System.out.println(df.format(-100.0d));
System.out.println(df.format(0.001d));
System.out.println(df.format(-0.001d));

結果

100E00
-100E00
1.00E-03
-1.00E-03

右側の化数部の桁がそろいませんよ。
マイナスがつくとどうしてこうなるのやら。
こうやって0を余分に追加しても0が増えるだけだし
df.applyPattern(" ###.000E000;-###.000E000");

13デフォルトの名無しさん:2005/05/22(日) 18:53:21
>>9
> >玄箱にファイルを保存しちゃいけないっつーのか?
> それを確認してから来い
確認は済んだ。
マイドキュメントにコピーしてから実行した。
それでも駄目だ。
まったく同じポップアップウィンドウメッセージだ
14デフォルトの名無しさん:2005/05/22(日) 18:55:08
_01と_03とだと結構バグフィックスされてること多いぞ
15デフォルトの名無しさん:2005/05/22(日) 19:07:55
>>12
そういやFormaterだと強制符号付だね

System.out.printf("%3.3e\n",100.0);
System.out.printf("%3.3e\n",-100.0);
System.out.printf("%3.3e\n",0.1);
System.out.printf("%3.3e\n",-0.1);
-------------------------
1.000e+02
-1.000e+02
1.000e-01
-1.000e-01
16デフォルトの名無しさん:2005/05/22(日) 19:16:31
初心者です。
当たり前のように書いてるpublic static void main(String args[])の(String args[])の部分はコマンドライン引数をString型で返すって意味であってますか?
17デフォルトの名無しさん:2005/05/22(日) 19:24:10
Stringの配列ね
18デフォルトの名無しさん:2005/05/22(日) 19:28:36
>>16
返すっつーか貰うとか 受け取るだと思われ。
19デフォルトの名無しさん:2005/05/22(日) 19:38:32
>>16
StringとString[]は異なる型である。
20デフォルトの名無しさん:2005/05/22(日) 20:37:05
>>15
String型で返したいし
そのフォーマットだと右端も左端も全く同じ文字数に揃わないなあ。

FieldPositionlクラスといくつかのメソッドを使って整数部と小数部の最小桁数を設定でき
+符号を" "(空文字列)で表現できたのであるていどまではなんとか
そろえることができたよ、
しかし最大桁数を削るととんでもない値になるので
そのあたりをどうにかできないかなー、って今悩んでる。
21デフォルトの名無しさん:2005/05/22(日) 21:06:02
Stringを返したいのならStringのstaticメソッド使えよ。
sprintfがあるのにprintfは便利だけど文字列扱えないしといってるようなものだぞ。

ただ、Eから後ろは3桁以上はずれる
doubleの範囲を考えれば3桁固定にしてくれればいいのだが

まぁ、普通になにかで文字列出力して正規表現のscanfで取得すりゃぁいいね
22デフォルトの名無しさん:2005/05/22(日) 21:08:06
>16
この言葉を一度は言ってみたかった。

自分で試してみろよ。
2316:2005/05/22(日) 21:43:44
あれはStringだと勝手に解釈しときます。てか違ったら違ったんだなってことにしてまたいろいろ試します。ありがとうございました
24デフォルトの名無しさん:2005/05/22(日) 21:47:28
半年後 >>16
「自分で試してみろよ。 」
っていうのですかね。
>>22は罪
25デフォルトの名無しさん:2005/05/22(日) 21:54:33
人の意見を無視する気なら最初から聞くなよ
26デフォルトの名無しさん:2005/05/22(日) 21:58:41
つうかそもそも、聞く必要の無い質問に答えたのが間違いだった orz
一生懸命、答えかいても
一歩早く「自己解決しました!」のレスがあったら最悪
だからもう俺はこういう初心者の質問には答えないようにしている
27デフォルトの名無しさん:2005/05/22(日) 22:51:11
>>26
ネタスレでマジレス (´・ω・) カワイソス
28デフォルトの名無しさん:2005/05/22(日) 23:27:45
>>15

DecimalFormat df = new DecimalFormat();
df.applyPattern(" ###.000E00;-###.000E00");
StringBuffer result = new StringBuffer();
FieldPosition fieldPosition = new FieldPosition(NumberFormat.FRACTION_FIELD);
df.setMinimumFractionDigits(3);
df.setMinimumIntegerDigits(1);
df.setMaximumIntegerDigits(1);
df.setGroupingUsed(false);
df.setNegativePrefix("-");
df.setPositivePrefix(" ");

このやりかたで
df.format(value, result, fieldPosition);
をつかって
二次元配列のdouble型データ
double[][] d2 = new double[][]{
{-1.2d, 2.4d, -3.3d},
{4 ,5, 111111111111116.66666d},
{0.122222222228888888888222222d, 8, 0}
};
をvalueにつっこんで並べて見たが

-1.200E00 2.400E00 -3.300E00
4.000E00 5.000E00 1.111E14
1.222E-01 8.000E00 0.000E00


1.222E-01のE-01で一文字ずれてるorz
29デフォルトの名無しさん:2005/05/22(日) 23:59:51
おとなしくscanf使え
30デフォルトの名無しさん:2005/05/23(月) 00:34:08
>>26
つまり勝手に自己解決と書き込めばそれだけで回答者の意欲を削ぐことができるということか
31デフォルトの名無しさん:2005/05/23(月) 01:11:14

String.format(Locale.JAPAN, "%+3.3e", value);

なんとかうまくいった
>>28がたったの一行で済むとは

-1.200e+00 +2.400e+00 -3.300e+00
+4.000e+00 +5.000e+00 +1.111e+14
+1.222e-01 +8.000e+00 +0.000e+00

しかし、接頭辞に+記号は余計。
これはどうにかならぬ?
さほどきにはならぬが
ちょときになるなり
32デフォルトの名無しさん:2005/05/23(月) 01:37:47
指数部が3桁になったら?
33デフォルトの名無しさん:2005/05/23(月) 04:03:28
双方向キュー(deque)のメソッドのプログラムを教えてください
34デフォルトの名無しさん:2005/05/23(月) 06:11:33
>>33
具体的になにを伝えればいいの?
35デフォルトの名無しさん:2005/05/23(月) 07:58:30
>>33
LinkedList
3633:2005/05/23(月) 16:19:40
ソースです
37デフォルトの名無しさん:2005/05/23(月) 16:23:55
そうだよそうだよ○ー○だよ
38デフォルトの名無しさん:2005/05/23(月) 17:55:46
うまいヤキソバ
39デフォルトの名無しさん:2005/05/23(月) 20:00:45
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/LinkedList.html

これ見てもまだソースくれとか言うのかなぁ…
40デフォルトの名無しさん:2005/05/23(月) 20:00:48
>>32
恐れていた事態が起きてしまった・・・・
Eclipse3.0.2のスクラップブックでこいつを実行していたら
Object[] o = new Object[]{new Double(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0d)};
System.out.printf("%+3.3e\n",o);


-1.000e+109


なんということだ・・・・・・。

桁数が揃わなくなってしまうではないか
41デフォルトの名無しさん:2005/05/23(月) 20:20:24
「シンボルを解決できません」とは,どういう意味ですか?
42デフォルトの名無しさん:2005/05/23(月) 20:26:05
Object[] o = new Object[]{new BigDecimal("0.000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001")};
System.out.printf("%+3.3e\n",o);


こいつの結果は

+1.000e-1231


ますます困った。。。。。
43デフォルトの名無しさん:2005/05/23(月) 20:26:13
そんなクラスorメソッドor変数なんて存在しませんが何か?
という意味
44デフォルトの名無しさん:2005/05/23(月) 20:29:38
printf厨うざい
45デフォルトの名無しさん:2005/05/23(月) 20:29:47
>>43
なるほど
宣言されてないってことね
助かった やっと帰れる ありがとう
46デフォルトの名無しさん:2005/05/23(月) 20:30:05
>>41
Java FAQ で検索してみてくれ
どうすればいいかわかるから
47デフォルトの名無しさん:2005/05/23(月) 20:30:51
>>44
printf printf printf printf printf printf printf printf printf printf printf printf
48デフォルトの名無しさん:2005/05/23(月) 20:32:05
>>45
綴りや大文字小文字を間違ってるという可能性も捨てきれない
49デフォルトの名無しさん:2005/05/23(月) 20:40:45
>>48
あんさんの言うとおりだった
やっぱ写しただけのプログラムは誤字が多くなるね
つまんねえし
50デフォルトの名無しさん:2005/05/23(月) 20:42:44
>>36
双方向キューのメソッドのプログラムのソースは次の通りです。

ここから ----------------
----------------ここまで

わざわざ自分でメソッドを追加する必要もありませんので
新たにメソッドをプログラムするひつようもなくソースは上記の通り。

以上、もう来ないでください。
51デフォルトの名無しさん:2005/05/23(月) 20:43:56
写すのは面白くないかもしれないけどそれを弄って改造していくのは楽しいかも、がんばれ
52デフォルトの名無しさん:2005/05/23(月) 21:15:20
双方向キューってどういうことなんだ?
53デフォルトの名無しさん:2005/05/23(月) 21:51:58
>>52
http://www.scl.kyoto-u.ac.jp/scl/appli/appli_manual/SUNWspro/WS6U2/ja/manuals/stdlib/user_guide/general/7_1.htm

Vectorのような添え字アクセスができながらなおかつList並の追加挿入の軽さを併せ持ったすばらしいデータ構造


らしい、C++の話だが。
54デフォルトの名無しさん:2005/05/23(月) 22:16:47
該当するJavaのコレクションにはないわけね
55デフォルトの名無しさん:2005/05/23(月) 22:32:31
LinkedList使えば一応それらしいモノは作れるという程度みたいだね
56デフォルトの名無しさん:2005/05/23(月) 22:43:08
意味合い的に双方向キューってのはキューではないんだな
添え字アクセスできるlistってJavaだと普通だしなぁ
57デフォルトの名無しさん:2005/05/24(火) 00:01:37
LinkedListだってだから

>Vectorのような添え字アクセスができながらなおかつList並の追加挿入の軽さ
意味わからん。
アルゴリズム勉強せい
58デフォルトの名無しさん:2005/05/24(火) 00:24:21
>>57
>>53のリンク先ではそういう趣旨の説明してるし
JDKのドキュメントにはリストの標準のオペレーションによって簡単に作成し直すことができるとは書いてるが
双方向キューだとはどこにも書いてないな
59デフォルトの名無しさん:2005/05/24(火) 00:52:51
Dequeを簡単に作成できるって書いてなかったっけ?
60デフォルトの名無しさん:2005/05/24(火) 00:58:04
>>40,42
Javadocに指数部の数値は最低二桁(足りないときは0で埋める)と書いてある。
あと"3.3"だと、前の3が全体の桁数で後ろの3が小数点以下の桁数って意味だから
ちょっとおかしい。
61デフォルトの名無しさん:2005/05/24(火) 01:03:12
>>60
というかそもそもprintfは指定の桁数を超えても普通に全部表示するんだけど
62デフォルトの名無しさん:2005/05/24(火) 01:24:04
>>61
そんなことは知っている。
全体の桁数は小数点も含むんだからちゃんとやるなら少なくとも
5.3とか6.3であるべきだと言う話だ。
63デフォルトの名無しさん:2005/05/24(火) 01:26:44
>>62
>>40>>42が言ってるのは多分そういうことじゃないかと思って
64デフォルトの名無しさん:2005/05/24(火) 10:25:39
あらら どぅおぉしぃ〜てぇ〜こぉうなぁ〜る〜のぉ〜かぁ〜
なんで動かなぁ〜いぃのぉ〜かぁ〜
65デフォルトの名無しさん:2005/05/24(火) 11:04:06
BigDecimal bg = new BigDecimal("0.000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001");
66デフォルトの名無しさん:2005/05/24(火) 11:04:15
BigDecimal bgShort = new BigDecimal("0.000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001");

Object[] o = new Object[]{ bg, bg };

System.out.printf("%+3.3e %+3.3e\n",o);
System.out.printf("%+5.5e %+5.5e\n",o);

System.out.printf("%+5.5e %+5.5e\n",new Object[]{ bgShort, bgShort });
System.out.printf("%+5.5e %+5.5e\n",new Object[]{ bg, bgShort });
System.out.printf("%+5.5e %+5.5e\n",new Object[]{ bgShort, bg });

System.out.printf("%+6.5e %+6.5e\n",new Object[]{ bgShort, bgShort });
System.out.printf("%+6.5e %+6.5e\n",new Object[]{ bg, bgShort });
System.out.printf("%+6.5e %+6.5e\n",new Object[]{ bgShort, bg });
67デフォルトの名無しさん:2005/05/24(火) 11:04:48
これをやってみたんだが

+1.000e-1231 +1.000e-1231
+1.00000e-1231 +1.00000e-1231
+1.00000e-727 +1.00000e-727
+1.00000e-1231 +1.00000e-727
+1.00000e-727 +1.00000e-1231
+1.00000e-727 +1.00000e-727
+1.00000e-1231 +1.00000e-727
+1.00000e-727 +1.00000e-1231


揃わねえ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
68デフォルトの名無しさん:2005/05/24(火) 11:27:59
>>60
> >>40,42
> Javadocに指数部の数値は最低二桁(足りないときは0で埋める)と書いてある。

しかしJavadocの意味がわかりずらい。0で
埋まらず -1231と表示されている。
もし0で埋まる場合は -0031となるかまたは-1200となってしまうという意味かと思った。


Javadoc↓

m が正のゼロまたは負のゼロの場合、指数は「+00」になります。

そうでない場合、結果は、引数の符号および絶対値を表す文字列になります。
符号の書式設定については、地域対応アルゴリズムを参照してください。
絶対値 m の書式設定は、値により異なります。

n を 10n <= m < 10n+1 などの一意の整数とし、a を 1 <= a < 10 となるよう
な m と 10n の数学的に正確な商とします。この場合、絶対値は、
メソッド Long.toString(long, int) で生成されるように、a の整数部であ
る 1 桁の 10 進数、小数点、a の小数部を表す 10 進数、指数記号 'e' ('\u0065')、指数の
記号、n の 10 進整数表現がこの順に並んだ形で表現されます。
また、2 桁以上になるようにゼロがパディングされます。
69デフォルトの名無しさん:2005/05/24(火) 11:31:56
これをどうにかするには#とFormattableインターフェースを使えってことなんだろうけど
使い方を把握するの大変そうだ。
FormattableのJavadoc、改行がおかしくなってるし。

import java.nio.CharBuffer;
import java.util.Formatter;
import java.util.Formattable;
import java.util.Locale;
import static java.util.FormattableFlags.*;
... public class StockName implements Formattable { private String symbol, companyName,
frenchCompanyName; public StockName(String symbol, String companyName, String frenchCompanyName) { ... }
...
public void formatTo(Formatter fmt, int f, int width, int precision) { StringBuilder sb = new StringBuilder();
// decide form of name String name = companyName; if (fmt.locale().equals(Locale.FRANCE)) name = frenchCompanyName;
boolean alternate = (f & ALTERNATE) == ALTERNATE; boolean usesymbol = alternate || (precision != -1 && precision < 10);
String out = (usesymbol ? symbol : name);
// apply precision if (precision == -1 || out.length() < precision) {
// write it all sb.append(out);

↑この部分のdocが読みづらくなってる。
ちゃんと改行すればいいのに
70デフォルトの名無しさん:2005/05/24(火) 12:35:30
いい加減普通にscanfで切り分けろ
71デフォルトの名無しさん:2005/05/24(火) 12:53:41
>>67
そもそもC言語でもprintfで指数部の長さをを指定する方法はなかったはず
728:2005/05/24(火) 16:34:05
ぐはぁ、駄目だ!
これだけ一生懸命やっているのに、
これだけ努力しているのになぜだ!!!!!!!

J2SDK1.5.0_03をインストールできない。
何度やっても>>8と同じメッセージが出る。
Firefoxからダウンロードし、
そのファイルをマイドキュメントに保存して
から実行してもだ。

NortonUntiVirusのAutoProtectは無効にしている。
それなのに、なぜだ?

他のマシンではうまくインストールできることを今日実際に
やってみて確認した。

ダウンロード場所をデスクトップに変更してもうまくいかない!
何度再起動してもうまくいかない。
これは一体どういうことなのだ?
73デフォルトの名無しさん:2005/05/24(火) 16:37:40
NortonUntiVirus
これが諸悪の元凶だな
74デフォルトの名無しさん:2005/05/24(火) 16:39:26
Untiて・・・ウンチ?
75デフォルトの名無しさん:2005/05/24(火) 17:04:47
うちも NortonAntiVirus 入れてるけどインストール失敗した事は無いなぁ。
76デフォルトの名無しさん:2005/05/24(火) 17:05:44
一生懸命死にものぐるいでやっているのに....
努力が報われない!!!!!!!!!!!!!!
77デフォルトの名無しさん:2005/05/24(火) 17:06:10
>>72
ディスクの残容量が足りないとか?
78デフォルトの名無しさん:2005/05/24(火) 17:15:26
権限ないとかな
79デフォルトの名無しさん:2005/05/24(火) 17:50:17
>>73
書いてある通りAutoProtectは無効にしている。
>>77
容量は足りてる。20GBもある。
>>78
確認したが権限はある。
Administrator権限のあるユーザでログインしている。

こうなったら、HPノートPCが悪いのか、WindowsXP SP2が悪いのか・・・。
むむむ。。。

Sunに問い合わせか・・・・?
それともHPに問い合わせか?それともM$に問い合わせか?

だが、幸いなことにもう一つの手段を思いついた。
オフラインインストールパッケージをダウンロードしてからインストールだ。
80デフォルトの名無しさん:2005/05/24(火) 17:55:01
アホか。
今までやってなかったのかよ。
81デフォルトの名無しさん:2005/05/24(火) 17:56:48
828:2005/05/24(火) 17:57:09
どうにかインストールがうまくいきそうだ。
皆の衆よ、お騒がせした。

と思ったら、なんだ?
iTunesのインストールを中断します?

ITunesのインストールが中断扱いになっていたからJava5がインストールされなかっただと?
んなばかな。

iTunesのアップデートインストールは終わったはずだ。
83デフォルトの名無しさん:2005/05/24(火) 17:58:38

ところでJava5はProgram Filesにインストールすべきか?
5からデフォルトではPrograms Filesになっているが
何か嫌な予感がするのでC:\直下にJ2SDKをインストールしている。
84デフォルトの名無しさん:2005/05/24(火) 17:59:57
>>83
好きにすれば良いと思われ。
85デフォルトの名無しさん:2005/05/24(火) 18:01:23
A: MSI エンジンの既知の問題です。次の Web サイトを参照してください。

* http://support.microsoft.com/default.aspx?scid=kb;[LN];Q290106
* http://support.microsoft.com/default.aspx?scid=kb;[LN];Q307346
* http://support.microsoft.com/default.aspx?scid=kb;[LN];290896

Q: Error 1722. There is a problem with this windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vender.

A: これは、以前、MSI エンジンによるソフトウェアのインストールまたはアンインストールが失敗したために起こります。この問題は、通常、ユーザがインストーラを再実行すると解決します。

なんだとNortonでもなく串でもなくネットワークでもなくダウンローダでもなく
M$側の問題だったのか。

またお前か! M$め! 邪魔をするな! ビシッ! ビシッ! ガッ! ドドドドドドッ!!!
86デフォルトの名無しさん:2005/05/24(火) 21:18:26
JavaアプレットでAWTのボタンを利用したいと思っております
アプレット上にボタンを配置したところボタンの下側と右側に
影がついているのですがこの影は消すことはできないのでしょうか?
へっぽこな質問で申し訳ありませんがよろしくお願いいたします
87デフォルトの名無しさん:2005/05/24(火) 21:22:11
自分でボタン描画したら?
88デフォルトの名無しさん ::2005/05/24(火) 22:08:26
お世話になります。

ソケットでサーバとクライアントを接続しています。
コーディングの概略は次の通りです。

【クライアント】
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"EUC_JP"));
out.println("かきくけこ");
System.out.println(in.readLine());
【サーバ】

PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"Shift_JIS"));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
out.println(inputLine); //←これはクライアントでも文字化けしない。
String s1 = "あいうえお";
String u1 = new String(s1.getBytes("xxxxx"), "yyyyy");
out.println(u1); //←文字化けする。
}
お伺いしたいのは文字コード変換についてです。
サーバ:RedhatLinux クライアント:Windowsでして、
サーバ側コーディングの String s1 = "あいうえお"; としている文字列を
クライアント側の
System.out.println(in.readLine());
で表示したいのですが、文字が化けて(????←このようになります)困っています。
文字コード変換しなければいけないと思うのですが、getBytesを使うのでしょうか?
もしgetBytesを使うならどのように書けばいいのかがわかりません。
ご教授ください。宜しくお願いします。
89デフォルトの名無しさん:2005/05/24(火) 22:16:57
よく書籍とかに付いてるコンパイラって継承とかまではできないの?
90デフォルトの名無しさん:2005/05/24(火) 22:27:47
>>88
1. Stringの内部コードは決まっているので
 String u1 = new String(s1.getBytes("xxxxx"), "yyyyy");
 とするのは不可。
 (余談:ただし例外的に8859_1デコーダ/エンコーダが8bitcleanなのを期待するコードを書くことはあるけど.)
2. PrintWriter#println(String)は出力時にデフォルトエンコーディングへの変換処理を入れる。

というわけでOutputStreamWriterを使ってごらん。
9190:2005/05/24(火) 22:30:20
決まっているからという説明は間違いか。Stringから"xxxx"で取り出したバイト列は
もちろん"yyyy"でエンコードされてはいないから、new String(byte[], "yyyy")
でStringに収めることは出来ない。
92デフォルトの名無しさん:2005/05/24(火) 22:36:10
>>89
コンパイラで継承?意味不明すぎ。
93デフォルトの名無しさん:2005/05/24(火) 22:39:06
みなさん、ソース書くときは何で書いてますか?
メモ帳?
94デフォルトの名無しさん:2005/05/24(火) 22:39:48
ViaVoice.
95デフォルトの名無しさん:2005/05/24(火) 22:48:20
>89が言いたいのは、書籍とかについてるコンパイラは
J2SEの機能のうちのさわり程度の機能しかない「限定版」のような──例えば、継承を実際に
コーディングして、コンパイルして動かしてみることはできない──そう言うものではないのか、という危惧だろうか。
ならば答えは簡単だ。

バージョンが古い可能性が高いだけでSunのサイトにある奴と同じ。

もともと無償配布してるものをわざわざ書籍用限定版なんぞ作るわきゃなかろうが。
96デフォルトの名無しさん ::2005/05/24(火) 23:46:54
>>90
OutputStreamWriterのコンストラクタで
第一パラメータは何を使えばいいのでしょうか?
ファイルとかであれば、FileInputStreamのインスタンスを渡せばいいみたいですが、
"あいうえお"みたいな任意の文字列を扱いたい場合はどうすればいいのですか?
すみません。初歩的質問で。
97デフォルトの名無しさん:2005/05/25(水) 00:24:27
>>96
マニュアル読まないひと?
98デフォルトの名無しさん:2005/05/25(水) 00:55:12
Aという主要な機能が実装されているクラスを以下のようにどこでも参照を
保持させてしまう人がいるのですが、どうやって間違いだと指摘してあげるのが
よいのでしょうか?こうやられるといつも後始末が大変で困ってます。
書かれると毎回デスマ40日コースなので困ってます。
public b(A a){
this.A = a;
}
99デフォルトの名無しさん:2005/05/25(水) 01:02:20
>>98
それが間違いかどうかはこっちにゃわからんよ
無能が
100デフォルトの名無しさん:2005/05/25(水) 01:03:25
>>98
どうみても間違いではない

publicなのはアクセスされるとおもったほうがいいぞ
101デフォルトの名無しさん:2005/05/25(水) 01:04:39
>>98
> Aという主要な機能が実装されているクラスを以下のようにどこでも参照を
A に機能が集中しすぎてないか検討すべきなのでは?
102デフォルトの名無しさん:2005/05/25(水) 01:06:35
>>98みたいなのが管理者だとデスマはいるな
103デフォルトの名無しさん:2005/05/25(水) 01:08:36
「主要な機能が実装されているクラス」てやばげ
104デフォルトの名無しさん:2005/05/25(水) 01:13:02
質問です。

クラス内でメンバ変数を宣言するとき、
クラス内の上の部分で宣言するのが一般的でしょうか?
クラスの一番下んトコで、チョコっと書いてあるケースが多々ありますが、
あれ、何ですか?
105デフォルトの名無しさん:2005/05/25(水) 01:13:52
>publicなのはアクセスされるとおもったほうがいいぞ

は?
質問の意味がワカンネーんなら黙ってろよボンクラ
106デフォルトの名無しさん:2005/05/25(水) 01:14:54
>>104
たぶん嫌がらせ
107デフォルトの名無しさん:2005/05/25(水) 01:15:31
>>104
> クラス内の上の部分で宣言するのが一般的でしょうか?
まぁ、一般的といえば一般的かな。

クラス内の特定メソッドだけでしか使われないメンバ変数とかは、
そのメソッドの直前で宣言されてる事もあったりするけど。
10898:2005/05/25(水) 01:17:46
どれも10kステップ以上あるクラスを平気で数多く作って
どこでもそれらを参照させたコードに新機能を追加してバグを修正
して欲しいといわれる。どうしゃいいんだろう。まじでそんなコード
生成するエンジニアを相手にする方法教えてください。さすがに7ヶ月も
そんなの状態でで休日が毎週ないのは死にそうだ。
109デフォルトの名無しさん:2005/05/25(水) 01:25:54
ださっw
11098:2005/05/25(水) 01:30:16
トドメに少しだけスパゲッティなコードで悪いけどねとか
言われると、1日何もやる気が起きなくなります。
111デフォルトの名無しさん:2005/05/25(水) 01:31:24
マネージャーに素直に伝えたらどうだ
11298:2005/05/25(水) 01:49:56
俺より先にさじ投げて知らんふりだよ。辞めるのどうせお前だけだから
俺関係ないしとか言われたぐらいだからな。誰も相談する人はいなかったりする
113デフォルトの名無しさん:2005/05/25(水) 02:20:10
>>104,106
それが嫌がらせだとしても
コード整形ツールを使えば無問題。

コードを貰ったら即座に
整形ツールを使ってフィールドを上に、
メソッドを下にもっていくようにしましょう。
EclipseなどのIDEなら一発でできます。
11488:2005/05/25(水) 07:42:18
これどうするの?
教えて
115デフォルトの名無しさん:2005/05/25(水) 07:57:19
>>114
APIリファレンスと言語仕様読め。
理解できなきゃ Java は関係ないな。

頑張って文字コードの勉強すれ。
116デフォルトの名無しさん:2005/05/25(水) 08:45:15
>>105
別におかしくねーじゃん
117デフォルトの名無しさん:2005/05/25(水) 08:48:14
earファイルに入れるejbのマニフェストについてよくわかりません。
どこかいい学習ページはないでしょうか?

そもそもクラスを参照するためになぜマニフェストが必要なのでしょう。
普通のクラス(jar)同士であればそんなものいらないですよね?
118デフォルトの名無しさん:2005/05/25(水) 12:43:52
>>117
jarファイルを展開してみれ
マニフェストファイルあるから

わからないことがあったら公式の情報を見れ
119デフォルトの名無しさん:2005/05/25(水) 14:02:16
ちょっと質問。

Stringクラスのインスタン作って、そのインスタンスに「あいうえお」
を代入する。
その文字列をgetBytesメソッドを使ってJISコードに変換する。
変換したものをバイト型配列に代入する。

このバイト型配列に格納された文字コードをコンソールにどうやれば表示できるかな?
誰かお願いします。
120デフォルトの名無しさん:2005/05/25(水) 14:04:30
普通に標準出力のストリームに出力してみてはどうか
121119:2005/05/25(水) 14:09:18
>120
バイト型配列は一バイトずつ格納されてるから
普通に表示すると意味不明な数字が表示され…。
JISって1文字2バイトだからどうすればいいかなぁ???
122デフォルトの名無しさん:2005/05/25(水) 14:19:22
>>119
もう一回Stringに戻してSystem.out.print()するのが一番簡単。
123119:2005/05/25(水) 14:23:14
>122
先生、もう一度Stringに戻すと「あいうえお」が表示されるのではないでしょうか???
戻し方おしえてくらはい…。
124デフォルトの名無しさん:2005/05/25(水) 14:24:08
> Stringクラスのインスタン作って、そのインスタンスに「あいうえお」を代入する。

この時点で無理。
125デフォルトの名無しさん:2005/05/25(水) 14:28:38
表示したいというのは、どう表示したいのか
126122:2005/05/25(水) 14:29:12
ああ、ごめん「文字コード」を表示したかったんだね。「文字」と勘違いした。
単にbyte[]の中身を表示すればいいだけじゃないの?

例えば「あいうえお」だったらbyte[]の中身は
1b 24 42 24 22 24 24 24 26 24 28 24 2a 1b 28 42
だけど、これをどう表示して欲しいんですか?
127119:2005/05/25(水) 14:30:59
>122
先生、そのままコンソールに表示したいです!
printlnでいけまつか?
128デフォルトの名無しさん:2005/05/25(水) 14:32:04
>>121
>普通に表示すると意味不明な数字が表示され…。

おい、まさかprint(println)メソッドで出力したんじゃないだろうな?
129デフォルトの名無しさん:2005/05/25(水) 14:34:37
期待する出力例を書いてみてくれ
130デフォルトの名無しさん:2005/05/25(水) 14:34:39
>>126
>>121で意味不明な数字とか言ってるから多分JISで文字列を出力したいんだろうな
131119:2005/05/25(水) 14:35:26
>128
えぇ、printでやらかしましたが…。
どうすればよかですか???
132デフォルトの名無しさん:2005/05/25(水) 14:36:50
エスパー発動すると、nkfみたいなフィルタを作りたいのかなあ?
それだと、
System.out.write("あいうえお".getBytes("ISO-2022-JP"));
ということか?
133119:2005/05/25(水) 14:37:00
>129
「あいうえお」だったらbyte[]の中身は
1b 24 42 24 22 24 24 24 26 24 28 24 2a 1b 28 42

こんな出力を期待してまつ。
134デフォルトの名無しさん:2005/05/25(水) 14:39:17
アプレットのdrawimageで、画像読み取り位置の始点と終点を逆にする事で画像を反転させる方法って
多くのブラウザが未対応だとある記事にあったんだけど、その記事はかなり古そうなものだった。
対応状況は今でも相変わらずですか?
135デフォルトの名無しさん:2005/05/25(水) 14:40:09
>>133
おまえ・・・
>>121で言った意味不明な数字は期待する出力の10進数の値じゃないか?
違うならその意味不明な数字とやらがどんなものなのかコピペしてくれ
136119:2005/05/25(水) 14:44:30
>135
えぇ、10進数の数値です。

27 36 66 36 34 36 36 36 38 36 40 36 42 27 40 66

こんな感じで出力されまつ。
初心者なのでよく分らんとです。
137デフォルトの名無しさん:2005/05/25(水) 14:47:03
つまり、16進数で表示したいのに、今は10進数で出てるってことね
138119:2005/05/25(水) 14:48:14
>137
そうなんですよ〜。
良い方法はないでしょうか???
139デフォルトの名無しさん:2005/05/25(水) 14:50:20
最初から「byteの値を16進数で表示するにはどうしたらいいでしょうか」
と聞いてくれればっ
Integer.toString(int,int)なりString.format()なり好きなの使ってくれ

140119:2005/05/25(水) 14:51:53
>139
ありがとう!
早速試してみまつ!
141適当:2005/05/25(水) 14:52:41
byte[] bytes = "あいうえお".getBytes("ISO-2022-JP");

for(int i = 0; i < bytes.length; i++) {
  System.out.print(Integer.toHexString(bytes[i]));
  System.out.print(" ");
}
System.out.println();
142デフォルトの名無しさん:2005/05/25(水) 16:29:22
エスパーの訓練場はここですか?
143デフォルトの名無しさん:2005/05/25(水) 16:46:17
(byte型 - 7)という式を引数にしている部分があって、
そこで「精度が落ちている可能性」というコンパイルエラーが出るのだけど、
引いている数字が -7 に固定なので精度は落ちないと思うのですが
このコンパイルエラーを避ける方法はありませんか?
144デフォルトの名無しさん:2005/05/25(水) 16:48:10
-128-7はどうすんだ?
145143:2005/05/25(水) 16:59:22
言い忘れました。
そのbyte型の変数は常に7以上です。
146デフォルトの名無しさん:2005/05/25(水) 17:18:28
>>143
> このコンパイルエラーを避ける方法はありませんか?
無いといえば無いし、あるといえばある。
詳しくは以下参照。

5.6.2 二項数値昇格
http://www.y-adagio.com/public/standards/tr_javalang2/conversions.doc.html#170983

5.2 代入変換
http://www.y-adagio.com/public/standards/tr_javalang2/conversions.doc.html#184206

15.28 定数式
http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#5313
147デフォルトの名無しさん:2005/05/25(水) 17:19:03
それをコンパイラに言い聞かせたら
148デフォルトの名無しさん:2005/05/25(水) 17:40:52
ワイヤーフレームで描かれた多面体をソリッドにする時って、一から書き直さないと無理?
なんか書き加えるだけでいいのかな?
教えてエロイ人。
149デフォルトの名無しさん:2005/05/25(水) 17:54:59
>>143
キャスト
150デフォルトの名無しさん:2005/05/25(水) 17:58:49
>>148
表裏の判定と、ZバッファかZソートで奥の三角形で手前の三角形を塗りつぶさないように注意すれば良いのでは?
151143:2005/05/25(水) 18:15:03
>>149
キャストで出来ました。
ありがとうございました。
152デフォルトの名無しさん:2005/05/26(木) 04:33:20
以下のような手法って、使われたりするのでしょうか?
現場で見かけましたが、意図がよくわからないのですが。


Hogeクラス型の変数 Hoge hoge を宣言して、まずnullを代入。
Hoge hoge = null;

その後、コンストラクタを呼び出して、
hogeがnullのままか否かをみて、
正常にjコンストラクタが正常終了してるかどうかを
判断している模様。。。?
ちなみにコンストラクタ Hoge() 内では、
結構複雑な処理が行われている。

hoge = new Hoge();

if (hoge != null) {
 〜;
} else {
〜;
}
153デフォルトの名無しさん:2005/05/26(木) 04:45:29
>>152
コンストラクタ呼び出しがインスタンスを返さないのであれば、
必ず何らかの Exception か Error を投げるはず。
なので、else ブロック(というか if文自体が)無意味。

> hoge = new Hoge();
もっとも、でなく、
try{ hoge = new Hoge(); }catch(Exception e){}//検査例外を全部握りつぶす
とかやってたら話は別だけど。
154152:2005/05/26(木) 05:09:36
>>153
ありがとうございます。
なるーほど!

しかし厳密には、以下のようになってました。

Hoge hoge = null;

try {
hoge = new Hoge();
hoge.run();
} catch (〜) {
〜;
} finally {
if (hoge != null) {
  〜;
}
}

つまり、インスタンス化が失敗した場合、
catchされるが、強制的にfinallyに入るということですね。

このfinally内の振る舞いですが、if文にelseがないです。

なのでfinallyでは何もしない。
インスタンス化が成功して、run();メソッドで失敗した場合、
finally節内で処理が行われる、ということでよいのでしょうか?
155デフォルトの名無しさん:2005/05/26(木) 07:23:00
みなさんはどれくらいの期間で
Javaを身につけましたか?
156デフォルトの名無しさん:2005/05/26(木) 07:52:15
>>153-154

> try{ hoge = new Hoge(); }catch(Exception e){}//検査例外を全部握りつぶす
> とかやってたら話は別だけど。

153、エスパー過ぎる
157デフォルトの名無しさん:2005/05/26(木) 07:56:03
>>154

> インスタンス化が成功して、run();メソッドで失敗した場合、
> finally節内で処理が行われる、ということでよいのでしょうか?

run();メソッドで成功した場合も同様
158デフォルトの名無しさん:2005/05/26(木) 09:06:54
直接のプログラムではなくて設定について質問です。
IIS6.0とTOMCAT5.0を連携させてJAVAを走らせるつもりなのですが
ネットで調べてもIIS5.0+TOMCAT4.xしか出てきません・・・
それと、isapi_redirect.dllのファイルのある場所も判らない状態です。
どなたか、教えてください。おねがいします
159デフォルトの名無しさん:2005/05/26(木) 09:44:53
こんなのならありうるけど。

InputStream in = null;
OUtputStream out = null;

try {
in = ...; // throws IOException
out = ..; // throws IOException
} catch (IOException e) {
/例外処理
} finally {
if (in != null) { in.close(); }
if (out != null) { out.close(); }
}
160デフォルトの名無しさん:2005/05/26(木) 11:02:19
うちの現場は理屈をよく分かってないから
try {
 out = ..; // throws IOException
} catch (IOException e) {
 if (out != null) { out.close(); }
} finally {
 if (out != null) { out.close(); }
}
こんなん書かされるけどな。
161デフォルトの名無しさん:2005/05/26(木) 11:18:33
>>160
finallyだけでいいだろ
説明しろ
162デフォルトの名無しさん:2005/05/26(木) 11:55:34
それも、全ての個所に書いてあるから
おまえらフレームワーク使うか、AOP使うか
なんとかしろと言いたいが…私が弱すぎるんだな
163デフォルトの名無しさん:2005/05/26(木) 12:49:00
>>155
10年近くなりますがまだまだです
164デフォルトの名無しさん:2005/05/26(木) 13:00:46
>>163
すげーな、初期からやってんのかよ。
165デフォルトの名無しさん:2005/05/26(木) 15:17:03
「Java が身につく」って具体的に体がどうなることなんだろうか。
肌が白と黒のツートンカラーになって、頭の先がとんがり、
目が真っ赤になって真ん中でくっついて一つになったりするのだろうか。
166デフォルトの名無しさん:2005/05/26(木) 15:27:34
むしろ、頭が赤く揺らめいて、
体が輪切りに、筋肉マンに出てきたスプリングマンみたいになり、
足を消滅した状態ではないかと
167デフォルトの名無しさん:2005/05/26(木) 17:03:51
オブジェクト型の配列を作っているんですが
クラス名 変数名 = new クラス名[4];
変数名[0] = new クラス名();
とやってコンパイルすると
2行目に対して
']'がありません。

<identifier>がありません。
と出ます。
何か間違っているところがあるのでしょうか?
168デフォルトの名無しさん:2005/05/26(木) 17:22:02
>>167
あるからエラーが出るんだよ。

イソスタソス化が分かってないね。
169デフォルトの名無しさん:2005/05/26(木) 17:25:21
>>167

クラス名[] 変数名 = new クラス名[4];
     ~~~
170167:2005/05/26(木) 17:30:45
返信ありがとうござます。
しかしそこは私の書き間違えで、ちゃんと[]が入っていました。
エラーの場所の詳細が書いていなかったので追加しますと。
前者のエラーは[0]の0の部分に
後者のエラーは「;」の部分に出ています。
お手数ですが、再度お願いします。
171デフォルトの名無しさん:2005/05/26(木) 18:01:20
質問です。
A.javaが
public class A{
B b;
A(){}
}

B.javaが
public class B{
B(){}
}

(2つのファイルは同フォルダ内にある)

と言う状況でAをコンパイルするとA.javaの2行目のBに対して
「シンボルを解決できません」
というエラーが出るのですが、どうすれば自作のクラスを使えるんですか?
自分の昔作ったプログラムを見たらこれでうまくいってたみたいなんですが・・・。
172デフォルトの名無しさん:2005/05/26(木) 18:38:26
>>170
質問するときにはソースとエラーを過不足なく
こぴぺしましょう。170が間に入って伝言ゲーム
するのはよくありません。

>>171
173デフォルトの名無しさん:2005/05/26(木) 19:05:22
クラス、メソッド、オブジェクト、引き数、戻り値、なんのこっちゃ
ぜんぜんわかりません。教えてください
174167:2005/05/26(木) 19:23:22
>>172
申し訳ないです。

もしかしたらオブジェクトの配列とは
main(String args[])メソッドの中でしか使えないものなのでしょうか?
175デフォルトの名無しさん:2005/05/26(木) 20:36:21
だから、エラーが出るソースをそのまま貼れって
エラーも
176デフォルトの名無しさん:2005/05/26(木) 20:51:52
エスパー養成スレはここでしょうか?
177152:2005/05/26(木) 21:07:10
>>157

>>>154
>
>> インスタンス化が成功して、run();メソッドで失敗した場合、
>> finally節内で処理が行われる、ということでよいのでしょうか?
>
>run();メソッドで成功した場合も同様

そうですが、オレが言いたかったのは、
わざわざfinally節を設けている理由は、
インスタンス化が成功して、run();メソッドで失敗した場合に、
処理を行わせたいから、ということですですよね?ということ。

178デフォルトの名無しさん:2005/05/26(木) 21:23:22
「そうですが」と書いているということは、
runメソッドから例外が出ようが出まいがfinally節は実行される。
ということは理解しているのでしょうか?
179デフォルトの名無しさん:2005/05/26(木) 21:54:20
>>177
ちなみに、インスタンス化に失敗(OutOfMemoryErrorとか、
コンストラクタで例外食らうとか)しても finallyブロックに行きますが。
180デフォルトの名無しさん:2005/05/26(木) 22:12:31
DOM を保存するときに XSL を挿入したいんですが、下記の最後のステップで
例外が発生して挿入ノードを挿入できません。

String data = "type=\"text/xsl\" href=\"" + uri + "\"";
ProcessingInstruction pi = doc.createProcessingInstruction("xml-stylesheet", data);
doc.insertBefore(doc.getFirstChild(), pi);

org.apache.crimson.tree.DomEx: HIERARCHY_REQUEST_ERR: このノードは許可されません。
  at org.apache.crimson.tree.XmlDocument.insertBefore(XmlDocument.java:679)

最終的に下記のような XML を出力したいのですが、DOM ではできないんでしょうか?

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
<foo>...</foo>
181デフォルトの名無しさん:2005/05/26(木) 22:24:02
>>180
doc.insertBefore(doc.getFirstChild(), pi);

doc.insertBefore(pi, doc.getFirstChild());
182デフォルトの名無しさん:2005/05/26(木) 22:30:50
>>181
狂おしいくらいサンクス
183デフォルトの名無しさん:2005/05/26(木) 22:35:58
すいませんJava初心者です。
最近Javaを習ったんですが、どうも自分で
0からプログラムを組む事がなかなか出来ないです。

でも、やはり自分の体で覚えるのが一番なので
もし何かいいJavaの問題集(基礎問が多いの)があるのなら教えてください。
184デフォルトの名無しさん:2005/05/26(木) 22:40:43
余計なお世話だけど
普通、「こういうの作りたい」ってやるはずだけど
そういうのないの?
作っていく過程でわからないことを自分で調べて解決していくのが早道
問題集なんてあんま意味ないと思う
SJCの下のレベルの資格も意味ないと思う
185183:2005/05/26(木) 22:44:15
>>184
そう言われてみればそうだね。
自分で考えて作ってみマツ。

サンクスです。
186171:2005/05/26(木) 23:08:33
使っていたツールのせいだったようで、別のものを使ったらうまく行きました。
というわけで質問を撤回します。お騒がせしました。
187デフォルトの名無しさん:2005/05/26(木) 23:09:38
>>171
-classpath .
じゃないかな?
188171:2005/05/26(木) 23:53:02
>>187
どうやらそうだったみたいです。
JMakerを使ってるんですが、解決策はありますか?
自分で探してみたけどそれに関する説明などは見つかりませんでした。
189デフォルトの名無しさん:2005/05/26(木) 23:57:20
190デフォルトの名無しさん:2005/05/27(金) 00:08:19
JMakerダウンロードして試してみたけどだめだねこれ
ファイル閉じると空のタブとかのこるし・・・
コンパイルはこの場合先にBをコンパイルしてAをコンパイルするとOK
だけど実行時にBが見つからないのエラー
JMaker起動時に環境変数などセットしたバッチファイル起動してみたがダメでした
軽くていいのだけど、他のツールの方がいいと思う
191171:2005/05/27(金) 00:12:18
>>189
>ユーザークラスパス (デフォルトではカレントディレクトリ) を検索します。
それなら同じフォルダに置けば何も問題はないはずだと思うのですが、やっぱりだめです。
JMakerの仕様でしょうか。
192デフォルトの名無しさん:2005/05/27(金) 00:16:43
「デフォルトでは」
193171:2005/05/27(金) 00:23:16
ということはclasspathが何かによっていじられているということですか?
もう分からなくなってきました・・・。
194デフォルトの名無しさん:2005/05/27(金) 00:24:41
corbaのjava実装を詳しく解説してるサイト、書籍でおすすめのもを
知りませんか?
CORBA完全解説(上下)は持ってます。
IDLのoutパラメータが構造体定義で、サーバントの処理結果を
クライアント側で受け取る動作までをしっかり解説してあるサイトって
見あたらないんですよね。どこもSUNのHELLOサンプルに毛が生えたような
ところばかりで。
あとORBのマイナーコードの解説をしているサイト(日本語の)があれば
それも教えてください。お願いします。
195デフォルトの名無しさん:2005/05/27(金) 03:35:52
前スレ 687 の自己レス

> class Hoge {
> private long x;
> Hoge() { x = 1; }
> synchronized long getX() { return x; }
> synchronized void setX(long x) { this.x = x; }
> }
>
> こういうときに、インスタンスを生成してから
> 他のスレッドから getX() を呼び出された場合、
> 正しく x を読めるのでしょうか?

よく考えてみると、他のスレッドから getX() を呼び出すには、
このオブジェクトを他のスレッドと共有しなくてはならない。

通常は、何かしら同期を取って参照を渡すだろうけど、
このとき、オブジェクトを生成したスレッドが、ロックをリリースした時に、
それまでのキャッシュがメインメモリに吐き出されるはずだから、
別のスレッドでこのオブジェクトを使うまでには、
コンストラクタで設定した値はメインメモリに反映されると思われる。

(続く)
196デフォルトの名無しさん:2005/05/27(金) 03:36:41
(続き)

別の参照の受け渡し方法の考察:

(1) 別スレッドのスタート時にも、
 メインメモリへの吐き出しは行われるので問題ない。

(2) static フィールドの初期値として参照を設定した場合は、
 クラスロードの時にそのクラスをロックしているので問題ない。

(3) volatile 修飾子のついたフィールド経由で参照を渡している場合は、
 *J2SE 1.5 (JLS 3rd) 以降なら*
 書き込み時にロックのリリースと同じ効果が得られるので問題ない。

(4) J2SE 1.5 より以前だとvolatile 経由でも、また、
 J2SE 1.5 でも volatile さえ使ってないと、怪しい。
 ちなみに、前者の場合は、
 final 修飾子をつけたフィールドへのアクセスすら怪しい。

(5) あと何かあったっけ...

以上、「怪しい」ことをしなければ
コンストラクタの中身を synchronized ブロックでくくったりしなくても
良いように思われる。

まあ、フィールドが1個なら volatile つければ、
ぐたぐた悩まないで良いのかもしれないんだけど。
197152:2005/05/27(金) 07:08:45

>>178

>「そうですが」と書いているということは、
>runメソッドから例外が出ようが出まいがfinally節は実行される。
>ということは理解しているのでしょうか?

理解してます。

>>179
>ちなみに、インスタンス化に失敗(OutOfMemoryErrorとか、
>コンストラクタで例外食らうとか)しても finallyブロックに行きますが。

そうです。その通りです。
>>152をもう一度みていただきたいのですが、
その場合、finally節にはいるが、if文の処理は行われませんよね。

つまり、finally節の「if文の内容」が実行されるのは、
インスタンス化に成功したとき。(run()が成功しようがしまいが関係ない)

わざわざfinally節の形式をとっているのは、
インスタンス化成功、run();失敗の場合でも、処理を行わせたいから、
ですよね。
この場合にエラーで終了したいなら、finallyjじゃなくて普通に書けばいいですから。。
198152:2005/05/27(金) 07:10:53
すいません。正しいソースは>>152じゃなくて、>>154でした。
199152:2005/05/27(金) 07:15:55
追加で質問お願いしたいのですが、

Hoge hoge = null;

try {
hoge = new Hoge();
hoge.run();
} catch (〜) {
〜;
} finally {
if (hoge != null) {
  〜;
}
}

で、インスタンス化で失敗した場合や、コンストラクタで例外
でたときで、hoge != nullになることって、ありえますか?
200デフォルトの名無しさん:2005/05/27(金) 07:29:11
>>199
hoge が局所変数ならありえないはず。
そうでなければ、ありえないとは言い切れない。

Hoge(){ FooBar.hoge = this; throw new Error(); }

とかされていれば、コンストラクタで例外投げてても
FooBar.hoge にインスタンスへの参照が残ったりする。
201デフォルトの名無しさん:2005/05/27(金) 22:55:07
>>197
>finallyjじゃなくて普通に書けばいいですから。。

あなたのいう「普通に」書いた例を見せてくれ。
202デフォルトの名無しさん:2005/05/27(金) 23:19:35
「普通に」わらた

同じコードを複数個所に書くとバグが潜む可能性があるからな
跡でパッチ当てるときとかも2箇所に当てるとか製作者じゃないとわからんとかな
203デフォルトの名無しさん:2005/05/28(土) 04:31:21
普通の予想

Hoge hoge = null;

try {
hoge = new Hoge();
} catch (...) {
// 例外処理
// return または ネストして再投げ
}

try {
hoge.run();
} catch (...) {
// 例外処理(コピペ)
// hoge の後処理
// return または ネストして再投げ(コピペ)
}

// hoge の後処理(コピペ)
// 通常処理続行
204203:2005/05/28(土) 04:46:58
すまん、これでは
インスタンス化成功、run();失敗の場合でも、
hoge の後処理を行ってしまう
205203:2005/05/28(土) 04:52:21
こうか。私もまだまだ精進が足らぬようだ。

Hoge hoge = null;

try {
hoge = new Hoge();
hoge.run();
} catch (...) {
// 例外処理
// return または ネストして再投げ
}

// hoge の後処理
// 通常処理続行
206デフォルトの名無しさん:2005/05/28(土) 05:23:05
2分木を使いたいのですが、どのようなクラスを用いるのが一般的でしょうか
ちとググってみると、TreeMapが赤黒木らしいですが、各TreeMapの
インスタンスが子ノードとしてたかだか2個のTreeMapのインスタンスまたは
Object(葉)を持つように実装すればいいのでしょうか
なーんかあんまり美しくないような気がするのですが
207152,154:2005/05/28(土) 07:01:33
>>202

すいません意味がわからんです
どことどこに、同じコードをかくって?

>>205
そういうことです。
catch節を抜けた後、finally節で囲まない部分を
「普通の処理」、といいました。

ちなみに、try節内でエラー発生した場合、cathchされますが、
その場合はメソッドの処理は終了するのでは?
returnする必要ってあるのですか?
208デフォルトの名無しさん:2005/05/28(土) 08:09:08
・例外が発生しても後処理をしなければならない場合は「finallyを使うのが普通」。
・発生した例外をcatchしただけならそこに制御が移るだけで他の処理はそのまま進む。

よくわかりもせずトンチンカンなことを言っちゃうのはしょうがないが
自分は正しい、相手が間違ってる、みたいな雰囲気で発言するのはいただけないな。
209152,154:2005/05/28(土) 08:32:14
すいません
210デフォルトの名無しさん:2005/05/28(土) 08:38:38
>>207
> ちなみに、try節内でエラー発生した場合、cathchされますが、
> その場合はメソッドの処理は終了するのでは?
しない。tryブロックが例外で中途完了しても
catchブロックが正常完了すれば try-catch文は正常完了する。

catch されない例外が tryブロックで発生しても
finallyブロックは実行されるので、>>205>>199 は等価ではない。
211デフォルトの名無しさん:2005/05/28(土) 09:14:10
Wikiに追加しておいた

+[[【初心者】Java質問・相談スレッド59【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1103729175/]]
+[[【初心者】Java質問・相談スレッド60【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1105691367/]]
+[[【初心者】Java質問・相談スレッド61【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1107056382/]]
+[[【初心者】Java質問・相談スレッド62【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1108389742/]]
+[[【初心者】Java質問・相談スレッド63【大歓迎】:http://pc8.2ch.net/test/read.cgi/tech/1110197411/]]
+[[【初心者】Java質問・相談スレッド64【大歓迎】:http://pc8.2ch.net/test/read.cgi/tech/1111644392/]]
+[[【初心者】Java質問・相談スレッド65【大歓迎】:http://pc8.2ch.net/test/read.cgi/tech/1112950312/]]
+[[【初心者歓迎】Java質問・相談スレッド65 Update 1(実質66?):http://pc8.2ch.net/test/read.cgi/tech/1114850497/]]
+[[【初心者】Java質問・相談スレッド66【大歓迎】(実質67?):http://pc8.2ch.net/test/read.cgi/tech/1114858011/]]
+[[【初心者】Java質問・相談スレッド66【大歓迎】(実質68?):http://pc8.2ch.net/test/read.cgi/tech/1116690777/]]
+[[【初心者】Java質問・相談スレッド67【大歓迎】(実質69?):http://pc8.2ch.net/test/read.cgi/tech/1116750427/]]

212デフォルトの名無しさん:2005/05/28(土) 11:33:01
>>152
Javadocにもfinallyを使えと書いてあるlock構文でもfinally使わないのだろうか
213デフォルトの名無しさん:2005/05/28(土) 15:39:38
テキストエリアに改行を出力したいのですが、できません。
例えば
aiueo
kakikukeko
と出そうとして
textarea.insert("aiueo\nkakikukeko",0);
を実行しても\nがそのまま出力されてしまいます。
改行をさせるにはどうしたらいいのでしょうか?
214デフォルトの名無しさん:2005/05/28(土) 16:02:06
>>213
Environment.NewLine
215デフォルトの名無しさん:2005/05/28(土) 16:13:23
AWTだと改行文字は機種依存してるかもね
216デフォルトの名無しさん:2005/05/28(土) 17:33:11
>>215
System.getProperty("line.separator");
217デフォルトの名無しさん:2005/05/28(土) 19:46:58
g.fillRect()で塗りつぶしている四角の上に
文字を表示させるプログラムを書いたのですが、
何度やってもアプレットを立ち上げた時には文字が表示されず、一度リロードをすると必ず表示されます。
立ち上げた時にも表示するにはどうしたらいいですか?
218デフォルトの名無しさん:2005/05/28(土) 19:53:40
どのタイミングでpaintが呼ばれているのかもっと勉強する必要がある
>一度リロードをすると必ず表示されます。
であるならば、その時行われていることを起動時に行うようにすればいい
219デフォルトの名無しさん:2005/05/28(土) 23:26:05
今、大学でオブジェクト指向のところを
勉強しているのですが全然分かりません。
誰か分かりやすく教えてくれませんか?
220デフォルトの名無しさん:2005/05/28(土) 23:33:02
>>219 授業料はらってんだから先生に聞いたら?
221デフォルトの名無しさん:2005/05/28(土) 23:43:59
オブジェクト指向でない場合はデータを保持する主体とデータを操作する主体を
わけて考えていたけど、それを一つにまとめようというのがオブジェクト指向。

素人がオブジェクト指向に触れるとHogeというクラスを操作するために
HogeManagerというクラスを作りやすい傾向があるけど、そういうのはあんまりオブジェクト指向でない。
操作するための実装がいくつもあって切り替えたいとかならまた話は変わってくるけどさ。
222デフォルトの名無しさん:2005/05/29(日) 00:58:21
モバイトドットコム
「今日のJavaずーと続けたいんですけど」
223デフォルトの名無しさん:2005/05/29(日) 01:55:50
>>220
先生怖いです・・・

>>221
2行目までは分かります。
3行目からはついていけません・・・。
224デフォルトの名無しさん:2005/05/29(日) 02:39:46
スーパー初心者の質問です。

パッケージAとBと動作確認用のMain.java(main()がある)が/java/*にあり、
Main.javaを
javac Main.java
すると、AとB内の関係するファイルがコンパイルされclassファイルができるのですが、
Main.javaの実行に必要なファイルがすべてコンパイルされるわけではないんです。
コンパイルはどういう関連で判断されているのでしょうか?
コンパイルされなかったファイルは独自にjavacしなければいけないのデツカ?
225デフォルトの名無しさん:2005/05/29(日) 02:46:22
>>224
そりゃそうだ
226デフォルトの名無しさん:2005/05/29(日) 03:36:35
1000個の0〜9までの整数をランダムに作り
それぞれの値の割合を円グラフで表示したい。
あとは円を描くだけです。count[]を使って描きたいんですけど、どうすればいいんでしょうか?
227デフォルトの名無しさん:2005/05/29(日) 03:39:54
参照型変数でStringに代入は文字列の値を代入なのでわかるのですが
それ以外の参照型への代入ってのがわかりにくいのですが

たとえば自分で作ったvoid型やString型クラスの変数への代入とか
どういったときに使うのか、わかりやすく教えてください
228デフォルトの名無しさん:2005/05/29(日) 04:04:34
>Stringに代入は文字列の値を代入なのでわかるのですが
わかってないじゃん
229デフォルトの名無しさん:2005/05/29(日) 09:01:20
横レス失礼。

その代入って、文字列が入ってるメモリ領域の先頭番地が
入ってるってことですよね?
230デフォルトの名無しさん:2005/05/29(日) 12:06:51
>>229
これって、ネタだよねぇ?
231224:2005/05/29(日) 14:23:40
> コンパイルはどういう関連で判断されているのでしょうか?
について、誰か解答お願いします。
232デフォルトの名無しさん:2005/05/29(日) 14:27:15
233デフォルトの名無しさん:2005/05/29(日) 14:46:59
void main(){
int[] count = new int[10]
Random rnd = new java.util.Random() // 現時刻を種として初期化
for( int cnt = 0 ; cnt < 1000 ; cnt++ ){
count[ rnd.nextInt(10) ]++
}
System.out.println( "乱数","頻度" );
for( int cnt = 0 ; cnt < 10 ; cnt++ ){
System.out.println( cnt + "," + count[cnt] )
}
--------------------------------------------------------------
C:\> java hoge > randFreq.csv

ってやってExcelで円グラフを書くんじゃだめ?
234デフォルトの名無しさん:2005/05/29(日) 17:07:21
JTable table = new JTable();
JScrollPane sp = new JScrollPane();
sp.getViewport().setView(table);
という感じでテーブルを表示しています。
テーブルのカラム数が多く、セルをタブ移動させていくと、
フレームの右側に常にフォーカスを持ったセルが来るようになりますが、
フォーカスを持ったセルがフレームの中心に表示されるようにしたいです。
用はスクロールが自動的にされるみたいなイメージで、フォーカスのあるセルが
フレームの中心に表示されるようにしたいのです。
これってできますか?
235デフォルトの名無しさん:2005/05/29(日) 17:50:21
Athlon64 X2 で java の実行は軽くなりますか?特に eclipse
重いです
236デフォルトの名無しさん:2005/05/29(日) 18:18:14
eclipseを2にすると軽くなるよ
あとはPentiumMの2GHz以上のやつにするとか

マルチコアはJavaで体感速度にかなり効果あげるからX2はいいだろうね

つーか、今の環境かいてもらわんと
237226:2005/05/29(日) 19:04:07
>>233
だめです。ウインドウで表示したい。
どうすれいいか分からない・・・orz
238デフォルトの名無しさん:2005/05/29(日) 19:07:16
>>226
>count[]を使って描きたいんですけど
↑コレの意味さえわかれば楽なんだけど・・・どういう意味ですか?
239226:2005/05/29(日) 19:10:54
countで配列にしています
240226:2005/05/29(日) 19:15:00
>>238
説明がうまくできそうにないんで、それなしで描く方法を教えていただけませんか?
241デフォルトの名無しさん:2005/05/29(日) 19:18:29
>>240
わかった
242デフォルトの名無しさん:2005/05/29(日) 20:11:05
>>237 >>239
count[]で配列にしたもので円グラフを描くのは無理ですよ
243デフォルトの名無しさん:2005/05/29(日) 20:13:05
円グラフなんて便利な描画命令あるのになんでつまずくのかわからんな
自前で円描画とか塗りつぶしが難しいというのならまぁわからんでもないが
244デフォルトの名無しさん:2005/05/29(日) 20:24:43
メモリを1GBぐらい積むといい。
245デフォルトの名無しさん:2005/05/29(日) 20:37:49
SWT を Java 以外の言語に移植することは可能でしょうか?
246デフォルトの名無しさん:2005/05/29(日) 20:49:05

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class test extends JFrame {public static void main(String[] args) {new test().start();}public void start() {int[] data = createData();this.setBounds(100, 100, 300,
300);this.setDefaultCloseOperation(EXIT_ON_CLOSE);GraphPanel gp = new GraphPanel(data);Container c = this.getContentPane();c.add(gp,
BorderLayout.CENTER);this.setVisible(true);}public static int[] createData() {int[] count = new int[10];java.util.Random rnd = new java.util.Random();for (int cnt = 0; cnt < 1000; cnt++)
{count[rnd.nextInt(10)]++;}return count;}public void printData(int[] data) {for (int i = 0; i < data.length; i++) {System.out.println((i + 1) + ":\t" + data[i]);}}class GraphPanel extends JPanel
{private int[] data = null;private Color[] color = { Color.BLUE, Color.YELLOW, Color.RED, Color.PINK, Color.CYAN, Color.GREEN, Color.GRAY, Color.BLACK, Color.MAGENTA,
Color.ORANGE };public GraphPanel(int[] data) {this.data = data;}public void paintComponent(Graphics g) {super.paintComponents(g);this.setBackground(Color.WHITE);Graphics2D g2 =
(Graphics2D) g;g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);Rectangle rect =
this.getBounds();g2.setColor(Color.WHITE);g2.fillRect(0, 0, (int) rect.getMaxX(), (int) rect.getMaxY());double space = 10;double r = this.getHeight() < this.getWidth() ? (this.getHeight() -
space * 2) : (this.getWidth() - space * 2);double start = 90;double extent = 0;for (int i = 0; i < this.data.length; i++) {extent = (double) 360 * ((double) this.data[i] / (double)
1000);g2.setColor(color[i]);g2.fill(new Arc2D.Double(space, space, r, r, start, extent * (-1), Arc2D.PIE));start = start - extent;}g2.dispose();}}}
247デフォルトの名無しさん:2005/05/30(月) 02:17:27
>>219-220
漏れも大学でオブジェクト指向の話を
C++とAdaを使って教授から聞いたがさっぱりわかんなかった。
全然意味がわからなくて
そんなときふとJavaに出会ったら
突然オブジェクト指向がわかるようになった。
あの教授は役立たず、Javaはあの教授よりも偉い
って思ったほどだよ。
もとはといえばあの授業で説明するのに使う言語をC++やAda
ではなくJavaにすれば素早く理解できたんじゃないかってとも思えてきたよ。
248デフォルトの名無しさん:2005/05/30(月) 02:38:15
>>247
大学で教わるという態度が愚かだ
えさを親鳥から貰わないといけない雛鳥か?お前は
腹が減ったら食い物探しに自ら歩き回れ
249デフォルトの名無しさん:2005/05/30(月) 02:47:36
>>248
親鳥から餌がもらえるうちは、貰っとけ。
奇麗事が通じる環境は幸せな環境だと思うぞ。
立ってるものなら親でも使え。

ところで、おいらの我流なOOの理解は、
最初は、データとそれに関連するメソッドを一緒に管理することだと思ってたが、
最近では、どの境界で整合性を確立するかということだと思うようになってきた。
250ビギナー:2005/05/30(月) 03:31:27
以下の表現がよく本に出てくるんですが、意味がよくわからないため困っています。
new Hogehoge(this);

この場合、Hogehogeクラスを生成しているのはわかるんですが、thisを引数にしているのがよくわかりません。
どういう意味でしょうか?
251& ◆r/YWU7Y/52 :2005/05/30(月) 03:33:03
Hogehogeクラスを生成している ×
Hogehogeクラスのインスタンスを生成している ○
でした
252デフォルトの名無しさん:2005/05/30(月) 03:33:24
その本を書いた奴はそういう作り方が好きなんだろ。
253デフォルトの名無しさん:2005/05/30(月) 03:41:18
>>250

普通に答えると、
その生成は、あるインスタンスAのメソッドで出てきて、
A自身をコンストラクタに渡している。

邪推すると、自分自身Aを渡すことで、
生成したインスタンスから
Aのなんらかにメソッドを呼び出すことを期待している。

(相互参照は良くないので)理想的には、
そのコンストラクタの引数は何らかのインタフェースで、
Aはそのインタフェースを実装している。
おそらく、イベントか何かじゃないかな。
254250:2005/05/30(月) 03:47:42
>>253
いまいちイメージできませんでしたが、
最後の所は流石ですね。
デザインパターン(結城先生)の本を読んでいて、IteratorパターンのBookShelfクラスで実装されている
Iteratorメソッドのことなんです。
255デフォルトの名無しさん:2005/05/30(月) 04:16:53
>>254

Iterator パターンならば、3番目は外れだな。。
まあ、相互参照も場合によってはありということで。。

でも、Iterator なら、静的でないインナークラスにするのが
スマートじゃないかなぁ。
256デフォルトの名無しさん:2005/05/30(月) 12:56:44
>>248
アフォかお前は。
逆にこちらが大学側に授業料という餌を与えてやっているんだよ。
実際、情報科,情報学部はすさんでいる。
ほとんどの大学がオブジェクト指向プログラミング経験が貧弱な教員の巣窟だ。
デザインパターンといっても概要はわかっても実践ではろくに
使いこなせない香具師ばかりだ。

連中ができることといえば数学、電子工学、論理学、音響/画像工学、ハードウェア系
とそのほか理論もろもろ程度だ。連中がIT業界に連れ込んでも役に立たないケースは
かなり多いぞ。

257デフォルトの名無しさん:2005/05/30(月) 13:07:25
>>250
あるクラスXの中でthisが使われたら
そのthisはそのクラスXのオブジェクトそのものということだ。

通常、自分のクラスの中でdoMethod()とやるが
わざわざthis.をつけてthis.doMethod()と書く必要がない
といえばわかると思われ。インスタンスフィールドについても同様
(だが、インスタンスフィールドの場合は間違いを防ぎやすいように
ローカル変数やメソッド引数と区別してthisをつけるが)。

>>253に合わせてthisがクラスAのオブジェクトだとすると
HogeHogeはそのオブジェクトを包み込んで(包含 Aggrecation)
(HogeHogeの中にAが入っているかのように)何かをする感じかと思われ。

結城浩の本を読んでいればもっとわかりやすいのがあるので
そのうち理解できると思うが。
258デフォルトの名無しさん:2005/05/30(月) 16:36:06
 入力スレッドを作ってコンソールからの入力処理をさせたいんですが、
現在のコードは以下の用になってます。
 見ての通り入力がなければreadLine()でブロックされて、
スレッドをプログラム内部から終了させることができない状態です。
 stopメソッドは非推奨とありますが、内部から終了させたい場合、
どの様にすれば良いのでしょうか?

public void run () {
  while (alive) {
    String cmd = input.readLine(); // コマンド入力がない限りブロックされる
    // 処理...
  }
}
259デフォルトの名無しさん:2005/05/30(月) 17:12:59
>>258
やったことはないが、止める側でThread#interrupt()して、
止められる側(コンソールの読み取りスレッド)では
InterruptedIOExceptionをキャッチして後始末、
とかじゃないかな。
260デフォルトの名無しさん:2005/05/30(月) 17:18:41
>>258
1. スレッドを開始する前に setDaemon(true) しておく。
2. >>259 のように割り込みをかける。
261デフォルトの名無しさん:2005/05/30(月) 18:28:59
システムリソースが不足していますって表示されるんですけど
どうすればいい?
262デフォルトの名無しさん:2005/05/30(月) 18:33:00
リソースを増やせ
263250:2005/05/30(月) 20:48:04
>>257
レスは非常にありがたいのですが、
>>253に合わせてthisがクラスAのオブジェクトだとすると
>HogeHogeはそのオブジェクトを包み込んで(包含 Aggrecation)
>(HogeHogeの中にAが入っているかのように)何かをする感じかと思われ。
このへんがよくイメージできませぬorz
264デフォルトの名無しさん:2005/05/30(月) 21:10:38
c言語の
float data[100];
fread(data,sizeof(float),100,fp);
にあたるものはJAVAではどう書けばいいのでしょうか?

float data[] = new float[100];
に一度にいれたいのですが、byte以外の場合の読み込みができなくて
困っています。
265デフォルトの名無しさん:2005/05/30(月) 21:17:38
CreateGame〜陸海空オンライン〜
日本最大MMO製作プロジェクト始動!(してますw
266デフォルトの名無しさん:2005/05/30(月) 21:23:07
数字を指定して次のような「0001、0002、0050、0100、〜」
文字列をfor文で生成したいのですが、どのように生成するのでしょうか。
267デフォルトの名無しさん:2005/05/30(月) 21:39:26
>>264
普通に扱えると思うが
エンディアンにきをつけるこった
268デフォルトの名無しさん:2005/05/30(月) 21:55:38
test.iniファイル(AA,001,pass,200)を格納しているlcTmapがあり、

//loadTestTbl()はtest.iniファイルを読み取るメソッドです。
TreeMap lcTmap = readFile.loadTestTbl();

コマンドライン引数(args[2]=pass)と比較して、異なる
文字列だった(例えばargs[2]=hogeとtest.iniがpass)場合に、
「パスワードが違います」と表示するにはどうすればいいのですか?
269デフォルトの名無しさん:2005/05/30(月) 22:01:50
>268
lcTmap.get("AA")で"001"という内容のString、
lcTmap.get("pass")で"200"という内容のStringが返ってくるのかな。
なら、

String passwd = lcTmap.get("pass"); // nullだったら嫌なので一応
if (passwd == null || !password.equals(args[2]) ) {
System.err.println("パスワードが違います");
}
270デフォルトの名無しさん:2005/05/30(月) 22:07:56
ByteBuffer#asFloatBuffer()
271デフォルトの名無しさん:2005/05/30(月) 23:19:52
>>266
「どのように〜」は、まさか数の生成ができないんじゃないよな?
4ケタ文字列にフォーマットしたいのなら
NumberFormat、DeciimalFormat辺りを調べろ。
272デフォルトの名無しさん:2005/05/30(月) 23:27:28
JNIのNewDirectBuffer関数でByteBufferとしてJavaから扱えるようにしたネイティブのメモリ領域は
DirectByteBufferのファイナライザで自動的にfreeされてしまうのでしょうか?
もしそうだとすればネイティブメソッド、あるいはJavaプログラムから任意にfreeする方法はないのでしょうか?
273269:2005/05/30(月) 23:48:04
いかん、一行目、getの戻り値Stringにキャストよろorz
274デフォルトの名無しさん:2005/05/31(火) 00:27:17
>>259,260
レスありがとう。
260さんの1)では上手く行きましたが、2)の方法が上手く行きません。以下、テストプログラム。
割り込みがキャッチできません、、俺がスレッド理解してないだけなのかな。
import java.io.*;
public class InputThread extends Thread
{
  public void run () {
    BufferedReader input = new BufferedReader( new InputStreamReader(System.in) );
    while (true) {
      try {
        String cmd = input.readLine();
        System.out.println("echo >> " + cmd);
      } catch (InterruptedIOException e) {
        e.printStackTrace();
        break;
      } catch (IOException e) {
        e.printStackTrace();
        break;
      }
    }
  }
  public static void main (String[] args) {
    InputThread input = new InputThread();
    input.start();
    input.interrupt();
    try {
      input.join();
    } catch (InterruptedException e) {}
  }
}
275デフォルトの名無しさん:2005/05/31(火) 00:46:43
>>271
ありがとうございます。
やってみます。
276デフォルトの名無しさん:2005/05/31(火) 00:56:47
OpenLaszloクールだな。参考資料欲しいんだけど公式以外ってどこが
ありますかね?
277デフォルトの名無しさん:2005/05/31(火) 01:00:36
通常コマンドラインアプリは終了ならQとかEXITとか
CTRL+Zとかなんらかの入力があるからなぁ
278デフォルトの名無しさん:2005/05/31(火) 01:14:21
>>274
interruptで発生したInterruptedExceptionをどこでcatchしようと思ってるんだ。
279デフォルトの名無しさん:2005/05/31(火) 01:23:54
Quit q
Exit e x
Help h ?
Abort a ab
Bye by
Break
Esc
Ctrl-Z
Ctrl-C
Ctrl-Break
ctrl-Alt-Del
これだけ試せば大抵抜けられたな
280258=274:2005/05/31(火) 02:11:23
>>278
InterruptedIOExceptionで受け取るつもりでした。
BufferedReader若しくはInputStreamReaderでラップ
した時にスローされずに内部処理されているのかな。
検証はしてませんが・・

結局、設計再考慮してデーモンとして動かすことにします。
ありがとうございました。
281デフォルトの名無しさん:2005/05/31(火) 03:21:24
>>280
例えばwhileループに入る前にinterruptされたらどうなると思ってるんだ。
282デフォルトの名無しさん:2005/05/31(火) 03:43:56
>>280
InterruptedIOException って Socket#getInputStream() で取れる
InputStream 以外で throw されるんだっけ?
283デフォルトの名無しさん:2005/05/31(火) 20:47:01
ちょっと質問なんですが内部のバイトコード操作用ライブラリとしてBCELを利用しているAOP(アスペクト指向)のライブラリってあります
でしょうか?BCELでアスペクト指向みたいなプログラムを作る方法を学びたいです。
ちなみにAspectJはソースを見てみたところASMというライブラリを内部で使っているようでした。
スレ違いだったら誘導よろです。よろしくどうぞ。
284デフォルトの名無しさん:2005/05/31(火) 22:37:21
>>263
デザインパターン本でCompositeパターンあたりでも読むといいだろう
285デフォルトの名無しさん:2005/06/01(水) 03:31:24
>>274
いくつかのJDKリリースでは、InterruptedIOExceptionもサポートされているが、
これは、いくつかのプラットフォームにだけ、部分的に実装されています。

という記述が、Doug Lea の本に書いてあった。
タイムアウト付きのIOメソッドでループさせ、
Interrupt が発生しているかどうかを、手動で確認するのが確実かな。

>>278,281
勝手なところで例外発生したらかなわん。
というか、だからというか、継承元の
InterruptedException はチェックされる例外だろ?
286285:2005/06/01(水) 03:40:35
> というか、だからというか、継承元の
> InterruptedException はチェックされる例外だろ?

InterruptedIOException の親クラスは
IOException でしたorz
287デフォルトの名無しさん:2005/06/01(水) 12:49:35
キーフックと、Javaのキーボードイベントをイベントリスナで取得する(んですよね?)
の違いがいまいちよく分からないのですが、ちょっと教えて頂けませんでしょうか。
キーフックはキーが押されたとかいうイベントがOSに届く前に横取りして
加工して返したり返さなかったりする
Javaの方はイベントリスナでキーボードが押されたとかいうイベントを取得しても
横取りする訳じゃないからイベント自体はOSに届く
という理解であってます?
288デフォルトの名無しさん:2005/06/01(水) 14:30:30
>>287
横取りってキーボード割り込みのジャンプ先を書き換えるとかしないと無理でしょ。
ところで、キーボード割り込みの横取りって、まともな使い道あるの?
289デフォルトの名無しさん:2005/06/01(水) 15:27:21
javaだけではフッキングは無理だな。 JNIでAPI呼ばないと。
TextFieldなんかで定型入力させるのか?
だったらリスナで十分だ。
290デフォルトの名無しさん:2005/06/01(水) 20:59:29
Javaで一つ目の引数に生年月日(yyyy/mm/dd)
二つの目の引数に没年月日(yyyy/mm/dd)
二つ目の引数がnullの場合は現在の日付と時間を代入

これらを計算してして現在および没年の年齢をだしたいのですが
yyyy-yyyyなら簡単なんですが誕生日の兼ね合いが難しいです
教えてください
291デフォルトの名無しさん:2005/06/01(水) 21:05:10
sunのepsilonプロジェクトについて詳しく知ってる人いませんか?
292デフォルトの名無しさん:2005/06/01(水) 21:22:51
>>290
Calendar
293デフォルトの名無しさん:2005/06/01(水) 21:23:18
swingの質問二つ、よろしいでしょうか。
Windowsで開発してるのですが、JFrameのウィンドウの最小化ボタン、最大化ボタン、終了ボタンが
ありますよね。アレの最大化ボタンだけを非表示にして、_□×ではなく_×という
状態にしたいのですが、どうすればいいでしょうか。

もう一つ、JButtonみたいなものなのですが、例えばONボタンとOFFボタンがあって、
ONボタンがクリックされると、ONボタンは押しっぱなし(凹んでいる)状態に、
OFFボタンは押されていない状態に、OFFボタンがクリックされると逆の状態になるという
ラジオボタンのように使えるのはないでしょうか。
294デフォルトの名無しさん:2005/06/01(水) 21:27:40
>>290
java.text.DateFormat (java.text.SimpleDateFormat)
と java.util.Calendar (java.util.GregorianCalendar)。
295デフォルトの名無しさん:2005/06/01(水) 21:36:59
現在日なり没日なりを越えないように、
誕生日のyearをrollして、回数をカウント。
296デフォルトの名無しさん:2005/06/01(水) 21:39:17
>>293

1. 最大化ボタンは、disableする(押せないようにする)ことは出来るが
非表示には出来ない。

2. つ JRadioButton, ButtonGroup

297デフォルトの名無しさん:2005/06/01(水) 21:50:31
>>296
ありがとございます
298デフォルトの名無しさん:2005/06/01(水) 22:07:53
JAVA歴の短い私に愛の手を…

Accessで作ったデータベースをPDAで参照しようと思ったらどういう流れでソースを書けばいいのでしょうか?
一応PCのコマンド上ではデータの参照をできるようになったのですが、
見栄えが悪すぎるというか実用性に欠けるというか…。
299デフォルトの名無しさん:2005/06/01(水) 22:58:11
見栄えの問題をいわれても・・・
300デフォルトの名無しさん:2005/06/01(水) 23:00:25
AccessのデータってPDAの中に乗っかってるの?
JDBCみたいにアクセスできるか?って言う質問なら 答えはNO
自分でシコシコ作るしかない
301298:2005/06/01(水) 23:02:40
説明不足で申し訳ないです。

アプレット(?)を作りたいので、見た目も分かりやすい方がいいかな?と思いまして。
なんていいますか、ユーザ側が数字を入れるとその番号にあったデータがパッと出てくるような…
イメージしか言えない自分が恥ずかしい。
302デフォルトの名無しさん:2005/06/01(水) 23:05:29
>>301 300の質問にとりあえず答えとけ。
303デフォルトの名無しさん:2005/06/01(水) 23:07:57
普通、質問するときにはPDAとかJ2MEとかの環境について書いておくものだろ。
釣りだね。
304デフォルトの名無しさん:2005/06/01(水) 23:08:57
プロジェクトをまたがる
たとえばEclispeで二つプロジェクトを作って
1のプロジェクトにあるpublicクラスを2のプロジェクト内
のクラスから呼び出すことって可能でしょうか?
305デフォルトの名無しさん:2005/06/01(水) 23:09:42
>>298
>どういう流れでソースを書けばいいのでしょうか?

さいきん「どういう風にすればいいかわからない」と言う類の質問が多いが
別にプログラムは魔法ではない
今回の場合Accessのデータベースっていうのはつまりファイルだろ
ファイルの中をユーザが入力した数字にあったものを取ってくる方法を考えればいい
ファイルアクセス
中の文字検索 文字検索と言ってもファイルの先頭から見ていくだけだ。なんら特殊な方法はない
306デフォルトの名無しさん:2005/06/01(水) 23:10:56
>>304
java -cp でクラスパス通すか
二つのクライアントのどちらかをサーバにする

以上
307デフォルトの名無しさん:2005/06/01(水) 23:13:52
305とか306とかマジレスのようでマジレスでないってのも
腑抜けた質問と同様にたちわりーな。
308デフォルトの名無しさん:2005/06/01(水) 23:17:24
両方とも俺だ
>たちわりーな。
インポではない
309デフォルトの名無しさん:2005/06/01(水) 23:17:33
>>304
プロジェクトのプロパティで、Javaのビルドパスで多のプロジェクトを参照できるように設定しろや
310デフォルトの名無しさん:2005/06/01(水) 23:19:11
>>309
そういうのって
2つのEclipse起動してモいけますか?
(モがおかしくてすいませんバグです)
311デフォルトの名無しさん:2005/06/01(水) 23:19:19
コマンドライン引数が何個入れられたかを調べるのにはどうしたらいいのでしょうか。
312デフォルトの名無しさん:2005/06/01(水) 23:20:18
main(String[] args) {
System.out.print(args.lengs);
System.out.println("個");
}
313デフォルトの名無しさん:2005/06/01(水) 23:20:50
args.lengs
314デフォルトの名無しさん:2005/06/01(水) 23:20:56
>>312
こいつも立ちわるい
315311:2005/06/01(水) 23:25:41
>>312 >>313
おお!早速レスしていただきありがとうございます。
おかげさまで解決しました。
316デフォルトの名無しさん:2005/06/01(水) 23:26:20
>>311
すげぇぜ あんたのコンパイラ!
317311:2005/06/01(水) 23:29:39
いやぁそれほどでも

(ちゃんと動いてますよ?
318デフォルトの名無しさん:2005/06/01(水) 23:29:41
319デフォルトの名無しさん:2005/06/01(水) 23:43:56
>>316とかつりばっかりだな
320デフォルトの名無しさん:2005/06/01(水) 23:45:17
釣バカ日誌
321デフォルトの名無しさん:2005/06/01(水) 23:46:33
早くなんか書けよ
じゅう
きゅう
はち・・・
322デフォルトの名無しさん:2005/06/02(木) 00:22:41
萩ちゃんはほかにもループを roop と書いてジャバハウスで
ひろみちゅにおちょくられてたなぁ。
ま、体育会系だしな。
323デフォルトの名無しさん:2005/06/02(木) 01:08:07
324デフォルトの名無しさん:2005/06/02(木) 04:34:54
最新版のJavaでは、日本人のプログラマーをを考慮してargs.lengsも
使える様になったらしい。
325デフォルトの名無しさん:2005/06/02(木) 07:51:26
argsu.rengusu
326デフォルトの名無しさん:2005/06/02(木) 10:35:20
くだらない質問ですが、 str が null になるかもしれない時、

if(str.equals("hoge"){
}

じゃなく、
if("hoge".equals(str){
}

と書くのは正当な手段ですか?
327デフォルトの名無しさん:2005/06/02(木) 10:41:10
i--%5>0

iの初期値を10として、この式の結果がfalseになるのはどうしてでしょうか?
328デフォルトの名無しさん:2005/06/02(木) 10:54:10
>>326
嫌になるほどがいしゅつではあるが、後者はいろんな意味で気持ち悪いのでやめれ。

nullを適切に検出して処理する癖をつけるほうがよっぽど有益です。
329デフォルトの名無しさん:2005/06/02(木) 10:58:19
>>327
どうしてもなにも、0>0 はfalseだと思うが・・・。
330326:2005/06/02(木) 11:01:55
>>328
たとえばどう書くんですか?
331デフォルトの名無しさん:2005/06/02(木) 11:18:17
(str != null && str.equals("hoge"))
とかじゃないの
332デフォルトの名無しさん:2005/06/02(木) 12:07:25
>>331にするくらいなら>>326の書き方で正解だ

>>331ならstrを"hoge"しか認めていない。
それなら>>326のコードでいい

nullでなく、空文字でないという場合なら

str != null && !str.equals("")

でいいと思うが。
333デフォルトの名無しさん:2005/06/02(木) 12:15:35
String変数にnullを入らないのが前提ならば、
>>326の前者の書き方で全く問題ない。

でもコードミスでデバッグ段階でnullが入ってしまい、
ぬるぽを避けるためというなら>>326の後者でいい。

>>331のコードは変。
hogeしか真にしない条件なら>>326の後者で十分。
334デフォルトの名無しさん:2005/06/02(木) 12:24:38
>>333
String#equals(null)はfalseですよ。NPEは起きません。

ところで私、nullでなく空文字でないというチェックを
str != null && str.length() > 0
とやるんですが、こういう人は少数派?
335デフォルトの名無しさん:2005/06/02(木) 12:37:50
>>334
ぬるぽにならない、と言っている時点でわかってないな。
336デフォルトの名無しさん:2005/06/02(木) 12:45:35
System.out.println(Totalmoney+"円の貯金があります。");
return Totalmoney;
だとおけで
return Totalmoney;
System.out.println(Totalmoney+"円の貯金があります。");
だと
C:\java>javac allone.java
allone.java:15: この文に制御が移ることはありません。
System.out.println(Totalmoney+"円の貯金があります。");
^
allone.java:16: return 文が指定されていません。
エラー 2 個
とでます。
普通、帰り値を出してから(returnしてから)出力(println)をするもんだと思ってたんですが、
何で逆なんでしょうか・・・
337デフォルトの名無しさん:2005/06/02(木) 13:00:06
>>335
if文は左から順に処理するのが決まってるので
先にnullかどうかの判定をしているのと同じだよ

他人が見て即座に理解できる、とか明示的なコードを書くってのは
仕事で書くならば当たり前のことだよ
338デフォルトの名無しさん:2005/06/02(木) 13:35:41
>>336
おまいさんは
> 普通、帰り値を出してから(returnしてから)出力(println)をするもんだと思ってたんですが
この認識をどこからどうやって得たのか明確に示してみれ。


ある意味アバンギャルドな発想で興味深い。
339デフォルトの名無しさん:2005/06/02(木) 14:00:22
>>337
覚えたての人ほどトリッキーなコードを書くよね
仕事では、のちのち別の人に丸ごと書きなおされる運命
340デフォルトの名無しさん:2005/06/02(木) 14:13:52
キーイベントの取得の話なのですが、自分にフォーカスがある時だけじゃなくて
フォーカスされてない時でも全プロセスのキーボードイベントを取得するのはどうやるのでしょうか
341デフォルトの名無しさん:2005/06/02(木) 14:23:12
333=335=337まできて、やっと>>333の意味がわかった。
333=335=337は、&&演算子の左右の式の評価順序が、Cのように不定だと思っていて、
str != null && str.equals("hoge")
と書いた場合、str == null の時にぬるぽになる可能性があると思ってたんだ。なるほど。
で、それを>>336に指摘されて>>337と反論した、と。

で、>>326 ってそんなにトリッキーか?
むしろ333のようなCからの移行組にいらぬ誤解を与えなくていいと思うんだが。
342341:2005/06/02(木) 14:24:12
すまぬ、>>336じゃなくて>>337>>337じゃなくて>>339でした。申し訳ない>>337
343デフォルトの名無しさん:2005/06/02(木) 14:27:06
if("hoge".equals(str){
}
これ自体はトリッキーとはいえないが、str==nullとなっている場合があるならその処理をすべき
なのかもしれない。
344デフォルトの名無しさん:2005/06/02(木) 14:42:01
>Cのように不定だと思っていて、
おいおい
345デフォルトの名無しさん:2005/06/02(木) 14:43:58
目的と手段がかみあってないから気持ち悪い
346デフォルトの名無しさん:2005/06/02(木) 14:54:09
ぬるぽ発生条件を分かってないやつがいるな。
347デフォルトの名無しさん:2005/06/02(木) 14:58:18
>>326の後者コードでFA?
348デフォルトの名無しさん:2005/06/02(木) 15:00:27
>>347
俺だったらそれ見つけたらすぐ書きなおすけどね
Cのif文で、代入ミスを防ぐとかで定数を左にもってくるのも同様
349デフォルトの名無しさん:2005/06/02(木) 15:15:29
問題ないのに何で修正するんだ?
代入ミスも発生しないし
350デフォルトの名無しさん:2005/06/02(木) 15:19:30
>>349に同意。
なぜ>>348が修正するか分からん。
351デフォルトの名無しさん:2005/06/02(木) 15:25:55
org.apache.commons.lang.StringUtils#equals(java.lang.String, java.lang.String)

ttp://www.jajakarta.org/commons/lang-1.0.1/ja/withPrimary/org/apache/commons/lang/StringUtils.html#equals(java.lang.String,%20java.lang.String)
352デフォルトの名無しさん:2005/06/02(木) 15:27:30
プログラムが動作を表さないコードだったらコメント入れてくれ
コメントなくても読んだだけで動作を表すコードならなおよし
353デフォルトの名無しさん:2005/06/02(木) 15:28:44
つまり、
  //nullでもエラーにしないため
というコメントを入れればよしってことか
354デフォルトの名無しさん:2005/06/02(木) 15:32:10
>>352

コメント必要か?これ
355デフォルトの名無しさん:2005/06/02(木) 15:40:13
謎だな
356デフォルトの名無しさん:2005/06/02(木) 15:54:42
str.equals("hoge") なら 「str が "hoge" のとき」と素直に読めるが、"hoge".equals(str) だと素直に読めないだろ。
それに、そういう癖をつけちゃうと null ではまずいけど null が引っかからずに通ってしまうコードを書いてしまうかもしれないだろ。

小手先のテクニックのために気持ち悪い頭悪いソース書かれたらたまらん。
ム板っていつからこんなにクオリティ低くなった?on_





あ、昔から低いか。
357デフォルトの名無しさん:2005/06/02(木) 16:14:33
>>356は頭悪いことが判明しますた
358デフォルトの名無しさん:2005/06/02(木) 16:20:05
>>356
素直に読めないというのが理解できない。
文字列を参照してることでnull参照を避けていることが分かるだろうに。

変数strにnullが入ってきてしまうことでデバッグに困ると言いたいのなら、
ブレークして中身見ればいいだけの話で完全にスレ違い。
359デフォルトの名無しさん:2005/06/02(木) 16:24:30
>>356
要は「俺の流儀に反する」ってことだろ?

まぁ、この辺認めない人もいるかもね。自クラスで定義されたフィールドを参照するのに
フィールドに直にアクセスするか、getter/setter経由するか、という話みたいに。
360デフォルトの名無しさん:2005/06/02(木) 16:31:14
>358
> 「str が "hoge" のとき」と素直に読めるが
「文章として」素直に読めるかどうかが問題。

> 文字列を参照してることでnull参照を避けていることが分かるだろうに。
そんなことはわかっている。俺もお前も。
でも、みんながみんなそう解釈してくれるとは限らん。そういう話。

> 変数strにnullが入ってきてしまうことでデバッグに困ると言いたいのなら
"hoge" を前にすることで無駄に中身を確認する必要がある(品質が下がる)のなら
それはやはり問題では?
361デフォルトの名無しさん:2005/06/02(木) 16:48:07
>>360

無駄といえるほどの処理じゃないだろ。
2秒で分かるのに・・・。

つか、スレ違いだからもうやめれ。
362デフォルトの名無しさん:2005/06/02(木) 16:50:40
>>360に質問したいが、どんな開発環境使ってるんだ?
363デフォルトの名無しさん:2005/06/02(木) 17:07:06
数年後に確実に別のやつのメンテが入る状況だったりするな
つーか、ひとつのプロジェクトで各種言語が入り乱れ
javaだけでも常時20人が入れ替わり立ち代り(派遣含む)
触ってる環境じゃあなあ・・・
364デフォルトの名無しさん:2005/06/02(木) 17:21:22
なんかStringだけは特殊な表記法なだけに
==で内容が同じかどうかの判断はしてくれてもよかったのにな
365デフォルトの名無しさん:2005/06/02(木) 17:38:58
>>364

それはイソスタソス
366デフォルトの名無しさん:2005/06/02(木) 17:39:58
>>365
よく読め。
367デフォルトの名無しさん:2005/06/02(木) 20:34:16
>>328
条件が変数名の長さに左右されず常に先頭に来る分、後者の方が見やすい
368デフォルトの名無しさん:2005/06/02(木) 20:38:04
>>364
intern()
369デフォルトの名無しさん:2005/06/02(木) 22:07:12
>>367
逆に文字列長が様々だった場合見にくそうだが
370デフォルトの名無しさん:2005/06/02(木) 22:14:35
>>369
日本語読め
371デフォルトの名無しさん:2005/06/02(木) 22:18:14
ttp://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf
>C_STR005 文字列リテラルと変数を比較するときは、文字列リテラルのequals()メソッドを利用する

まぁ、コーディング規約なんて(よいコードを書くための)飾りです。エロい人にh(ry
372デフォルトの名無しさん:2005/06/02(木) 22:22:46
規約なんて企業によって様々だとおもうんだが
373デフォルトの名無しさん:2005/06/02(木) 23:42:56
"1".equals(x) を 1 == x とかと同じように考えてるやついない?
1 == x と書くのは x == 1 とまったく等価で意味がないからやめるべきだけど
"1".equals(x) は x.equals("1") とは等価じゃないだろ。

例えば >>356
>str.equals("hoge") なら 「str が "hoge" のとき」と素直に読めるが
とか言ってるけどそもそもこれが間違いだし。
374デフォルトの名無しさん:2005/06/03(金) 00:03:08
x!=null && x.equals("a")
のほうがわかりやすい
375デフォルトの名無しさん:2005/06/03(金) 00:08:24
>>374
初心者にはな
376326:2005/06/03(金) 00:13:38
なかなか壮大な議論になってしまいましたね。
僕はへぼプログラマーなので、プログラムのことはよくわかりません。
この道を極めようとも思っていません。
でも、最低限のプログラム作法を知っておきたいので、質問してみました。

でも案外、中級・上級の人でも少し意見が分かれていますね。
ジャバワールドにでも質問してみるかw
377デフォルトの名無しさん:2005/06/03(金) 00:24:34
個人で書くコードと仕事で他人のメンテもしなきゃならないようなコードで意見が分かれるかと。
378デフォルトの名無しさん:2005/06/03(金) 01:37:57
>1 == x と書くのは x == 1 とまったく等価で意味がないからやめるべきだけど
間違えて代入式書いてしまう馬鹿対策としては、あってもよいかとおもうが。

>str != null && str.equals("hoge")
>"hoge".equals(str)

こんなことを気にしなきゃならないほど周りが低脳コーダばっかりなら
気にするかもしれんが、どっちにしても誤解しようがないんで、正直
どうでもいい。

低脳に合わせてコーディングするのも大変だよな。
379デフォルトの名無しさん:2005/06/03(金) 02:04:23
>>378
>間違えて代入式書いてしまう馬鹿対策としては、あってもよいかとおもうが。
それが有効な対策になるコードを教えていただけませんか?
少なくともJavaでは条件式を使うところに間違えて代入文を入れたら、
コンパイラがはじくよね?
380デフォルトの名無しさん:2005/06/03(金) 02:15:17
>>378
ここはCではなくJavaのスレ。
381デフォルトの名無しさん:2005/06/03(金) 02:30:49
>>379
boolean x = true;
if (x = false) {
...
}

そもそも x == false とか書くのも間違ってるがな。
382デフォルトの名無しさん:2005/06/03(金) 04:15:18
"***".equals(〜)
って直感的に分かりにくいというよりもむしろ、
書くときにすぐ出てこないんだけど慣れの問題?
383デフォルトの名無しさん:2005/06/03(金) 04:39:10
>>381
こないだコードレビューで見つけたばっかのコードだw
間違いじゃないけどこんなのも

/* 条件に該当するデータが存在 flag */
boolean dateFlag = false;
384デフォルトの名無しさん:2005/06/03(金) 09:26:17
>>374
x!=null && x.equals("a")

上の条件式で真になる場合は変数xが文字列aの場合だけ。
「変数xがaである場合のみ」ということを考えるなら、

"a".equals(x)

で問題ない。それをわざわざ>>374のように書くのは
プログラマとしてのレベルが低いってことジャマイカ。
385デフォルトの名無しさん:2005/06/03(金) 09:39:39
>>384
レベル云々の問題じゃなくって、慣れとか習慣の問題。
そこを、やれバグの温床になるだの品質が下がるだの言い出すのはレベルが低いといえるが。
386デフォルトの名無しさん:2005/06/03(金) 10:03:16
"a" とか "hoge" とかだから気持ち悪いんだよ
状況によって、この文字列そのもので何だかわかる場合、
もしくは、すごくわかりやすい変数名がついた変数で
あった場合なら、こんなに文句はつかない。
387デフォルトの名無しさん:2005/06/03(金) 10:18:40
俺が思うに、"hoge".equals(str) だとぬるぽがでる可能性を排除することになる。
もちろんそこに目的があるのだから当たり前だが。

しかしそれではあまりにも、あまりにもロマンがなさ杉じゃないか?

ぬるぽの排除されたコードなんて、コードなんて・・・。



。・゚・(;つД`); ・゚・。 うわーん
388デフォルトの名無しさん:2005/06/03(金) 10:26:04
>>387         ガッ
軟弱者!( `・ω・)っつ)つД`)
389デフォルトの名無しさん:2005/06/03(金) 10:28:48
if ( "ぬるぽ".equals( word ) ) {
  res.responce( "ガッ" );
}
390デフォルトの名無しさん:2005/06/03(金) 10:46:56
>>389
resがnullなのでNullPointerException
391デフォルトの名無しさん:2005/06/03(金) 11:31:07
>>386 に同感だなあ。

"hoge".equals(var) が気持ちわるい人は、

static final hoge = "hoge";
...
if (hoge.equals(var)) {

って書いても気持ちわるい?
392デフォルトの名無しさん:2005/06/03(金) 11:35:45
>>391
それはだれがみても気持ち悪そうだ
393デフォルトの名無しさん:2005/06/03(金) 11:38:35
定数が小文字なのはちょっと・・・
394デフォルトの名無しさん:2005/06/03(金) 11:59:30
>>386
それは例えだって。実際は定数に決まっている。
395デフォルトの名無しさん:2005/06/03(金) 12:08:31
定数でもnullを避けるためだけに盲目的にやられると
困るけどな。1文字のときとかね
396デフォルトの名無しさん:2005/06/03(金) 12:24:56
public static final String KEYWORD = "hoge";

...

if ( KEYWORD.equals( var ) ) {
...

うむう・・・。
397デフォルトの名無しさん:2005/06/03(金) 14:57:03
>>365
いそすたそすワラタ
398デフォルトの名無しさん:2005/06/03(金) 15:07:20
以前はKEYWORD.equals( var )という書き方をしてたけど、
最近はなるべくvar.equals( KEYWORD )という書き方をしてるなぁ...
というのも、このような文字列比較をするときに、
varにnullが入っているというのは予期していないことが多いので、
潜在的なバグを防ぐためにも、素直にぬるぽが飛んでくれた方が気持ちいい。

あと、多数のキーワードと比較しないといけない状況で、
switch文を使う場合は、どちみちこの手は使えないしね
例えばこんなことをするとき

assert (var != null && var.length() > 0);
switch(var.charAt(0)) {
case 'a':
if (var.equals("aho")) {
...
} else if (var.equals("ahe")) {
...
}
break;

case 'b':
if (var.equals("bobo")) {
...
} else if (var.equals("brazil")) {
...
}
break;
}
399デフォルトの名無しさん:2005/06/03(金) 15:41:05
>>398
> 潜在的なバグを防ぐためにも、素直にぬるぽが飛んでくれた方が気持ちいい。
NullPointerException を throwした方がいいなら、
自分で null と比較して投げた方が良いと思うが。
400デフォルトの名無しさん:2005/06/03(金) 16:02:17
明示的な書き方をしたほうがいいというのはよくあることだな

同じようなので条件式の中のbooleanでfalseを調べるときとか
401デフォルトの名無しさん:2005/06/03(金) 16:17:11
New I/Oの非同期通信でObjectInputStreamやObjectOutputStreamみたいなのを
使ってオブジェクトの通信をすることは可能でしょうか。
ふつうにObjectInputStreamを使おうとするとIllegalBlockingModeExceptionが
発生してしまいます。

402デフォルトの名無しさん:2005/06/03(金) 16:17:17
話がループしてきている件
403デフォルトの名無しさん:2005/06/03(金) 16:27:07
> 同じようなので条件式の中のbooleanでfalseを調べるときとか
それは単なるアホだろう。
404デフォルトの名無しさん:2005/06/03(金) 16:31:52
>398
前半は同意。
後半(switch)はキモイ。設計やり直し。
405デフォルトの名無しさん:2005/06/03(金) 16:51:07
>>399
↓こんなプログラム書くの?

if (var == null) {
throw new NullPointerException();
}
if (var.equals("hoge") {
...
}
いくらなんでも、これはやりすぎ。
ランタイム例外が飛んでプログラムが停止することで
バグ(本来nullを渡してはならない関数にnullを渡していたなど)
を早期発見できるようにするのが目的であって、
ぬるぽを投げること自体が目的ではないんだから...

>>401
configureBlocking(false)でブロッキングモードを解除、
あるいはでかいデータでなければ一旦ByteArrayOutputStreamでバイト列に格納して
非ブロッキングI/Oで送信。

406デフォルトの名無しさん:2005/06/03(金) 16:58:04
真偽値なのだが、trueとfalseのほかに「未設定」という値を持ちたい場合
どうすればいいのでしょうか?
booleanでなくBooleanを使うのでしょうか?
407デフォルトの名無しさん:2005/06/03(金) 17:00:28
>>406
未設定がある時点で真偽値じゃねーだろ。
intでも使え。
408デフォルトの名無しさん:2005/06/03(金) 17:02:00
>>406
そういう場合は、素直に数値型を使うのがいい。
public interface Constants {
public static final int YES = 1;
public static final int NO = -1;
public static final int UNKNOWN = 0;
}
という具合に。
409デフォルトの名無しさん:2005/06/03(金) 17:18:35
>>407,408
参考になりました。ありがとうございました。
410デフォルトの名無しさん:2005/06/03(金) 17:58:20
>>405
書くよ。不正な引数かそうで無いかのチェックはすべきだからね。
少なくともライブラリとかの下層のコードを書いてるなら特に。

上層で明日書き直さなければならないかもしれないコードなら必要ないけど。
411デフォルトの名無しさん:2005/06/03(金) 18:00:07
うまく管理できればBooleanでnullを使うのも悪くないかも、と思う。

>407 >408
最近はenumというものがあるのですよ。
412デフォルトの名無しさん:2005/06/03(金) 18:01:34
>410
nullが不正な引数なら、投げるのはIllegalArgumentExceptionだろ。
413デフォルトの名無しさん:2005/06/03(金) 18:04:47
>>406
素直に enum 使え。 >>408 では型によるチェックができん。
あと、定数の列挙にinterfaceを使うのも止めた方がよさげ。
414デフォルトの名無しさん:2005/06/03(金) 18:06:38
>>412
IllegalArgumentException でもいいけど、
Sun の標準API でも平気で NullPointerException 投げてるのでぬるぽで問題ない。
415デフォルトの名無しさん:2005/06/03(金) 18:24:56
Object[] args = {new Integer(H), new Integer(M)};

H>0, M>0 → H 時間 M 分
H=0, M>0 → M 分
H>0, M=0 → H 時間
H=0, M=0 → 0 分 または 0 時間

となる MessageFormat 作りたいんだけど、どうフォーマット組んだら良いのかな?
"{0,choice,0#|0<{0}時間}{1,choice,0#|0<{1}分}" とか組んでみたけど、H=0, M=0
の時に長さ 0 の文字列になってしまう。
416415:2005/06/03(金) 18:42:43
{0,choice,0#{1}分|0<{0}時間{1,choice,0#|0<{1}分}} のフォーマットが通れば OK なんだが、
choice の中に choice を入れる方法はないのかな?
417デフォルトの名無しさん:2005/06/03(金) 18:49:57
>414
そういう話じゃないだろ。

詭弁のガイドライン
2.ごくまれな反例をとりあげる
418デフォルトの名無しさん:2005/06/03(金) 19:47:06
>>417
ちょっと待て。
> 2.ごくまれな反例をとりあげる
って……

APIリファレンスの NullPointerException の「使用」見るとか、
ソースに NullPointerException でgrepかけてみればわかるよ。
不正な引数としての null に IllegalArgumentException 投げる方が少数。
419デフォルトの名無しさん:2005/06/03(金) 19:48:52
> APIリファレンスの NullPointerException の「使用」見るとか、
大して無いな。
420デフォルトの名無しさん:2005/06/03(金) 19:49:22
ま、>>417 は馬鹿っつーか経験ないのがバレバレだが。
421デフォルトの名無しさん:2005/06/03(金) 20:06:33
>>410
J2SEのソース見ると、放っててもぬるぽが飛ぶ場合は、
明示的に飛ばすようにはしてないみたい。
ただ、フィールドに格納する場合は、
わざわざnullチェックしてぬるぽ飛ばしてるなぁ。
nullが入ったらまずいフィールドにnullを入れてしまって、
後で使うときにぬるぽが飛んでも、そもそもの原因が分からないので、
こういうチェックの仕方は妥当なところかも知れない。
422401:2005/06/04(土) 00:33:10
>>405
SocketChannel socketChannel = serverSocketChannel.accept();
socketChannel.configureBlocking(false);
oos = new ObjectOutputStream(socketChannel.socket().getOutputStream());
ois = new ObjectInputStream(socketChannel.socket().getInputStream());
このように非同期通信でObjectInput/OutputStreamを使おうとすると、
IllegalBlockingModeExceptionが発生してしまいます。
これはStreamを使った通信だと非同期通信ができないせいだからだと思いますが、
非同期通信でObjectOutputStreamとObjectInputStreamを使った通信みたいに
簡単にObjectのやりとりをすることはできないのでしょうか。
423デフォルトの名無しさん:2005/06/04(土) 01:06:41
>>412 に同意
オレもIllegalArgumentExceptionやらIllegalStateExceptionやら投げまくってる
424Sun氏ねと思う瞬間:2005/06/04(土) 01:15:04
} catch (UnsupportedEncodingException uee) {
throw new IllegalStateException(uee);
}
425デフォルトの名無しさん:2005/06/04(土) 01:42:47
>>413
>定数の列挙にinterfaceを使うのも止めた方がよさげ。
これって最近よく聞かれるけど、どういう理由?
あくまでinterfaceはinterfaceであって、定数の入れ物では無いから
インスタンス化しないって理由だけでinterface使うな、
抽象クラスにでも入れとけ、ってこと?

煽りとかじゃなくて、趣旨を知りたいので教えてくだちい。
426デフォルトの名無しさん:2005/06/04(土) 02:02:12
>418 >420
詭弁のガイドライン
4.主観で決め付ける
5.資料を示さず持論が支持されていると思わせる
9.自分の見解を述べずに人格批判をする

[NullPointerException の使用]
java.awt.print, javax.management, org.xml.sax.helpers

[IllegalArgumentException の使用]
java.awt.print, java.beans, java.beans.beancontext, java.lang, java.lang.management
java.lang.ref, java.lang.reflect, java.net, java.nio.channels, java.nio.charset
java.security, java.util, java.util.logging, java.util.regex, javax.management
javax.management.modelmbean, javax.management.monitor, javax.management.openmbean
javax.management.relation, javax.management.timer, javax.net.ssl
javax.rmi.sslSecurity, javax.swing, javax.swing.plaf.synth, javax.xml.parsers
javax.xml.transform, javax.xml.transform.sax
427デフォルトの名無しさん:2005/06/04(土) 02:04:40
interfaceは、メンバ変数は強制的にpublic static finalになるので
定数の定義にも都合がいい。
428デフォルトの名無しさん:2005/06/04(土) 02:11:31
>425
つ Effective Java
429デフォルトの名無しさん:2005/06/04(土) 02:16:31
>>428
持ってないので概要だけでも教えてください
430428:2005/06/04(土) 02:32:49
>429

以下の件の質問、文句はJoshua Blochまで。

・インターフェイスをクラスが実装するということは、クラスのインスタンスでクライアントは何ができるのかについて述べているべきものだ。

・定数インターフェイスを実装するということは、そのクラスの実装の詳細を公開APIに漏洩することだ。そしてそのことはクラスのユーザには何の意味もない。

・将来その定数を必要としなくなってもバイナリ互換のためにそのインターフェイスを実装し続けなければなららない。

・finalでないクラスが実装していると、サブクラスすべてが定数により名前空間を汚染される。



・既存クラスに強く結びついているのならばそれに含めてしまう。
(Integer.MIN_VALUEなど)

・タイプセーフenum(Effective Javaで説明、およびJDK5.0で追加)を使う。

・Mathのような、インスタンス不可能なユーティリティクラスを使う。
431デフォルトの名無しさん:2005/06/04(土) 02:44:51
引数のnullチェックは利用者がnullを入れてくる可能性があるならする。
ないならしない。
判断が難しい場合はjavadocコメントから事前条件がわかるように記述
432デフォルトの名無しさん:2005/06/04(土) 02:48:09
>>426
ちゃんと調べろよ……。java.lang のソースに
NullPointerException で grep かけて調べただけでも、
> Class#isAssignableFrom(Class cls)
> Class#getField(String name)
> Class#getMetod(String name)
> Class#getDeclaredField(String name)
> Class#getDeclaredMethod(String name)
> Class#getResourceAsStream(String name)

を初めとして150ぐらい出てくるぞ。
お前は詭弁のガイドラインを出して、相手が詭弁だと決め付けてるだけ。
433デフォルトの名無しさん:2005/06/04(土) 02:52:41
>>426
ちなみに、nullが不正な引数だった場合、
IllegalArgumentException を投げるのが多数派だって根拠はあんの?
434デフォルトの名無しさん:2005/06/04(土) 02:59:19
何か不毛な論議が続いてるな。例外の意味付けのレイヤーが違うだけの話だろ。

NullPointerException → 物理的状況: 低レベル、詳細
IllegalArgumentException → 論理的状況: 高レベル、概要

「該当するレコードがない」と「認証に失敗」。どちらも同じ状況を表してるが
見る人にとってどっちが適切か、程度の話だ。

ところで >>415 の良いフォーマットは誰も思いつかない?
435デフォルトの名無しさん:2005/06/04(土) 03:14:06
>>434
引数3つにしてみれば?
Object[] args = {new Integer(H), new Integer(M), new Integer(H * M)};
{2,choice,0#0分|0<{0,choice,0#|0<{0}時間}{1,choice,0#|0<{1}分}}
436デフォルトの名無しさん:2005/06/04(土) 03:30:51
>>427
おお、なんてメンバ変数なんて死語を使うとは
437デフォルトの名無しさん:2005/06/04(土) 03:54:30
Java的にはフィールドだな。
438デフォルトの名無しさん:2005/06/04(土) 04:11:29
UMLで統一すると「属性」

というとC#厨が暴れだして「それはJavaのメタデータだ!」
439デフォルトの名無しさん:2005/06/04(土) 08:19:08
>>422
簡単にやりとりしたいのであれば、
ByteArrayOutputStream out = new ObjectOuputStream(new ByteArrayOutputStream());
とやって、一旦バイト配列にオブジェクトを書き出してから非同期通信する方法だな。
でかいデータであれば、一時ファイルに書き出すとか。
あるいは、非同期通信でデータを送るOutputStreamを自分で実装して、
それをObjectOutputStreamでラップしてやればいい。
いずれにしても、期待するほどお手軽な方法はないと思うよ。
440426:2005/06/04(土) 10:40:19
>>430
どうもです。 理解できました。
俺の使用法とは違っていたんで、恐らく聞かないと死ぬまで
わからなかったと思います。

- ちらしの裏 -
単にinterfaceの定数使うために implementしちゃうヤツなんていたのか・・・
importしてクラス名付きで参照するのが普通だと思ってた。
どっちでも同じ目的を達成できるけど、interfaceのimplementだとそれが簡単なため
濫用される恐れがあるのでヤメレ、って感じなのかな。
441デフォルトの名無しさん:2005/06/04(土) 10:45:57
>>440

インタフェース名.定数名

でいいじゃん。implementsなんかする必要なし。
もしかして、implementsしないと使えないと思ってた?
そんなことないよね?
442428:2005/06/04(土) 11:35:54
インターフェイスだとimprementsする馬鹿を防げないってことでしょ。
ユーティリティクラスにしとけ、と。
443デフォルトの名無しさん:2005/06/04(土) 11:44:37
お聞きします。

たとえば、aという数列関数があったとして、
そのaの保持できる桁数をより増やしたいのですが、
どういうふうに記述したらいいでしょうか・・・

var a : Real ;

ではできないのでが・・・
444デフォルトの名無しさん:2005/06/04(土) 11:58:45
>>442
Effective java の例だと final にはしてないから、
extends できるという点では変わらないと思うんだが・・・。
445デフォルトの名無しさん:2005/06/04(土) 12:20:06
設計によるんじゃね?

ListSelectionModelとかインターフェースに定数もってるが、そっちのほうがいいし
446デフォルトの名無しさん:2005/06/04(土) 12:30:11
変数の対応桁数を増やすのってどうすればいいんでしょうか
15,16が限界なのですが、なにかプログラムすればそれ以上の桁にすることはできますか?
447デフォルトの名無しさん:2005/06/04(土) 13:31:59
>>445
ListSelectionModel もダメだろ。

setSelectionMode(5) がコンパイル通っちゃうし。
448デフォルトの名無しさん:2005/06/04(土) 13:38:33
>444
finalにするかどうかの話は別の章だし、いいんじゃね?
「extendsを許すこともできる、禁止もできる」「スコープを設定できる」と好意的に解釈しようよ。
interfaceだとできないことができるってことで。
449デフォルトの名無しさん:2005/06/04(土) 16:11:09
>>447
あれはEnumでるまえだしそれは仕方ないだろ
定数をインターフェースに持つというだけのところでつっこんでくれ
450デフォルトの名無しさん:2005/06/05(日) 02:07:19
>>446
java.math.BigDecimal
451デフォルトの名無しさん:2005/06/05(日) 10:50:46
BigIntegerも
452デフォルトの名無しさん:2005/06/05(日) 12:33:44
>>439
流れを無視した質問に答えてくださってありがとうございます。
やはりお手軽な方法はないのですね。
ByteArrayOutputStreamを利用した方法を試してみたいと思います。
453デフォルトの名無しさん:2005/06/06(月) 00:47:26
今さらですが、http・https 混在サイトで別セッションで管理しないとセキュリティ
ホールになるってのはみなさん実装されてるでしょうか?
ttp://securit.gtrc.aist.go.jp/research/paper/AIST03-J00017/

未だに Servlet 仕様として、取り込まれてないので、これ騒いでるのは
日本だけちゃうんかとか思ったりするのですが、海外でも対応してるんだしょか?
あとこれの実害の報告とか聞いたことありますか?
454453:2005/06/06(月) 00:48:58
間違えた。別セッションじゃなくて、別セッションIDじゃないと。
455デフォルトの名無しさん:2005/06/06(月) 06:05:10
土日、超久しぶりにふと Swing で GUI 組んでみたが、改めてみると
デフォルトの UI ってかなりの糞デザインだな。大昔の VB アプリを
髣髴とさせる。まぁ出たばかりの頃は目新しさに目が行ってただけか。
Bold の和文フォントのジャギー、いい加減なんとかせいよ。
456デフォルトの名無しさん:2005/06/06(月) 07:05:39
netbeans3.,6をインストールしようとしています。 
そこで、setup fileをダウンロードしてインストールしようかと思ったところ、
こんな
”The suitable JVM could not be found, please run the program again
using the option -is:javahome<JAVA HOME DIR>"   
エラーメッセージが出ちゃいました
ちなみにダウンロードはできました
どういうことだかわかりますか?
ファイルの場所は、
  ttp://java.sun.com/j2ee/1.4/download.html
の真ん中やや下の、NetBeans4.0の真下です。
457デフォルトの名無しさん:2005/06/06(月) 07:47:52
3.6最近インストールした人、いますか?
458デフォルトの名無しさん:2005/06/06(月) 11:31:56
VMがシステムに見つからないからこまってるんじゃないか?
459デフォルトの名無しさん:2005/06/06(月) 11:51:21
>>456
適切な Java VM が見つからないので指定して起動してくれ、だ。

JDK が C:\Program Files\j2sdk1.4.2_07 にインストールされているなら、起動用のショートカットの
プロパティに "-is:javahomeC:\Program Files\j2sdk1.4.2_07" を追加してもう一度起動しろ。
460デフォルトの名無しさん:2005/06/06(月) 21:17:55
>>455
俺がそのことをSwingスレで最近発言したら
「なにいってんだ?綺麗だよ」と皆に突っ込まれた;;

俺とお前だけなのか?おかしいの
461デフォルトの名無しさん:2005/06/06(月) 21:25:19
>>460
お前ら以外はみんなLinuxだから
462デフォルトの名無しさん:2005/06/06(月) 21:27:49
>>461
そんなせっしょな他に比べりゃ外国どうぜん

おお!さか!ストラッツ!!ジャスギボォァ!
おお!さか!あ〜〜〜いやぁ!
おおさか、おおさか、あれもこれもあんで
おおさか おおさか ええとこ知ってる
おおさか おおさかThis is おおさか ストラットぉ!
463デフォルトの名無しさん:2005/06/06(月) 21:41:02
みんなSystemLAFだから
464デフォルトの名無しさん:2005/06/06(月) 22:04:15
Solaris10何度やってもインスコ途中でこける俺はどうすれバインダーorz
465デフォルトの名無しさん:2005/06/06(月) 22:05:15
>>460,461
そうだよなぁ。Motif をスッピンで使ってる連中だったらすげぇ斬新なデザインなのかもw
改めて見ると Win95 や NeXT の方がマシな気がする (Win3.1よりはマシだが)。主観なんでどうでもイイけど。
466デフォルトの名無しさん:2005/06/06(月) 22:19:00
NeXTか……あれはいいものだ……
その本当の価値も知らずにいぢりたおして遊んでいた大学時代がナツカスィ
OS Xがその後継とはいうが、やっぱあれはMacであってNeXTじゃない(当たり前だがorz)
467デフォルトの名無しさん:2005/06/06(月) 22:21:26
現在、私は45代後半で、自営業を営んでおります。
Javaの素晴らしさに感動してしまい、今更ながらJavaをやろうかと
決心いたしました。
その私が他人に質問するのも気が引けるのですが、どうしてもJavaと
いうものを理解したいべく、皆様のお力をお借りできればかと存じます
■↓質問内容↓■
検索エンジンを使用しても理解できないので質問します。
Javaは何に使われているのか、という質問なのですが、
例えば、Javaではゲームも作れますよね?
それと、3D?とかも。
それ以外で、Javaが「応用」されているものはありますか?

(Javaで出来る事をとにかく全て書いてもらいたいです)
何卒。何卒。どうか、ご教授よろしくおねがいします。

468デフォルトの名無しさん:2005/06/06(月) 22:45:15
またおまえか
469デフォルトの名無しさん:2005/06/06(月) 22:47:18
sage ろ
そして半年 ROM れ
470デフォルトの名無しさん:2005/06/06(月) 23:18:54
もうすっかり忘れ去れてますが Visual J#.NET ってどうっすか? 今作ってる Java のプログラム、
実行ファイルをダブルクリックする程度しかできないド素人に配布したくて、英語ページから JDK の
インスコなんてさせられんのよ。

プラットフォームごとのバイナリ互換性はなくても良くて、Java ⇔ J# でソースレベルの互換性が
あれば良いです (import するパッケージが違ったら無理かな? ま、最悪その程度なら…)。
471デフォルトの名無しさん:2005/06/06(月) 23:29:36
つーか、.NETはインストールさせるのが必須だが
JavaはプライベートJREというのもある
手軽さならJavaのほうじゃね?

アプリ配布してるならJREは再配布できるんだが
なんで英語ページに生かせる必要があるのかと

それにhttp://java.com/というのもあるというのに
472デフォルトの名無しさん:2005/06/06(月) 23:37:06
なぁ Javaの開発環境一番いいと思うのなんだ?
473デフォルトの名無しさん:2005/06/06(月) 23:50:55
普及度でいうとEclipseになってしまうかな……
一方、最近このスレでは初心者向けにはNetBeansが(・∀・)イイ!!という意見が多い。
474デフォルトの名無しさん:2005/06/07(火) 00:01:51
上級者でもGUI製作が入ってくると選択するしかないが
475デフォルトの名無しさん:2005/06/07(火) 00:07:34
上級者なら WebSphere Application Developer くらい買えよ貧乏人。
IBM の開発プロジェクトなら 1 ライセンス \4,000 くらいで買えたはずだがな。
ネットでダウンロードできるお試し版も機能制限ないんじゃなかったっけ?
476デフォルトの名無しさん:2005/06/07(火) 00:14:00
習熟度と金は関係ない罠

WebSphere Application DeveloperってSwing作成で便利だったっけ?
477デフォルトの名無しさん:2005/06/07(火) 00:16:59
たしかVisualEditorは元々WSADのプラグインだったはず。
でも出来具合はあんまり変わらなかったりして。
478デフォルトの名無しさん:2005/06/07(火) 00:32:07
>>476
そうだったな。上級者はテキストエディタを使ってるはずだ。
WSAD の GUI エディタちょいと触ってみてるけど普通に便利よ。
しかし NetBean にしても GUI エディタ使うときは 1024x765 じゃつらいな。
SWT の GUI エディタって無いのかな?
479デフォルトの名無しさん:2005/06/07(火) 00:44:37
1024*768で使ってるが確かに厳しいな。
たためるものはすべてたたんだとしてもね。
480デフォルトの名無しさん:2005/06/07(火) 00:59:29
int getNum()

↑この行に ; がありませんって表示されるんですけど、原因が分かりません。
何が考えられますかね?
481デフォルトの名無しさん:2005/06/07(火) 01:00:56
原因: ; がない

っていうかそれメソッドの宣言なのか?
482480:2005/06/07(火) 01:02:37
>>481
そうです
483デフォルトの名無しさん:2005/06/07(火) 01:04:29
int getNum(){
  return 893;
}

(´,_ゝ`)プッ(゚Д゚)ハァ?
484480:2005/06/07(火) 01:08:30
>>483
え?どゆこと・・・?

int getNum()
{

   ・・・

return num;
}

こんな感じで書いているんですが。
485デフォルトの名無しさん:2005/06/07(火) 01:10:55
じゃあ厨括弧の対応が取れてないとかじゃないのか?
君の出す情報で推測できるのはここまで、以上。
486480:2005/06/07(火) 01:15:48
ありがとうございました。>>485
487デフォルトの名無しさん:2005/06/07(火) 01:21:05
>>478
上級者はテキストエディタで書いてる?
激しく理解不能なんだが。
バカな俺にも理解できるように、小学生レベルで説明して頂けたら幸いかと存じますが。
488デフォルトの名無しさん:2005/06/07(火) 01:22:11
バカ は自分で考えろ
489デフォルトの名無しさん:2005/06/07(火) 01:53:43
有名なhash.javaのプログラムで衝突が起こるまでの過程を表示したいのですが
どうやればいいですか?
490デフォルトの名無しさん:2005/06/07(火) 03:13:43
Javadocを初めて使うのですが

>javadoc *.java
で一括ドキュメント作成をすると メインクラスしかドキュメントが作成されません

>javadoc canvas.java
と個別で作ろうとすると他で作ったクラスが見つからないので未定義と怒られます

全部のドキュメントを作るには何が足りないのでしょうか?
491デフォルトの名無しさん:2005/06/07(火) 03:20:19
パッケージ名で指定しろ。
詳しくは javadoc -help
492デフォルトの名無しさん:2005/06/07(火) 03:49:36
493デフォルトの名無しさん:2005/06/07(火) 04:42:48
駄目だわけわかんね。ドキュメント整備はあきらめよう
494デフォルトの名無しさん:2005/06/07(火) 05:59:48
>>476
>上級者なら WebSphere Application Developer くらい買えよ貧乏人。
なんでいまさらそんな古いものを。現行製品はRational Application Developer。

>IBM の開発プロジェクトなら 1 ライセンス \4,000 くらいで買えたはずだがな。
DeveloperWorksToolbox Subscriptionのことなら今年の2月いっぱいで新規受付終了。

>ネットでダウンロードできるお試し版も機能制限ないんじゃなかったっけ?
機能に制限はないけど、期間は限定。

>>478
>SWT の GUI エディタって無いのかな?
現行のRational Application Developerには入ってる。
495デフォルトの名無しさん:2005/06/07(火) 07:25:36
初心者です
ボタンをクリックしたらラベルに文字を表示するプログラムを
作りたいんですが、2つの独立したクラスで作るとラベルが参照
できないって怒られます。

一つのクラスでは作れるんですがなんとなく気分がよくないんで
バラバラのクラスにしたいんです。
苦し紛れにラベル変数にprivateつけたらまた怒られました。

どうやったらつくれますか?
496495:2005/06/07(火) 07:32:51
すいません情報不足でした。
イベント処理のクラスと、mainクラスに分けたいんです。

class Buttontest{
    .....
    EventShori es = new EventShori();
    JLabel label = new JLabel();
    JButton button = new JButton(push);
    button.addActionListener(es);
    .....
    .....
}

class EventShori implements ActionListener{
    public void actionPerformed(ActiounEvent e){
        label.setText("ボタン押したよ");
    }
}

497495:2005/06/07(火) 07:34:32
privateじゃなくてpublicつけたら怒られたんでした。
498デフォルトの名無しさん:2005/06/07(火) 09:21:48
JAVAでは、スレッド間の同期はsynchronizedで取れるんですが、
プロセス間の同期を取る方法は無いんでしょうか?
499デフォルトの名無しさん:2005/06/07(火) 11:47:56
>>495
インスタンスを持っていないとインスタンス変数にはアクセスできない。
この場合なら、内部クラスにすればいいのでは?
500デフォルトの名無しさん:2005/06/07(火) 11:59:17
thisとかlabelを渡すメソッドかコンストラクタを作るとか。
501デフォルトの名無しさん:2005/06/07(火) 16:36:10
JDICのBrowserクラスを使おうとしているんですが、
ブラウザ表示の部分が最前面に出てしまっているようで、
メニューバー(のJMenu)がブラウザの裏に隠れてしまいます。

コンポーネントの描画順序を制御するにはどうすればよいのでしょう?
502デフォルトの名無しさん:2005/06/07(火) 16:59:02
JMenu hoge; があるとして、
hoge.getPopupMenu().setLightWeightPopupEnabled(false);
503デフォルトの名無しさん:2005/06/07(火) 17:05:35
>>501
この辺を参照しろってさ。
http://java.sun.com/products/jfc/tsc/articles/mixing/

要は JPopupMenu#setDefaultLightWeightPopupEnabled(boolean)
使えって書いてあるみたいだけど。JMenu の場合は、
public JPopupMenu getPopupMenu(){
  JPopoupMenu menu = super.getPopupMenu();
  menu.setDefaultLightWeightPopupEnabled(false);
  return menu;
}
とかすれば良いのかな? ダメだったらすまん。
504デフォルトの名無しさん:2005/06/07(火) 19:47:10
>>502-503
おお、表示されるようになりました。
502氏のようにJMenuごとにセットするようにしました。
どうもありがとうございます。
505デフォルトの名無しさん:2005/06/07(火) 21:08:28
昨日からずーーーーっと苦戦してます。
誰か助けて。
wikiサイト見ても原因がわかりません。
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

と表示され続けます。
PATHはインスコしたフォルダ/binになってるので間違いないと思うんですが・・・
そのbinフォルダの中にjavac.exeが無いのは普通なんですか??
もう無理ぽ。。。
助けて、もうすぐで課題提出期限がくるorz
506デフォルトの名無しさん:2005/06/07(火) 21:14:40
>>505
おまえ、JDK じゃなくて JRE インストールしただろ。
JRE は実行環境のみでコンパイラなどの開発環境は付いてない。
507デフォルトの名無しさん:2005/06/07(火) 21:20:40
jdk1.5.0_03です。
508デフォルトの名無しさん:2005/06/07(火) 21:24:51
補足
C:\Program Files\Java\jdk1.5.0_03\binにjavac.exeはあります。
で、インスコしたフォルダC:\jdk1.5.0_03\binにjavac.exeはありません。
PATHを一回C:\Program Files\Java\jdk1.5.0_03\binにして再起動したけど、何も変わりなかったです。

うぇーまじでなんなんだ。。。
509デフォルトの名無しさん:2005/06/07(火) 21:27:19
pathコマンドうってみろ
510デフォルトの名無しさん:2005/06/07(火) 21:27:33
set "PATH=C:\Program Files\Java\jdk1.5.0_03\bin"
511デフォルトの名無しさん:2005/06/07(火) 21:28:42
set うったらPATHにC:\Program Files\Java\jdk1.5.0_03\binありましたです。
512デフォルトの名無しさん:2005/06/07(火) 21:30:04
情報は断片的にだすな。
出てきたそのままを貼り付けろカス
513デフォルトの名無しさん:2005/06/07(火) 21:32:47
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\AT
I Technologies\ATI Control Panel;C:\Program Files\Common Files\Ulead Systems\MPE
G;C:\gpc\bin;C:\Program Files\Java\jdk1.5.0_03\bin
514デフォルトの名無しさん:2005/06/07(火) 21:36:15
C:\Program Files\Java 配下は JRE のディレクトリだ。
そこの中に開発用のコマンドは入ってない。
515デフォルトの名無しさん:2005/06/07(火) 21:40:54
C:\Program Files\Java\jdk1.5.0_03>javac.exe
使い方: javac <options> <source files>
使用可能なオプションには次のものがあります。
-g すべてのデバッグ情報を生成する
-g:none デバッグ情報を生成しない
-g:{lines,vars,source} いくつかのデバッグ情報だけを生成する
-nowarn 警告を発生させない
-verbose コンパイラの動作についてメッセージを出力する
-deprecation 推奨されない API が使用されているソースの位置を出力
する
-classpath <path> ユーザクラスファイルを検索する位置を指定する

これは出てくるんですけど・・・
516デフォルトの名無しさん:2005/06/07(火) 21:45:51
あそ。

じゃまた来年。今度は早めに質問してね。
517デフォルトの名無しさん:2005/06/07(火) 22:23:01
>インスコしたフォルタ゛C:\jdk1.5.0_03\bin

ダウと
518デフォルトの名無しさん:2005/06/07(火) 22:29:40
>>515
そのディレクトリでそれが実行できてるということは、ちゃんとPATHの
設定ができているよう見える。

519デフォルトの名無しさん:2005/06/08(水) 12:43:08
俺もそれでこの間悩んだけど、あんたはおそらく



JDKをインストールしたところに、JREを上書きしている。



520デフォルトの名無しさん:2005/06/08(水) 13:30:12
>>519
そ れ だ!!
521デフォルトの名無しさん:2005/06/08(水) 13:31:07
または新バージョンをインストールしたあとに旧バージョンをアンインストールとかな。
522デフォルトの名無しさん:2005/06/08(水) 15:31:38
JDKとかJREとか出てきたから聞いてみたいんだけど、
JDK入れるとき、JREも入るよな?(オプションで削除できるけど)

なんでJREが一緒にインストールされるの?
JDKだけ入れてパス通せばコンパイルもできるし実行もできるのに・・・
523デフォルトの名無しさん:2005/06/08(水) 16:52:11
配布前の動作確認に使う
524デフォルトの名無しさん:2005/06/08(水) 16:55:21
JavaWebStartはJRE入れないと入らないんじゃなかったっけ?
525デフォルトの名無しさん:2005/06/08(水) 17:00:43
>>522 JDK(SDK)に同梱されているのはprivate JREと呼ばれ、SDKツール
を動作させるのに使うJRE。いわゆるJRE(public JRE)とは区別される。
526525:2005/06/08(水) 17:06:30
ごめん、JDKをインストールするとpublic JREとprivate JREが両方
インストールされるから522の質問の答えとしては525はすげー舌足らずだった。
JDKを入れるとき、明示的なインストールオプションが存在するのが
public JRE。インストールオプションにかかわらずjavac.exeと同じ場所に
存在するのがprivate JRE。これらはちゃんと区別しないと開発ターゲット
のバージョンがいりくんだ開発をしたときに,はまる要素になるのでPATHの
設定等で環境を切り分けるわけ。
527522:2005/06/08(水) 17:54:53
>>526
いや、それは知ってるんですよ。(呼び方までは知らなかったけど)

俺が言いたいのは、開発だろうとテスト稼動だろうと、JDKだけ(つまりpublic JRE)を入れなくても問題無いのに、
何でインストールする時にpublic JREを入れようとするのだろうという事。

コンパイルする必要も無いならJREだけ別にDL出来るんだからそれを入れれば良いだけだし、
どうして余計なものがついているんだという疑問。
528デフォルトの名無しさん:2005/06/08(水) 18:00:58
ユーザー環境と同じランタイム用意するって意味が分からないの?
529デフォルトの名無しさん:2005/06/08(水) 18:19:46
でも、ユーザ環境って大抵JDKが入ってるんだよな・・・
何かバグが出たとき、その場で修正/コンパイルできるように。
530デフォルトの名無しさん:2005/06/08(水) 18:40:41
JREをインストールせずにJavaWebStartを動かすにはどうすればいいのでしょうか?
531デフォルトの名無しさん:2005/06/08(水) 20:25:58
JDKが体外はいってるユーザー環境なんてきいたことねぇよ
532デフォルトの名無しさん:2005/06/08(水) 20:33:51
>531
jarコマンドを使いたいためだけに
端末という端末にJDKをぶちこんだプロジェクトを知っている……
// どうせC++からspawnして呼ぶだけだからjarにこだわる必要はなかったんだが
// 初期段階でjarコマンドはJREにも入ってると勘違いして仕様が作られたらしく、もうどうもこうも
533デフォルトの名無しさん:2005/06/08(水) 20:38:14
別にいまどきのディスク容量なら JDK が入ってても何の問題もないだろ。
むしろ端末だけで問題解析をスムーズにできるように入れておいてもらいたいものだ。
534デフォルトの名無しさん:2005/06/08(水) 20:40:29
JDKはJREと違って再配布はしちゃいかんからその辺大丈夫かよ
535デフォルトの名無しさん:2005/06/08(水) 20:43:40
ウチは自社製だから何とかなったりする。
536デフォルトの名無しさん:2005/06/08(水) 21:00:47
>534
もちろん、各端末から個別にJDKダウソしてインスコした(そう)ですよ。
どのみち他の各種プログラムとかジョブスケジューラとか入れないといけないから
一手間増えただけ、とも言えるが
……なんだかなぁ。
537デフォルトの名無しさん:2005/06/08(水) 21:02:36
>>536
所詮気持ち悪い論だろ?
もっと経験詰めよ。
538デフォルトの名無しさん:2005/06/08(水) 21:18:43
toolsは再配布可能だからそれを使うってのが一番だろうな
539デフォルトの名無しさん:2005/06/09(木) 00:03:54
JavaでGUIを勉強しようかなと思っているんですが
swingでタスクトレイ常駐のアプリって作れますか?
swtならタスクトレイ常駐させることは出来たんですが・・・
540デフォルトの名無しさん:2005/06/09(木) 00:17:04
>>539
JNI から起動する方法で RMI の常駐アプリを作ったことがある。
541デフォルトの名無しさん:2005/06/09(木) 00:17:21
書き忘れ: Swing は無理
542539:2005/06/09(木) 00:26:05
>>540-541
即レスdです。
swtでガンガッテみます。

目標はメールチェッカーみたいなアプリです。
543デフォルトの名無しさん:2005/06/09(木) 00:27:06
>>539
JDIC でやってるね。

mustang から使用可能になるらしい。
一番最近の snapshot に取り入れられたはず。
544デフォルトの名無しさん:2005/06/09(木) 00:36:18
>>543
dです。
なんか1.5になると大分変わりそうですね
覚える事が減らない今日この頃です(´・ω・`)
545デフォルトの名無しさん:2005/06/09(木) 00:42:06
mustangは現在開発中であろうところの1.6だ。
546デフォルトの名無しさん:2005/06/09(木) 00:43:44
SWTでのタスクトレイの利用は別にSWTのShellウィジットの動作と連携している
わけじゃない。だから、覚えることを減らしたいならタスクトレイだけ
SWT使ってあとはSwingでもいいと思うけどね。
どうせJREがある環境ではSwingは必ず存在するわけだし、SWT単体に比べて
SWTとSwingを併用するデメリットはないと思う。
547デフォルトの名無しさん:2005/06/09(木) 12:56:55
Swingの質問です。 (JDK 1.4.2_07)
JFrameでウィンドウを作ってます。で、右上のウィンドウコントロール
(最小化・最大化・閉じる)ボタンをなくしたいんですが、上手い方法が見つかりません。
JDialogでも閉じるボタンは付いてきてしまいました。
どなたか方法を教えてください。
548デフォルトの名無しさん:2005/06/09(木) 13:22:51
>>547
Frame#setUndecorated(boolean) すれば?
549547:2005/06/09(木) 14:26:34
>>548
どうもです。 それは試したんですが、
java.awt.IllegalComponentStateException: The frame is displayable.
でダメでした。

後出し情報ですみません。
具体的に何をやりたいかというと、まずJFrameウィンドウが2つ必要です。
1つめ win1は、main() を持っているウィンドウで、数値などを入れるTextFieldがあります。
2つめ win2は、win1のウィンドウで入力された数値などから、結果を表示するウィンドウです。
このウィンドウは常に必要なので、win1にフィールドを持たせてコンストラクタでnewしてます。
win1でshow()をオーバーライドして、super.show()の後で win2.show()してます。
そして、win1が終了すると一緒に閉じます。
ここに閉じるボタンがあると不自然なので、消しておきたい、という感じです。
550デフォルトの名無しさん:2005/06/09(木) 14:32:10
Linux上でのファイル権限、ファイルの属しているユーザ名、グループ名などを取得する方法ってありますか?
drwxr-xr-xなどです。
551デフォルトの名無しさん:2005/06/09(木) 14:39:29
>>550
現在のユーザーでの権限なら file.canRead() .canWrite() では?
それ以外はFS依存の情報だし、SecurityManagerで抽象化された後での
権限なので、JNIでも使わないとわからないと思う。
552550 :2005/06/09(木) 14:45:40
>>551
回答ありがとうございます。
むむむ、ファイルのオーナー取得とかは割と普通に必要な機能だと思ったのですが標準では無いのですね。
ふ〜む、JNIかぁ・・・。
553デフォルトの名無しさん:2005/06/09(木) 14:50:39
>>549

やってないけど、setVisible前だとOKとかいうことはないかい?

あと、枠ごと消す以外には、JFrameのボタンを消す方法はない。

個別ボタンごとの対策としては、

×ボタンは、setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) する。
最大化ボタンはsetResizable(false)でいけたかな。
最小化ボタンはどうにもならない。最小化したのをイベントで拾って、
元のサイズに戻すというかっこうわるい方法があるだけ。

554551:2005/06/09(木) 14:54:19
>>552
もっと単純に考えるなら、外部コマンドで "ls -l" とかの結果から判別する。
これぐらいなら、Linux用のライブラリとかあるかもね。

↓ 参考として
ttp://www.hellohiro.com/command.htm
555550 :2005/06/09(木) 15:00:47
>>554
やっぱりコマンド発行してゴリゴリ解析っていう力業になるのかぁ・・。
権限変更はchmod発行と・・・。

美しくないなぁ・・、他に良い方法があれば良いのですが・・・。
556デフォルトの名無しさん:2005/06/09(木) 15:15:20
文字化けすんねんどうにかしろ!
557デフォルトの名無しさん:2005/06/09(木) 15:18:38

class EmMain{
public static void main(String[] args){
Employees es;
//Employee e;


//Employee e = new Employee("1","あああ", "22", "0", "168", "1000000");

es = new Employees();
es.add(new Employee("1","あああ", "22", "0", "168", "1000000"));
}
}
558549:2005/06/09(木) 15:18:39
>>553
どうもです。 setVisible() 前にやってみたんですが、やっぱダメでした。
インスタンス生成直後にもやってみたんですが、これもダメでした。

あれは枠に付いてくるものなんですね。 JFrameではどうしようもないっぽいかも。
とりあえず、非モーダルなJDialogならウィンドウっぽく使えるんで、最大化・最小化は無いから
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) しときます。

閉じるボタン無しのFrameは、JWindowから気合で作るしかないのかなぁ。
559デフォルトの名無しさん:2005/06/09(木) 15:19:50
// Emploryees クラス
class Employees{

private Employee Data;

public void add(Employee Data_){
Data = Data_;

System.out.printf("%s\n", Data);
}
}
560デフォルトの名無しさん:2005/06/09(木) 15:20:52
>>556
俺もそれでこの間悩んだけど、あんたはおそらく



JDKをインストールしたところに、JREを上書きしている。
561デフォルトの名無しさん:2005/06/09(木) 15:27:19
>>556
名前 山本 貴○
職業 PG見習・ゲームプログラマー
生年月日 1984/7/19

562デフォルトの名無しさん:2005/06/09(木) 16:09:29
>>549
setUndecorated はピアが確定する前にやらんと例外投げて失敗するのでは?
563デフォルトの名無しさん:2005/06/09(木) 16:11:19
Labelに表示させる文字列の色を変更するにはどうしたらいいんでしょうか
それっぽいメソッドが見つからなくて困ってます
564デフォルトの名無しさん:2005/06/09(木) 16:29:24
>>563
Component#setForeground(Color) とか?
JLabel なら fontタグで色つけられたかもしんない。
565デフォルトの名無しさん:2005/06/09(木) 16:47:30
Image[] diz;
URL url;

コンストラクタ(){
  String str;

   for(int i=0;i<2;i++){
     str ="diz"+i+"gif";
     url = getClass().getResource(str);
     diz[i] = getDefaultToolkit().createImage(url);
   }

で、getResource(str);の部分で
NullpointerExceptionが発生してるのですが
どこが悪いのでしょうか?
該当ファイルはクラスと同じ場所にあります。
566デフォルトの名無しさん:2005/06/09(木) 16:50:25
>>565
ぬるぽが出るのは本当にその行?
diz = new Image[2]; が最初に必要だったりしないかね。
567デフォルトの名無しさん:2005/06/09(木) 16:52:19
はい

Class cl = getClass();
url = cl.getResource(str);

とやって試してみたところそうらしいです。
568デフォルトの名無しさん:2005/06/09(木) 17:02:21
初心者です。下のの答えを教えてください・

ttp://sunblade.kouku-dai.ac.jp/~take/kadai1.html
569デフォルトの名無しさん:2005/06/09(木) 17:07:37
>>568
提出期限までまだあるじゃないか。がんばれー。
ついでに言うとすれ違い。

評価のポイントに「プログラムの独創性」が入ってるからココで聞くとえらい高得点になってばれそうだけど。
570デフォルトの名無しさん:2005/06/09(木) 17:07:43
>>568
宿題は宿題スレへ。
★★ Java の宿題ここで答えます part51 ★★
http://pc8.2ch.net/test/read.cgi/tech/1112154540/l50

あと、学籍番号晒してくれないと面倒くさくて答えてもらえないかも?
571デフォルトの名無しさん:2005/06/09(木) 17:07:54
通報しますた
572デフォルトの名無しさん:2005/06/09(木) 17:19:05
>>565
getClass()でnullが返るかstrがnullじゃないとそこではぬるぽは発生しないよねぇ。
例外のスタックトレースを全部さらしてみ。
573デフォルトの名無しさん:2005/06/09(木) 17:23:00
>>565
まさかとは思うがファイル名のドットが抜けていてURLがnullになり、画像読み込みでぬるぽになってるんじゃ?
エラー行はほんとにそこ?
574デフォルトの名無しさん:2005/06/09(木) 18:15:48
配列の要素数がプログラムを実行するまで不確定の場合は配列の作成はどのように行えばいいですか。
575デフォルトの名無しさん:2005/06/09(木) 18:24:28
>>574
ArrayListでも使え
576デフォルトの名無しさん:2005/06/09(木) 18:29:41
>>575
どうもです。
577デフォルトの名無しさん:2005/06/09(木) 19:00:35
>>564
ありがとうございました。
setForegroundで無事解決しました。
578デフォルトの名無しさん:2005/06/09(木) 19:37:59
256色GIFや、256色PNGでは透過画像を表示できたのですが、
JPEGや、フルカラーPNGで透過処理を行うにはどうすればいいでしょうか?
579デフォルトの名無しさん:2005/06/09(木) 19:48:41
JPEGって透過情報持ってないだろ?
580578:2005/06/09(木) 20:02:24
JPEGの場合なら、指定色を透過させたいのですが、
1ピクセルずつ処理する以外に方法はあるでしょうか?
581デフォルトの名無しさん:2005/06/09(木) 20:06:34
Javaで簡単なアプリケーションを作っているのですが、
ファイルを開くダイアログなどを呼び出して、そのダイアログを閉じたとき、
アプリケーションがその下に重なっていた場合、どうも再描画されています。

repaint()を明示的に示さない限り再描画されないようにしたいのですが、
どうすればよいのでしょうか?
582デフォルトの名無しさん:2005/06/09(木) 20:14:33
>>547
setExtendedState()とか、setResizable()は試してるんだよね
583デフォルトの名無しさん:2005/06/09(木) 20:24:16
>>581
オーバーライドすりゃいいじゃんね
584デフォルトの名無しさん:2005/06/09(木) 20:31:47
>>583
オーバーライドしてその中身はどうすればよいのですか?
オーバーライドしてその中でdraw〜をしているのですが。。

いろいろ試したところ、例えば他のアプリケーションを
上に重ねたあと、縮小化したところ、再描画されてもチラつきなどは
見えなかったのですが、自分自身が開いたダイアログを閉じたときは
その重なった部分が一瞬白っぽくなります。

Swing使っているのでダブルバッファリングはしなくてもよいのですよね?
その一瞬白くなる現象を無くすいい方法はないでしょうか?
585デフォルトの名無しさん:2005/06/09(木) 20:32:33
はじめまして、お聞きしたことが。
<SCRIPT LANGUAGE="JavaScript">

<!--
function my_test(){
var ten=0;
for (i=0; i<document.F1.length-1; i++){
if (document.F1.elements[i].checked == true){
ten += eval(document.F1.elements[i].value)
}
}
subwin = window.open("","sub","width=450,height=400");
if (ten<=14){
subwin.document.write("C 14点未満あなたの結果は"+ten+"点です。");}
if (ten>=15&&ten<=30){
subwin.document.write("B 15〜30点以内あなたの結果は"+ten+"点です。");}
if (ten>=30&&ten<=100){
subwin.document.write("A 30〜100点以内あなたの結果は"+ten+"点です。");}

subwin.document.write("<center><input type='button' value='閉じる' onClick='window.close()'></center>");
}

//-->
</script>
586デフォルトの名無しさん:2005/06/09(木) 20:33:02
続きですm(__)m
上記のスクリプトは下にフォームがありチェックされたものの点数を出します
<tr bgcolor="#FFFFFF">
<td width="30"><div align="center">2</div></td>
<td align="center"><div align="left">質問</div></td>
<td align="center">
<input type="radio" name="R2" value=3>はい
<input type="radio" name="R2" value=0>いいえ </td>
</tr>
上記のようなフォームが続くのですが
点数で今はサブウィンドウが開くようになっているのですがただ単にHTMLへ
ジャンプさせるにはどのように書き換えられば良いのでしょうか・・・
何卒、皆様のお力を貸して下さいm(__)m

587デフォルトの名無しさん:2005/06/09(木) 20:33:40
>>585
板違い
588585:2005/06/09(木) 20:34:22
すれ違いでした。。。すみませんm(__)m
589デフォルトの名無しさん:2005/06/09(木) 20:35:37
>>584 それ、最初の質問の内容と話が違うよ。それは「再描画をしたくない」
ではなくて「再描画をするときに始めに行われる背景色での再描画をしたく
ない」だよね。ちなみにFAQ。
590デフォルトの名無しさん:2005/06/09(木) 20:56:47
>>589
Swingの場合はデフォルトで背景色では塗りつぶさないのではないでしょうか?
591547:2005/06/09(木) 21:47:51
setUndecorated(false) できました。
一つでもコンポーネントを追加したらダメなようです。
しかしフレームまでなくなってしまう両刃の剣。 (略

>>582
最大化・最小化はできてもいいかなーとか思いはじめました。
できても殆ど意味はないですが、そこまで自由を奪うのもどうかな、と。
でも、閉じるボタンは消せないんですよね。 あるとUI的に矛盾が生じるんですが
これはフレームとセットでもれなく付いて来てしまうようなんで。
592デフォルトの名無しさん:2005/06/09(木) 22:36:49
>>580
無い。PixelGrabber でビットマップ展開して 1 ビットずつαチャンネル追加せれ
(PixelGrabber 使ってのビットマップ展開は JDK 1.0/1.1 の頃覚えた方法なので
もっと良い方法があったら教えてやってくれ)。

というか JPEG 画像だと劣化圧縮の影響で 「指定色」 のカラーチャンネルが微妙にずれるぞ。
593デフォルトの名無しさん:2005/06/09(木) 22:41:22
Timestampクラスのインスタンスに入っている日付をづらすAPI関数ってないのでしょうか?
既に入ってる日付を指定された日数分、未来にずらしたいのですが・・
自分でやるとStringに変換して計算したり面倒で・・・
594デフォルトの名無しさん:2005/06/09(木) 22:42:09
>>591
L&F を変更するとか。
見かけが変わっちゃうけど
595デフォルトの名無しさん:2005/06/09(木) 22:47:38
>>593
java.util.Calendar 使ったほうが楽。
596593:2005/06/09(木) 22:48:57
>>595さん
おおおお ありがとうございます。
597デフォルトの名無しさん:2005/06/09(木) 22:49:39
>>593
Calendar cal = Calendar.getInstance();
cal.setTime(timestamp);
cal.add(Calendar.DAY_OF_MONTH, 100);
Date date = cal.getTime();
598デフォルトの名無しさん:2005/06/09(木) 22:55:29
abstrutctとinterfaceって何が違うの?
599デフォルトの名無しさん:2005/06/09(木) 22:58:22
>>598
> abstrutct
そんな予約語は存在しない。

> interface
こーゆー予約語は存在する。
600デフォルトの名無しさん:2005/06/09(木) 23:05:04
>>599
コミュニケーションスキル低いなあんた
601デフォルトの名無しさん:2005/06/09(木) 23:18:37
>>598の質問は過去に散々既出なのに
それを調べられない598のコミュニケーションスキルの
低さもたいがいなもんだろう。
602デフォルトの名無しさん:2005/06/09(木) 23:26:39
>>601
それはコミュニケーションスキルというもんなんですか?
603デフォルトの名無しさん:2005/06/09(木) 23:55:24
awtは何の略なんですか?
604デフォルトの名無しさん:2005/06/10(金) 00:04:06
抽象窓道具一式
605デフォルトの名無しさん:2005/06/10(金) 00:06:18
円楽: ハイ、じゃ歌さん
   ↓
606デフォルトの名無しさん:2005/06/10(金) 00:14:49
a:あ、
w:わしそういうの
t:ちらないよ
607603:2005/06/10(金) 00:15:51
回答ありがとうございます。調べたら
Abstract Windowing Toolkitだそうで。
スレ汚しスマソ
608デフォルトの名無しさん:2005/06/10(金) 00:15:54
a:あの、それ
w:わたしの
t:ちらし寿司なんですけど?
609デフォルトの名無しさん:2005/06/10(金) 00:21:26
a:あのなぁ
w:うんざりするから
t:とっとと失せろ

……と罵られた結果Swingが出来たという(嘘800%)
610デフォルトの名無しさん:2005/06/10(金) 00:28:19
a:愛していたのに
w:分かっていた
t:時の流れに身を任せても無駄だということを
611デフォルトの名無しさん:2005/06/10(金) 01:03:11
ほんわかするインターネットですね
612デフォルトの名無しさん:2005/06/10(金) 07:01:14
>>584
update(Graphics g) {
}

paint(Graphics g) {
}
613デフォルトの名無しさん:2005/06/10(金) 09:51:38
あのシステムクラスローダを自分独自に実装したものに置き換えようと思っているので
すが、普通のクラスローダを作る場合と違う「ポイント」は以下の事以外にどんな事があるでしょうか?
・クラスローダを引数に持つパブリックなコンストラクタを一つもつ
・アプリを起動するときにjava.system.class.loaderでそのクラスローダを指定

方法を簡潔に教えていただけるとありがたいです。また、システムクラスローダの置き換えをあつかっている
サイトなどありましたら海外のものでもよいので教えてください。よろしくおねがいします。orz
614デフォルトの名無しさん:2005/06/10(金) 13:02:33
Cをやったことがあるんだけど
Javaにいっても平気?
オススメの本ありますか?
615デフォルトの名無しさん:2005/06/10(金) 13:12:29
Javaプログラミングレッスン辺りがいいんじゃないかな
616デフォルトの名無しさん:2005/06/10(金) 13:18:48
C をやったことがあるのなら、全然平気。
どの程度やったことがあるのかにもよるけど、エキスパートクラスだったら、
いきなり、SJC-P の受験参考書をバリバリ読めば一週間程度で合格レベルまで行くはず・・・。

・・・ もちろん、実際の開発力は、そのあと場数を踏まないとつかないが。


617デフォルトの名無しさん:2005/06/10(金) 15:10:27
UNIXコマンドのtrのような文字列置換を行ってくれるクラスってありますか?
618デフォルトの名無しさん:2005/06/10(金) 15:23:17
SDKはどれがお勧めなんでしょう?
IBM製? SUN製?
619デフォルトの名無しさん:2005/06/10(金) 15:26:51
BEA製だな
620デフォルトの名無しさん:2005/06/10(金) 15:29:29
jarファイル内の画像を読み込みたいのですがうまくいきません(´・ω・`)

Image img = Toolkit.getDefaultToolkit().getImage( "gozou.png" );
や、
BufferedImage img = ImageIO.read( new File("gazou.png") );
を実行してもダメでした。

jar内のファイルを読み込むには、何か特殊な処理が必要なのでしょうか?
621デフォルトの名無しさん:2005/06/10(金) 15:35:17
>>618
自分で判断できない奴にはどれでも大差ない。
622580=578:2005/06/10(金) 16:01:03
>>592
ありがとうございます。
さっそく試してみます(`・ω・´)
623デフォルトの名無しさん:2005/06/10(金) 19:07:04
>>620
引数としてファイルだけじゃなくjar指定が必要なんじゃないの?

その場合URLClassLoaderからリソース読むとか
624620:2005/06/10(金) 21:39:24
>>623
ありがとうございます(・∀・)
URLClassLoaderでググって、試行錯誤の末できますた。
感激です(;´Д`)ハァハァ

File f = new File( "JARファイル名" );
URL url = f.toURL();
URLClassLoader loader = new URLClassLoader( new URL[]{url} );
url = loader.findResource( "JAR内のファイル名" );
BufferedImage img = ImageIO.read( url );

625デフォルトの名無しさん:2005/06/10(金) 22:28:53
ちなみにURLCぁssLoaderでクラスのインスタンスも作ることが出来るので
プラグイン的な開発も可能で本体とプラグインと分けて作るのもいいかもね

626デフォルトの名無しさん:2005/06/10(金) 22:34:43
グラフィック処理とその他の処理を各classに分けたら
repaint()やupdate()を受け付けなくなってしまいました。
どのように考えてプログラムを作ればよいでしょうか?
627デフォルトの名無しさん:2005/06/10(金) 22:49:21
JTextAreaにsetTextで文字列を書き込んだとき、
テキストエリアのカーソルを末尾に持っていくにはどうすればいいですか。
628デフォルトの名無しさん:2005/06/10(金) 23:02:31
>>626
ふつーにやってりゃ分離できるだろ
どのように考えればいいか、って言われてもなぁ。

public class View extends Form {
  
public void paint() {
}
}

public class A {
....
}
629デフォルトの名無しさん:2005/06/10(金) 23:03:46
ごめん、途中でカキコしちゃった。

まぁフツーにやれよ
630626:2005/06/10(金) 23:08:31
フツーがわからなかったので聞きにきたのですが・・・。

まぁフツーにやります
631デフォルトの名無しさん:2005/06/10(金) 23:11:46
>>630
いや、だからさ
グラフィックスだとか、そんなの関係なしに、
いつもクラスを分ける一般的なやり方で分けりゃOKだよ
たぶん、おまいがオブジェクト指向になれてなかったり、バグがあったりするだけの話だと思うよ
632デフォルトの名無しさん:2005/06/10(金) 23:18:39
そもそも、どんな原因でエラーになってるかわかんねーな
633626:2005/06/10(金) 23:28:10
updateとrepaintのところだけ”シンボルを解決できません”ってなります。

最近やりだしたばかりなので自分で考えてみます。
634デフォルトの名無しさん:2005/06/10(金) 23:29:13
>>633
そりゃぁおめぇ、updateとかrepaintを持ってるクラスをextendsさせてないだろうに
635デフォルトの名無しさん:2005/06/10(金) 23:34:43
とりあえず、なんかIDE使うのがいいと思う。
ヒントとコード補完で八割がた解決する問題を、
ああでもこうでもない考えてるよりは。
636前スレ907:2005/06/10(金) 23:36:36
前スレ907ですが、煽りすらない寂しい状態です。
余りにも馬鹿げている質問でしょうか。
http://pc8.2ch.net/test/read.cgi/tech/1114850497/950-951
637デフォルトの名無しさん:2005/06/10(金) 23:44:11
>>636
>環境設定ファイルのアクセスクラスはどんな感じに作ってるんでしょうか。

普通に Properties をそのまま使ってるんじゃないでしょうか。
638デフォルトの名無しさん:2005/06/10(金) 23:45:45
>636
http://pc8.2ch.net/test/read.cgi/tech/1114850497/972-974
煽りは入ってるじゃないか。嘘はいかんですよ嘘は。
639デフォルトの名無しさん:2005/06/11(土) 00:51:00
JAVAインストールして
(j2sdk1.4.2_08)

環境変数も設定して
(C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.1_07\bin;)

ローカルディスクに作業ディレクトリ”java”をつくり
MS-DOSで作業ファイル”java”に移動し
javaファイルをコンパイルしたんですが
「コマンドもしくはファイル名が正しくありません」とでて
コンパイルできません

どうしたらコンパイルできるようになるでしょうか?

ちなみに
OSはwindowsMe
j2sdk1.4.2_08ディレクトリはC:下にある
j2sdk1.4.2_08\binでならコンパイルできる
しかし"java"でコンパイルしたい
640デフォルトの名無しさん:2005/06/11(土) 00:54:42
641デフォルトの名無しさん:2005/06/11(土) 00:57:26
>>640
なるほど解決しました!!
ありがとうございます・・・・んなわけない
642デフォルトの名無しさん:2005/06/11(土) 01:02:36
package com.borland.samples.welcome;
import javax.swing.JOptionPane;
public class YearChangerApp {
public static void main(String[] args) {
//Create a YearChanger object.
YearChanger cC = new YearChanger();
// Store the number of years in the YearChanger object.
String numStr = JOptionPane.showInputDialog("Number of years");
double num = Double.parseDouble(numStr);
cC.setYears(num);
// Display the number of years in months, days and seconds.
String message = cC.toString() +
"\nThe number of Months are " + cC.findMonths() +
"\nThe number of Days are " + cC.findDays() +
"\nThe number of Seconds are " + cC.findSeconds();
JOptionPane.showMessageDialog(null, message);
}
}

このコードをコンパイルすると、Create a YearChanger objectの
所に”シンボルを解決できません”というエラーコードが出ます。
これはどういったエラーなのでしょうか?すいませんお願いします
643デフォルトの名無しさん:2005/06/11(土) 01:08:09
>>639
インストールしたのはj2sdk1.4.2_08なのに、
環境変数はC:\j2sdk1.4.1_07\binでいいのか?
644デフォルトの名無しさん:2005/06/11(土) 01:10:06
>>643
ああああ〜〜トンクス!!!
645デフォルトの名無しさん:2005/06/11(土) 06:58:17
>>642
;と(と)と[と]と{と}の数を数えてみて
646デフォルトの名無しさん:2005/06/11(土) 08:43:09
>>642
public class YearChangerApp
YearChanger cC = new YearChanger();
647デフォルトの名無しさん:2005/06/11(土) 08:45:59
>>642
cC.setYears(num);
とあるから別クラスなのか。インポートしなさい。
648前スレ907:2005/06/11(土) 10:30:55
>>637
レスありがとうございます。
そうですか。環境変数を取得する度にProperties#loadを
行っているのでしょうか。

>>638
これ煽りですか。。。 すいません。
649デフォルトの名無しさん:2005/06/11(土) 18:18:31
.javaファイルを分割して記述したのですが、
あるファイル訂正して、コンパイル→実行しても訂正したところが反映されません。
classファイルを削除してからコンパイル→実行すれば訂正したところが反映されるのですが、どうしてでしょうか?
650デフォルトの名無しさん:2005/06/11(土) 18:24:41
>>649
初めの1行、関係ないよね

環境もう少し書かない?
環境の所為かも知れんシ

所有権がrootになってるとか?
651デフォルトの名無しさん:2005/06/11(土) 18:32:36
vine linux 3.1です。
javac a.java でコンパイルのち
java aで実行しています。
デフォルトで入っていたのだと思います

rootにはなっていませんでした。
652デフォルトの名無しさん:2005/06/11(土) 19:54:24
>デフォルトで入っていたのだと思います
今回の問題とは関係ないんだけど
それgcjだろ、
ちゃんとSunから落として来い
653デフォルトの名無しさん:2005/06/11(土) 20:08:52
>>651
ひょっとするとだけど
ls -altr a.*の時間は大体あってる?
654デフォルトの名無しさん:2005/06/11(土) 20:25:31
たとえば、
main.java(main関数がある) と sub.java(main.javaのサブクラスを持つ)を作成して、sub.javaだけ訂正して
main関数があるmain.javaだけコンパイルをしてもうまくいきませんでした。
javac main.java
java main

2つのファイルをコンパイルをするには、main関数のあるほうだけすればいいのではないのですか?

655デフォルトの名無しさん:2005/06/11(土) 20:30:20
訂正した方をコンパイルするに決まってるだろ。
訂正してない方をコンパイルしてどうするんだ。
656デフォルトの名無しさん:2005/06/11(土) 20:33:02
>>654
javac コマンドは main.java の中を見ただけでは sub.java をコンパイルする必要があるかどうかを判断できない。
657デフォルトの名無しさん:2005/06/11(土) 20:59:30
というか、javacは指定したファイル以外は一切コンパイルしない。
658デフォルトの名無しさん:2005/06/11(土) 21:01:32
659デフォルトの名無しさん:2005/06/11(土) 21:02:58
     \    |       ,,...-‐‐‐--、,      l    /
     |、  /  |   ,.べ;;;;;::、--- 、:::;;`ヽ、   ''‐-‐'゙/
   、,_,.! ゙'-'゙(.    //::/´       ``ヾ、      l 
    )    (.  /:,`!ヾ、.      ,      ゙>-    ヽ、_,,
   '゙"`ヽ, /``/::;:゙;゙::!:.:| ``'''‐--‐''゙   '-‐'゙ ゙、       /
     ヽ ヾ /:;'/:.:!:::l  、,r''"゙`'ヾ    ,:',-‐-、,'l      /
   -=,'゙   ./:::/:.:.|::::l  /  (・),.    ヾ,_(・) ,'゙l      (
     `ヽ ,゙:::,'::::;':!::::l   `"´ ''"´     | ̄__,,l,,...,,_   \   ひぃっ! 
     -='゙ l::::l::::;':. l:::::l               ` ゙、.,,_,,.``ヽ、
     __) l!゙,l:::;'-、 ';::::!          ,.-‐‐:、    l `ヽ、  \   また嘘をつくのですか!!!
      ヽ. !:l:::l/-ヽ.゙;::',    U    /:::::::::::r=‐'''"´`''‐,.-゙'‐-、ヽ.
       ) ゙!::l l"''、l ヾ゙:、   u     l:::::::::::::::`'''‐‐''''‐i'゙  ,,..、  `\
         l:::l,ヽ、_,  ヾ;\       ゙、.,,_ノ/ ̄ ̄ノ /ヽ. `   \     ____
     /    !::l:゙ヽ、. ,、 ヾ、;、         ゙'‐''"7'゙/ /゙ヽ       \ _,./´-、ヽ
   / /  l::l``;::,`´:ヽ、  `ヾ:;、.,__   ::::   / `'''゙  \   ゙、   ヾ;‐、''-、゙;
    /  / l:l ";'::;'::';';! `''‐ 、.,_` ̄      / r'゙´ ̄ ̄``'''‐、 ゙、    ' l  l:::!
660デフォルトの名無しさん:2005/06/11(土) 21:13:37
やさしいjava
P403にそれらしきことが書いていたので。
661デフォルトの名無しさん:2005/06/11(土) 21:18:53
というよりも、
classファイルをすべて削除してから、
javac main.java
java main
とすると
main.class
sub.class
が作成できうまくいったのだが、、、?
662デフォルトの名無しさん:2005/06/11(土) 21:20:25
アッソ( ´_ゝ`)
663デフォルトの名無しさん:2005/06/11(土) 21:22:50
javacのマニュアル読めば全部書いてあるのにな。
664デフォルトの名無しさん:2005/06/11(土) 21:41:37
たとえば>>654はANTとか使った方がいいのにね
665デフォルトの名無しさん:2005/06/11(土) 21:43:34
ここはマニュアルを読まない人が質問に来るスレ。
もちろんテンプレなんて読まない。
666デフォルトの名無しさん:2005/06/11(土) 21:44:37
【初心者】Java質問・相談スレッド67【大歓迎】
667デフォルトの名無しさん:2005/06/11(土) 21:46:11
>>665 いや答えるほうも読まないけどね。657とか。
668デフォルトの名無しさん:2005/06/11(土) 21:51:00
長年の勘による回答が売りです。
669デフォルトの名無しさん:2005/06/11(土) 22:18:24
670デフォルトの名無しさん:2005/06/11(土) 22:56:21
>>648
アプリ起動時に設定すべき環境変数だったら
起動時に一度Propertiesを作ればいいだけだし、
何度も取得する必要があるならそのアプリから参照できるところに
一度Propertiesを作ればいいだけだし、(System Properties に突っ込んでもいいかも)
何で毎回読み込もうという考えが出てくるのかがわからない。
671デフォルトの名無しさん:2005/06/11(土) 22:59:36
GeneralPathで複数の図形を定義する
下のような感じですごくソースが汚くなる
配列の形を維持したままで、綺麗に書く方法はありませんか

GeneralPath[] path = new GeneralPath[]{
new GeneralPath(),
new GeneralPath(),
new GeneralPath(),
};

path[0].moveTo(60.0f,20.0f);
path[0].curveTo(0.0f,-10.0f,-20.0f,60.0f,60.0f,100.0f);
path[0].curveTo(140.0f,60.0f,120.0f,-10.0f,60.0f,20.0f);
path[0].closePath();
....

path[2].moveTo(40, 40);
...
path[2].closePath();
672デフォルトの名無しさん:2005/06/11(土) 23:25:52
>>670
サーバとかで、動的に設定を変えたいみたいなことはあるかも。
673デフォルトの名無しさん:2005/06/11(土) 23:58:42
>>672
それだったらロードし直すしかないわけで、別に議論する必要性もなくなるんでは。
674デフォルトの名無しさん:2005/06/12(日) 00:02:39
>>636

前スレよりコピペ
ttp://pc8.2ch.net/test/read.cgi/tech/1114850497/998
>>>995 (907)
>つうかstaticにした段階で継承とオーバーライドを使える範疇外になる(そういう言語仕様)なんだから、
>
>staticをつかって継承やオーバーライドやコンポジションやらの利点はあきらめる。つまり
>テンプレートメソッドパターンもあきらめる。
>
>しかねえじゃん。言語仕様にいちゃもんつけたところで現実が変わるわけでも無し。
>だいたい、そこまで苦労して実現したとしても、ソース上で省略できることって
>
>Environment env = new Environment(); <--- このインスタンス化の一行
>String prop1 = env.getXXXXX()
>String prop2 = env.getYYYYYY()
>
>の最初の一行だけなんだろ? この一行でそんなに環境変数取得が面倒になるか?
>逆にこっちにすれば、Javaのオブジェクト指向機能のすべてが使えるのに。
675デフォルトの名無しさん:2005/06/12(日) 02:00:24
あれじゃねぇかパス設定とかおぼえんのまんどいから
さいしょはエクリプスのコンソール画面でじゅうぶんじゃね
676デフォルトの名無しさん:2005/06/12(日) 02:11:08
まぁ最初に躓くか後で躓くかだけの違いだがな。
677デフォルトの名無しさん:2005/06/12(日) 04:09:05
まぁそうなんだけどさ、最初に躓かせるのは
興味自体そいじゃうからヤバイ
仕事なら関係ないけどねぇやらなきゃならんから
678デフォルトの名無しさん:2005/06/12(日) 05:08:46
JavaアプリのGUIのテストを自動化するにはどうすればいいですか?
JUnitはGUIには使えなさそうなので
679デフォルトの名無しさん:2005/06/12(日) 05:14:26
ロボット型の自動操作ツールを使う。
680デフォルトの名無しさん:2005/06/12(日) 06:32:27
すいません、javaの°documentationは何処に落とせばいいのでしょうか?
681デフォルトの名無しさん:2005/06/12(日) 06:33:34
パソコンのハードディスク
682デフォルトの名無しさん:2005/06/12(日) 09:39:16
if (frac1.compareTo(frac2)) == -1{
message += (frac1.toString()+ "is greater than" + frac2.toString());
}
else if((frac1.compareTo(frac2)) == 1{
message += (frac1.toString() + "is less than" + frac2.toString());
}
else{
message += (frac1.toString() + " is equal to " + frac2.toString());
}
JOptionPane.showMessageDialog(null,message);
}
}
このif statementどこかおかしい所ありますか??
不正な始まりとエラーが出てしまいます。
683デフォルトの名無しさん:2005/06/12(日) 09:49:24
>>682
ネタですか?

if (frac1.compareTo(frac2) == -1 ){

だろ。他のもすべて書き直せ。
684デフォルトの名無しさん:2005/06/12(日) 10:21:45
>>683
ネタですか?

compareTo() returns negative integer, zero or positive integer.
685デフォルトの名無しさん:2005/06/12(日) 10:33:37
>>684
netaですか?
frac1ってのが何なのか分からん以上>>683のように構文チェックくらいしかできねぇべ
686デフォルトの名無しさん:2005/06/12(日) 10:47:55
>>683-685
ねてますか?
687デフォルトの名無しさん:2005/06/12(日) 12:57:23
おはよう諸君
688デフォルトの名無しさん:2005/06/12(日) 14:05:31
>>684
カッコの位置....
689デフォルトの名無しさん:2005/06/12(日) 14:23:48
社会人一年目でjavaを会社で習った者です。

家でjavaの勉強をしようと思ってインストールしたんですが
どうも上手くいきません。状態は

J2SE v1.4.2_08 SDKをダウンロード後インストール
日本語版 J2SE v 1.4.0ドキュメントを解凍後、 C:\j2sdk1.4.2_08のフォルダーの
中にdocsを入れ、きちんと動作するかどうかを調べるため
C:\j2sdk1.4.2_08\bin\java -veision を入力しても上手く動作しません
誰か教えてください

長文スマソ
690デフォルトの名無しさん:2005/06/12(日) 14:26:32
>>689
検索でjava.exeがPC内にあるか調べてくれ
まずはそれからだ

>日本語版 J2SE v 1.4.0ドキュメントを解凍後、 C:\j2sdk1.4.2_08のフォルダーの 中にdocsを入れ、
これは今回の件とは関係ない

君が就職できて
俺が就職できないのはやっぱわけがあるんだ・・・orz
691デフォルトの名無しさん:2005/06/12(日) 14:30:01
>>690

早いレスありがとうございます。
今 検索をかけています
692デフォルトの名無しさん:2005/06/12(日) 14:32:18
>>689
>>1を読め。
>>690もな。ムダにレスするなよ。
693デフォルトの名無しさん:2005/06/12(日) 14:36:17
>>690
年齢
694デフォルトの名無しさん:2005/06/12(日) 14:39:17
>>693
34歳だけど関係ないっしょ
他に原因があるんだろうな
童貞ばれたかな?
695real 690:2005/06/12(日) 14:41:19
>>694
でたらめ言うなよ。
その年齢ー10以上だぞ
ついでに道程じゃないw
696690、694だ!:2005/06/12(日) 14:42:50
>>695
ちがうって俺のこと!自分の事言ってるんだよ!
697690、694だ!:2005/06/12(日) 14:44:34
>>695
あれ?お前誰だ?俺が690だぞ?
698695:2005/06/12(日) 14:46:17
間違えますタ。
689です。
m(_ _)m
699698:2005/06/12(日) 14:50:40
みなさん、たいへんご迷惑をかけました
java.exe も存在します。
しかし、どうやら原因はパスの設定らしいので、そちらを
勉強してきます。
700689:2005/06/12(日) 14:55:19
みなさん、たいへんご迷惑をかけました
java.exe 見付かりません。
JREっていうのをダウンしないとダメですか?
701デフォルトの名無しさん:2005/06/12(日) 15:00:00
おまえどっちだよ あるって言ったりないって言ったり・・・
お前最初の書き込みでおかしいなと思ったんだけど
まさかDocだけインストールしているわけではないよな?
しかもインストールするのはJREじゃなくてJDKだ
702デフォルトの名無しさん:2005/06/12(日) 15:01:28

J2SE v1.4.2_08 はこのやり方でやれ!
http://www.geocities.jp/ntaka329/soft/jmake/help/start.html
703デフォルトの名無しさん:2005/06/12(日) 15:03:07
Java Cryptography Extension (JCE)
無制限強度の管轄ポリシーファイル 1.4.2

質問です↑は何ですか?
704デフォルトの名無しさん:2005/06/12(日) 15:08:13
超初心者です。
会社の上司から、coreAPIの中からTemplateMethodoパターン、
パッケージjava.ioをつかって解説をせよといわれましたが、
coreAPIというのがなんなのか分かりません。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
このページは見つけたんですが、これをどうやって使うのでしょうか…
705デフォルトの名無しさん:2005/06/12(日) 15:09:47
javaxとかjavaから始まるもののことじゃないの?
706699:2005/06/12(日) 15:10:41
700は偽者です
今、pathを設定して再起動する所です
707デフォルトの名無しさん:2005/06/12(日) 15:12:01
おまえどっちだよ 690って言ったり 689って言ったり 699って言ったり・・・
708デフォルトの名無しさん:2005/06/12(日) 15:13:11
>>706
>今、pathを設定して再起動する所です
なんだよWin98か
納得
709699:2005/06/12(日) 15:14:58
>>707
常に最新の番号で表示していたけど、紛らわしいようなので699に統一します

>>708
winXPですよ
710デフォルトの名無しさん:2005/06/12(日) 15:25:28
>>709
なんでXPなのにPath設定後に再起動する?
プログラムの前にWindowsの操作方法とか設定方法を覚えた方がいいんじゃないの?
711デフォルトの名無しさん:2005/06/12(日) 15:28:15
#source ./bash_profile とかやれ winXP
712デフォルトの名無しさん:2005/06/12(日) 16:34:11
Windows の基本は再起動
713デフォルトの名無しさん:2005/06/12(日) 16:35:30
>>706
>今、pathを設定して再起動する所です
この程度の知識の人がPC2台持っているのがムカつく
714デフォルトの名無しさん:2005/06/12(日) 16:45:31
templatemethodパターンとインターフェイスの違いは
ただインターフェイスで宣言するかどうかの違いで
概念というか使い所は同じに見えるのですが
何かこれぞ!というような違いはあるのでしょうか?
715デフォルトの名無しさん:2005/06/12(日) 18:32:58
double型実数を表示するとき、小数2桁までを表示したいんですが、どうすればいいですか?
例えばf=25.35678の25.35までを表示させたいんですが。
716デフォルトの名無しさん:2005/06/12(日) 18:50:09
Formatの出番だ
もしくは5.0のprint
717デフォルトの名無しさん:2005/06/12(日) 18:52:40
>>715
Dim x As Double : x = 3.145389
Dim y As Integer : y = 2

MsgBox (Fix(x * 10 ^ y) / 10 ^ y)
718デフォルトの名無しさん:2005/06/12(日) 18:56:08
Basicきた
719デフォルトの名無しさん:2005/06/12(日) 19:13:00
>>714
インターフェイスには手続きがいっさい無いが、
templatemethod の abstruct クラスには、
抽象的な手続きが記述されている。

同じインタフェースで2つの具象クラスを作る場合、
その2つに共通する手続きがあっても、
それぞれ別々に同じことを書かなければならない。

templatemethod の場合は共通する手続きを
抽象クラスに書いて、具象クラスでその手続きから呼ばれる
メソッドを書くので、共通する部分を抽象クラスに集約できる。
720デフォルトの名無しさん:2005/06/12(日) 19:33:31
レスありがとうございます。正直、始めたばっかりなんでよくわかりません^^;

double a,b,f;
a= ;
b= ;
f=a*b;
System.out.println("f="+f);

aとbに適当な実数をいれ結果fを出力します。このときに小数2桁目までを表示させたいんです。
簡単な方法ないですか
721デフォルトの名無しさん:2005/06/12(日) 19:34:44
しかしあれだな、抽象クラスという要素の「応用方法」であるテンプレートメソッドパターンと、
言語上の要素であるインターフェースを同列に並べて「同じだ」と言われても....
722デフォルトの名無しさん:2005/06/12(日) 19:48:40
こ難しいことはともかく、動けばいいんだよ。動けばネ
723デフォルトの名無しさん:2005/06/12(日) 20:04:19
JSFのカスタムバリデータで、複数のUIコンポーネントの入力に
依存するバリデーションを行うことはできますか?もし可能なら
その方法を教えていただけないでしょうか。
(例: パスワード入力用のフィールドと再入力用のフィールドの
入力値が一致しているかどうかをチェックする)
724デフォルトの名無しさん:2005/06/12(日) 20:14:12
>>722
動けばいいと思って基本をおろそかにしてると動かないときの対処ができなくなるぞ。
そんでここで糞質問を繰り返すことに。
725デフォルトの名無しさん:2005/06/12(日) 21:07:03
>>723
UIComponentのgetParent()でUIコンポーネントツリーの親コンポーネントが
取得できるから、そこからIDを指定して目的のUIComponentオブジェクトを取得できる。
726デフォルトの名無しさん:2005/06/12(日) 21:39:13
>>600
いや、この場合、コミュニケーションスキルが低いのは
>>598のほうだろう。
>>598には何でもかんでもわからなかったら自分で調べもせずに
質問スレに聞けば済むという甘えん坊のような卑しい魂胆が見え見えなのだよ。
>>598は人が苦労したものをこっそり横取りするんじゃないか
という疑いがもたれるため、そういう輩にはウンザリしている
>>599にからかわれたというわけだ。

727717:2005/06/12(日) 21:41:17
>718
素でVBスレと(ry

public static void main(String[] args) {
  double x, f;
  int y;
  x = 23.53883;
  y = 2;
  f = (int)Math.abs(x * Math.pow(10, y)) / Math.pow(10, y);
  System.out.println("f = " + f);
}
728デフォルトの名無しさん:2005/06/12(日) 22:02:09
>>657
> というか、javacは指定したファイル以外は一切コンパイルしない。
そうだったのか。
そうするとやぱり
依存関係になるJavaソースファイルもまとめてコンパイルしてくれる
Apache Antのほうが利口だな。
729デフォルトの名無しさん:2005/06/12(日) 22:03:48
>>727
> public static void main(String[] args) {
>   double x, f;
>   int y;
>   x = 23.53883;

  x = 23.53883d;

>   y = 2;
>   f = (int)Math.abs(x * Math.pow(10, y)) / Math.pow(10, y);

  f = (int)Math.abs(x * Math.pow(10.0d, y)) / Math.pow(10.0d, y);

>   System.out.println("f = " + new Double(f).toString());
> }
730デフォルトの名無しさん:2005/06/12(日) 22:11:47
>依存関係になるJavaソースファイルもまとめてコンパイルしてくれる
>Apache Antのほうが利口だな。

ant にそんな便利な機能があるとはしらなかった。
やりかたを教えてくれ。
知らなかったから、いままで、
依存関係があるソースファイルがコンパイルされるように、
build.xml に、わざわざ手で指定してたよ。
731デフォルトの名無しさん:2005/06/12(日) 22:15:52
J2SE5.0 Tigerは
もうすでに安定していますか?
すでにJ2SE1.4で記述されているものを
Tomcat4.xで使用し、
企業で使うには、顧客に勧めるには
もう十分ですか?

この場合、Tomcat4.xよりもTomcat5.0.x, Tomcat5.5.xを
勧めた方がよろしいでしょうか?

今、会社で顧客の仕様書にTomcat4を使用するようにと
書いてあるようですがこれを便利なTomcat5.5に変え、
便利なJavaもver.5に変えてしまいたいのですが・・・・。

Tomcatはver.4のままでもせめて
Javaだけでもversion5にしたいところです。
Eclipse3.0.xを使用しているため、GenericsなどのJava5独自の文法機能を
使うのは問題ですが、それを避けて
Java5から加わったメソッドやクラスだけでも使いたいものです。
Eclipse3.0.xはJava5には完全に対応していないものの、
Eclipseの起動、JavaソースのコンパイルにはJava5を使用しても見かけ上問題ないようで
すが、Java5は使うなとうるさく言う(Cに慣れて実はメモリ管理ができないJavaが嫌いな)人がいます。

互換性問題はどこまで気にすべきでしょうか。
Java5に移行しても安全なら、それによって互換性による弊害が
起きないなら顧客を説得して移行してしまいたいものです。
うまく説得、証明できればいいのですが、皆さんもこんな事態に直面したことありませんか。
732デフォルトの名無しさん:2005/06/12(日) 22:20:18
>>730
Jarの依存は無理。

ただの差分コンパイルと変わらないよ。

<src/>タグや<classpath/>タグで指定した
範囲内にのみ有効。
つーかJDKでもコンパイルのターゲットとなっているソースAが
あるとき、そのAはソースBに依存するとき
同じディレクトリもしくはクラスパスにほかのソースディレクトリが
指定されているならばソースBもコンパイルしてくれる。

ある程度までのJarの依存の自動化をしたければ
Apache Mavenなどを
使うといいかと。

733デフォルトの名無しさん:2005/06/12(日) 22:23:39
>731
とりあえず些末なところから突っ込んでおくと
Tomcat5.0系はJ2SE1.4で動くよ。
734デフォルトの名無しさん:2005/06/12(日) 22:23:51
735デフォルトの名無しさん:2005/06/12(日) 22:24:37
>>670あたりでPropertiesクラスの話をしているみたいだけど

既存のものを除いて
新規にモノを作る場合、いまどきPropertiesクラスを使うメリットってあるの?

ResourceBundleクラスのほうがよさげに見えるんだけど。


それからSystem.getProperties()って使いものになるの?
Java Preferences APIがあればいらないような気がするんだけど。
736デフォルトの名無しさん:2005/06/12(日) 22:26:15
Tomcat4から5への移行はTomcatの管理ツールつかっていればさくっといったかな
J2SE5使うならTomcat5のほうがええ

いまのところJ2SE5の安定度はかなりいい
不安定だった1.4.1や1.4.2の初期とは大分安定感が異なる
1.4系のどのバージョンつかってるかにもよるが古いまま運用しているのならかえてもええよ
そろそろでてから1年たつし、1.4系でも0.0.1変わっただけで毎回安定性リセットされてたことを考えれば・・・

それにJ2SE5使うならNetBeansのほうが安全とおもわれ
最初からTomcat5内蔵してるし構文も問題なし
staticimportのアシスト機能はほしい気もするが・・・

タイプセーフEnumやGenericsなどコードの安全性を高める構文が満載なので
秋以降に運用するのならもう問題ないんじゃないかね
基本的にGC時間とかパフォーマンスは地味に上昇してる
737デフォルトの名無しさん:2005/06/12(日) 22:26:24
>>679
「Javaの鉄則」を読んだんだけど
Robotクラスによるテストはしないようがいいって
書いてあったよ。なんでだか忘れたけど。
738デフォルトの名無しさん:2005/06/12(日) 22:27:18
>>735 全然用途が違うものを持ってきてなにを言いたいんだろう、この子は。
739731:2005/06/12(日) 22:35:57
>>733
それは知っております。
Tomcat5.5以降がJ2SE5でないと動かないことも。
J2SE5の方が高速なのでできれば5を使いたいのですが・・・・。
顧客のサーバはRed Hat LinuxでJ2SE1.4はRPMでインストールされています。
rpm -ivh コマンドでインストールしてしまいたいところですが・・・。

>>736
TomcatのAdminToolで簡単に以降できるのですか。
あのツール、そんなに安定していますでしょうか。
以前、WARファイルをブラウザから配備しようとしたとき
不安定になってしまいました。それで結局Tomcatを再インストールし
WARはWinSCPでアップロードして配備しました。

しかし、会社ではC好きな人がWARのことをよくわかってないようで
WARによるデプロイをかなり毛嫌いしているようです。
WARでデプロイしたら顧客からもらったサーバ上のディレクトリ構成どおりにしろ、と
怒ってしぶしぶWARの使用をやめてしまいました。
WARを置いて勝手にコンテキストディレクトリができたらその後にWAR
を削除すれば彼も不安にならず喜ぶのでしょうが・・・・。
740デフォルトの名無しさん:2005/06/12(日) 22:36:40
>>738
何? Propertiesクラスはまだ必要なのか?
741デフォルトの名無しさん:2005/06/12(日) 22:39:13
さっきから亀レスうざいな。
あ、でも本当はうさぎだけど、休んでる間に亀にぬかれてしまっただけかな?
742デフォルトの名無しさん:2005/06/12(日) 22:42:52
はいはい。
743デフォルトの名無しさん:2005/06/12(日) 22:51:22
>>739
だから、Tomcat5.5はJ2SE1.4.2でも動くんだってば。
744デフォルトの名無しさん:2005/06/12(日) 22:57:51
>>739
コンパチビリティ機能のjarを入れれば1.4.2でも動きます。
5.5のダウンロードサイトにいって、jakarta-tomcat-5.5.9-compat.zipってのを落とせばおk。
745デフォルトの名無しさん:2005/06/12(日) 23:06:55
>739
いっそWeblogicを勧めてみてはどうか。
そうすればwar嫌いなんて言ってられなくなるし。
746デフォルトの名無しさん:2005/06/12(日) 23:08:25
>>743
>>744を見て初めて知りました。
以前使ってみたら
Tomcat5.5でJ2SE1.4.2を使用してエラーメッセージに、
J2SE5.0以降でないと駄目だと書かれていたモノで。
747デフォルトの名無しさん:2005/06/12(日) 23:53:27
>>745
Weblogicですか。
こちらがWelogicの経験もスキルも入手するお金もないので
勧めにくいですが。そういう例もあるのですか。

彼は顧客がどんなにバカでアフォな奴でも奴隷のように徹底的に言うことを聞く
のが美徳だと考えているようで
どこの馬の骨ともわからないと彼が独断と偏見で
判断したモノは、それがたとえ新しい技術であって
Tomcatの場合、それがたとえ一般的なTomcatの使い方であっても
習得する気はさらさら無さそうなようです。

彼の考え方はとにかく仕事を早く終わらせることそれしか頭に無いようです。
徹夜残業をしたくないからだとか。
納期に間に合うかどうかも考えずに仕事をとってくるバカ営業を
どうにかして説得すれば彼自身が徹夜残業しなくてもするのに。
残業代も出ない彼が哀れに思う。

彼と一緒に仕事をしていると、XDocletの使い方を知っていればweb.xmlを
取り扱う手間も省けもっと開発効率を高められるのに。
私はいつもそう感じています。

少しでも彼らに残業させないように開発効率を高める工夫をしているのに
そのチャンスを失ってしまうとは。私が無能なだけのか、彼が焦りすぎているだけ何か、
彼がただJavaが嫌いなだけなのか、良くわからない。
748デフォルトの名無しさん:2005/06/13(月) 00:02:03
Tomcatの正しい使い方を知っていれば
デプロイするときに

顧客の言われたとおりにやれと。
テスト手法もテスティングフレームワークを使えば
効率よくできるのに。
それもしないでただ急いでやることだけを考えるために、
テストするときはいつも既存のコードを書き換えてコンパイルし直して
サーバにアップロードしてテストを実行する。
テストが終わったら本番環境にもどすために再びコードを
修正するという手間を強いる。
彼はいつもその原始的なやり方を行使しようとし
新しい技術を使えばそんなバカげたこともしなくて済むと
言っても彼は理解しようとしない。
CacutsといってもそれはJava標準でないから使うのはまずいなどという。

Jakarata Log4Jもそうだ。Log4Jのほうが速いのに、実績があるのに
Java標準でないから信用できないといってJava Logging APIのほうをつかわないと怒る。
Jakarta Common Langを使っただけでもすぐにすごい嫌な顔する。
どんなに実績があるものでもJakartaだと信用できないようだ。

HibernateやSpringの使い方を覚えれば開発効率も大幅にアップするのに
彼はそれを習得しようともしない、理解しようともしない。
他のチームにいる人は理解しようとしているが使う機会がない。

すべてはバカ営業の仕事の取り方に問題があるためにこうなってしまったとはいえ、
彼は焦りすぎだ思う。
749デフォルトの名無しさん:2005/06/13(月) 00:04:58
Tomcatの正しい使い方を知っていれば
デプロイするときに Servlet/JSPを更新するたびに
Tomcatを再起動するという無駄な手間を省くことができて
開発中の無駄なロスを軽減できることもしらずに
server.xmlを弄るなと文句を言う。
それがたとえテスト用サーバであっても。
750デフォルトの名無しさん:2005/06/13(月) 00:08:29
>747-748
これ以上はマ板の愚痴スレでな。
ついでに、「TomcatだってJakartaですよ?」とその石頭にツッコんでおいてやれ。
751デフォルトの名無しさん:2005/06/13(月) 00:12:27
その彼に言ってやれ。
TomcatもJakartaの製品だ。
Java標準の仕様というものはあっても、標準の実装というものはない。
(あってもリファレンス実装であり、ライセンス上業務使用はできない)
752デフォルトの名無しさん:2005/06/13(月) 00:13:36
「Strutsだって元Jakartaですよ? いまはApacheに格上げだけど」
「StrutsにはLog4J入ってますよ?」
「というかIBM WebSphereにもAntとか他にもいろいろ入ってますよ?」
753デフォルトの名無しさん:2005/06/13(月) 00:21:28
>>750-751
そうですね。変わった人であることは間違いありませんが。
しゃべりかたもおかしくなってデスマーチに突入することも
恐れない匂いを漂わせています。
当方は徹夜する必要はないので問題ありませんが。
ちょっと可哀想にみえてきたので考えていました。

>>752
もっと捻りの効いた言い回しが思いつきません・・・。
754デフォルトの名無しさん:2005/06/13(月) 00:22:05
言いたいことはわかるが、フリーのライブラリを使うといった場合
躊躇する人というのはたくさんいるだろう

それを資料を用意して説得するしかない
でもなんでもかんでもフリーのプロダクトばかりつかっていいものか、というものはある

パフォーマンスがネックにならないのならばロギングは標準使ったほうがいいと思うことも多いはず
JMXとの連携とかさっそくとられていたのはやはり標準APIだからだとおもうし
755デフォルトの名無しさん:2005/06/13(月) 00:23:52
そのTomcatには
commons-daemon.jar
commons-logging-api.jar
commons-el.jar
commons-launcher.jar
ant.jar
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
なんかも入っていたりするのだが。
756デフォルトの名無しさん:2005/06/13(月) 00:35:22
入っているからこそバージョン問題を考えると
使いにくいというのは多いだろうね
757デフォルトの名無しさん:2005/06/13(月) 00:38:46
で、JAVAはいつ廃れるの?
もう廃れてもいいとおもうけどさw
758デフォルトの名無しさん:2005/06/13(月) 01:03:27
プログラムも書いた事のない人がなんか言ってますが....
759デフォルトの名無しさん:2005/06/13(月) 02:09:59
フッ、JAVAは廃れてもJavaは廃れないさ
760デフォルトの名無しさん:2005/06/13(月) 09:07:45
JAVA ○○ESSを全否定か
761デフォルトの名無しさん:2005/06/13(月) 09:18:12
Javaが廃れる頃には>>757はプログラマを引退していることだろう
762デフォルトの名無しさん:2005/06/13(月) 10:28:09
C が廃れても、Java が廃れても、printf は不滅。
763デフォルトの名無しさん:2005/06/13(月) 10:35:04
コレクションのList関連ってIteratorでまわすのと、インデックスでまわすのってどっちがおすすめ?
理由付きで教えてくれ。
764デフォルトの名無しさん:2005/06/13(月) 11:56:27
List の実装が ArrayList か LinkedList かで違うと思われる。
ArrayList なら中身単なる配列だからインデックス参照の方が速いが、LinkedList の
インデックス参照はリスト先頭からリンクをたどる羽目になるのでは (中でインデックス
テーブルなんて作ってないよな…)。
765デフォルトの名無しさん:2005/06/13(月) 13:07:56
親クラスにあるprivate, protectedなクラスをパッケージ外から呼ぶのは
どのようにすればいいのでしょうか?
親でなければ getDeclaredMethod(), setAccessible(true), invoke() で
呼び出すことができるのですが…。
766デフォルトの名無しさん:2005/06/13(月) 13:11:37
>>765
親かどうかは関係ない。
767デフォルトの名無しさん:2005/06/13(月) 13:18:24
ちょっと簡略化しすぎた。
親クラスかどうかは関係なくメソッドやフィールドのアクセスはリフレクション
使ってできるだろ。それとも private, protected なクラスのインスタンスが
生成できないという話か? それも Class#getDeclaredConstructor(),
Constructor#newInstance() 使ってできるだろ。もっとも abstract メソッド
含んでたらサブクラス化しないとできないが。
768765:2005/06/13(月) 13:36:14
すみません、
× 親クラスにあるprivate, protectedなクラス
○ 親クラスにあるprivate, protectedなメソッド
でした。

>>767

public abstract class ClassA {
  private int val;
  private int func1() {
    return val;
  }
}

public final class ClassB extends ClassA {
  protected void func2() {
    ;
  }
}

とするとき、ClassBに対して
getClass().getDeclaredMethod("func1", null);
とすると、NoSuchMethodException
がスローされてしまいます。
ClassAにあるメソッドでClassBには無いから当然といえば当然なのですが…。

リフレクションを正しく理解していない気がしてきたので、もうちょっと調べてみます。
769デフォルトの名無しさん:2005/06/13(月) 13:40:10
>>768
declared = 宣言された

getDeclaredMethod() はそのクラスで宣言されているメソッドを得るもの。
親クラスで宣言されているメソッドが取りたければ親クラスを指定しろ。
770デフォルトの名無しさん:2005/06/13(月) 13:53:22
そういえば、無かったら、見つかるまで継承関係遡る・・・
ってな処理を昔書いた覚えがあるな。
あまり思い出したくないが。
771デフォルトの名無しさん:2005/06/13(月) 14:03:24
>>764
なるほど!ありがとう!
LinkedListは使う機会無さそうだから、インデックスにしておこう。

>>770
俺漏れも
772デフォルトの名無しさん:2005/06/13(月) 16:05:56
>>769-771
恥ずかしながらgetSuperclass()の存在に気づきませんでしたorz
ということで、
 getClass().getSuperclass().getDeclaredMethod("func1", null);
でいけました。

ありがとうございました。
773デフォルトの名無しさん:2005/06/13(月) 16:45:45
老婆心から忠告すると、
開発ツールや、デバッグやテストのためのコードならいいけど、
アプリケーションのコードでそこまでやんなきゃなんないとしたら・・・

・要件定義が不十分で「なんでもできるクラス」で解決しようとしている。
・依存性(EJB、画面、Web、ファイル、DB等・・・)の問題を、
 アプリケーションのコードで解決しようとしている。

といった問題が起きているような気がする。
774デフォルトの名無しさん:2005/06/13(月) 17:12:32
>>773
どうもです。
上記コードを書いたのは
JUnitで内部の値がどうなったか検証したかったためなので
問題ないと思います。
775デフォルトの名無しさん:2005/06/13(月) 21:12:08
>>772
getMethods()で親クラスも含め、継承しているメソッド全て取れるだろ?
776デフォルトの名無しさん:2005/06/13(月) 21:13:27
>>775
取れるのは public な奴だけだが、API リファレンス読んだことある?
777デフォルトの名無しさん:2005/06/13(月) 23:21:49
あの、AspectJとかのAOPエンジンってload time weavingといって、クラスがクラスローダに
ロードされる時点で読み込んだバイト列に手を加える事ができるんですけども、
クラスファイルのバイナリに直接手を加えていなくてもライセンス違反になるのでしょうか?
ちなみに、実装方法としてはカスタムクラスローダーを作って行います。
よろしくおねがいします。
778デフォルトの名無しさん:2005/06/13(月) 23:54:17
> クラスファイルのバイナリに直接手を加えていなくてもライセンス違反になるのでしょうか?
リバースエンジニアリング禁止条項とかあればライセンス違反になるかも。
心配だったらベンダに直接聞いてみれば?
779777:2005/06/14(火) 00:00:20
>>778
なるほど。一般的な見解としては可能・不可能のどちらのほうが濃厚でしょうか?
(グレーゾーンというのが適当な答えなのかもしれませんが・・・・・)
780デフォルトの名無しさん:2005/06/14(火) 00:03:13
>>779
ライセンスの文面すらわからんのに判断求められても……

>>778 が言うとおりベンダに直接聞いてみるってのが一番早いと思われ。
781デフォルトの名無しさん:2005/06/14(火) 00:18:59
フリーの Swing 用 Look and Feel をまとめて紹介してあるサイトは無いですか?
782デフォルトの名無しさん:2005/06/14(火) 00:35:36
有田おもんない
783デフォルトの名無しさん:2005/06/14(火) 00:36:33
>>782
誤爆スマソ
784デフォルトの名無しさん:2005/06/14(火) 02:39:10
クイックソートのプログラムで比較と複写の回数を表示するには
どうすればいいのでしょうか。
785デフォルトの名無しさん:2005/06/14(火) 03:07:36
>>784
自分で作って自分でカウントアップすれば?
786デフォルトの名無しさん:2005/06/14(火) 05:51:06
DOM を XML に保存するときに <!DOCTYPE hoge SYSTEM "hoge.dtd"> と DTD を
指定したいんだけど、できなくなったの?
787デフォルトの名無しさん:2005/06/14(火) 10:22:35
>>786
指定すればいいだろ? 何が問題なんだ。
788デフォルトの名無しさん:2005/06/14(火) 10:56:06
ファイルの削除で、File.delete()を使うと完全に消えてしまうので、
ごみ箱に移動させるにはどうすればいいのでしょうか?
789デフォルトの名無しさん:2005/06/14(火) 11:09:38
>>788
今のところ標準APIでは不可能。

JDIC の FileUtil を使うとか、
mustangかそれ以降で標準APIに採用されるのを待つか、
JNI使って自力で実装するとか好きにしてくれ。
790788:2005/06/14(火) 13:28:56
>>789
そうなんだ、サンクス
791デフォルトの名無しさん:2005/06/14(火) 13:43:02
>>787
・Document インターフェースに setDocType() がない。
・API リファレンスに「DOM レベル 2 では、文書タイプ宣言の変更はサポートされていません。」とあった。
・読み込んだ XML をそのまま保存しても DOCTYPE 宣言が消えてる。

という理由からそう思ったんだけど、やりかたあるんですか?
792デフォルトの名無しさん:2005/06/14(火) 13:46:31
javaのchar型にtrueやfalseが格納できる理由を
教えていただけませんか???
すごく基本的なことでもうしわけないです。。。。
793デフォルトの名無しさん:2005/06/14(火) 13:48:33
C:\Documents and Settings\torao>copy con a.java
public class a{
public static void main(String[] args){char ch = true;}
}
^Z
1 個のファイルをコピーしました。

C:\Documents and Settings\torao>javac a.java
a.java:2: 互換性のない型
検出値 : boolean
期待値 : char
public static void main(String[] args){char ch = true;}
^
エラー 1 個
794デフォルトの名無しさん:2005/06/14(火) 14:03:12
>>791
昔はできたの?

API見てみたら、確かにDocument.createDocumentType()ってのもないし、
ノードを追加するのは不可能だね。DocumentTypeノードが完全なDTD情
報を持ってるわけではないから、読み込んで保存したときに消えるのも
納得のいく動作だ。

なので、XML宣言と文書型宣言だけ自分で書いて、その後にDOMツリーを
追加するしかないように思う。

795デフォルトの名無しさん:2005/06/14(火) 15:36:02
DTDつけるだけのXSLスタイルシート書くのが楽かもね。
796デフォルトの名無しさん:2005/06/14(火) 15:36:21
DOCTYPEつけるだけ、に修正。
797デフォルトの名無しさん:2005/06/14(火) 15:46:11
ClassLoaderの動作で困ってます。
自作したクラスローダーで任意の場所のクラスファイルを読み込んで動作させたいのですが、
その時に読み込まれるクラスが内部クラスを使用していると、その内部クラスが読込めないとエラーになってしまいます。
先輩方に対処及びアドバイスをお願いします、以下にソースを載せます。

//ロードされるクラス
public class LoadedClass {

   public static void main(String[] args) {
      LoadedClass loaded = new LoadedClass();
   }

   public LoadedClass(){
      System.out.println("LoadedClass");
      innerClass inner = new innerClass();//コメントにすると動作する
   }

   public class innerClass{
      public innerClass(){
         System.out.println("innerClass");
      }
   }
}
798797:2005/06/14(火) 15:46:57
//自作クラスローダー
public class CustomClassLoader extends ClassLoader {
   public static void main(String[] args) {
      CustomClassLoader cl = new CustomClassLoader();
      String fName = "D:\\test\\LoadedClass.class";
      String cName = "test.LoadedClass";
      Class c1 = cl.findClass(cName,fName);
      Object te;
      try {
         te = c1.newInstance();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   
   public Class findClass(String className,String fileName) {
      try {
         File file = new File(fileName);
         FileInputStream in = new FileInputStream(file);
         byte[] buff = new byte[(int)file.length()];
         in.read(buff);
         in.close();
         
         Class c1 = defineClass(className, buff, 0, buff.length);
         resolveClass(c1);
         return c1;
      } catch (IOException ex) {
         ex.printStackTrace();
      }
      return null;
   }
}
799デフォルトの名無しさん:2005/06/14(火) 16:10:26
DOM レベル 3 は、DocumentType ノードの編集をサポートしません。DocumentType ノードは読み取り専用です。

まぁDTDとの矛盾性とかあるだろうからな
小手先のテクでかえるしかあるまい
800デフォルトの名無しさん:2005/06/14(火) 20:10:18
JTextFieldに入力された文字列がDBへ登録できるかを判定するメソッドを作りたいです。


String birthday = jtext.getText();
boolean canUse = canUseDB(birthday)

if(canUse){
System.out.println("DBへ登録できます");
}

こんな感じです。birthdayはyyyy-MM-ddになっているのかを
canUseDBメソッドで調べたいです。

ご教授願います。
801デフォルトの名無しさん:2005/06/14(火) 20:16:47
myButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Card c = deck.getNextCard();
JLabel myLabel = c.getPicture();

myContainer.add(myLabel);
}
});

みたいな感じでボタンを押すたびにラベルが追加されていくような
プログラムを作りたかったのですが,どうもうまく行きません.
どうやらコンテナに追加されるにはされるんですが,
ウィンドウのサイズを変更しないと追加したラベルが見えないようなのです.
どういう解決法がありますか?
802デフォルトの名無しさん:2005/06/14(火) 20:49:14
ウィンドウを大きくするとか、ウィンドウの(というか描画領域の)大きさを調べて、その範囲内に追加されるようにするとか。
803デフォルトの名無しさん:2005/06/14(火) 20:51:51
描画領域は十分大きいです.
FlowLayoutが原因なのでしょうか??
804797:2005/06/14(火) 22:51:17
>>800
DateFormat.parseで日付に出来るか調べられると思うよ。
805800:2005/06/14(火) 23:09:28
すんません。
具体的なコードを書いてくれませんか?
ほんとバカで申し訳ない( ´Д`)
806デフォルトの名無しさん:2005/06/14(火) 23:40:44
>>805
少しくらい検索してくれませんかね
807デフォルトの名無しさん:2005/06/15(水) 00:08:16
HttpURLConnectionを使って、ファイルの存在を確認したあと、
アクセスできないファイルの情報を出そうとしています。

ソースは以下のような感じです。(画像数分ループする)
HttpURLConnection con =
    (HttpURLConnection) new URL("http://画像ファイルのパス").openConnection();
if(con.getResponseCode() != 200) {
  エラーのリストに追加
}

問題ないと思っているのですが、
私の上の方が、コネクションを張るたびに、サーバは応答を全部返そうとするので、
サーバに負荷がかかるとおっしゃるのです。

getInputStream()してread()することで、サーバはデータ部を送信すると思っているのですが、
違うのでしょうか?
500MあるファイルにopenConnectionするだけで、全部送信するようなことはないと思っているのですが、
どう検証すればいいかわかりません。

参考になるページなどがあれば教えていただけますでしょうか?
808デフォルトの名無しさん:2005/06/15(水) 00:25:43
import java.io.*;
public class input{
BufferedReader br;
public input(){
br = new BufferedReader(new InputStreamReader(System.in));
}
public int iint(String a)throws IOException{
int i;
i=Integer.parseInt(br.readLine());
return i;
}
public String sString(String a)throws IOException{
return br.readLine();
}
}

public class aaa{
public static void main(String[] args){
input k=new input();
int ii=k.iint();
String ss=k.sString();
System.out.println(ii+ss);
}
}
809808:2005/06/15(水) 00:26:38
aaa.java:3: シンボルを解決できません。
シンボル: クラス input
場所 : aaa の クラス
input k=new input();
^
aaa.java:3: シンボルを解決できません。
シンボル: クラス input
場所 : aaa の クラス
input k=new input();
ってエラ−が出ます。
input.javaはコンパイルできるんですけど
何故でしょうか?
^
810デフォルトの名無しさん:2005/06/15(水) 00:31:07
>>805
C:\Documents and Settings\torao>copy con a.java
import java.text.*;
public class a{
public static void main(String[] args){
System.out.println("登録可能?: " + canUseDB("2001-01-01"));
System.out.println("登録可能?: " + canUseDB("hoge"));
}
private static boolean canUseDB(String date){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try{
df.parse(date);
return true;
} catch(ParseException ex){
return false;
}
}
}
^Z
1 個のファイルをコピーしました。

C:\Documents and Settings\torao>javac a.java

C:\Documents and Settings\torao>java a
登録可能?: true
登録可能?: false
811デフォルトの名無しさん:2005/06/15(水) 00:31:46
>>807
HttpURLConnection con =
    (HttpURLConnection) new URL("http://画像ファイルのパス").openConnection();
con.setRequestMethod("HEAD");
if(con.getResponseCode() != 200) {
  エラーのリストに追加
}

そのままだとGETでリクエストを出すので、setRequestMethodでHEADにした方が良いかと。
812デフォルトの名無しさん:2005/06/15(水) 00:34:54
>>807
con.setRequestMethod("HEAD");
if(con.getResponseCode() != 200) {
  エラーのリストに追加
}

試してないけどこれでどうだ。
813デフォルトの名無しさん:2005/06/15(水) 00:36:15
>>808
input というクラスは input.java で定義しろ。
814808:2005/06/15(水) 00:38:49
>>813
input.javaで定義してますし、もう一つはaaa.javaで定義して、同じフォルダに入れてるんです
初めにinputのほうをコンパイルしてますし
815807:2005/06/15(水) 00:45:02
>>811 >>812

GETだと、出力データまで送信されてしまい、
HEADだと、メッセージヘッダだけが送信されるということですね。

この方法で試してみたいと思います。

ありがとうございました。
816デフォルトの名無しさん:2005/06/15(水) 00:50:00
>>814
お、失礼。
javac *.java でも駄目か?
817808:2005/06/15(水) 00:53:23
>>816
やっばり同じエラーが出ます
トムキャットインストールしたからとかは関係ないですよね?
818デフォルトの名無しさん:2005/06/15(水) 00:58:31
>>817
ローカルでソースファイル作って気づいた orz

> public int iint(String a)throws IOException{

String 型を引数に取るメソッドに対して

> int ii=k.iint();

引数省略してりゃそりゃエラーになるわな。でも何か違うような…
819808:2005/06/15(水) 01:06:05
そこを修正加えて、さらにコンパイルするときに
javac -classpath C:\. aaa.java
ってやったら出来ました
今まで学校や他のマシンでは今までそんなコマンド打った覚えはないんですけど、
こんなの打たずにやる方法ってないんでしょうか?
820デフォルトの名無しさん:2005/06/15(水) 01:21:44
1.環境変数 CLASSPATH に追加してしまう。
2.ant 等を使う
821デフォルトの名無しさん:2005/06/15(水) 01:26:35
>>819
えくりぷそ使う
822デフォルトの名無しさん:2005/06/15(水) 01:28:30
Ruby を使う
823デフォルトの名無しさん:2005/06/15(水) 01:44:30
網豆を使う
824デフォルトの名無しさん:2005/06/15(水) 01:48:57
┌─────────┐
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│
│∴∵∴∵∴∵∴∵∴│   ?
│∴∵∴∵∴∵∴∵∴│  ∧∧? 
│∴∵∴∵∴∵∴∵∴│  (゚Д゚;∩
│∴∵∴∵∴∵∴∵∴│  (|  ,ノ 
│∴∵∴∵∴∵∴∵∴│  |  |〜
│∴∵∴∵∴∵∴∵∴│  し`J
└─────────┘

825初心者で:2005/06/15(水) 02:01:50
キーボードから英文を入力して
ある単語があれば1なければ2
という判定をしたいのですが
判定に何を使えばいいのか調べたけど分かりません
どなたか教えてください
826デフォルトの名無しさん:2005/06/15(水) 02:33:43
String#equals()
Set#contains()
827デフォルトの名無しさん:2005/06/15(水) 02:53:24
入力された英文.indexOf(ある単語) >= 0なら含まれている。
全部小文字か大文字に揃えてから調べた方がいいかもね。
828初心者で:2005/06/15(水) 02:55:05
試してみます。ありがとうございました
829デフォルトの名無しさん:2005/06/15(水) 06:16:12
>>827
String#matches(
830デフォルトの名無しさん:2005/06/15(水) 11:54:57
Beanに<BR>を含む文字列を格納し、
BeanのゲッターメソッドをJSPで記述し出力させているのですが
画面にそのまま<BR>が表示されてしまいます。
ソースを見ると<br>に変換されてる・・・

画面表示させる場合に改行をさせたいのですがどうしたらいいのでしょうか?
831デフォルトの名無しさん:2005/06/15(水) 11:56:09
訂正
ソースを見ると< br& gt;に変換されてる・・・
832初心者:2005/06/15(水) 13:25:52
JAVAで2Dのテクスチャーマッピングを
画像でやろうと思うんですが、どうやるかわかりません。
ここにカキコしていただいても参考になるサイトでもいいので、
教えてください。お願いします。
833デフォルトの名無しさん:2005/06/15(水) 13:44:40
>>832
2Dのテクスチャーマッピングって何だ?
834デフォルトの名無しさん:2005/06/15(水) 14:28:48
いわゆる、「タイリングパターン」のことじゃないの。
835デフォルトの名無しさん:2005/06/15(水) 15:55:40
== と equals
の違いを教えて頂けないでしょうか
836デフォルトの名無しさん:2005/06/15(水) 16:02:41
==は演算子
equalsはStringクラスのメソッド
837デフォルトの名無しさん:2005/06/15(水) 16:06:02
ネットで調べたらすぐヒットしました
馬鹿な質問してすみません
838デフォルトの名無しさん:2005/06/15(水) 16:06:45
>>836
ヒソヒソAAry
839デフォルトの名無しさん:2005/06/15(水) 16:13:13
>>836
嘘はいかんよ
840デフォルトの名無しさん:2005/06/15(水) 16:25:39
100% ウソではないが・・・。
Object クラスのメソッド(つまり、String クラス固有ではない)だね。
841835:2005/06/15(水) 16:33:35
文字列の比較で
if(A1==A2)と if(A1.equals(A2))で結果が
違うのですが、どうしてなのか?調べても理解出来ないです
842デフォルトの名無しさん:2005/06/15(水) 16:40:14
>>835
C言語わかる?
わかるなら==はポインタの判定
equalsはstrcmpのように実装
って考え方でいいと思うが
843デフォルトの名無しさん:2005/06/15(水) 16:49:52
if(A1==A2)と if(A1.equals(A2))の違いは

==は参照先の場合、参照してるインスタンスが同じかどうかを比較してる
プリミティブ(intとかね)の場合は内容を比較してるからややこしくなるんだよなぁ

equalsは参照してるインスタンスの内容が同じかどうかを比較するメソッド
(何をもって同じとするかはクラスによって違うのでequalsをオーバーライドして実装)

ということになってる

だから内容が同じでも違うインスタンスなら==はfalseになる
844835:2005/06/15(水) 17:22:31
わかり易い説明
ありがとうございました
845デフォルトの名無しさん:2005/06/15(水) 17:56:47
Stringクラスは内部的にはchar型配列を持っているのですか?
846デフォルトの名無しさん:2005/06/15(水) 18:00:38
>>845
持っている。ソース見れ。
847U ◆CZtFsGiu0c :2005/06/15(水) 18:27:37
>>830
なんかタグライブラリ使ってないか?
848デフォルトの名無しさん:2005/06/15(水) 23:15:36
参照型についてなんですが
String s = hoge.get(〜);などは
取得してきた文字列をStringにいれるんだなぁって
イメージがつくのですが

自分で作成したクラスなど宣言するパターン
ResultSet rs = hoge.get(〜);
NewClass nc = hoge.get(〜);

などはどういった事をするのでしょうか?

どうもやろうとしているイメージがわかないのですが…
ResultSetに代入してどういうことが可能になるんでしょうか?
わかりやすく教えてください
849デフォルトの名無しさん:2005/06/15(水) 23:33:23
getの動きなんてクラスごとに様々だぞ
Java以前にコンピュータ言語自体が初心者?
850デフォルトの名無しさん:2005/06/15(水) 23:33:40
クラスの概念について勉強しないと
説明うけてもわからんのじゃないか
851デフォルトの名無しさん:2005/06/15(水) 23:35:59
そもそも文字列をStringにいれているわけではないのでイメージ自体が大きく間違っている。
852デフォルトの名無しさん:2005/06/16(木) 00:20:38
上記のアプレットを用いて、次の1, 2 のどちらかのプログラムを作成せよ。

1. data[0] (データ用メモリの 0 番地) に置かれた値の階乗を計算して出力す
るプログラム。

2. 面白い問題を自分で考えて、そのプログラム。

プログラムは、上記のアプレットのページで実行しているところを、プリント
アウトせよ。1. の場合、10 の階乗を計算しているところをプリントアウト
すること。それに、説明(どのメモリアドレスが何に用いられているかなど)
を書き加えること。
http://www.i.h.kyoto-u.ac.jp/~tsuiki/vma/vm.htmll←上記のアプレット
1を誰か教えてください。まじおねがいします。
853デフォルトの名無しさん:2005/06/16(木) 00:29:47
質問です。
JBossにWebworkで作ったJSPの入ったwarをdeployしたら、

Generated servlet error:
The method _jspx_meth_ww_submit_0(JspTag, PageContext) in the type index_jsp is
not applicable for the arguments (FormTag, PageContext)

と出ました。

これってどういう意味ですか?
JBossでwebworkを使うときはやり方があるのでしょうか??

よろしくお願いします。
854デフォルトの名無しさん:2005/06/16(木) 00:42:57
Servlet/JSPのバージョンが違くて、カスタムタグが動かないんじゃない?
855デフォルトの名無しさん:2005/06/16(木) 04:34:53
上手く調べればすぐわかることだと思うんですが、どうしても情報を見つけられません。
教えてもらえないでしょうか。

アプレットで、FileInputStream( file ) と FileOutputStream( file )が file を探しに行く
パスはどうやって決まってるんでしょうか?
ブラウザによって違ったり、appletviewer だとまた違ったり、入力と出力で違ったりして、
コントロールできません。

よろしくお願いします。
856デフォルトの名無しさん:2005/06/16(木) 04:54:50
ヒント:カレントディレクトリ
857デフォルトの名無しさん:2005/06/16(木) 05:19:07
>>856
java 初心者の漏れががんばってそれを答えようと思ってたのにー!
おにいちゃんのバカ!

java.io.File にそのへんのことが説明されてる。
あとはソース追っかけて、どうやって相対パスを解決してるのか
見てみるとか。
858855:2005/06/16(木) 06:34:40
>>856
>>857
どうもありがとうございます。

「入力と出力で違ったり」 は自分の勘違いだったようです。
いろんなブラウザ使ったり、appletviewer 使ったりしながらテストしてて、全部
デフォルトのパスが違うので混乱してたようです。

java.io.File のソースを見て、「入力と出力で違うはずはない」 と確信してテスト
したらわかりました。

FORTRAN しか知らなかった Java 初心者ですが、Java ってこういうときに
ソース見れるのがいいですね。
859デフォルトの名無しさん:2005/06/16(木) 08:51:20
Tomcat プラグインをダウンロードするサイトへいくと

Error kernel (20)

Informations
Demandez le catalogue Sysdeo 2005
Téléchargez la version PDF du catalogue des formations Sysdeo 2005

Renseignements et inscriptions
01.41.22.03.03
Plan d'accès au centre de formation Sysdeo
Module not found
The requested module eclipse could not be found.


こんなのでるんですけど・・・
ダウンロードきないんですかね?
860857:2005/06/16(木) 08:52:50
>>857
>java.io.File にそのへんのことが説明されてる。
java.io.File「のドキュメント」にそのへんのことが説明されてる。

念のため。
861デフォルトの名無しさん:2005/06/16(木) 13:43:30
>>859
それはjavaの質問ではないな
http://pc8.2ch.net/test/read.cgi/tech/1114847888/l50
862デフォルトの名無しさん:2005/06/16(木) 15:31:24
レポート課題(2回目)

上記のアプレットを用いて、次の1, 2 のどちらかのプログラムを作成せよ。

1. data[0] (データ用メモリの 0 番地) に置かれた値の階乗を計算して出力す
るプログラム。

2. 面白い問題を自分で考えて、そのプログラム。

プログラムは、上記のアプレットのページで実行しているところを、プリント
アウトせよ。1. の場合、10 の階乗を計算しているところをプリントアウト
すること。それに、説明(どのメモリアドレスが何に用いられているかなど)
を書き加えること。
http://www.i.h.kyoto-u.ac.jp/~tsuiki/lecture/jouka/3.html
1を誰か教えてください。どこに何を記入すればいいのか。
まじおねがいします。
863デフォルトの名無しさん:2005/06/16(木) 15:33:59
宿題スレいったほうがいいんじゃねーの?

にしてもその宿題、メモリアドレスとか怪しさいっぱいだね。
まあいわんとしていることはわからんでもないけど。
864853:2005/06/16(木) 15:42:29
>> 854
どうもありがとうございます。

ところで、servlet/jspのバージョンはどうやって調べれば良いのでしょうか?
このエラーを回避する方法を詳しく教えて頂ければ嬉しいです。

よろしくお願いします。
865デフォルトの名無しさん:2005/06/16(木) 15:43:48
京都大学大学院 人間・環境学研究科 立木 秀樹 (Tsuiki Hideki)
通報しますた
866デフォルトの名無しさん:2005/06/16(木) 18:28:53
ヒストグラムを表示するプログラムなんですが、
ImageFrameクラスを作って作成しなさいとあるのですが、基盤となるプログラム
みたいなのないですか?
全然表示されなくて困ってます。
宜しくお願いします。
867デフォルトの名無しさん:2005/06/16(木) 18:34:37
ImageFrameってなに?
スレ間違えてない?
868866:2005/06/16(木) 19:19:00
JAVAのプログラムなんですが、ここは違ったですか?
869デフォルトの名無しさん:2005/06/16(木) 19:32:42
標準APIにImageFrameクラスは無いので
ImageFrameクラスのソースが無いと答えようがない

せめてpublicメンバの一覧とか
そのImageFrameの出展元が何かぐらい分かれば
まだ望みはあるのだろうけれど
870デフォルトの名無しさん:2005/06/16(木) 19:36:16
普通に考えれば、ImageFrameという名前のクラスを作りなさいか、
問題中にImageFrameクラスが示されているかどちらかだな。
まあ、宿題は、宿題スレに問題文ごと丸投げしなさいってこった。
871デフォルトの名無しさん:2005/06/16(木) 20:31:17
クズですな。
872デフォルトの名無しさん:2005/06/16(木) 20:41:32
処理なしの引数なしコンストラクタって何の意味があるのですか?
仮に記述がなくても自動的に内部で作成されるんだから
書く理由があまりないと思いますが

ステップ数を稼ぐだけにしか思えないのですが
873デフォルトの名無しさん:2005/06/16(木) 20:42:58
>>872は引数ありコンストラクタを作ったことのない奴
874デフォルトの名無しさん:2005/06/16(木) 20:50:39
>>872
protected private ににしてるとか
>>873の意味がわからん。
875デフォルトの名無しさん:2005/06/16(木) 20:52:36
>>873
必死だな(w
876デフォルトの名無しさん:2005/06/16(木) 21:16:33
>>872
>仮に記述がなくても自動的に内部で作成されるんだから
そのクラスでコンストラクタが定義されてないときのみ。
877デフォルトの名無しさん:2005/06/16(木) 22:49:13
>>876
nazeiinaoshiosuruno?

imiwaisshojanai?
878デフォルトの名無しさん:2005/06/16(木) 22:51:52
>>877
日本語が理解できていないとしか思えないな
879デフォルトの名無しさん:2005/06/16(木) 23:31:55
>>877
引数付きコンストラクタ(だけ)がある場合でも一緒か?
880デフォルトの名無しさん:2005/06/16(木) 23:43:47
引数付コンストラクタのみがある場合も、引数無しの自動コンストラクタは作られないよ
881デフォルトの名無しさん:2005/06/16(木) 23:45:25
ある文字列から特定の文字のみを抜いた文字列を作りたい場合どうすればいいのでしょうか?

appleに対してpを抜いたaleがほしい。
882デフォルトの名無しさん:2005/06/16(木) 23:48:45
>>881
("apple").replaceAll("p", "")
883デフォルトの名無しさん:2005/06/16(木) 23:48:55
>>881
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html
にまんまそのメソッドあるじゃん
884881:2005/06/16(木) 23:51:50
迅速なレスありがとうございます。
replaceAllってのは見たことあったのですが、正規表現という言葉の意味がわからなくて・・・。
ありがとうござました。
885デフォルトの名無しさん:2005/06/17(金) 00:10:16
>>874
>>875
>>877
初心者は質問だけにしてください。
886デフォルトの名無しさん:2005/06/17(金) 00:14:54
>>872
このスレでもよくそれ出てくるけど

class A
{
public A(){this(0,0);}
public A(int a){this(a,0)}
public A(int a,int b){(なんか処理)}
}

こんなふうに引数付きコンストラクタがあってデフォルトも選べるよ
見たいな時に使うの。

>>873はこれが言いたかったと思う。
理解できてないやつがいるみたいだけどな。
887デフォルトの名無しさん:2005/06/17(金) 00:17:25
>>862
京大生の癖に生意気だぞ。
こんな奴に誰が教えてやるものか。
こんなやつを量産したら
京大から来た奴はエリートだと勘違いして
働かせたら宿題を他人にやらせないとなにもできない
無能者が社会に放流されてしまう。

>>862のような自分では何一つ調べることもできない
こんな奴がエリート呼ばわりされる資格はない。
888デフォルトの名無しさん:2005/06/17(金) 00:19:06
>>884
そういう時は、「正規表現とは」で調べるくらいしろガキ
889デフォルトの名無しさん:2005/06/17(金) 00:20:28
>>880
被奇数月コンストラクタがあると引数無しコンストラクタを
呼び出そうとするとエラーになる。
だがコンストラクタ定義が一つもない場合はその限りで鼻い
890デフォルトの名無しさん:2005/06/17(金) 00:21:00
891デフォルトの名無しさん:2005/06/17(金) 00:21:49
本屋に行って来い
正規表現というタイトルの本が見つかるぞ
892デフォルトの名無しさん:2005/06/17(金) 00:22:29
>>890は京大のバカ

京大の質も下がったもんだな(嘲笑激藁
893デフォルトの名無しさん:2005/06/17(金) 00:23:09
894デフォルトの名無しさん:2005/06/17(金) 00:26:11
学歴コンプレックス丸出しw
895デフォルトの名無しさん:2005/06/17(金) 00:32:26
初心者スレくらいしかでかい顔できるところが無いんだから
派遣でも高卒でも大目に見てヤレ
896デフォルトの名無しさん:2005/06/17(金) 00:37:02
職業プログラマのおっさんよぉ、
こんなところで発狂してないで、明日終電に間に合うように仕事しろよw
897デフォルトの名無しさん:2005/06/17(金) 00:44:24
\___________ ________________________________________/
    |  V
    |  ('A`)
   / ̄ノ( ヘヘ ̄ ̄
898デフォルトの名無しさん:2005/06/17(金) 00:46:24
プログラマほど学歴が意味を成さない商売もあるまい
899デフォルトの名無しさん:2005/06/17(金) 00:49:42
ドカタには学歴どころか人種も意味が無いだろw
900デフォルトの名無しさん:2005/06/17(金) 00:53:46
意味あるよ

就職時に
901727:2005/06/17(金) 01:42:27
>>715が元ネタです。

>>729
今更ながら、x = 23.53883d; の d はあったほうが良いものでしょうか?
うちのJavaの本調べたけど載ってないので、教えてもらえると幸いです

System.out.println("f = " + f);
System.out.println("f = " + new Double(f).toString());

あと、newでインスタンス化して、String変換したほうが良いのでしょうか?
902デフォルトの名無しさん:2005/06/17(金) 02:07:09
普通は" f = " + f でいい。
ちゃんとやりたい気分なら String#valueOf(double)。
903デフォルトの名無しさん:2005/06/17(金) 10:13:14
static contextで呼び出されたときにClassを取得したいんですがどうやるんでそうか
abstract class Hoge {
  private static Hoge instance;
  public static Hoge getInstance() {
    if (instance == null)
      instance = ココ.newInstance();
    return instance;
  }
}
class Fuga extends Hoge {
}
Fuga.getInstance()としたときにFugaであることを知りたいんでつが

904デフォルトの名無しさん:2005/06/17(金) 10:35:49
Hogeのstaticメソッドって言う時点で無理。
905U ◆CZtFsGiu0c :2005/06/17(金) 12:22:37
>>886
872が聞いているのは、
public Foo() {
}
のように実装のないコンストラクタがなぜ必要か、ということ。それに対して
回答者は、引き数付きのコンストラクタしかないクラスを継承した場合、派生
クラスのコンストラクタでは明示的にそのコンストラクタを呼び出す必要があり、
そのようなことをしないためには基底クラスに引き数なしのコンストラクタを定義
する必要がある、ということを言っている。
906デフォルトの名無しさん:2005/06/17(金) 13:23:22
ttp://jwww.ed.noda.tus.ac.jp/j-takeda/java-2005-4.html
↑のような宿題が出てしまいました。
TreeNode・Tree・TreeWorldというクラスを作って、
構成しようとしたんですが、
Treeの型のTreeNodeと、
表記するためのTreeWorldはできたんですが、
データを格納したりする肝心のTreeができません。
申し訳ありませんが、教えてください。よろしくお願いいたします。
907デフォルトの名無しさん:2005/06/17(金) 13:37:50
>>906
主題スレへ行け。
ところでそのページ、学外からはアクセスできないようになってるね。
908デフォルトの名無しさん:2005/06/17(金) 13:44:39
また理科大かよ
909デフォルトの名無しさん:2005/06/17(金) 14:05:00
Javaのファイル名(.javaもしくは.class(?))を選択したら,すぐにコンパイル,
実行までしてくれるような開発アプリはないでしょうか?
910デフォルトの名無しさん:2005/06/17(金) 14:09:29
>>909
自分で作れよ
911デフォルトの名無しさん:2005/06/17(金) 14:26:48
こんにちは。
JBoss4.0.2でWebWork2を使ったjspを実行したら、
エラーが出ちゃいました。

14:19:45,891 ERROR [StandardWrapper[/cl_hellojms:jsp]] Servlet.service() for ser
vlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP

Generated servlet error:
The method _jspx_meth_ww_textfield_0(JspTag, PageContext) in the type sub_jsp is
not applicable for the arguments (FormTag, PageContext)

Generated servlet error:
The method _jspx_meth_ww_submit_0(JspTag, PageContext) in the type sub_jsp is no
t applicable for the arguments (FormTag, PageContext)

at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErro
rHandler.java:84)



(続く)
912911続き:2005/06/17(金) 14:27:04
ちなみに、sub.jspは以下のソースです。

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="webwork" prefix="ww" %>

<html>
<head>
<title>sub</title>
</head>
<body>
<center>sub</center>
<ww:form action="'clTest.action'" method ="'POST'">
<ww:textfield size="3" name="'hoge'" maxlength="2" />

<ww:submit name="hogebtn" value="'登録'" />
</ww:form>
</body>
</html>

原因がさっぱりわからないのですが、エラーの意味は何なのでしょう?
教えてください。
よろしくおねがいします。
913デフォルトの名無しさん:2005/06/17(金) 15:01:29
>原因がさっぱりわからないのですが、エラーの意味は何なのでしょう?
書いてあるじゃねえか
914911:2005/06/17(金) 15:57:46
>913
すみません、どういうことだかわからないのですが・・・。
詳しく教えてくれませんか?
915デフォルトの名無しさん:2005/06/17(金) 16:10:56
>>914
英語くらい読め
読めないなら機械翻訳でもしろ
916デフォルトの名無しさん:2005/06/17(金) 16:11:24
はじめまして。
DBを作成してそこに画像を貼り付けました。
JSPでそのDBを読み込んで文字等を呼び出すことはできたんですけど
画像の呼び出し方がわかりません。
教えてください
917911:2005/06/17(金) 16:20:55
JSPのJavaソースがコンパイルできないんですよね?
なんでコンパイルできないかがわからないんです。
どうやって追跡していったらいいですか?
教えてください。
918デフォルトの名無しさん:2005/06/17(金) 16:29:36
>>916
「LOBを使ってDBからバイナリを読み出し、それをバイナリとして出力する」サーブレットを作成する
サーブレットはmimeTypeを画像の形式で出力する
JSP側では、imgタグのsrcに"サーブレット名"を指定する
919916:2005/06/17(金) 16:32:05
>>918
LOBがわかりませんが勉強してやってみます。
ありがとうございます。
920デフォルトの名無しさん:2005/06/17(金) 21:37:16
>>919
>DBを作成してそこに画像を貼り付けました
>LOBがわかりませんが
どうやってインサートしたの?
921デフォルトの名無しさん:2005/06/17(金) 21:49:27
JTable で A というセルの内容を編集中に [TAB] キーで隣の B というセルに移動すると、
B の内容が A の内容になってしまうんだけど、どうすれば良いんでしょうか?
_______________________________
[AAAA_  ] BBBB   |
+-------+---------+
|CCCC   | DDDD   |
~~~~~~~~~~~~~~~~~~~~~~~~
↓タブキー
_______________________________
|AAAA   [AAAA    ]
+-------+---------+
|CCCC   | DDDD   |
~~~~~~~~~~~~~~~~~~~~~~~~
922デフォルトの名無しさん:2005/06/17(金) 23:00:03
// コマンドラインから一行読み込んで返却するメソッド
public String readCommand() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}

コマンドラインから値を読む際のコード量を減らすため上記のようなメソッドを作成しました。
しかしこのメソッドが複数呼ばれる場合、複数のBufferedReaderオブジェクトができそうで
あまり効率が良くないんじゃないかと思うのですが、何かお勧めの方法は無いでしょうか?

923デフォルトの名無しさん:2005/06/17(金) 23:08:26
生成を1回にする
924デフォルトの名無しさん:2005/06/18(土) 01:28:03
心配すんな。生成よりお前の手入力のほうが遅い。
925デフォルトの名無しさん:2005/06/18(土) 01:46:01
バッチとかDB方面からの標準入力とかあるだろうし手入力とはかぎらんだろ
926デフォルトの名無しさん:2005/06/18(土) 02:18:12
こんなエラー文が出てきたのですが
Exception in thread "main" java.lang.NoSuchMethodError:main
どういう状態なのですか?
927デフォルトの名無しさん:2005/06/18(土) 02:20:41
thisでブチ切れていた者です
自己解決いたしました。失礼しました
コツコツと勉強続けたいと思います
928デフォルトの名無しさん:2005/06/18(土) 02:21:42
mainのシグニチャが違う。
以下、一字一句間違えないように写せ。
public static void main(String[] args)

929デフォルトの名無しさん:2005/06/18(土) 02:25:42
アプリケーションサーバとしてResinを使ってWebアプリケーション開発の練習をしているんですが、
今まで作ってきた大量のJSPが溜まっている状態でいろいろやっていると、
普通はまったく問題なく動くJSPが突然
「pageContextが初期化されていない可能性があります」などのエラーとなってしまうようになってしまいました。
どうも、JSPをコンパイルするときにエラーになっているようなのですが・・・・・・。

Resinを再起動すればその後しばらくの間アクセスしたJSPは動くのですが、いろいろやっていると
また動作しないJSPが出てきたり・・・・・・わけが分かりません。
申し訳ありませんが、どなたかご助力いただけないでしょうか?
930929:2005/06/18(土) 02:27:47
>>929 補足
環境はWindowsXP-SP2、Pentium4-2.8GHzにメモリ1GBで、
JavaVM起動オプションとしてxmsを512MB、xmxを512MBにしています。

メモリは潤沢にあるはずなんですが・・・・・・。
931デフォルトの名無しさん:2005/06/18(土) 02:28:58
エラーの出るJSPのソースを少しでもいいからさらしてみそ。
932929:2005/06/18(土) 02:38:11
>>931
ソースは学校のPCにあって今(自宅)は晒せないんですが、
ひよこサーブレットにあるような
Hello Javaのいろんなパターンくらいのソースでもエラーになってしまいます。
今度持ってきますね。

なんていうか、Resin自体の設定ミスとかそっちなのかなという感じなんですが、
イマイチ分からず気持ち悪く、これを機にTomcatにでも乗り換えますかねぇ・・・・・・という感じです。

質問しっぱなしですみません、死んだように寝ます・・・・・・。
933デフォルトの名無しさん:2005/06/18(土) 03:28:06
>>922
これちゃんと動くか?
934デフォルトの名無しさん:2005/06/18(土) 04:24:03
>>933
微妙だねぇ。

Windows なら動くかも知らんけど、Mac だと……
って Mac はコマンドライン無いから良いのかな?
935デフォルトの名無しさん:2005/06/18(土) 04:27:44
そうじゃなくて毎回newするから前回のBufferdReaderが先読みした分のデータが欠落するんじゃないかなと思った。
936デフォルトの名無しさん:2005/06/18(土) 04:36:40
>>935
コピペとかで数行流し込まれた場合はヤバイかも。
937デフォルトの名無しさん:2005/06/18(土) 08:25:00
マシンの処理性能やJVMの性能を比較するため
Javaのベンチマークソフトを探しています

何か定番のベンチマークソフトはありますでしょうか?
名前と入手先をご教示いただけると嬉しいです。
938デフォルトの名無しさん:2005/06/18(土) 08:31:08
PocketPCでJavaを使うとすると
どこのJVMを使うのが良いんでしょう?
939デフォルトの名無しさん:2005/06/18(土) 11:41:51
>>937
ちょうどタイミングよく新しいのがでたぞ
http://itpro.nikkeibp.co.jp/free/ITPro/USNEWS/20050617/162917/
940デフォルトの名無しさん:2005/06/18(土) 13:21:48
次スレは70くらいだな。
【初心者】Java質問・相談スレッド70【大歓迎】
941デフォルトの名無しさん:2005/06/18(土) 13:25:30
JDK5.0とeclipseをインストールして使っています。

C++では拡張子がcのファイルをダブルクリックするとソースが表示できましたが、
eclipseで拡張子jarのファイルをダブルクリックで開くにはどのような設定が必要ですか?

942デフォルトの名無しさん:2005/06/18(土) 13:41:44
JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane();
sp.setPreferredSize(new Dimension(300, 400);
sp.setViewportView(ta);
add(sp);

として、テキストエリアとスクロールペインを用意しています。
テキストエリア ta に対して、ta.append("test\n");
を何度か実行すると、実行した回数だけ、テキストエリア ta に
文字列 test が追加されていきます。

ここで、スクロールペインの縦サイズを超える行数になるまで ta に
文字列を追加していくと、スクロールペイン右側にスクロールバーが
表示されます。
バーは表示されるのですが、自動的に下にスクロールされません。
(行数がエリアの縦サイズを超えてから)行数が増えていくごとに、
自動的に1行分スクロールするには、どうすれば良いのでしょうか?
943デフォルトの名無しさん:2005/06/18(土) 14:25:55
既出でしたらすみません。
ファイルの存在チェックについての質問です。

【環境】
WinXP jdk1.3.1使用

【やりたいこと】

Sv1(Fileサーバ)
Sv2(APサーバ)
クライアント
の環境で、クライアントが画面に入力したファイルが
Sv1側に存在しているかどうか?をチェックしたい。
その際に、APサーバSv2を介してチェックを行う。

//ファイル存在チェック
File objFile = new File(strFileAddress);

if (objFile.exists() == true &&
        objFile.isDirectory() == false){
    } else {
        Err_Msg = "指定したファイルが存在しません。";
        Err_Koumoku = "CHR2";
        Err_Rec = "0";
        req.setAttribute(REQ_ERR_CODE, Err_Msg);
        req.setAttribute(REQ_ERR_OBJ, Err_Koumoku);
        req.setAttribute(REQ_ERR_REC, Err_Rec);
        return false;
}

としており、
944943:2005/06/18(土) 14:26:31
続き
strFilwAddressには画面で入力したアドレスを取得し、チェックをしようとしています。

\\Sv1\C\Book1.xls
B:\Book1.xls

上記れを入力した時に、チェックができず、すべてファイルが存在しない、と帰って来てしまいます。
(上記アドレスをアドレスバー入力すると、表示されるので存在しています。)

上記のように中間にAPサーバを介してのファイルの存在チェックはどうすれば宜しいのでしょうか?

>>943-944
945デフォルトの名無しさん:2005/06/18(土) 14:39:50
あるObjectの名前に、ある文字列が含まれているかどうかを判定するには
どうすれば良いのでしょうか?(先頭一致で調べたいです)

例えば、自分で作った class ONameTest extends Object というクラスから
作ったオブジェクトは、"ON"から始まっているかどうかを調べたいのです。

文字列と文字列の先頭一致を判定するには、
String str1 = "abcdefg";
String str2 = "ab";
boolean bl = str1.startsWith(str2);
とすれば、bl は true になったので、


Object ob = new ONameTest();
String st = ob.toString();
boolean bl = st.startsWith("ON");

としましたが、出来ませんでした。お願いします。
946デフォルトの名無しさん:2005/06/18(土) 14:42:03
>945
ob.getClass().getName()
947945:2005/06/18(土) 14:43:46
すいません。スペルミスでした。出来てました。
吊ってきます・・・。
948945:2005/06/18(土) 14:44:43
>>946
そのようなスマートな方法もあるのですね。こちらも試して見ます。
私のような馬鹿者にレスしていただきありがとうございます。
949デフォルトの名無しさん:2005/06/18(土) 14:54:16
>>946
ob.getClass().getName().replaceFirst("(\\w+\\.)+","");
950943:2005/06/18(土) 14:57:41
すみません・・・やっぱり無理なのでしょうか・・・?
951デフォルトの名無しさん:2005/06/18(土) 16:19:18
すいません。Axisのサービスでクエリーストリング(URLXXXX?name=hogeとかの?以降の部分)
のパラメータを得たいのですがどうやればよいのでしょうか。どなたか知っている方いましたら教えて下さい。
また、誤爆だった場合は誘導よろです。
952デフォルトの名無しさん:2005/06/18(土) 16:44:59
>>943
>Sv1(Fileサーバ)
>Sv2(APサーバ)

> \\Sv1\C\Book1.xls

Sv2から \\Sv1\C が見えてないに1万ペリカ
953943:2005/06/18(土) 16:53:18
>>952
すみません、それが見えてるんですよ・・・

直接、アドレス入力した時は見えるんですが、
javaで見ようとした時には取得出来ていないようなのです。

objFile.length()

とやっても、あるにもかかわらず、0と帰ってきてしまうんです・・・
954デフォルトの名無しさん:2005/06/18(土) 17:00:07
ネットワークドライブで接続してやるのはだめなのか?
955デフォルトの名無しさん:2005/06/18(土) 17:10:59
>>954
例えば、
sv1 のCドライブをクライアントでX:\に割付る方法ですか?

その方法も試したのですが、ダメでした。

それとも、ネットワークドライブで接続してやる方法
というのが上記方法ではなく、他にあるのでしょうか?
956デフォルトの名無しさん:2005/06/18(土) 17:54:34
Mapいんたーふぇいすを実装したクラスの値入りの初期化はどうするんでしたっけ?なんかこんな感じだったとおもいましたけど、うまくいきません。

HashMap hoge = new HashMap(){
    put("hoge","foo"),
    put("hage","bar")
}

javadocにも見当たりませんし。おしえてえろいひと。
957デフォルトの名無しさん:2005/06/18(土) 18:09:01
>>956
馬鹿に付ける薬はありませんね。
958943:2005/06/18(土) 18:14:10
やっぱり、出来ません・・・

と言うか、C:\〜.xlsと指定してチェックしようとした場合も、
APサーバー側から見た、C:\を見るんですね・・・
959デフォルトの名無しさん:2005/06/18(土) 18:20:04
>>958
当たり前だろうが…
960デフォルトの名無しさん:2005/06/18(土) 18:20:59
>>958
Jakarta Commons VFSでCIFS(Samba)接続してみればどうだろうか。

とやってもみずに言ってみた。
961デフォルトの名無しさん:2005/06/18(土) 18:26:04
>>958はネタなのかつりなのか気になるところだな
962デフォルトの名無しさん:2005/06/18(土) 18:47:41
もしかして>>957の人ってできることしらなかったりしてw
963デフォルトの名無しさん:2005/06/18(土) 18:59:48
>>962
馬鹿じゃないの?
964デフォルトの名無しさん:2005/06/18(土) 19:20:44
>>956
HashMap hoge = new HashMap() {
{
put("hoge", "foo");
put("hage", "bar");
}
};
965956:2005/06/18(土) 19:23:37
>>964
ありがとうございます。
966デフォルトの名無しさん:2005/06/18(土) 19:25:40
>>959
えっ!マジですか!?

う〜ん、どうしよう・・・

ローカルは見れないとして、
なぜ、ファイルサーバの中身までチェック出来ないのか・・・
>>961
釣りじゃないです、マジです。

java初めて一週間とかなんですよ・・・
967デフォルトの名無しさん:2005/06/18(土) 20:44:51
>>966
なにをどうやって
何ができて何ができないかを
表か何かに書いて整理してから相談してくれ
968デフォルトの名無しさん:2005/06/18(土) 21:09:23
>>958
Sv2から \\Sv1\C が見えてないに1万ペリカ追加

Application Serverを動作させてるユーザーから \\Sv1\C が見えてない。

> 直接、アドレス入力した時は見えるんですが、

このユーザーでJavaアプリケーションを作ればアクセスできるはず。
わけもわからないのにいきなりAPServer上で動かせようとするな馬鹿
969デフォルトの名無しさん:2005/06/18(土) 21:15:08
enum Status { NASHI, MARU, BATSU };
EnumMap<Status, String> statusMap = new EnumMap<Status, String>( Status.class );
~~~~~~~~~~~~~~
と、いうコードの「Status.class」の部分の意味がわかりません。
「.class」とは、「.getClass()」の古い書き方なのかなーと思ったんですが、
それでは、コンパイルが通りませんでした。

「.class」の意味が分かる方、教えてください。
970969:2005/06/18(土) 21:16:07
EnumMap<Status, String> statusMap = new EnumMap<Status, String>( Status.class );
                                             ~~~~~~~~~~~~~~
でした。。。
971デフォルトの名無しさん:2005/06/18(土) 21:45:50
<クラス名>.class で そのクラスのjava.lang.Classオブジェクトを表す。
構文は似てるけど、厳密にはstaticフィールドとは違う。
ちなみに、コンパイラによって Class.forName("<クラス名>") に変換される。

java.lang.Object#getClass()は、そのインスタンスが属するクラスのClassオブジェクトを取得するメソッド。
972デフォルトの名無しさん:2005/06/18(土) 22:09:06
JSFを業務で使ったことある人いますか?
私は恥ずかしながらまだ使ったことがありません。
(便利って話はよくきくんですが・・・)
Eclipseで(業務で使える)JSFのプラグインっていつごろ出回るんだろ・・・
973デフォルトの名無しさん:2005/06/18(土) 22:16:01
>>972 Rationalあるじゃん。
974デフォルトの名無しさん:2005/06/18(土) 22:16:06
JSF業務であるけど、WSAD(Eclipse)でやった
975デフォルトの名無しさん:2005/06/18(土) 22:16:33
無料のものを指しているんだろ?しかも使えるもの
976デフォルトの名無しさん:2005/06/18(土) 22:18:43
業務で無料にこだわるのか?
977デフォルトの名無しさん:2005/06/18(土) 22:21:54
じゃぁなぜそもそも業務でもこんなにEclipseが流行っているのか聞きたいな
結局は払う必要が無ければそれに越したことはない
978976:2005/06/18(土) 22:26:35
解決 し ま  し   た    !
979デフォルトの名無しさん:2005/06/18(土) 22:37:55
すくなくともうちじゃIBMのRWDの年間ライセンス料ぐらいは
たいした話じゃないけどね。上のチェックもほぼスルー。
さすがにRADになると無理だけど。
980デフォルトの名無しさん:2005/06/18(土) 22:44:00
>>058,966
> と言うか、C:\〜.xlsと指定してチェックしようとした場合も、
> APサーバー側から見た、C:\を見るんですね・・・

プログラムがAPサーバで動いてるのに、APサーバ側からみたC:\を
見るって事にどんな不自然さを感じるんだ?

> \\Sv1\C\Book1.xls
> B:\Book1.xls
> (上記アドレスをアドレスバー入力すると、表示されるので存在しています。)

じゃあクライアントマシンからは見えるってことだろうね。でもクライアントじゃなくて、
APサーバ上でプログラムが動いてるんだろ?
981969:2005/06/18(土) 22:44:36
>>971

ありがとうございます。
フィールド名だと思って、Objectクラスや、Classクラスを探したんですが、
見つからなくて、途方にくれてました。
特殊な構文なんですね。
982デフォルトの名無しさん:2005/06/19(日) 00:12:48
>>938
なにをやりたいかによるんじゃないの? ベンダによってどのJSRに
準拠したモジュールを付属させているか違うし。
983デフォルトの名無しさん:2005/06/19(日) 00:20:03
JSFを業務で使ってます。
アーキテクチャ設計にSunが関わっていて、トップダウンで使えと言われました。
実装は、Sun Application Server です。

試しに使ってみたMyFacesは糞でした。バグだらけ。
ちゃんと動けば、Jakarta Commons のライブラリを沢山使っていて、多機能でなかなかだと思うのですが・・・
984デフォルトの名無しさん:2005/06/19(日) 00:46:16
俺は使った事なくて噂だけだけど、MyFacesは裏でいろいろ怪しい動作をしてて、
画面表示の挙動がヘンになるらしい。
985デフォルトの名無しさん:2005/06/19(日) 01:28:18
>>980
次スレ立ててくれ。
986デフォルトの名無しさん:2005/06/19(日) 02:05:44
>>962
957ではないが>>964の書き方だと
hogeはHashMapを継承した無名クラスのインスタンス
になるのはわかってる?念のためききたい。
987デフォルトの名無しさん:2005/06/19(日) 02:20:54
今までC++でプログラムつくってて
構造体まではある程度わかりましたが、ポインタの理解に苦しみました。

今後、Javaでプログラムを作っていきたいのですが
入門書で何かお勧めはありますでしょうか?
JDK5.0、eclipseをつかってプログラムを組んでいく予定です。
988デフォルトの名無しさん:2005/06/19(日) 02:33:36
>>985

自分が>>980だったことに気がついてなかったよ....
なんで立てたよ。番号はもうわからんので、すなおに68番ね。

【初心者】Java質問・相談スレッド67【大歓迎】
ttp://pc8.2ch.net/test/read.cgi/tech/1119115837/
989デフォルトの名無しさん:2005/06/19(日) 04:31:55
>>986 そうなんですか
まあ実害はなさそうですが、きもいのでスタティックフィールドで初期化します。やっぱperlのようにはいかないか〜
990デフォルトの名無しさん:2005/06/19(日) 04:39:08
スタティックフィールド?
static初期化ブロックで初期化のことか?
991デフォルトの名無しさん:2005/06/19(日) 04:50:16
それです
てか内部クラスになるのはコンパイルしたときそれっぽいのが生成されたからその時点でアヤシイっておもったけど、なんであのかきかたで内部クラス扱いになるかわかりません。どこよめばわかりますか?どくしゅうJavaにはかいてないぽい
992デフォルトの名無しさん:2005/06/19(日) 04:59:53
>>991
というかだね、>>964の書き方だと、new HashMap()で作ったインスタンスをHashMap型
変数にいれてるじゃん。これ別にMap型でうけても全然問題ないだろ。というよりも、
Collectionフレームワークってそういうふうに使うもんだし。

で、Mapは単なるインターフェースだ。どうせインターフェース型の変数につっこむんなら、
入れるモンがHashMapだろうがHashMapのサブクラスだろうが、はたまたMapインターフェースを
実装した正体不明のクラスだろうが、どうでもいいとは思わんか?
993デフォルトの名無しさん:2005/06/19(日) 05:25:50
まあそのとおりですが今回はポリモーフィズムがどうたらとかいうことは考える必要はなく、たんにあるクラスのなかでつかっておしまいなのでインターフェイスにぶちこむ必要はないです。さらにそこで使うことじたいイミフメイにとられかねませんしね
994デフォルトの名無しさん:2005/06/19(日) 05:33:27
>>993
いやだから、勝手にHashMapのサブクラスが自動生成されても、別にどうでもいいんじゃない?といいたい
んだけど。

無名クラス( new ActionListner() { ...}とか)やったら、全部そうなってるんだし。
995デフォルトの名無しさん:2005/06/19(日) 06:01:26
つまるところ、最初はMapいんたーふぇいすを実装したクラスならなんでも
よかったという考えで、手っ取り早くHashMapをもってきただけです。
無名クラスができるなんて知らなかったからHashMapにそのままぶち込んだ
わけでして、、、

ほんとなんだっていいですよ。
996デフォルトの名無しさん:2005/06/19(日) 10:25:10
943ですが、
SV2で、\\SV1\Cは見れます
どうも、SV2内のファイルにしかチェックが出来ないみたいなのです

クライアントから\\SV2\Cとやると、チェック出来ます
ですが、SV2で\\SV1\Cを見ようとすると、チェック出来ないのです。
997937:2005/06/19(日) 10:36:37
>>939
情報ありがとうございました
998デフォルトの名無しさん:2005/06/19(日) 10:37:41
重複スレが残ってるので次スレとしてどうぞ

【初心者歓迎】Java質問・相談スレッド65 Update 2
http://pc8.2ch.net/test/read.cgi/tech/1118243553/
999デフォルトの名無しさん:2005/06/19(日) 10:41:11
>>940
>>211 が正しいとすると 70 で正解みたいですね
1000デフォルトの名無しさん:2005/06/19(日) 10:41:47
続きは重複再利用の次スレでどうぞ

【初心者歓迎】Java質問・相談スレッド65 Update 2
http://pc8.2ch.net/test/read.cgi/tech/1118243553/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。