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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2007/03/05(月) 01:35:28
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

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

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

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

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

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

次スレは>>980あたりで。
0002デフォルトの名無しさん2007/03/05(月) 01:37:20
ずるしてらくしてかれいに2げっとかしらかしら〜
00033get2007/03/05(月) 11:59:08
     ∧_∧
ピュ.ー (  ^3^) <エェー これからも僕を応援して下さいNE(^3^)。
  =〔~∪java~〕
  = ◎――◎                      java&サン

0004デフォルトの名無しさん2007/03/05(月) 12:09:12
Javaからウェブカメラの映像を取得するには
JNIとか使わなきゃむりぽ?
0005デフォルトの名無しさん2007/03/05(月) 12:16:58
>>4
ローカルのカメラならドライバ次第では?
ネット上の映像ならソケットで取れないか?
0006デフォルトの名無しさん2007/03/05(月) 12:21:08
>>4
JMF
000742007/03/05(月) 12:32:02
>>5
ローカルなんだ。
いろんなカメラに対応させたいんだが。

>>6
調べてみる。
トンクス
0008デフォルトの名無しさん2007/03/05(月) 13:25:35
このエフェクトはどうやって作られているのでしょうか?
画像を縦方向に1ドット単位で刻む→それらをx軸の画面中央から離れた分だけ縦に拡大処理→再結合して表示、
なんていうのしか思いつきませんorz

http://couples.jp/cgi-bin/ht_panorama_dsp.cgi?hotelcode=221&panorama=front_top&ptn=2
0009デフォルトの名無しさん2007/03/05(月) 13:47:11
アプレットに表示されている線や複数の画像を、
一つの大きな画像と見て拡大縮小等の処理を行いたいのですがどんな感じで作れば良いでしょうか?
0010デフォルトの名無しさん2007/03/05(月) 14:38:41
>>9
Graphics2DとImage使ったらできないかな?
0011デフォルトの名無しさん2007/03/05(月) 15:10:27
>>10
ご回答ありがとうございました。
恥ずかしながら、その単語は初めて聞きました。調べて勉強してみます。
0012デフォルトの名無しさん2007/03/05(月) 15:25:28
ラストスレおめでと。
残り少ないけどよろ。
(:D)| ̄|_
0013デフォルトの名無しさん2007/03/05(月) 18:37:22
JAVAにおける文字コードについて質問なのですが、こちらでよろしいでしょうか?

OutputStreamWriterなどで文字コードを指定のうえ
ファイルを読み込み、読み込んだファイルをそのまま出力する処理を
作成していますが機種依存文字(丸1や(株))が文字化けしてしまいます。
「MS932」を指定するだけでは足りないのでしょうか?

動作環境はREDHUTでTOMCATのバージョンは5.5です。
なおWindows環境での動作確認ではうまく処理できました。
0014132007/03/05(月) 18:39:22
// ファイル読込準備
InputStream istream = null;
BufferedReader br = null;
istream =formFile.getInputStream();
br = new BufferedReader(new InputStreamReader(istream,"MS932"),65535);

// ファイル出力準備
File uploadFile = new File("ディレクトリ名", "ファイル名");
OutputStreamWriter bos = null;
bos = new OutputStreamWriter(new FileOutputStream(uploadFile.getAbsolutePath()), "MS932");


boolean flg = true;
String fileText = new String();
StringBuffer sb = new StringBuffer();

while (flg) {
fileText = br.readLine();
if(fileText==null){
flg=false;
}else{
if(!fileText.equals("")){
sb.append(fileText + "\r");
}
}
}

bos.write(sb.toString());
bos.close();
istream.close();
0015デフォルトの名無しさん2007/03/05(月) 18:42:35
>>1のWikiroomが403なんだけどたまたま?
それともつぶれた?
0016デフォルトの名無しさん2007/03/05(月) 18:46:30
>>13
まずはTomcat関係無しに、Redh a tのjavaで文字化けせずに
Windows-31Jの文章が読み書きできるか確認。

それと、MS932ではなく、Windows-31Jにしておいた方がいいですよ。
Windows-31Jは、IANA登録名ですから。
0017デフォルトの名無しさん2007/03/05(月) 18:53:51
すみません、eclipseなんですが、中括弧の付く位置が初期設定では
メソッド() { こんな感じになってるんですが、
メソッド()
{
こんな感じにする事はできないのでしょうか?見難くってやってられません。
もし設定を変える方法を知っていたら教えてください。お願いします。
0018デフォルトの名無しさん2007/03/05(月) 19:20:46
>>17
Window>Preference
Java>Code Style>Formatter
0019デフォルトの名無しさん2007/03/05(月) 19:28:05
質問1)
テキストファイルに書かれた数字を配列にいれるにはどうすればいいの?
hoge.txtは以下のとおり

12
34
56
78

ってかいてあって、java hoge.txtと実行すると
配列aa[0]〜aa[3]に上から順に数字が入るようにしたい。教えて

質問2)
配列に入った数値a[0]=12, a[1]=34, a[2]=56, a[3]=78を
nag.txtに順番に
12
34
56
78
と書き込みをしたい。どうすればできるの。一つでもいいから誰か教えて
0020デフォルトの名無しさん2007/03/05(月) 19:29:58
>>13
System.out.println(java.nio.charset.Charset.foName("MS932").getClass());

とかやって、実装してるクラスを確認してみるとか。
0021172007/03/05(月) 19:30:52
一応設定は上手く行きました。教えてくれてありがとうございます。
0022デフォルトの名無しさん2007/03/05(月) 19:31:17
>>19
宿題は宿題スレに。

★★ Java の宿題ここで答えます Part 60 ★★
http://pc11.2ch.net/test/read.cgi/tech/1169300052/
0023132007/03/05(月) 19:40:14
>>16
Windows-31J指定の件了解です。
またJAVAにて読み書きできるかについてですが可能でした。

以下コードをREDHAT上にて実行。
(input.txtはSJISにて丸1と全角ハイフンを記述、output.txtに正しく出力)

FileInputStream fis = new FileInputStream("input.txt");
InputStreamReader ir = new InputStreamReader(fis , "MS932");
BufferedReader br = new BufferedReader(ir);
String msg = br.readLine();

FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos , "MS932");
BufferedWriter bw = new BufferedWriter(osw);
bw.write(msg);
0024デフォルトの名無しさん2007/03/05(月) 19:50:21
>>23
何だろうねぇ?
Tomcatの起動オプションに強制指定入れてみる?
-Dfile.encoding=MS932
これ。
0025デフォルトの名無しさん2007/03/05(月) 20:00:11
>19やさすぃいJavaにそのまま書いてあるお
(:D)| ̄|_
0026デフォルトの名無しさん2007/03/05(月) 20:51:47
>>19
package hoge;
public class txt {
private static final String aaa = "hoge.txt";
private final String aaaa = "nag.txt";
private static int[] aa = new int[4];
private int[] a = new int[4];
public static void main(String[] a) throws Exception {
java.io.BufferedReader b = null;
try {
b = new java.io.BufferedReader(new java.io.FileReader(aaa));
for (int i = 0; i < 4; i++) aa[i] = Integer.parseInt(b.readLine());
new txt().a();
} finally {
if (b != null) b.close();
}
}
private void a() throws Exception {
for (int i = 0; i < 4; i++) a[i] = aa[i];
java.io.BufferedWriter b = null;
try {
b = new java.io.BufferedWriter(new java.io.FileWriter(aaaa));
for (int i = 0; i < 4; i++) { for (char c : String.valueOf(a[i]).toCharArray()) b.write(c - '0' + '0'); b.newLine(); }
} finally {
if (b != null) b.close();
}
}
}
0027前スレ976 2007/03/05(月) 21:11:21
前スレ>>987
Linuxの設定、Java version関係なく
sendする直前に、recv処理をすることで対応できました。
回答どもです。
002819 2007/03/05(月) 21:20:03
>26
002919 2007/03/05(月) 21:21:25
>26 ありがとう、ところでこれコンパイルは通るけど、実行すると以下のようなエラーがでる

Exception in thread "main" java.lang.NoClassDefFoundError: txt (wrong name: hoge
/txt)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
0030デフォルトの名無しさん2007/03/05(月) 21:33:02
もう涙が出ちゃう。・゚・(ノД`)・゚・。
0031デフォルトの名無しさん2007/03/05(月) 21:37:30
なるほど、スレタイ通りだ。wwwww
0032デフォルトの名無しさん2007/03/05(月) 21:38:21
>>29
そのファイルの拡張子はどうなってる?
003319 2007/03/05(月) 21:42:49
javac txt.java
java txt
で実行しているわよ
0034デフォルトの名無しさん2007/03/05(月) 21:47:27
とりあえず>>1は読んだか?
0035デフォルトの名無しさん2007/03/05(月) 21:48:55
>>33
hoge ってディレクトリ掘って、そん中に txt.class をつっこめ。
そのあと java hoge.txt ね。

>>19 の
> ってかいてあって、java hoge.txtと実行すると
ってのが原因。
003619 2007/03/05(月) 21:50:11
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
これでしょ。これは前から知っててとっくに解決済み。そもそも
これ解決してないなら他のプログラムとかは通らないでしょ。
eclipseでやあっている
0037デフォルトの名無しさん2007/03/05(月) 21:53:01
パッケージ宣言とっちゃえば?
0038デフォルトの名無しさん2007/03/05(月) 21:54:09
>>36
そこに書いてあるのはパッケージ使わない場合だけだから、
今回は参考にならんよ?
0039デフォルトの名無しさん2007/03/05(月) 21:54:55
> パッケージ宣言とっちゃえば?
>>19 の仕様に反するんだけど。
0040132007/03/05(月) 22:00:31
ちょっと確認したのですが、この方法でサーバに生成されたファイルの
文字コードを確認したらEUCになっていました。これってサーバ依存の
文字コードがデフォルトで選択されているってことですよね。
ただ「OutputStreamWriter」でエンコーディングの指定をしているにも
関わらずそのようになってしまったのはなんでだろう…。
0041デフォルトの名無しさん2007/03/05(月) 22:06:43
>>40
> この方法
それって >>14? >>23?

EUC って丸付き数字あったっけか?
004219 2007/03/05(月) 22:12:09
>>37 俺も思った
0043デフォルトの名無しさん2007/03/05(月) 23:23:40
synchronized修飾子を指定したメソッドなんですが、
スレッド名.wait()を使用するとjava.lang.IllegalMonitorStateException: current thread not ownerが出ます。
この場合どんなことが原因だと考えられるのでしょうか?
0044デフォルトの名無しさん2007/03/05(月) 23:44:52
wait() を用いたこと
0045デフォルトの名無しさん2007/03/06(火) 00:07:06
>>43
エラーメッセージの通り。
もしくは、モニターの所有権について >>43 が理解できてない事。
0046デフォルトの名無しさん2007/03/06(火) 00:08:25
>>44-45
失礼しました。勉強しなおしてきます。
0047デフォルトの名無しさん2007/03/06(火) 00:09:48
>>43
Objectのwaitメソッドを使っているわけだからその辺のドキュメント漁れば答えが見えてくるはずなんだけど…

> このメソッドを呼び出すのは、このオブジェクトのモニターを所有するスレッドだけでなければ
> なりません。スレッドがオブジェクトのモニターのオーナになる方法については、notify メソッド
> を参照してください。

直接的ではないにせよ最低限のヒント位は出ているから、普段からAPIドキュメントみるクセをつけた方が良いかと。
0048デフォルトの名無しさん2007/03/06(火) 01:50:04
すんません。
http://homepage2.nifty.com/igat/igapyon/diary/2005/ig051228.html
ここ見て、swtからwin32APIが扱えることを知ったんだけど、
キーイベントやウィンドウのリサイズきかなくない?
ウィンドウは拾えてるみたいなんだけど…
0049デフォルトの名無しさん2007/03/06(火) 02:11:29
え?ここJNIあり?
幅広いね
0050デフォルトの名無しさん2007/03/06(火) 06:49:35
GUIで質問があります。
JComboBoxで選択した文字を、JLabelに出力するようしたいのですが、
どのようにやれば良いのでしょうか?
このGUI(ttp://www.uploda.org/uporg718906.jpg.html)の場合、
『output』というところにTokyo, Osaka, Nagoyaと選択したら出力されるようにしたいです。
0051デフォルトの名無しさん2007/03/06(火) 07:19:39
>>50
addActionListenerかaddItemListenerを使う。
簡単なのはActionListenerのほうかな。
編集可能か否かでちょっと違うかもしれないが。

JComboBoxのAPIを見ること。
0052デフォルトの名無しさん2007/03/06(火) 08:57:45
なんでそんなことが分からないレベルで2chに質問しようと思いつくのか。
それとも釣りか。
0053132007/03/06(火) 09:04:58
>>41
14の方です。23の方はうまくいってます。EUCに丸文字ないので
ばけていたのだと思います…。が、14の方法で何故EUCファイルが
できてしまったのでしょう…。現在それを調べています。
0054デフォルトの名無しさん2007/03/06(火) 13:29:19
//クラスのインポート
import java.util.*;
public class Hiduke {
public static void main(String[] args){
//インスタンス化
Calendar now = Calendar.getInstance();

int y = now.get(now.YEAR); //年を取得
int m = now.get(now.MONTH) + 1; //月を取得
int d = now.get(now.DATE); //日を取得

//日付を表示
System.out.println(y+"年"+m+"月"+d+"日");
}
}
この場合、引数ってのはどれにあたるのでしょうか?
0055デフォルトの名無しさん2007/03/06(火) 13:33:54
String[] args
now.YEAR
now.MONTH
now.DATE
y+"年"+m+"月"+d+"日"

メソッドに渡してるものは全部引数
0056デフォルトの名無しさん2007/03/06(火) 13:34:56
何の引数?
コマンドライン引数ならmainメソッドのargsだが、プログラム中では利用
されていないね。
getの引数はnow.YEARとかだな。
printlnの引数はy + ... + "日"という式。

本筋とは関係ないけど、Calendarは日時を表すオブジェクトではないので
nowという誤解させるような名前を付けるのは好ましくない。
0057デフォルトの名無しさん2007/03/06(火) 14:13:12
>>55-56
迅速な対応ありがとうございます。また質問なのですが
上の日付の書式を書くとなるとどう書けばいいのでしょうか?
0058デフォルトの名無しさん2007/03/06(火) 14:18:06
SimpleDateFormat
0059デフォルトの名無しさん2007/03/06(火) 14:28:21
何も知らない俺がiアプリで計算機程度のソフト作れるようになるには
どのくらいの時間かかりますか?
0060デフォルトの名無しさん2007/03/06(火) 14:52:25
そんなことを2chに聞きに来るような人には一生無理だと思います。
0061デフォルトの名無しさん2007/03/06(火) 14:54:04
>>59
「作る時間」じゃなくて「作れるようになるまでの時間」って事?
今からでも作れるよ。君に足りないのは技術力じゃなく決断力だ。
0062デフォルトの名無しさん2007/03/06(火) 14:55:32
>>15
普通に見られるぞ。
0063デフォルトの名無しさん2007/03/06(火) 14:56:19
>>13
native2asciiとか使ったことある?
0064デフォルトの名無しさん2007/03/06(火) 14:57:37
>>17
Eclipseは専用スレがあるから、一応、そちらで。

【初心者】EclipseでJavaの勉強 2時間目【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1147444414/
【Java/C/PHP/Perl/Ruby/Python/TeX】Eclipse M22
http://pc11.2ch.net/test/read.cgi/tech/1168166588/
0065デフォルトの名無しさん2007/03/06(火) 14:59:48
>>29
でたー、これわざとやってるとしか(ry
ファイル名.java.txtになってたってやつかー
0066デフォルトの名無しさん2007/03/06(火) 15:01:41
>>40
コンパイルオプションで指定した文字コードは?

だめならとりあえずnative2ascii

Stringオブジェクトを使うとき、文字コード指定していないとかでは?
JISAutoDetectとか昔、懐かしいことしていた記憶がある・・・・
0067デフォルトの名無しさん2007/03/06(火) 15:02:56
質問に答えればいいのにプログラマってごちゃごちゃうるさいね。

>>59
適当だけど40時間(8h/日なら5日間、4h/日なら10日間)ぐらいじゃない?
計算機ロジック自体は簡単だけど、
開発ビルド環境、iアプリの作り方、サーバへのアップとダウソでハマると思う。
0068デフォルトの名無しさん2007/03/06(火) 15:03:48
>>63
>>66

>>13嫁
0069デフォルトの名無しさん2007/03/06(火) 15:03:56
思うんだが、丸文字丸文字いうてるやつは
丸文字の意味を間違えてないか? と突っ込んでみる。

0070デフォルトの名無しさん2007/03/06(火) 15:04:50
>>67
つうか、お前がプログラマなんだろ。
俺はプログラマじゃないから答えてやらないよ。
0071デフォルトの名無しさん2007/03/06(火) 15:06:17
丸文字といえば、やはりこれ

丸文字書体の手書き風TrueTypeフォント「ことり文字ふぉんと」v1.0が公開
先端が尖っていない滑らかな女の子らしい運筆で書かれている

http://www.forest.impress.co.jp/article/2003/01/08/kotorimojifont.html
0072デフォルトの名無しさん2007/03/06(火) 15:07:14
>>67
おまえは、場合によっては、質問者に
余計なお世話だと思われることだろう。
0073デフォルトの名無しさん2007/03/06(火) 15:08:01
そもそも>>67の発言はあくまで推測だし。
単なる丼勘定

0074デフォルトの名無しさん2007/03/06(火) 15:08:34
>>67
相手は「何も知らない」って言ってるんだぜ?
あの質問から読み取れる情報は「日本語は理解できている」程度なんだぜ?
0075デフォルトの名無しさん2007/03/06(火) 15:19:03
>>67
お前の解答って「作る時間」じゃねーの?w
質問は「作れるようになる時間」だぞ。
『質問に答えればいいのに』答えられてないじゃんwwwww
0076デフォルトの名無しさん2007/03/06(火) 15:19:30
>>70>>72-74
必死すぎ
0077デフォルトの名無しさん2007/03/06(火) 15:23:37
>>76
本人乙
0078デフォルトの名無しさん2007/03/06(火) 15:28:52
何この自作自演連レス
0079デフォルトの名無しさん2007/03/06(火) 15:39:01
>>67
あれてるけどさんくす。

環境は整いました。
アップダウンは昔HP作ってたからたぶん問題なし。

が、プログラム自体に戸惑って止まってます。
BASICはやったことあったけど、javaとは全然違うね。難しい。
0080デフォルトの名無しさん2007/03/06(火) 15:53:14
1.4対応の本は虎対応本に買い換えたほうがいいの?
0081デフォルトの名無しさん2007/03/06(火) 16:10:42
使えなくなるわけではないが、別途Tiger(つーかいまはその次のMustangが最新)
の知識を得る必要はある。
0082デフォルトの名無しさん2007/03/06(火) 16:13:11
コンパイルはでける。
実行すると、下記の表示される↓

[Fatal Error]:1:5: Invalid byte 1 of 1-byte UTF-8 sequece.

実行ソースは、やさしげなJava活用編、XML文書をDOMによって読み書きする(p291)です。
0083デフォルトの名無しさん2007/03/06(火) 16:26:22
JOptionPane.showInputDialogのダイアログに出てくるテキストフィールドに、
初期状態から文字を表示させておくことはできないのでしょうか?
0084デフォルトの名無しさん2007/03/06(火) 16:31:24
>>82
いきなりなんの話だ?

XML中に表明しているエンコーディングと実際のエンコーディングが
食い違ってるんじゃないの?
0085デフォルトの名無しさん2007/03/06(火) 16:37:53
>>83
初期値を指定できるshowInputDialogを使う。
1.4以降なら3つあるはず。
0086デフォルトの名無しさん2007/03/06(火) 16:40:28
>85
〜Dialog("Your Name?","65")
0087デフォルトの名無しさん2007/03/06(火) 17:04:38
>>85-86
ありがとうございました。無事解決しました。
0088デフォルトの名無しさん2007/03/06(火) 17:06:44
>82は解決しませんでした。
諦めました、スルーして下さい。
0089デフォルトの名無しさん2007/03/06(火) 17:39:16
>>76
質問者本人か?

質問する前に日本語を勉強しようや。

さもなければ、半島に帰りな
0090デフォルトの名無しさん2007/03/06(火) 17:40:05
>>79
また自演だ。コテハンぴゅあとかいうドトネト厨の荒らしだろお前w
0091デフォルトの名無しさん2007/03/06(火) 19:12:15
>>88
諦めるもなにも読んだまんまだが?
まずはxmlの仕様を勉強しろ

>>84
正確には文字コードが指定されてなかったんでパーサがサポートするデフォルトの文字コードで読みに行ったらテキストのエンコードがUTF-8じゃなかったから仕様に従って致命的なエラー扱いにしたんだな。

何も考えてない奴が一番初めにコケるテンプレ嫁以前の問題だな。ググれば幾らでも出てくる。
0092デフォルトの名無しさん2007/03/06(火) 20:10:53
>>82
バイナリエディタで開いて1byte目にBOMついてないか確認しろ。
0093デフォルトの名無しさん2007/03/06(火) 21:14:39
javaファイル、xmlファイル、どっちがBOM付きでどっちがUTF-8?
0094デフォルトの名無しさん2007/03/06(火) 21:21:59
mustangからBOM付きUTF-8扱えるようになってたような。
0095デフォルトの名無しさん2007/03/06(火) 21:29:15
javaファイル
→BOM付きshift_jis
xmlファイル
→BOM無しshift_jis
ですよね?よね?
0096デフォルトの名無しさん2007/03/06(火) 21:35:55
BOMってのはUTF-16の話だ。
0097デフォルトの名無しさん2007/03/06(火) 21:52:34
>>96
http://unicode.org/faq/utf_bom.html#29
> Q: Can a UTF-8 data stream contain the BOM character (in UTF-8 form)?
> A: Yes, UTF-8 can contain a BOM.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378911
UTF-8 decoder handling of byte-order mark has changed
0098デフォルトの名無しさん2007/03/06(火) 23:01:15
原因がわかりまちた。
xmlファイルの文頭にこれ→<!--注釈-->をつけたことが原因でしたぁ〜ん
(:D)| ̄|_ ごめんなご
0099デフォルトの名無しさん2007/03/06(火) 23:45:51
ソケットのストリームにおいて、コネクションを維持しながら
文字ストリームで通信した後にオブジェクトストリームで通信をしたいのですが、
文字ストリームのcloseメソッドの呼び出しって行う必要はあるのでしょうか?
0100デフォルトの名無しさん2007/03/06(火) 23:50:43
らくしてかれいにスレッド99コメント99げっとかしらかしら〜
(:D)| ̄|_
0101992007/03/07(水) 00:16:57
それは気がつかなんだ。
(:D)| ̄|_ ごめんなご
0102482007/03/07(水) 01:50:52
すれ違いだったんだろうか…
ここまで見事にスルーされるとは思ってなかったぜ。
0103デフォルトの名無しさん2007/03/07(水) 02:19:25
>>102
SWT関連なら専用スレがあるよ
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
0104デフォルトの名無しさん2007/03/07(水) 03:42:07
StreamTokenizerで
自然対数表示で書かれたdouble値を読み込むことってできないでしょうか?

例えば、2.52224e-005という文字列を読み込んだときに
0.00025224 と認識させたいのですが、

double a = st.nval;

とすると、a=2.52224となってしまいます。
0105デフォルトの名無しさん2007/03/07(水) 03:52:52
>>103
そこGUIだから
0106デフォルトの名無しさん2007/03/07(水) 03:58:56
>>106
それ、常用対数。
01071042007/03/07(水) 04:00:20
>自然対数表示で書かれたdouble値を読み込むことってできないでしょうか?

自然対数表示じゃなくて、指数表示の間違いでした
0108デフォルトの名無しさん2007/03/07(水) 04:17:32
(:D)| ̄|_
メインOSとデータをフォーマットしてしまったぜ!
イェィ( ̄ー ̄)b
0109デフォルトの名無しさん2007/03/07(水) 04:23:40
>>105
だから何?
0110デフォルトの名無しさん2007/03/07(水) 04:40:06
>>107
ttp://java-house.jp/ml/archive/j-h-b/046214.html
0111デフォルトの名無しさん2007/03/07(水) 05:04:04
>>105
??GUIだから誘導されてるんじゃ・・・
01121042007/03/07(水) 05:25:00
>>110
ありがとうございます、解決しました〜
0113デフォルトの名無しさん2007/03/07(水) 09:08:49
なんだよ1日たってみたら自演扱いかよ。
しかもわけわからんコテ扱い。
初めてこの板来てこれだしな。

プログラマってのはこんなにレベル低いのか?
それともアホがここにすみついてんのか?
0114デフォルトの名無しさん2007/03/07(水) 09:24:53
自分が馬鹿なのを認識できないクズが一匹いますね
0115デフォルトの名無しさん2007/03/07(水) 09:56:02
誰?
>>67か?
0116デフォルトの名無しさん2007/03/07(水) 12:25:35
うっすら涙目の>>113登場。
0117デフォルトの名無しさん2007/03/07(水) 14:08:47
入力ファイルから値を受け取りそれぞれのクラスで処理してその結果を
出力ファイルにだすっていうプログラムを作りたいんですけど
入力ファイルはどういうふううに作成すればいいのでしょうか?
メモ帳からではないですよね?
0118デフォルトの名無しさん2007/03/07(水) 14:20:27
>>113
ん、母体が大きくなるとアホも居ますわ。すまんこやけどスルーしたってください。
0119デフォルトの名無しさん2007/03/07(水) 14:23:30
>>117
> 入力ファイルから値を受け取りそれぞれのクラスで処理して
の部分が曖昧なのでなんともいえない。

メモ帳でも作れるかもしんないし、作れないかもしれない。
0120デフォルトの名無しさん2007/03/07(水) 14:23:44
>>117
入力ファイルがテキストファイルならメモ帳で作っても問題ないんじゃない?

というか、やりたいことに対して、その意味が自分で分かってないってことは
・・・・宿題?
宿題が分からない場合は
1.友人に相談
2.教師に相談
3.宿題スレで相談
こんな感じでリアルをもう少し活用してみましょう。
0121デフォルトの名無しさん2007/03/07(水) 14:30:31
レス、ありがとうございます。
すみません言葉たらずでした…
レコード形式?みたいにデータを入力していってその
値を受け取るって形にしたいのですがこういうのは
メモ帳で作れます?
0122デフォルトの名無しさん2007/03/07(水) 14:37:56
レコード形式って?
0123デフォルトの名無しさん2007/03/07(水) 14:39:15
>>121
作れるかどうかメモ帳起動してみればいいんじゃないのかな?
0124デフォルトの名無しさん2007/03/07(水) 15:54:56
>>113
ならプログラマやめれば?
0125デフォルトの名無しさん2007/03/07(水) 16:07:27
Javaを用いて、既存のファイルやフォルダのコピー、移動を行いたいのですが、
どのような方法がありますか?

Fileクラスにロードしたファイルを、renameTo()メソッドで移動をしてみたのですが、
ディレクトリをまたいだり、ルートフォルダが異なったりするとうまくいきません。
API仕様書には、環境に大きく依存すると書いてあり、確かにそのような気配がします。
(ちなみに、環境はWindowsXPです。)

Runtime.exec()や、ProcessBuilderを用いてバッチ処理のような形で実現させるしかないのでしょうか?
あるいは、java.ioパッケージを駆使するしかないのでしょうか?
その場合は、どのクラスを使うと便利か、示唆していただけないでしょうか。
0126デフォルトの名無しさん2007/03/07(水) 16:21:55
Jakarta Commons IOあたりにあるかとも思ったが、ないね。
0127デフォルトの名無しさん2007/03/07(水) 17:53:12
Swing関係のAPIに書かれてる
「警告: このクラスの直列化されたオブジェクトは、今後のSwing リリースと・・・略・・・XMLEncoderを参照してください。 」
の意味がよく分かっていないのですが
「XMLで書け」って意味でしょうか?
0128デフォルトの名無しさん2007/03/07(水) 18:11:25
>>XMLEncoderを参照してください
とりあえず嫁。なぜ読まん?
0129デフォルトの名無しさん2007/03/07(水) 18:14:28
>>128
既に何度も読んだ。マジで意味が分からん・・・。
0130デフォルトの名無しさん2007/03/07(水) 18:17:51
シリアライズしてもいいけど、Serializableを使うとバイナリ互換問題が
ついて回るので、RMIみたいな短期の場合にのみ使ってくれ。保存して
おいて別バージョンのSwingで読めなくてもしらないよ。そういう用途に
はXMLEncoder/Decoderを使ってくれ。

0131デフォルトの名無しさん2007/03/07(水) 18:26:48
各環境に合わせてコンパイルし直せ
さもなくばXMLEncoder使え

って事であってます?
0132デフォルトの名無しさん2007/03/07(水) 18:30:41
ちゃうちゃう
シリアライズしたものをファイルとかに保存して、それ読み込んで使ったりすると
JREのバージョンが変わったときに読めなくなる/使えなくなるよってこと。
0133デフォルトの名無しさん2007/03/07(水) 18:34:29
>>131
うーん、そうじゃなくて、他のバージョンのJVM上にオブジェクトの
シリアライズイメージを送ったとき、問題出るかもしれんよ、ということ。
コンパイルし直ししても、

JDK6の javax.swing.Hogehoge
をJDK8 のJVM上に送ったとき、そこでインスタンスが復元出来ないかもしれないってこと。
具体的には、そのクラスの serialVersionUID が将来変えられる可能性があるということかな。
0134デフォルトの名無しさん2007/03/07(水) 18:34:56
>>132
お手数掛けました。
ありがとうございました。
0135デフォルトの名無しさん2007/03/07(水) 19:37:58
>>126
あるだろう。コピーくらいなら。


Runtimeなんていらない。

java.ioだけでどうにかできるはず。
根性いるかも知れないけど。

まずFileクラスでフォルダを指定して、
フォルダの中をdir()で再帰的に調べて記憶しておく。

つぎに移動やコピー。
ここでは、移動(コピー)先フォルダを指定したら。
移動(コピー)先フォルダ名のパス文字列をつかってFileクラスでディレクトリ作成。
あとは同じディレクトリにファイルやサブディレクトリなどを再帰的にコピー。

0136デフォルトの名無しさん2007/03/07(水) 19:38:41
>>129
SerializableがXMLEncoderに変わっただけ。

つうかググれ。
0137デフォルトの名無しさん2007/03/07(水) 19:39:51
>>131
ここに答えが乗っている

http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA#XML.E3.83.95.E3.82.A9.E3.83.BC.E3.83.9E.E3.83.83.E3.83.88.E3.81.AB.E3.82.B7.E3.83.AA.E3.82.A2.E3.83.A9.E3.82.A4.E3.82.BA
0138デフォルトの名無しさん2007/03/07(水) 19:52:07
>>135
ファイルの中身だけコピーするならなんとかなると思うけど。

属性とか所有者とか、シンボリックリンクではコピー先にシンボリックリンクを作るとか、
そーゆー事まで考え出すと java.io だけじゃ無理のような。
0139デフォルトの名無しさん2007/03/07(水) 20:43:09
>>136
おまえはその前に、リロード汁w
0140デフォルトの名無しさん2007/03/07(水) 22:38:44
Mac OS X使ってます。
OS XにはAPIドキュメントというものはないんでしょうか?
Eclipceで日本語のホバー表示をするために、
MergeDoc(http://mergedoc.sourceforge.jp/)というのを入れたいんですが、
APIドキュメントというのが必要らしいです。
0141デフォルトの名無しさん2007/03/07(水) 22:47:18
>>140
/System/Library/Frameworks/JavaVM.framework/Versions/バージョン/
Home/docs/
0142デフォルトの名無しさん2007/03/07(水) 23:02:33
>>141
/System/Library/Frameworks/JavaVM.framework/Versions/バージョン/
Home/
まではあるんですが、docsフォルダがないです。。。
0143デフォルトの名無しさん2007/03/07(水) 23:10:40
ああ、ADCからダウンロードしないとないかも。
0144デフォルトの名無しさん2007/03/07(水) 23:13:57
http://www.apple.com/downloads/macosx/apple/macosx_updates/java2se50developerdocumentation.html
これか?
0145デフォルトの名無しさん2007/03/08(木) 00:00:56
ActionListener等ってFrameとかにimplementsして使うのが普通ですか?
この方法だと自分のやりたい事がどうもスッキリとできないんです
0146デフォルトの名無しさん2007/03/08(木) 00:10:24
オセロや将棋のプログラムを作りたいのですが、どのプログラム言語が適しているのか教えてください。
プログラムの知識は、どの言語でも使うif文とかfor文とかを最近覚えた程度の全くの初心者です。
数学は独学だけど大学程度の数学なら分かるつもりです。論文や専門書もかなり読みました。
アルゴリズムとか超興味あります。
しかし何から手をつければ良いのか検討が付かないのアドバイスをください。
ちなみに学生なのでPCを買うお金が無いので学校の5〜10年ぐらい昔の古いPCが開発環境です。
0147デフォルトの名無しさん2007/03/08(木) 00:13:18
オセロや将棋程度ならなんでもOK。
強いて言えば、VBがユーザインタフェースを作りやすいけど、開発環境にお金がかかる。
Javaなら無料だけど古いPCでは厳しいか。
0148デフォルトの名無しさん2007/03/08(木) 00:13:53
lisp
0149デフォルトの名無しさん2007/03/08(木) 00:15:38
>>145
- 複数箇所で使い回すならクラス(場合によってはメンバークラス)。
- その場限りなら匿名クラス。
にしている。
01501452007/03/08(木) 00:22:34
>>149
具体的に言えば、

Aボタンを押したらBテキストフィールドから値を受け取り
Cテキストフィールドを更新するといった処理を複数作る

という事をしたいんですが、この場合はメンバクラスとして作るのがスマートですかね?
おそらく匿名クラスや普通のクラスではややこしい書き方をしないと出来ないと思うので
0151デフォルトの名無しさん2007/03/08(木) 00:33:13
>>150
フレームのメンバーになっているボタンやテキストへのアクセスが出来た
ほうが便利だろうから、メンバークラスがよいように見える。
01521452007/03/08(木) 00:40:31
>>149,151
レスありがとうございます
その辺りのスコープの問題はメンバクラスにする事で何とかするのが普通なんですね

ボタンやラベルを一つのパネルに纏めてしまって、そのパネルもメンバクラスに・・・
なんてすればさらにコードが読みやすくできるのかなぁ
0153デフォルトの名無しさん2007/03/08(木) 02:11:06
>>138
パーミッションだけならJavaでもできる。

他は・・・
Runtimeとかかねえ

Jakarta Commons VFSでにたようなことできなかったかな・・・
0154デフォルトの名無しさん2007/03/08(木) 02:17:36
>>145,152
乗り遅れた…
個人的にはオブジェクトの役割が比較的きっちり分かれるMVCが好み

ttp://java.sun.com/developer/technicalArticles/javase/mvc/
↑英語ですが…日本語でも山ほど資料はあるのでググってみて

ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ

0155デフォルトの名無しさん2007/03/08(木) 03:55:02
>>111
よく読め。
GUIの話題なんて一言も振ってない。
0156デフォルトの名無しさん2007/03/08(木) 04:03:14
その通り
キーイベントやウィンドウのリサイズが利かないって話題なんだからCUI関係だよ
GUIと間違えちゃいかん
0157デフォルトの名無しさん2007/03/08(木) 04:21:08
APIリファレンスって印刷して使うものなの?
ものすごい量になる悪寒
0158デフォルトの名無しさん2007/03/08(木) 04:46:51
>>157
お前の想定している状況がイマイチ分からん。

シリアライズの話だけどそもそもアプリケーションプログラマがSwingコンポーネントをシリアライズするってどういう場合?

元々シリアライズってファイルシステムなんかに永続的にオブジェクトの状態を保存する目的のものじゃないでしょ?
ネットワーク超えてたれ流すためでしょ?

シリアライズを永続的な保存目的に使いだしたからXMLEncoder/XMLDecoderが出てきたの?
0159デフォルトの名無しさん2007/03/08(木) 07:10:33
永続的な目的云々もそうだが、ことさらSwingのAPIにだけシリアライズに
よるバージョン問題のことが書いてある理由も謎だ。
01601252007/03/08(木) 08:04:27
>>126
>>135
>>153
返答ありがとうございます。
手間が掛かりそうなので、簡単に実現できそうなRubyに乗り換えることにしました。
Swingが使えないのが残念ですが。
ちなみに作ろうとしていたのはエロ画像の自動整理プログラムでした。
0161デフォルトの名無しさん2007/03/08(木) 10:01:01
ひとつのつながったテキストを区切って別々のページに保存したいときって
どうすればいいですか?
0162デフォルトの名無しさん2007/03/08(木) 10:02:30
>>153
6.0 のパーミッション操作も全部じゃないよ。

外部ライブラリ使うなら、JConfig 使うとかした方が楽かも。
0163デフォルトの名無しさん2007/03/08(木) 10:03:34
>>161
「別々のページに保存」ってのが具体的に何したいのかわからん。
0164デフォルトの名無しさん2007/03/08(木) 10:10:33
えと、100行のテキストがあったとして、10行ずつ区切って
別のファイルに保存ってことです。
0165デフォルトの名無しさん2007/03/08(木) 10:16:31
言ってる事をそのままコードにするだけだからどこがどう出来てないのか情報がないと教えようがない
0166デフォルトの名無しさん2007/03/08(木) 10:19:44
http://java.sun.com/javase/ja/6/download.html にAPIドキュメント追加されてる。
0167デフォルトの名無しさん2007/03/08(木) 10:55:36
今クローラーってのを作る課題なんですけど、リンク先をページから
拾ってきて、ページごとに保存しなくちゃいけないんです。
で、リンク先抜き出してソース落とすとこまではできたんですけど、
全部つながってひとつのファイルに保存されちゃうんで、それを
区切って保存したいってことです。
0168デフォルトの名無しさん2007/03/08(木) 11:03:08
>>167
再帰的にやればいいんじゃね?
0169デフォルトの名無しさん2007/03/08(木) 11:18:38
>>167
> 全部つながってひとつのファイルに保存されちゃうんで
……。つなげなければ良いんじゃね?
0170デフォルトの名無しさん2007/03/08(木) 11:46:43
何でつながるのかわかってないんじゃね?
01711452007/03/08(木) 12:33:17
>>154
レスありがとうございます

>ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
確かにメンバクラスにすると再利用が難しくなるかなぁと思ってました

そこでMVCという単語を絡めて検索した所
まさに今考えていた事が既に話し合われていた場所を発見する事ができました
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18201&forum=12&7

まだしっかりとは読んでいないのですが、これで気持ちよく開発が進めれそうです
本当にありがとうございました ;D
0172デフォルトの名無しさん2007/03/08(木) 14:10:21
商品番号、日付、単価、数量
0001,20070308,1200,50
とテキストファイルに記入。

日付の値は日付の処理を行うメソッドに渡し、単価と数量の値は
計算する処理を行うメソッドに渡す。
ということをしたいのですが可能でしょうか?
可能ならばやり方を教えていただきたいです。
0173デフォルトの名無しさん2007/03/08(木) 14:10:59
>>167
そもそもなんで繋がってんのか分からんがクローラー作るならWWW Wanderer(Wandex),
Aliweb, WebCrawlerを調べてみな?

まあ、見つけられたらの話だが・・・国内鯖で見つからんなら

ttp://en.wikipedia.org/wiki/

で調べりゃあるから、ちゃんと探せば技術文書も論文も化石が埋まってるから。(但し殆どがwwwの歴史の論文だけど)

AliwebとWebCrawlerは存命の筈だけど

#あと鯖に迷惑だから素人にそんなもん作らせるなと糞講師に言っとけ!(-Α-")
0174デフォルトの名無しさん2007/03/08(木) 14:13:46
>>172
屑仕様な宿題は出しても不可能な仕様の宿題を出す訳ないでしょ?
宿題スレのテンプレ持ってお引っ越ししましょうね?
0175デフォルトの名無しさん2007/03/08(木) 14:14:21
>>172
split
0176デフォルトの名無しさん2007/03/08(木) 14:17:22
2chに宿題訊きにくるような奴と将来一緒に仕事したくないなあ
0177デフォルトの名無しさん2007/03/08(木) 15:09:13
>>168
そして再帰的にやって
相互リンクで永久ループにハマってあぼーん
0178デフォルトの名無しさん2007/03/08(木) 15:11:00
>>176
たんと礼儀とルールと一般常識をわきまえて聞くなら良いけど
質問に答えてくれないと逆ギレするようなやつとは一緒に仕事したくないよな〜
0179デフォルトの名無しさん2007/03/08(木) 17:30:50
>>177
基底条件ってもんくらい分かってるだろ?
でなきゃループ内で再帰やったとき止まらんw
0180デフォルトの名無しさん2007/03/08(木) 18:32:06
1つのjavaファイルに、複数の public class を記述すると、
コンパイルしたときに、$付きの class ファイルが生成されます。
こんな書き方ありなんでしょうか?
0181デフォルトの名無しさん2007/03/08(木) 18:47:22
>>180
JVMの身にもなってみろ
0182デフォルトの名無しさん2007/03/08(木) 19:16:30
>>180
あり。

> 1つのjavaファイルに、複数の public class を記述すると、
入れ子になったクラスなら $ とかがつくし、
トップレベルに public なクラスが複数あったら
コンパイルエラーにしないと言語仕様に反する。
0183デフォルトの名無しさん2007/03/08(木) 19:57:55
Javaのことはまったくわかりません。
場違いだったら構わず指摘してください。よろしくお願いします。

http://www.strangepuzzle.com/jnetcube.html

このサイトにあるルービックキューブ用のタイマーを
動かしたいのですが、ダウンロードしたあと
何をしたらいいのかまったくわからないんです。

どうすればタイマーを動かすことができるのでしょうか。
0184デフォルトの名無しさん2007/03/08(木) 21:09:20
>複数の public class
コンパイラ通るのか!?
0185デフォルトの名無しさん2007/03/08(木) 21:10:26
質問させてください。

例えば、DBの1レコードごとに一つのHTMLページのソースが入ってる状態があります。

例
1レコード目 1 トップページ
2レコード   2 サブページ1
3レコード   3 サブページ2

HTTPリクエストに応じたレコードをJSPで表示で表示しているとします。

通常ならリクエストの形は
http://hogehoge.jsp?id=2
とかだと思います。

これをクエリを使わないで/で区切ったリクエストに応じて表示する方法はないでしょうか?
例えば
http://hogehoge.jsp/2/

↑のリクエストの形で2レコード目の要求として扱う方法はないでしょうか?
2ちゃんねるみたいに
http://pc11.2ch.net/test/read.cgi/tech/1173026128/
というふうにクエリ使わないで/だけでやる方法をさがしています
0186デフォルトの名無しさん2007/03/08(木) 21:46:42
javax.servlet.http.HttpServletRequest#getPathInfo()
0187デフォルトの名無しさん2007/03/09(金) 00:14:40
javaで英単語教材を作ってます。
今は、ボタンを押すごとに

//空所補充問題文
The rocket launch had to be ( ) because of unexpected bad weather.

//空所に入る選択肢
・aborted
・allotted
・ascribed
・accumulated

といった感じで、50個ぐらいある問題文と選択肢のセットをテキストファイルから画面に
readLine()で表示させているのですが、今の方法だとテキストファイルに並んでいる
順番でしか表示されません。やりたいことは次のとおりです。

1.この問題文と選択肢のセットをランダムな順番で表示させたい。
2.選択肢も、常に同じ4つの単語ではなくランダムな組み合わせで表示させたい。

ちなみに今は問題文と選択肢のテキストを別々のファイルに保存しているのですが
これも問題ありでしょうか?よろしくお願いします。
0188デフォルトの名無しさん2007/03/09(金) 00:45:19
import java.io.*;
import java.util.*;
public class EnglishTest1 {
public static void main(String[] args) throws IOException {
String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n";
ArrayList<Question> questions = new ArrayList<Question>();
BufferedReader r = new BufferedReader(new StringReader(dataBody));
try {
for (String line; (line = r.readLine()) != null;) {
ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";")));
Question q = new Question();
q.questionText = data.remove(0);
q.choices = data;
q.correctAnswerNumber = 0;
questions.add(q);
}
} finally {
r.close();
}
Random random = new Random();
while (questions.size() > 0) {
Question q = questions.remove(random.nextInt(questions.size()));
System.out.println(q.questionText);
}
}
}
class Question { String questionText; ArrayList<String> choices; int correctAnswerNumber; }
0189デフォルトの名無しさん2007/03/09(金) 00:46:11
あとは自分で。
0190デフォルトの名無しさん2007/03/09(金) 00:59:52
すまん Collections.shuffle(List) の方がいいな
import java.io.*;
import java.util.*;
public class EnglishTest2 {
public static void main(String[] args) throws IOException {
String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n";
ArrayList<Question> questions = new ArrayList<Question>();
BufferedReader r = new BufferedReader(new StringReader(dataBody));
try {
for (String line; (line = r.readLine()) != null;) {
ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";")));
Question q = new Question(data.remove(0), data, 0);
questions.add(q);
}
} finally {
r.close();
}
Collections.shuffle(questions);
for (Question q : questions) {
System.out.println(q.questionText);
for (String choice : q.choices) System.out.println(" - " + choice);
}
}
}
class Question {
final String questionText; final List<String> choices; final int correctAnswerNumber;
public Question (String questionText, List<String> choices, int correctAnswerNumber) {
this.questionText = questionText; this.choices = Collections.unmodifiableList(choices); this.correctAnswerNumber = correctAnswerNumber;
}
}
0191デフォルトの名無しさん2007/03/09(金) 01:09:34
Generics関係でArrays.sortの質問です。
やじるしのところで警告が出てしまいます。
抑えるにはどうすればいいでしょうかよろしくお願いします。<(_ _)>

ArrayList<Sensyu> al = new ArrayList<Sensyu>();
al.add(new Sensyu("tako", 20 ));// ArrayListにデータを追加
al.add(new Sensyu("yuura", 30 ));
al.add(new Sensyu("ponko", 53 ));

Object[] oa = al.toArray();// 配列に変換

DataComparator dcom = new DataComparator();
Arrays.sort( oa, dcom); //←‥ここで警告:[unchecked] 無検査変換が出てしまいます。

---- ---- ---- -----
public Sensyu(String namaeMoji, int ten ){
namae = namaeMoji;
tokuten = ten ;
}
---- ---- ---- -----
public class DataComparator implements java.util.Comparator{
public int compare(Object o1, Object o2){
return ((Sensyu)o2).tokuten - ((Sensyu)o1).tokuten;
}
}
0192デフォルトの名無しさん2007/03/09(金) 01:31:39
>>191
public class DataComparator implements java.util.Comparator<Sensyu> {
0193デフォルトの名無しさん2007/03/09(金) 02:41:11
>>192さんありがとうございます。
でもまだうまくいきません‥
public class DataComparator implements java.util.Comparator<Sensyu> {
になおして中身を
public int compare(HairetuArraysTest.Sensyu o1, HairetuArraysTest.Sensyu o2) {
return o2.tokuten - o1.tokuten;
}
---- ---- ---- -----

Arrays.sort( oa, dcom);
の部分を ↓
Arrays.sort( (Sensyu[]) oa, dcom); //この行番号でエラーメッセージが出てしまう。
するとコンパイル時に何の警告も出ません。しかし、
実行すると

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LHairetuArraysTest$Sensyu;
というメッセージが出てしまうのですが、どうしましょ?(o・・o)/~
0194デフォルトの名無しさん2007/03/09(金) 02:49:47
toArray で Object[] に変換してるから。
Sensy[] に変換するよう引数をとる toArray の方を使いましょう。
01951932007/03/09(金) 03:05:33
>>194さんありがとう
toArray
public <T> T[] toArray(T[] a)
のことですね、

Sensyu[] oa = al.toArray( ここがわかりませんどうしましょドジですいません );
0196デフォルトの名無しさん2007/03/09(金) 04:09:57
>>195
new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、
もしサイズが足りなければ新たに確保してくれる。
APIリファレンスのtoArrayの項目をきちんと読むんだ。
01971932007/03/09(金) 04:29:14
>>196さんありがとうございます。
でっ、できました。ヽ(^o^)丿
難解だけどAPIリファレンス出来るだけ読むようにします。
つきあってくれてありがとう‥
0198デフォルトの名無しさん2007/03/09(金) 04:48:13
音声の再生についての質問です。
好きなタイミングで音声を鳴らしたり消したりしたいのですが、
スレッド処理を用いている場合はどう書いたらいいのでしょうか?
startメソッドにac.loop;と書くと延々鳴ってしまいますし、
runメソッド内に書くとやはり音声の冒頭部分だけが繰り返し再生されてしまいます。

ソース
http://sourcepost.sytes.net/sourceview.aspx?source_id=29248

startメソッドに再生部分を記述
http://www.za.ztv.ne.jp/yosi-h/Java_Ski.html
0199デフォルトの名無しさん2007/03/09(金) 10:26:18
どなたかご存知でしたら教えてください。
JavaでPDFを作成するiTEXTにて
テーブルを作成するときに途中でページからはみ出そうなときは
次ページに改ページしてくれる方法ってないでしょうか?
よろしくおねがいします。
0200デフォルトの名無しさん2007/03/09(金) 11:21:38
>>198
アプレットは単音鳴らすか鳴らせ続けるかだからループさせつつ任意のタイミング止めて再開とかしたいなら適当なサウンドエンジン使った方が良いよ。

>>199
どっかで制御方法見た気がするが・・・javadocくらい叩き込んだ?
0201デフォルトの名無しさん2007/03/09(金) 11:30:17
>200
javadocはよくわかりませんが
こちらのサイトでiTEXTのコマンドについては大体わかったのですが
ttp://itextdocs.lowagie.com/tutorial/
質問した内容のサンプルコードが無かったので悩んでます。
0202デフォルトの名無しさん2007/03/09(金) 11:36:18
>200
ありがとうございます。
iTEXTのJAVAdoc見つかりました。
理解できるか分かりませんがちょっと読んでみようと思います。
0203デフォルトの名無しさん2007/03/09(金) 11:39:01
table.tableFitsPage
きっとコレジャン!
200サンクス!
0204デフォルトの名無しさん2007/03/09(金) 13:53:33
>>191
いろいろ解決方法はあるみたいだが、

al = Collections.checkedList(al, Sensyu.class);

を使いたくなってくるなあ。これならObjectなど他の型に渡しても
警告が出なくなる。

@SupressWarning("unchecked")でもいいけどさ
0205デフォルトの名無しさん2007/03/09(金) 14:54:12
https://sdlc6e.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=A232C894EA5C4D2F03723CB5357D7872;jsessionid=A232C894EA5C4D2F03723CB5357D7872
まとめ見てここからダウンロードしようとしてるんですけどこの後どうすればいいんですか?
0206デフォルトの名無しさん2007/03/09(金) 16:47:43
>>205
Accept License Agreement してから
Java(TM) SE Development Kit Documentation 6, Japanese 選べば?
英語版欲しいなら、English の方選んで。
0207デフォルトの名無しさん2007/03/09(金) 16:50:25
>>206
サンクス
0208デフォルトの名無しさん2007/03/09(金) 19:47:33
英語読めない奴が英語版欲しいと思えんが、jdk6のl10n終わって良かったな。
相変わらず変な訳だが
0209デフォルトの名無しさん2007/03/09(金) 20:04:01
そういやなんでJavaって日本語版あるんだろ?
0210デフォルトの名無しさん2007/03/09(金) 20:18:14
むしろ英語マニュアルのが読みやすい俺ガイル
0211デフォルトの名無しさん2007/03/09(金) 21:09:04
>>208
i10n って、日本語訳終わっただけで中国語訳とかまだじゃない?
0212デフォルトの名無しさん2007/03/09(金) 21:37:28
>>209

1. 市場が大きい。
2. 訳の需要が大きい。

日本語は造語力が大きいので高等教育で用いられる用語も訳すことが出来、
結果として日本語しかできなくても高等教育が受けられる。
アジアの準先進国の言語などでそれほど造語力が高くない場合、そこまで
できないので、英語で高等教育を行わざるを得なくなり、結果として高等
教育を受けた人はみな英語が出来るので、英語で困らなくなってしまう。

という意見を聞いたことがある。
0213デフォルトの名無しさん2007/03/09(金) 21:43:59
日本だろうと曲がりなりにも高等教育を受けたら普通英語ぐらいできると思うのだが

もし高等教育の意味が文字通り高卒の事だったのなら謝る
0214デフォルトの名無しさん2007/03/09(金) 21:49:04
>>213
学校教育英語に幻想持ってないか?
0215デフォルトの名無しさん2007/03/09(金) 21:52:08
ただ単にi18nの一環でかつ日本人は母国語版を欲しがる人種ってだけじゃね?

技術文書の翻訳版を欲しがるのは日本人くらいだし
02161252007/03/09(金) 22:32:27
Rubyでは簡単に実現できたので、再びJavaに戻ってきて作成しています。

ファイルのコピー、移動はFileクラスとFileInputStream,FileOutputStreamあたりを使うことで、簡単に実現できました。

ところでお聞きしたいのですが、InputStreamのread( byte[] buffer )、OutputStreamのwrite( byte[] buffer )で使用する
配列サイズというのは、どれくらいが適しているのでしょうか?
バッファーが大きければ処理が早く済むがメモリの消費量が大きくなる、ということはなんとなくわかるのですが、
適量のバッファーサイズの見当がつきません。

現在主流となっているマシンスペックだと、適量のバッファーサイズとはどれくらいなのでしょうか?
02171872007/03/09(金) 22:37:51
>>190
返事が遅くなってしまってすみません。
提示していただいたコードを参考にやってみます。
ありがとうございました。
0218デフォルトの名無しさん2007/03/09(金) 22:40:22
>>213
英語で小説読もうとして三日であきらめたことを思い出した
資料としてなら読み進めるのは大して苦じゃないが大量になるとかなりウザい
メインで英語使うなんて信じられん
0219デフォルトの名無しさん2007/03/09(金) 22:54:05
>>216
セオリーは無いと思う。
俺はなんとなく 4kB 〜 16kB あたり取ってるが。
0220デフォルトの名無しさん2007/03/09(金) 23:01:30
>>218
小説と技術文書は全然違うでしょ。
語彙空間がまるで違うよ。
俺自分の専攻の論文ならすらすら読めるけど、
一般向けの小説(ハリウッド映画の原作)は
3ページで挫折しかけてるw
0221デフォルトの名無しさん2007/03/10(土) 00:26:59
jarファイルをダブルクリックしても反応してくれません。
(Test.classファイル)
class Test{
    public static void main(String[] args){
        System.out.println("aaa");
    }
}
これを
 jar cf Test.jar Test.class でjarファイル生成
 jar xf Test.jar でjarを解凍
 マニフェストファイルにMain-Class: Testを追加して保存
 jar cfm Test.jar META-INF\MANIFEST.MF Test.class で再びjarに圧縮
こいつをダブルクリックしてもコマンドプロンプトが出てきてくれないです。
エラーメッセージも出ず無反応です。
ただし、コマンドプロンプトから
 java -jar Test.jar と打ち込むと
aaa と表示されます。
どなたかお助けください。
0222デフォルトの名無しさん2007/03/10(土) 00:47:21
関連付けの問題か、あるいはコマンドプロンプトが一瞬出ているのに気付かないかのどっちか
0223デフォルトの名無しさん2007/03/10(土) 01:00:44
3つの整数をキーボード入力させてそこから計算させるプログラムを作っているのですが、
入力させた文字列の中に英字または小数がある場合、「○個目には整数を入力してください」という
メッセージを表示させたいのですが、Integer.parseIntでの例外をNumberFormatException
で拾うという手段を取ってみたのですが、この場合何個目の入力が整数でないのかを個別に
表示することが出来ません。どの入力が間違っていても同一のメッセージ表示しか出来ません。

この方法以外に入力された文字列の中で整数以外の入力を判別して、どの入力がエラーなのかを知らせる方法はありますか?
0224デフォルトの名無しさん2007/03/10(土) 01:02:50
ちとその部分のコード書いてみ?
0225デフォルトの名無しさん2007/03/10(土) 01:10:12
>>221
Windowsだとjavaじゃなくjavawに関連づけられてるかもしれない。
0226デフォルトの名無しさん2007/03/10(土) 01:31:23
>>222
>>225
ありがとうございます。今見てみましたが、javawなってました。
javaにかえて再びwクリックしてみると一瞬だけコマンドプロンプトが表示されましたが、すぐに消えてしまいました。
これはこういうものなのでしょうか?コマンドプロンプトの画面をずっと表示させておくことは出来ますか?



0227デフォルトの名無しさん2007/03/10(土) 01:45:48
BufferReaderか何か使ってキーボード入力待ちにするのが一番お手軽w
0228デフォルトの名無しさん2007/03/10(土) 01:50:28
今ならjava.util.Scannerを薦めたい。
ttp://www.javadrive.jp/start/scanner/index1.html
0229デフォルトの名無しさん2007/03/10(土) 02:04:30
なるほど。勉強になりました。ありがとうございました。
0230デフォルトの名無しさん2007/03/10(土) 03:57:05
空の文字列 "" と、null の違いがよくわからない。。。
0231デフォルトの名無しさん2007/03/10(土) 04:16:57
>>230
空の文字列は、長さは0だけど文字列。つまり、Stringのオブジェクトが存在する。
nullは、何もないということ、オブジェクトがないという状態を表す。
0232デフォルトの名無しさん2007/03/10(土) 04:20:30
>>221
パッケージ作っといて修飾名でクラス指定してないって訳じゃなさそうだね。

winの関連づけはjavawだからそれはいじらないでコマンドプロンプトから打て。

CUIプログラムをクリックしても動きません!って発想が既におかしい。プロンプト立ち上げてからならjavaが終了してもプロンプトが残ってて消えないはず。

OSのしくみとかそこら辺を分かってないだけだからまずそこら辺を勉強した方が良い。
てか独学?専門生?

>>230
MS VMだと同義w
nullはObject派生型なんだけど値は何にも関連付けられてない。

空文字列は"\u000000"になるんだっけ?
他言語やってて言語によって定義が違うから掴めないの?
ただ単にjavaのnullが分かってない?
後者ならjavaの本見ればいい。
0233デフォルトの名無しさん2007/03/10(土) 04:39:01
>>232
> MS VMだと同義w
そんな話は聞いた事がない。

> nullはObject派生型なんだけど値は何にも関連付けられてない。
Java では null は null型だよ。空型とか訳される事もあるけど。
Object からは派生してない特別な型。

> 空文字列は"\u000000"になるんだっけ?
は?

薀蓄語りたいなら、ちゃんと言語仕様ぐらい見てからやれ。
0234デフォルトの名無しさん2007/03/10(土) 04:39:56
>>232
>nullはObject派生型なんだけど値は何にも関連付けられてない。

null は null 型のただ一つの値。
Object 派生型でもないし値が関連付けられていないわけでもない。
0235デフォルトの名無しさん2007/03/10(土) 05:39:34
>>232
何か自分の知識を語りたいのは分かるんだが
その表現をする言語力が伴っていないようで少し哀れ
相手の理解力を超えた表現しか出来てないよ・・・・
02362232007/03/10(土) 06:45:41
>>224
遅いレスで申し訳ありません。

try{
timeAtBat = Integer.parseInt(str1);
sacrifice = Integer.parseInt(str2);
hit = Integer.parseInt(str3);


average = (double)hit / (timeAtBat - sacrifice);

NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(3);

System.out.println("打率は" + formatter.format(average) + "です。");
}
catch (NumberFormatException e) {
System.out.println("数は0〜1000の整数で入力ください");
}

str1,2,3はBufferedReaderを使って読み込んでいます。
System.out.println("数は0〜1000の整数で入力ください");の部分を
打席数、安打数、犠打数のどの入力が整数でないのかを"〜数は0〜1000の整数で入力ください"
でそれぞれメッセージを表示させたいのです。

助言をいただけたら幸いです。
0237デフォルトの名無しさん2007/03/10(土) 09:01:07
>>236
parseInt を3つまとめてtry-catchするんじゃなくて、
ひとつづつtry-catchすればわかるじゃん。
あとはカウンタ変数でも作って、今何番目のparseIntやってるかわかるようにするとか。
02382232007/03/10(土) 09:06:27
>>237
ひとつずつキャッチする手はもうやってみたのですが、やっぱりそれが一番早いですかね?
カウンタ変数のほうをチャレンジしてみたいと思います。
ありがとうございました!
02392232007/03/10(土) 09:17:34
>>237
忘れてました。ひとつずつtryのすぐあとでcatchしていくと例外は拾えるんですけど、
処理をそこで終われないですよね?その後にある計算式は例外でも実行されてしまって
エラーになってしまいました。
もし、ひとつずつtry-catchしていくのであれば、どこに計算式などを入れるべきですか?
0240デフォルトの名無しさん2007/03/10(土) 09:41:12
>>236
入力ください
で吹いたw
0241デフォルトの名無しさん2007/03/10(土) 09:42:37
>処理をそこで終われないですよね?
return;
0242デフォルトの名無しさん2007/03/10(土) 10:39:34
>>239
try-catchだと記述が長ったらしくなるから、parseをラップするメソッドを作る手もある。
引数は文字列、戻り値はInteger但しparse失敗時はnull。
そのメソッドの中でtry-catchを使う。
.NETにあるTryPaseの亜流みたいなもん。
0243デフォルトの名無しさん2007/03/10(土) 10:55:31
HashMapを使って文字列と数字を扱いたいのですが
HashMap<String, int>はintがObjectじゃないからできないんでしょうか?
この場合HashMap<String, Integer>とするべきですか?
02442212007/03/10(土) 10:59:49
>>232
スクールに通ってましたが素人同然です('A`)
関連付けはjavawを変更できないとすると、
結局>>221のプログラムはwクリックでは実行出来ないということでしょうか?
誰かにこのプログラムを使ってもらう時に
「コマンドプロンプトからjava -jar Test.jarって入力してね」
と言うのはちと苦しいです。
0245デフォルトの名無しさん2007/03/10(土) 11:03:57
>>243
プリミティブ型は入れられないのでそうする必要がある。
使うときはautoboxing/unboxingが効くので直接プリミティブを使う
コードを書いてもOK。コンパイラがこっそりIntegerに入れたり出したり
してくれる。

0246デフォルトの名無しさん2007/03/10(土) 11:05:08
@echo OFF
java -jar Test.jar

なバッチを一緒に置いておいてもダメだっけか?

最近WindowsでJava使ってないから忘れたわ。
0247デフォルトの名無しさん2007/03/10(土) 11:15:38
>>245
ありがとうございます
色々調べたり実験したりでちょっと遅れてしましました

宣言だけIntegerにすれば、他ではintとして扱っても問題ないんですね
0248デフォルトの名無しさん2007/03/10(土) 11:52:50
>>244
ダブルクリックみたいなGUIど真ん中なことやりたかったら、普通はswingとか使う。
コマンドプロンプトがどうしても必要な場合は>>246の言うとおりバッチでラップすればおk。
0249デフォルトの名無しさん2007/03/10(土) 14:31:28
>>219
ありがとうございます。
調べてみたら、Javaの上位IOクラスは内部バッファとして8192byteつかっていることがわかりました。
その値に統一して使いたいと思います。
0250デフォルトの名無しさん2007/03/10(土) 14:34:43
バッチファイル使うんなら、pause で入力待ちすればOKか。
02512212007/03/10(土) 15:47:13
バッチファイルというのは初耳でした。
>>246をTest.jarのあるフォルダにa.batとして保存してこれをwクリックで無事実行できました!
皆さんに感謝します。
02522302007/03/10(土) 17:44:56
なるほど、ヌル文字列とヌルポインタの関係みたいなもんですね(`・ω・´)
遅レスですが、ありがとうございました。
0253デフォルトの名無しさん2007/03/10(土) 17:55:32
Cのようなポインタを使用するプログラムだと常識として覚えてるものだが、
JAVAのようなオブジェクト指向だとポインタ意識しなくていいから知らない人が増えてきたな。
便利になると共に起こる、知識不足の弊害だな。
0254デフォルトの名無しさん2007/03/10(土) 18:10:00
>>253
>JAVAのようなオブジェクト指向だとポインタ意識しなくていいから
んなアホな
0255デフォルトの名無しさん2007/03/10(土) 18:13:10
>>254
ポインタ操作って普通に使わないでしょう。
0256デフォルトの名無しさん2007/03/10(土) 19:23:16
ポインタ演算とか冗長な書き方を許容してないだけでポインタを使ってることを意識しないわけじゃないだろ
0257デフォルトの名無しさん2007/03/10(土) 19:27:04
意識しなくていいというと語弊があるが、
実際に意識していない初心者が増えてきたってことだと思う。
0258デフォルトの名無しさん2007/03/10(土) 21:02:20
private int id;
public int getId(){return id;}
public void showId(){
  System.out.println("idは" + ● + "です。");
}
この場合、●に入れるのはidかgetId()のどっちがいいんかな。
好みの問題でおk?
0259デフォルトの名無しさん2007/03/10(土) 21:03:49
>>216
つうか、他のIOクラスでデコレートすれば
サイズなんて気にしなくても良いはずだが。
0260デフォルトの名無しさん2007/03/10(土) 21:06:24
>>246
つうか、マニフェストとJava Web Start使えよ
0261デフォルトの名無しさん2007/03/10(土) 21:22:11
>>258
getId() がいいと思う。
0262デフォルトの名無しさん2007/03/10(土) 21:27:19
>>261
thx
0263デフォルトの名無しさん2007/03/10(土) 21:39:39
>>261
おなじ暮らすないならidでもいいとは思うけど。
0264デフォルトの名無しさん2007/03/10(土) 23:06:13
>>261
うーん、悩ましい問題だなぁ…好みというか、目的による?
けど、まぁ、getId()のほうが良いと思う。

例えばそのクラスのサブクラスでgetId()をオーバーライドして
getId() { return "00" + id; }
とかしたときに・・・
0265デフォルトの名無しさん2007/03/10(土) 23:11:29
>>264を風呂入る前に訂正

まず、アンカーは>>258に。

あと、
×getId() { return "00" + id; } 
○getId() { return "00" + super.getId(); }
0266デフォルトの名無しさん2007/03/10(土) 23:13:02
>>265
…駄目だ俺(笑

getId()は int なのな。
まぁ意図は汲み取ってください(汗
0267デフォルトの名無しさん2007/03/11(日) 01:21:31
抽象化はその部分における汎用性・再利用性を増すが
同時に複雑さが増し、保守が難しくなる。

また、よく考えられていない抽象化は、
結局それを使う場合に1から考え直す必要があり、
無駄な労力になる。むしろ、誤解を生む弊害すらある。

そして、「よく考える」とは言っても難しく、的外れになることが多く、
無駄な抽象化がプログラム中に散乱することになりやすい。

そこで、アジャイル的には、まず単純に作って、
例えば顧客に叩いてもらって、抽象化が必要なところを早期に発見する。
(テスト駆動なら、まずテストに叩かれるだろう)

その観点から見ると、
必要と分かるときが来るまで getId() よりも id を使うのがいい。
0268デフォルトの名無しさん2007/03/11(日) 03:00:38
外から見ることを基準に考えちゃ駄目なのかな。
getId で取得した値と showId で表示した値は、大抵の場合で一致しなければおかしいから、
直感的に考えた場合は id より getId のほうが適切だろうと思う。たとえ getId が final だったとしてもね。
0269デフォルトの名無しさん2007/03/11(日) 03:05:07
追記:「外から見る」ってのは、id が private であって外から見れないことも含めてる。
外から見た場合、id を使うと 『何かよく分からないけど ID の内部表現を showId が表示している』 ってなって分かり難いんじゃないかと。
0270デフォルトの名無しさん2007/03/11(日) 08:53:30
>>268-269
同意

使う側の視点で考えるのがいいと思う
idという情報をを操作したい人のためのものなのだからその人のことを
考えなければ、悪く言えば独りよがりな実装になってしまうと思う
0271デフォルトの名無しさん2007/03/11(日) 09:06:40
俺の経験から言うと、極力生のフィールドは使うべきではない。
ボトルネックになる可能性、どうしても生フィールドでなければできない処理などは
例外的に使用を許可する、くらいの縛りを加えるようにする方が良い。
トラブル対応、仕様変更対応には絶対にこの方針が必要。無いと死ぬ。大規模だとね。
0272デフォルトの名無しさん2007/03/11(日) 09:19:12
使う場所によってフィールドを直接参照したりgetter経由だったり
まちまちなのは良くない。
0273デフォルトの名無しさん2007/03/11(日) 11:09:41
モジュール結合度の観点から考える結合度は低い方が独立性が高いため、
データ結合で単一のデータを引数として渡すべき。
0274デフォルトの名無しさん2007/03/11(日) 11:29:20
iを打てば補完できるのでid。
getterはgetIまで打たないと補完が面倒。
0275デフォルトの名無しさん2007/03/11(日) 12:02:11
>>271
同意!

>>274
開発時に面倒臭がって楽しようとすると後々痛い目にあったりする予感
0276デフォルトの名無しさん2007/03/11(日) 12:32:01
30個近くのclassファイルをjarにコンパイルするにはどうすればいいんですか?
0277デフォルトの名無しさん2007/03/11(日) 12:49:20
>>276
jar cf foo.jar *.class
詳しくはここを読め。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/jar.html
「jarにコンパイル」と言われると違和感を覚えるな。
0278デフォルトの名無しさん2007/03/11(日) 13:17:31
>>274
getまで打てば、そのクラスのアクセッサが一覧出来るのでむしろ便利。
フィールド名だとごちゃごちゃしてる。
>>271
んだんだ。
それに、遅延初期化の為にも入れているかな。
private Hogehoge hogehoge;
public Hogehoge getHogehoge(){
if( hogehoge==null ){
hogehoge = new Hogehoge();
}
return hogehoge;
}

(synchronized はどうしたとかややこしい話は取りあえず抜きな、初心者スレだと荒れそうだから)
0279デフォルトの名無しさん2007/03/11(日) 13:25:43
>>278
フィールドが20個あればgetまで打っても20個出てきてそこから選ばないといけない。
変数名なら頭文字打つだけで絞り込める。
まあ俺はthis.をつけるのでそこまで打つだけでOKのときもあるが。
0280デフォルトの名無しさん2007/03/11(日) 13:26:13
>>277
j2re1.4.2_13 をDL、インストールしてみたのですがこの後がわかりません
コマンドプロンプトに打ち込んでも

'jar' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

とでてきてしまいます;;
0281デフォルトの名無しさん2007/03/11(日) 13:59:17
パスが通ってない
>>1を読め
0282デフォルトの名無しさん2007/03/11(日) 14:06:44
>>280
j2re だと jar 入ってないような。 j2dk か jdk 使え。
0283デフォルトの名無しさん2007/03/11(日) 14:07:40
>>280
コマンドプロンプトに
java -version
って打ってみ?
0284デフォルトの名無しさん2007/03/11(日) 14:45:08
フィールドが20個あったらthis打っても20個候補が出るだろうによw
0285デフォルトの名無しさん2007/03/11(日) 14:48:50
JAVAでもプロパティ導入すればいいのに・・・
わざわざ毎回アクセッサメソッドつくるとフィールド参照からメソッド記述にするのめんどくさい。
0286デフォルトの名無しさん2007/03/11(日) 14:49:35
>>284
getと3文字打つのが怠いんだろうね。
って、どんだけwwww

まぁ、publicアクセス不要なフィールドにはgetter付けないから
20個フィールドがあってもホントはもっと絞れるんだけどね。
0287デフォルトの名無しさん2007/03/11(日) 14:55:29
>>285
リファクタリング機能がある開発環境使えば良いじゃん。
0288デフォルトの名無しさん2007/03/11(日) 14:56:56
>>285
jdk7の議論でプロパティは話題に上っている。

[mustang/Java SE 6] 次世代Javaの動向 4 [dolphin]
ttp://pc11.2ch.net/test/read.cgi/tech/1163986696/
の中に、情報へのポインタがあるよ。

まだ本決まりじゃなくて構文は揺れてるだろうけど、
クロージャよりは揉めずに入りそうな気がしてる。
0289デフォルトの名無しさん2007/03/11(日) 15:19:31
>>258
つ もしかして "自己カプセル化"
0290デフォルトの名無しさん2007/03/11(日) 15:38:54
>>265
同じクラスないであればthis.idで良いジャマイカ

スーパーなときだけgetId()
0291デフォルトの名無しさん2007/03/11(日) 15:40:32
>>278
Factory MethodパターンやFlyweightパターンで
改造したくなってくるなあ。
0292デフォルトの名無しさん2007/03/11(日) 15:41:42
>>284
どういうクラスなんだか。委譲も集約を
ちゃんと使っていれば極力減らすこともできよう
0293デフォルトの名無しさん2007/03/11(日) 15:42:06
>>285
IDEで自動生成しろよ
0294デフォルトの名無しさん2007/03/11(日) 16:42:11
>>292
たとえば携帯電話のスペックをオブジェクトで表現しようとしたら
20なんて軽く超えると思うけど。どうやって削るの?

高さ
幅
厚さ
質量
連続待受時間静止時
連続待受時間移動時
連続通話時間音声通話時
連続通話時間テレビ電話時
液晶サイズメインディスプレイ
液晶サイズサブディスプレイ
液晶最大同時発色数メインディスプレイ
液晶最大同時発色数サブディスプレイ
液晶解像度(ドット数)メインディスプレイ
液晶解像度(ドット数)サブディスプレイ
名前最大登録件数
電話番号最大登録件数
メールアドレス最大登録件数
メール保存容量送信メール
メール保存容量受信メール
iアプリ保存件数
ミュージックプレーヤー
バックグラウンド再生
連続再生
iメロディ・着信メロディ
バーコードリーダー
赤外線通信対応
Bluetooth通信
FOMAプラスエリア対応
0295デフォルトの名無しさん2007/03/11(日) 16:49:44
携帯電話という込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする
液晶が別のメーカーのだったら一気に変えないといけないんだよな、そのクラス……
0296デフォルトの名無しさん2007/03/11(日) 16:54:28
>>294
なんで無理して一つのクラスでやるんだよw
0297デフォルトの名無しさん2007/03/11(日) 16:54:52
いやいや、例ですよ。車でも住宅でもなんでもいいけど変数が20なんて珍しくない。
0298デフォルトの名無しさん2007/03/11(日) 17:00:53
>>295の言葉を借りるが、
車でも住宅でもなんでもいいけど込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする
0299デフォルトの名無しさん2007/03/11(日) 17:02:24
オブジェクト指向なんだから、きちんと設計してから作らないとね。
まず、デザインパターンを覚えるといいかな。
0300デフォルトの名無しさん2007/03/11(日) 17:08:54
だー、論点そこじゃねえええ。
1つのクラスですべてを完結させるなんて一度も書いてねえ。
親クラス、子クラスのように抽象化していったって
20以上の変数を持つクラスはありえるってことです。
0301デフォルトの名無しさん2007/03/11(日) 17:15:42
あったらあったで仕方ないだろ。
おれならまず分けることを考えるが。
0302デフォルトの名無しさん2007/03/11(日) 17:18:16
そりゃjava.awt.Componentとか持ち出してきたら50個くらい持ってるようなのもあるわ
しかし普通はそんなのはないぞ
0303デフォルトの名無しさん2007/03/11(日) 17:22:12
よくこんなどーでもいい話題にがんがんレスが付けられるな
0304デフォルトの名無しさん2007/03/11(日) 17:33:27
あったら、あきらめる。

以上。
0305デフォルトの名無しさん2007/03/11(日) 18:08:06
どっちみち「エディタで候補を絞るのがメンドイから」なんて理由でクラス設計したらあかん罠w
0306デフォルトの名無しさん2007/03/11(日) 18:18:15
private int hogehoge;

って書いたら、内部で使うために

private int getHogehoge() {
 return hogehoge;
}

て書かなきゃいけないん?
0307デフォルトの名無しさん2007/03/11(日) 18:29:53
内部なら直にアクセスしろよ
0308デフォルトの名無しさん2007/03/11(日) 18:30:40
自己カプセルフィールドって考えもある
0309デフォルトの名無しさん2007/03/11(日) 18:44:40
さすがにそういうあたりは必要なときにリファクタリングすればいいようにおもうなあ
0310デフォルトの名無しさん2007/03/11(日) 18:54:48
privateなら変更することになっても影響範囲は閉じてるし、
必要になってからメソッドにするでいいよ。
0311デフォルトの名無しさん2007/03/11(日) 19:31:02
あるURL
[1] http://www.hogehoge.ho.ge/aaa/bbb/index.html
からのHTMLの(?)相対アドレス
[2] "bbb.html" に対応するURLは
[3] http://www.hogehoge.ho.ge/aaa/bbb/bbb.html
だと思うのですが、

[1]と[2]から[3]を得る機能はJavaSE6にはありますか?
0312デフォルトの名無しさん2007/03/11(日) 20:23:39
>>311
java.net.URI uri = java.net.URI.create("http://www.hogehoge.ho.ge/aaa/bbb/index.html";).resolve("bbb.html"); とか。
0313デフォルトの名無しさん2007/03/11(日) 20:56:28
>>294
配列

or


ハイスペック携帯電話のみサポートに切り替えて解決
0314デフォルトの名無しさん2007/03/11(日) 21:00:53
>>300
『分割し、統治せよ』

『アジャイルソフトウェア開発奥義』にはそう乗っている。


だが、
どうしてもクラスを分割できなければ、
やれることはまだまだある。
ディスプレイのサイズなんぞstaticでやれ。
そんなに苦しいなら配列でやれ。
0315デフォルトの名無しさん2007/03/11(日) 21:02:53
>>311
そういう機能


とはいわん気がするが。


そういうAPIはありますか、だろ。

機能というとまるで言語仕様のことみたいだ。

その手のAPIは言語仕様とは別だしな
0316デフォルトの名無しさん2007/03/11(日) 21:28:56
クラスの設計についての本読み始めたところだから結構興味がある。
VCのMFCなんか数十個の関数や変数を含んでいるクラスが普通だから
そこまで分割する必要があるのかどうか、
分割するといいことがあるのか知りたいところ。
0317デフォルトの名無しさん2007/03/11(日) 21:37:17
ソースファイルの数が増えてリッチな気分が味わえます。
0318デフォルトの名無しさん2007/03/11(日) 21:39:55
保守性に強くなるとかそんなんだろ
コピペが減るとか
0319デフォルトの名無しさん2007/03/11(日) 21:51:43
>>314
すまんが、何ページ?
0320デフォルトの名無しさん2007/03/11(日) 22:07:18
MFCはDocumentViewアーテクチャだからあまり参考にするべきでないけど。
変数や関数の数自体は気にするべきではない。
気にするべきはモジュール結合度と強度、クラス設計で委譲・継承などのデザインパターンといったところを気にするべき。
0321デフォルトの名無しさん2007/03/11(日) 22:19:18
質問よろしくです。
tiffファイルを操作する簡易エディタを作りたいと思っています。
やりたいこと
・複数のtiffファイルを結合して保存する。
・複数頁のtiffファイルを1ページ毎に分けて保存する。
・画像の上にテキストを挿入する
Java Advanced Imaging(JAI)を使えば簡単に作れますか?
他に便利なAPIがあれば教えてください?
0322デフォルトの名無しさん2007/03/11(日) 23:36:16
質問です。
Javaのメソッドで、C++でいうところのconstなクラス関数を作りたいのですが、可能なのでしょうか?
つまり、そのメソッドはメンバー変数の書き換えを行なわないということを保証させたいのです。

色々調べてみたところ、Javaにconstはないとのこと。
似たような機能か?と思ってfinalについても調べてみましたが、期待した内容ではありませんでした。
0323デフォルトの名無しさん2007/03/11(日) 23:37:58
>>322
>finalについても調べてみましたが、期待した内容ではありませんでした。

kwsk
0324デフォルトの名無しさん2007/03/11(日) 23:43:08
>>323
・finalとついたメソッドは、オーバーライドされなくなる
・finalとついた変数は、書き換えられることがなくなる(配列の中身などは書き換えられるので注意)
・finalとついたクラスは、継承されなくなる
といった効果のようでした。
0325デフォルトの名無しさん2007/03/11(日) 23:53:29
>>322
static
0326デフォルトの名無しさん2007/03/11(日) 23:56:46
>>322
enumじゃダメなん?
0327デフォルトの名無しさん2007/03/11(日) 23:58:04
322の内容が理解できない人が多くてワロタw
0328デフォルトの名無しさん2007/03/11(日) 23:59:59
>>325
ああ、なるほど。確かに。
でも、ちょっと別の制限が強くなりすぎますね。

やりたいことは

abstract class IScene
{
abstract void Task();
abstract void Draw();
}
として、これをオーバーライドさせてゲームのシーンを作らせたいのです。
その際、Drawではメンバー変数の書き換えを禁止させたいのです。
0329デフォルトの名無しさん2007/03/12(月) 00:07:51
staticだと、インスタンス内の変数書き換えは不可能になるが、読み込みも不可能になっちまうか・・・
0330デフォルトの名無しさん2007/03/12(月) 00:14:34
メンバー変数を、参照は出来るが変更は不可にしたいということなら、
変数はprivateで宣言しておいて、publicもしくはprotectedなアクセサメソッドを
公開しておけばいいんじゃない?
0331デフォルトの名無しさん2007/03/12(月) 00:18:13
>>330
それ全然『メンバー変数の書き換えが行なわれないこと』が保証できてねーじゃん
継承する側がいくらでも間違いを犯せる
C++でもconst_castしちまえばメンバー変数いじれるけどなw
0332デフォルトの名無しさん2007/03/12(月) 00:19:41
public interface Const{
  public static final 〜
}

じゃダメなの?
0333デフォルトの名無しさん2007/03/12(月) 00:24:07
>>322
基本的に無理。
標準APIのメソッド呼び出した時に、そのメソッドがインスタンスの状態を変更しない事まで考えるなら。
JSR-308 のサンプルにある @ReadOnly が それっぽいけど、早くてもJDK7にならないと入らない。

自分のクラスのメンバ変数の書き換え禁止だけなら、@Const みたいなアノテーション自作して、
@Const処理するようなAPTまで自作すれば出来なくはないけど……
0334デフォルトの名無しさん2007/03/12(月) 00:24:44
>>331
なんで?

abstract class IScene
{
private var1;


abstract void Task();
abstract void Draw();

public getVAr1(){
return var1;
}
}

ということだけど。
「Drawではメンバー変数の書き換えを禁止させたいのです」
という要求には答えてると思うけど。
もっとも、Task()メソッドからも書き換えは出来ないけど。
0335デフォルトの名無しさん2007/03/12(月) 00:24:53
>>332
すいません、>>328がinterfaceで書くべきものだということは分かるのですが、
それでメンバー変数が書き換えされないことが保証される理由がわかりません。
>>332のfinalは何に対してついているものなのでしょうか?(変数?メソッド?)
0336デフォルトの名無しさん2007/03/12(月) 00:27:05
>>334
質問者じゃねーけど、やりたいことくらいは推測できる。お前も少しは推測して書いてやれよw
継承元の変数をいじらせたくないって要望じゃねーだろ。
継承先の変数であってもいじらせたくねーんだろ。
03373322007/03/12(月) 00:33:37
>>335
constというか不変変数って意味で回答したんだけど
どっからでもアクセスできるしあなたが求めてるものとは違うと思う。
俺には難しくてついていけてないw
一応意図したものは↓みたいなもの。

public interface Const{
  /** 1ページの表示件数 */
  public static final int COUNT_PER_PAGE = 10
  /** 全ページに共通のタイトルプレフィックス */
  public static final String TITLE_PREFIX = "[HOGEHOGESERVICE]";
}
0338デフォルトの名無しさん2007/03/12(月) 00:33:54
>>336
そういう意味か?
自分で定義した変数を読み取り専用にするなんて、
C++でもできないだろ。

スーパークラスで管理する状態などを、サブクラスで勝手に
書き換えられるのが嫌なんじゃないのかな。

だから>>334でいいかと思うのだが。
0339デフォルトの名無しさん2007/03/12(月) 00:38:14
えっとすいません。情報が交錯しているようなので再度説明します。

public interface IScene
{
void Task();
void Draw();
};

ゲームにおいて、全てのシーンは上を継承することを複数人プロジェクトにおいて義務づけます。
そして、このシーンを適切に毎フレーム呼び出す機構は私が作ります。

TaskとDrawは基本的に交互に呼ばれるのですが、フレームスキップが発生した時Drawの呼び出しが飛ばされる可能性もあるのです。
その際、Drawの中でメンバー変数の書き換えをするようなプログラムをされると、わかりにくいバグに繋がります。

C++の時は
class IScene
{
void Task() = 0;
void Draw()const = 0;
};
で大丈夫だったのですが…。
という相談です。
>>333については今ぐぐりながら理解しようとしているところです…。
0340デフォルトの名無しさん2007/03/12(月) 00:39:20
>>338
>自分で定義した変数を読み取り専用にするなんて、
>C++でもできないだろ。
できるよハゲw
const関数は何のためにあんだ。
0341デフォルトの名無しさん2007/03/12(月) 00:43:20
C++のconstメンバ関数が何なのか知らない奴がレスしてるな。
03423382007/03/12(月) 00:43:38
悪い、別に断言したつもりはなかったんだが。
「C++でもできないだろ」
じゃなくて
「C++で出来たっけ?」だな。
C++はずいぶんやってないんで忘れた。

0343デフォルトの名無しさん2007/03/12(月) 00:56:05
てか、なんでJavaにはconstがないのか不思議でならない。
キーワードだけは定義されてるって書いてあるけど、なんで削られたん?
0344デフォルトの名無しさん2007/03/12(月) 01:15:37
C# には const あるけど const 関数は無いな。
0345デフォルトの名無しさん2007/03/12(月) 01:18:40
>>343
お馬鹿なJavaプログラマにはまともに使いこなすことができないだろうという判断から。
0346デフォルトの名無しさん2007/03/12(月) 01:23:46
むしろその逆で過剰な安全装置と見なされて削られたって話じゃないの?
C++をメインで使ってる身からすると全然過剰だとは思わないけど。
0347デフォルトの名無しさん2007/03/12(月) 04:47:35
const関数で呼び出されたら、その中から変数にアクセスする際に
やはり const として宣言されていない関数は呼び出すことができないのかな
0348デフォルトの名無しさん2007/03/12(月) 06:43:57
コンパイル時に「変数が変更される可能性があります」とエラーが出る
呼び出せたらconstの意味がない
0349デフォルトの名無しさん2007/03/12(月) 09:19:31
JavaってC#におけるXmlSerializerのようなものは無いんでしょうか?
オブジェクトを丸ごと渡してやればXMLファイルに書き出してくれて、
XMLファイルを丸ごと渡してやればもとのオブジェクトを生成してくれるという
0350デフォルトの名無しさん2007/03/12(月) 09:34:33
>>349
近いのは java.beans.XMLEncoder と java.beans.XMLDecoder かな?
保存できるのは beans のプロパティだけになっちゃうけど。
0351デフォルトの名無しさん2007/03/12(月) 16:33:01
String s;
if(s = "")
{

}

間違えて上のコードを入力したとき s = "" の部分に「型の不一致: String から boolean には変換できません。」
というエラーメッセージが出てきました。
自分にはどう見ても右辺左辺ともにString型としか思えないのですが、なぜこのようなメッセージが出たのですか?
0352デフォルトの名無しさん2007/03/12(月) 16:39:02
まず、javaでは比較する場合は==を使う
=だと代入になってしまい、ifの中にはbooleanを入れなきゃいけないのにStringになってしまう
次に、==にしてもお前の期待する動作はしない
java String 比較 でググれ
0353デフォルトの名無しさん2007/03/12(月) 17:03:10
>>352

Stringの比較はequals()メソッドで行うということですね
簡潔でわかりやすいレスありがとうございます
0354デフォルトの名無しさん2007/03/12(月) 17:19:32
>>353
そっちはどちらかというとこの質問においてはオマケ。
=を比較のつもりで使っているほうが本質的な間違い。
0355デフォルトの名無しさん2007/03/12(月) 17:26:02
>>354
すみません。はじめの時点で言葉足らずでした

比較に = を使ってはいけないのは知っていたのですが、

VBの癖でついやってしまい、エラーが出て、

>>351の疑問が出たので質問させていただきました。
0356デフォルトの名無しさん2007/03/12(月) 17:30:11
Javaでアプリケーションを作成しています。
二重起動を防止する案を考えているのですが
File.createTempFile(String prefix, String suffix)でファイルを生成して
File.deleteOnExit()で削除指定
ファイルの有無で起動中かどうかを判断するという処理にしようかと思ってます。

『もっと良い案があるよ』
『そのやり方だとこういう問題が発生する』
等御意見頂けますでしょうか。
0357デフォルトの名無しさん2007/03/12(月) 18:51:39
>>356
createTempFile だと、
prefix + "java.io.Fileが勝手に付加する文字列" + suffix って
名前のファイルを作っちゃわない? 二重起動防止にならんと思うけど。

あと、deleteOnExit だと、正常に終了できなかった場合はファイル残ったままになるよ。
もっとも、正常に終了できなかった場合にファイルを削除する方法は
今のところ提供されてないので二重起動の場合はダイアログだして
ユーザが選択できるようにした方が良いかも。v2c がやってるみたいに。
0358デフォルトの名無しさん2007/03/12(月) 18:55:11
>>355
Java では、 if(式) の式の部分は boolean じゃないとエラーになる。

if(s = "") の 「s = ""」って代入式の型は String なので、
コンパイラに boolean じゃないと怒られただけ。
0359デフォルトの名無しさん2007/03/12(月) 19:00:25
あらかじめ決めておいたポート番号のソケットをオープンできたら起動、
というのを見かけた。レースコンディションにはならないような気がする。

・異常終了したときの後始末はうまくできるんだろうか。
・ユーザー単位でのみ複数起動を禁止して別ユーザーなら起動を許す、
みたいなのは工夫が必要になるな。

RMI Registry(Activation)やJMXでなんかやれそうな気がしないでもない。
0360デフォルトの名無しさん2007/03/12(月) 19:11:37
>>357
ありがとうございます。
Preferences+ユーザー選択って感じにしようかな・・・。
0361デフォルトの名無しさん2007/03/12(月) 19:13:45
>>359
なるほど・・・ソケットは思いつかなかった。
0362デフォルトの名無しさん2007/03/12(月) 20:30:57
synchronizedのブロックの適用が及ばない範囲、及ぶ範囲、そしてその理由について
わかりやすく教えてもらえませんか('A`)

同時に動くスレッド2個ぐらいで、、
HP5箇所ぐらい見たんですがいまいち理解できません

0363デフォルトの名無しさん2007/03/12(月) 20:57:50
>>357
俺は nio のファイルロックで判定した。
0364デフォルトの名無しさん2007/03/12(月) 20:58:59
356あてだった・・
0365デフォルトの名無しさん2007/03/12(月) 21:05:56
HashMapでClass<T>とList<T>を関連付けたいのですがいい方法はありませんか?
0366デフォルトの名無しさん2007/03/12(月) 21:07:40
>>365
HashMap<Class<T>, List<T>>
0367デフォルトの名無しさん2007/03/12(月) 21:14:41
>>366
あの……それだとHashMapをnewするときにTになにか入れないといけないけどそういう使い方を意図しているのではなくて。
T.classをキーにしてgetしたらList<T>型のオブジェクトが返ってくるようにしたいんです。
もしくはList型オブジェクトをなんかしてList<T>型にキャストするとか。
0368デフォルトの名無しさん2007/03/12(月) 22:02:31
>>367
「関連づけたい」という曖昧な言葉を使ったことへの反省はしないのね。
0369デフォルトの名無しさん2007/03/12(月) 22:52:46
>>368
反省しました

……ってなんて答えりゃいいかわからんそのあてつけみたいなのやめてくれよ……
一回で伝わらなかったら何度か説明する機会くらい与えてくれよ……
人格攻撃して話題そらしたいのか?

無理なら無理でいいよ別の方法考えるから……
0370デフォルトの名無しさん2007/03/12(月) 22:55:18
>>367
HashMapを継承した新しいクラスを作ればいい。
0371デフォルトの名無しさん2007/03/12(月) 23:03:31
>>370
Class<T>とTのときはそれでできたんだけど、(内部でHashMap<Class<?>,Object>に委譲して出口でclazz.cast(map.get(clazz))を返すようにした)
List<T>のときはどうやって実装すればいいかわからないんです。
Reflection周りでいろいろ探してはいるんですが……
0372デフォルトの名無しさん2007/03/12(月) 23:06:28
>>371
public <T> List<T> get(Class<T> c) {
 return (List<T>)get(c);
}
0373デフォルトの名無しさん2007/03/12(月) 23:07:22
間違えた。
return (List<T>)super.get(c);
0374デフォルトの名無しさん2007/03/12(月) 23:17:47
>>372
いけました。
ここで出る未チェックのキャストはアノテーションで強制的に黙らせる他ないんですよね?
0375デフォルトの名無しさん2007/03/12(月) 23:52:35
switchの条件にlong型が使えないのはなぜなんでしょうか
char,short,int,enumは使えるのに

何か歴史的な理由があったりしますか?
効率?
0376デフォルトの名無しさん2007/03/13(火) 00:10:08
long は int に暗黙的にキャストできないから。
03773652007/03/13(火) 00:31:52
ありがとうございました。
何とかうまくいきそうです!
0378デフォルトの名無しさん2007/03/13(火) 03:06:04
//入力データ読み込みオブジェクトの

作成
BufferedReader myReader=new BufferedReader(
new InputStreamReader(System.in),1);
//敵出現メッセージ
System.out.println("敵が現れた。");
//味方、敵初期値
int mikata=5;
int teki=5;
while(teki>0){
//数値入力
System.out.println("どうする?1:攻撃、2:回復");
System.out.println("行動:");
//数値を読み取り、変数に代入
Int mystring =myReader.readLine();
Int koudou = Integer.parseInt(mystring);

と思われる部分で;が足りませんというエラーが出ました、どう修正すればいいのですか?
0379デフォルトの名無しさん2007/03/13(火) 03:10:28
・エラーメッセージはそのまま書く。改変されると推測が困難。
・ソースは必要な箇所を可能な限り原文に忠実に記述する。
 Int とか、「作成」から始まる行とか、何が正しいのか分からない。
0380デフォルトの名無しさん2007/03/13(火) 16:28:12
interface と abstract class の違いが良くわかりません。
interface でなければならない(もしくはその方がよい)場合、
また逆にabstract class でなければならない場合とは、
どんな場合なのでしょうか??
0381デフォルトの名無しさん2007/03/13(火) 17:26:30
Javaでは多重継承できないから属性を表すような実装はInterface
一方、デフォルト実装を与えたい場合などはabstract class
0382デフォルトの名無しさん2007/03/13(火) 17:47:50
このクラスは○○というメソッドを持っているよ→interface
このクラスをベースに○○というメソッドを使って機能拡張してね→abstract class
0383デフォルトの名無しさん2007/03/13(火) 22:58:08
型の継承 → interface
実装の継承 → abstract
0384デフォルトの名無しさん2007/03/13(火) 23:05:27
>>380
・ある性質に特有の処理が存在する。部分的に実装を共有できる。
 もしくはどうしてもある種の実装が必要だ。
(interface は実装をもてない。abstract class はもてる。)
・その性質の出現する場面が予想できる。もしくは限定した局面でしか使用しない。
(あとから再利用を試みる場合、interface の方が制約が少ない。
 abstract class だと、別のクラスの継承が必要な時にはもう使えない。)

上記を満たすなら abstract class。
制限をかけることによって(考えることを減らすことで)実装を容易にしたい場合も。

それ以外は interface。
interface の方がより純粋。制限が少なくて柔軟性が高い。
反面、実装の手間が多くなる。

最近は「とりあえずinterfaceにしとけ」な気がする。
実装に関してはヘルパークラスやテンプレートクラスを内包して、
そっちに処理を転送する方法で、継承と大差ない手間で済む。
その上で拡張性を保てる。

GUIフレームワークの基本部品なんかは abstract class ベースのものが多い。
画面表示に関する基本実装がどうしても必要とかそんなんだろうか。
0385デフォルトの名無しさん2007/03/13(火) 23:08:57
非オブジェクト指向言語だからといって
オブジェクト指向的にプログラムがかけないことはないように、
abstract class を interface代わりに使ってプログラムは書けるだろうけど、
そんな悲しいことは普通はしない。
0386デフォルトの名無しさん2007/03/13(火) 23:27:22
x64で動作するeclipseってあったっけ?
もしくはjava用のIDE
0387デフォルトの名無しさん2007/03/13(火) 23:34:38
>>380
interfaceを作って、abstract で骨格実装(デフォルトの実装)を作って、
多くの実装クラスを骨格実装を継承するようにすると
柔軟な構造になるよ。ひと手間掛かるけど
03883802007/03/14(水) 00:14:01
なるほど…
デフォルト実装の必要性と、プログラムの柔軟性との兼ね合いってことでつね。
みんなありが�d
0389デフォルトの名無しさん2007/03/14(水) 00:38:02
>>333
不変クラスつくればいいだけだろう。
あれでconstなクラスは作れる。
無理って事は無い。
0390デフォルトの名無しさん2007/03/14(水) 00:39:26
>>324
配列の中身が書き換えられないように、
Collections.unmodifiableList()を使うとか、

clone()を使うとか、考えようぜ。
IBMのdwで、不変クラスで検索してみ。
constに相当するものを作る方法がのってる。
Wikipediaの「イミュータブル」でも検索してみると良い。
0391デフォルトの名無しさん2007/03/14(水) 00:39:54
>>327
しばらくスレを見ていなかったので>>322のことにまだ気づかなかっただけだ。
0392デフォルトの名無しさん2007/03/14(水) 00:41:03
>>332
それは、Effective Javaでは禁じ手とされているものだぞ。

攻めて、enum型にせよ。enumが駄目ならfinalでコンストラクタがprivateなクラスを。
0393デフォルトの名無しさん2007/03/14(水) 00:41:49
>>337
定数インタフェースは、勝手に実装されることがあるからやめとけ。
0394デフォルトの名無しさん2007/03/14(水) 00:41:58
public class Hello
{
public static void main(String args[])
{
System.out.println("Hello!");
}
}
0395デフォルトの名無しさん2007/03/14(水) 00:43:43
>>343
代替手段があるからいらないんだよ。
constは余計なゴミなんだよ。ゴミ。
全てを不変にしたくないときはfinalのほうが柔軟性が効くんだよ柔軟性が。
部分的に可変にしたほうがよいこともあろう。


>>345みたいな浅はかでお馬鹿なC言語厨には理解できないが。
0396デフォルトの名無しさん2007/03/14(水) 00:44:43
>>351
FindBugsを使え。そういう問題が起きても
困惑することは無くなるだろう
0397デフォルトの名無しさん2007/03/14(水) 00:47:22
>>375
switchは総ナメ野郎の糞だから
0398デフォルトの名無しさん2007/03/14(水) 00:53:34
>>395
防御的コピーって知ってる?
代替手段がないからこんなことしないといけないんだけど。
0399デフォルトの名無しさん2007/03/14(水) 01:06:51
質問なんですが、下記のようにジェネリクスを使ったインタフェースを使って
実装クラスを書くと意図したように実行まで行えるのですが、
アノテーションを入れるとメソッドのオーバライドをしていないと怒られてしまいます。
これはアノテーションが間違っているのでしょうか?
それともアノテーションを使っていない方はたまたま実行まで出来てしまっただけで、
本来ならコンパイルが出来ないはずなのでしょうか。

public interface Base<T>{
    public void print(T data) ;
}

public Derived implements Base<Integer> {
    public void print(Integer data ) {
        System.out.println(data.toString() ) ;
    }
}
0400デフォルトの名無しさん2007/03/14(水) 01:23:52
>>399
Derived のメソッド定義に @override をつけたものとして話を進めるけど
それはオーバライドじゃないから怒られる。ジェネリクス関係ない。
0401デフォルトの名無しさん2007/03/14(水) 01:42:18
>>398
不変じゃなかったら、constつけてても防御コピーしなきゃだめだろ
0402デフォルトの名無しさん2007/03/14(水) 01:56:36
>>401
残念ながらC++のconstは防御的コピーする必要はない。
0403デフォルトの名無しさん2007/03/14(水) 02:20:34
勝手にコピーされるから?
不変でないオブジェクトは、明示的にせよ暗黙的にせよコピーしないと、
中にしまいこんだはずのオブジェクトを勝手に編集される可能性がある。
0404デフォルトの名無しさん2007/03/14(水) 02:42:49
不変バージョンと可変バージョンが1つのクラスで定義でき、
const つけると不変クラスとして使えるってことか?

たしかに、両方のバージョンをそれぞれ作るのは面倒
0405デフォルトの名無しさん2007/03/14(水) 02:43:16
超初心者です。。midiを内部で生成して再生するプログラムを作ろうと、ググっていて
http://java-house.jp/ml/archive/j-h-b/039552.html
の話を見つけました。確かに
  static byte test [] = new byte [] {0x7f, 0x80};
とやってみると、0x80以上を代入しようとすると「精度が落ちている可能性 期待値int」
とか言われてしまいます。

リンクにあるようにjpgBuff[j] = (byte)jpgBuff_i[j];で変換すると正しく扱えるようなのが不思議です。

>しかし int に入れておいて byte にするというのは、意味がないように
>思います。というか、int でできるなら byte でソースに埋めこんでも
>できなきゃおかしいですよね。ただ代入しているだけなんだし。何か
>その辺もおかしいのでは?
とあるように0xffまではbyteで扱えるはずですよね?

0x80以上をbyteな配列に代入するにはどうすればいいんですか?

何か勘違いをしているようでしたらご指摘をお願いします。。
0406デフォルトの名無しさん2007/03/14(水) 02:58:05
byte は 0 〜 255 じゃない



-128 〜 127 なんだよ……
0407デフォルトの名無しさん2007/03/14(水) 03:04:54
>>405
> とあるように0xffまではbyteで扱えるはずですよね?
違う。byteは -128〜127まで。
キャストを使って符号を無視するように明示しないかぎり byte では 255(0xFF) は扱えない。

> 0x80以上をbyteな配列に代入するにはどうすればいいんですか?
直接的にはキャストを使う。

間接的には String から byte配列に変換するようなユーティリティメソッド作るとか
"\u007F\u0080".getBytes("ISO8859-1"); みたいに文字列リテラル使ってみるとか。
0408デフォルトの名無しさん2007/03/14(水) 03:21:44
>>406-407
ありがとうございます。

>直接的にはキャストを使う。
http://java-house.jp/ml/archive/j-h-b/026824.html
を参考に  byte b = (byte)0xff;
でエラーが出ないことは確認できました。

配列の場合は
 static byte test [] = (byte []) new int [] {0x7f, 0x80};
とかやってみたんですが、どうもうまく行きません(変換できない型)
これは後出しで変換するしかないんでしょうか?
0409デフォルトの名無しさん2007/03/14(水) 03:24:00
static byte[] test = new byte [] { (byte)0x7f, (byte)0x80 };
0410デフォルトの名無しさん2007/03/14(水) 03:33:54
なるほど、確かにうまく代入されています。

ただ毎度面倒くさいし、見掛けも悪いのであらかじめ
-128 〜 127 の数値で扱うようにしておいたほうが
良いかも、と思いました。。。

ありがとうございました。
0411デフォルトの名無しさん2007/03/14(水) 04:26:00
UByte 型作っちゃいなYO
0412デフォルトの名無しさん2007/03/14(水) 05:30:50
ejbってもう誰も使ってないの?
みんなjspで力つきたのか? phpレベルの底辺が好きなんだね。
0413デフォルトの名無しさん2007/03/14(水) 08:25:06
>>412
ばかめ!EJB2は死んだわ!
0414デフォルトの名無しさん2007/03/14(水) 09:01:03
誰かこれを解説してください。
>3個の数字の並び替えの場合、その並び替えは 3! = 3 * 2 * 1 = 6通り、
>ですが、1回だけ shuffleを行う際に使っている j、k の選び方は 36 通りです。
>つまり、これが6通りの並び替えのどれかに対応します。
>しかしながら、 (36 ) ÷ ( 3 ! )は割り切れないのでどれかの並び方に偏ってしまうということがわかります。
http://blogs.sun.com/javaev/
0415デフォルトの名無しさん2007/03/14(水) 09:31:16
>>414
実際に並べかえてみりゃわかるよ。小学生並の解き方だけど。

例えば、
> for (int i = 0; i < a.length; i++)
を削った場合、j,k は 9通り(3^2)で、実際に並べ替えてみると
j=1::k=1:A、B、C, k=2:B、A、C, k=3:C、B、A
j=2::k=1:B、A、C, k=2:A、B、C, k=3:A、C、B
j=3::k=1:C、B、A, k=2:A、C、B, k=3:A、B、C

出現確率はこんな感じに偏る。
A、B、C::3/9,
A、C、B::2/9,
B、A、C::2/9,
B、C、A::0/9,
C、A、B::0/9,
C、B、A::2/9

続きは自力で。
04164142007/03/14(水) 09:37:37
>>415
ありがとうございます。助かりました。
0417デフォルトの名無しさん2007/03/14(水) 16:24:34
作成したjarファイルを、JREが必要無い状態で、exe形式で実行したいと考えています。
検索してみたところ「JET」なるコンパイラが見つかり、
「パーソナルエディション」なら個人に限り無料で使用できると聞いたのですが、
公式サイト内を探してみてもパーソナルエディションが見つかりません。
ひょっとして配布終了してしまったのでしょうか?
0418デフォルトの名無しさん2007/03/14(水) 16:36:12
>>398
知っとるわい馬鹿
0419デフォルトの名無しさん2007/03/14(水) 16:37:18
>>402
constするとその内部にあるものまですべてfinalになるなら
部分的にconstにできるfinalのほうが柔軟性が良いんだけどね。

0420デフォルトの名無しさん2007/03/14(水) 16:38:42
>>417
ないっぽいね。exe化はあきらめて、JSmoothかexewrapあたりにしておくのが吉。
0421デフォルトの名無しさん2007/03/14(水) 16:52:00
double型からint型に変えるやり方はあるのですが
逆にint型らdouble型にかえるやり方があるのでしょうか?
一応double型からint型に変えるやり方を参考にして
やってみたのですがどうもエラーがでるようで・・・」
0422デフォルトの名無しさん2007/03/14(水) 17:00:15
何をやった。
意図していた結果 / 実際の結果

を具体的に書くといいぞ。

double doubleValue = (double)100; と書いたらコンパイル時に〜という
メッセージが出ました、とか。
0423デフォルトの名無しさん2007/03/14(水) 17:16:08
public class Henkan{
public static void main(String[] args) {
double s = 5.0;
int i = (int)s;
System.out.println(i);
}
}

これを参考にしてdoubleをint、intをdoubleにすれば変換できると
思いやってみたのですが結果
Henkan.java:3: 精度が落ちている可能性
検出値 : double
期待値 : int
int s = 5.0;
^
エラー 1 個

になってしまいまして、どうすればいいのがわからないです。
0424デフォルトの名無しさん2007/03/14(水) 17:26:26
>>423
ttp://www.google.com/search?rls=ja&q=java+int+double+%E5%A4%89%E6%8F%9B&ie=utf-8&oe=utf-8
0425デフォルトの名無しさん2007/03/14(水) 17:27:15

intとdoubleを入れ替えたということは
int s = 5.0; // A
double i = (double)s;
としたわけだな?

今回の目的はintをdoubleに変換することなんだよな?
Aの行で確かに精度が落ちている。
intなんだからただの5でないといけない。
0426デフォルトの名無しさん2007/03/14(水) 17:27:40
>>423
> int s = 5.0;
5.0 は浮動小数点リテラルで、型は double だから、
int に代入するにはキャストしないとダメ。
int s = (double)5.0;

もしくは、整数リテラルを使って
int s = 5;
0427デフォルトの名無しさん2007/03/14(水) 17:28:32
× int s = (double)5.0;
○ int s = (int)5.0;
0428デフォルトの名無しさん2007/03/14(水) 17:39:05
解決できました!みなさま即レスで返していただきありがとうございました!
0429デフォルトの名無しさん2007/03/14(水) 17:43:22
doubleにintを代入するときはそのまま入っちゃうのは、
情報欠落がないから。

プリミティブの
ワイドニング変換(widening primitive conversion)
ナローイング変換(narrowing primitive conversion)
というのを調べるといいかも。
0430デフォルトの名無しさん2007/03/14(水) 17:53:17
初心者はこのJava入門(Wikibooks)を読むべし

http://ja.wikibooks.org/wiki/Java/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%BA%96%E5%82%99
0431デフォルトの名無しさん2007/03/14(水) 18:19:30
>>417
gcjとかはどうよ?
0432デフォルトの名無しさん2007/03/14(水) 18:40:46
> doubleにintを代入するときはそのまま入っちゃうのは、
逆?
04334172007/03/14(水) 19:24:05
>>420
>>431
ありがとうございます。>>431さんがおっしゃっているgcjを試してみたいと思います。
プログラム自体はSwingなんですが、gcjはSwingはダメなんですね。
この機会にSWTも勉強してみようかと思います。
ご親切にありがとうございました。
0434デフォルトの名無しさん2007/03/14(水) 21:46:31
>>433
JRE無しでないと駄目な理由は?
たぶん他の代替手段も、各種DLLが必要になってくると思うけど・・・
0435デフォルトの名無しさん2007/03/14(水) 23:13:15
>>429
doubleにlongを代入するとき、そのまま入っちゃうのは何故?
情報欠落があるのに。
0436デフォルトの名無しさん2007/03/14(水) 23:23:36
>>435
int→floatでも情報損失があるけど言語規定上問題なく拡大変換される。
プリミティブ型の拡大変換は情報損失の有無に関わりなくコンパイル時も実行時もエラーを発生させない。
だから、変換の可否は情報損失とは関係なく、言語仕様でそうなっていると言うべき。
0437デフォルトの名無しさん2007/03/15(木) 00:59:22
double d = Double.valueOf(args[i]);とdouble d = Double.valueOf(args[i]);の違いって何かあるんですか?
0438デフォルトの名無しさん2007/03/15(木) 01:08:10
>>437
その2つ、全く同じに見えるけど。
0439デフォルトの名無しさん2007/03/15(木) 01:08:24
なにもない
0440デフォルトの名無しさん2007/03/15(木) 03:31:34
他スレで質問したのですが、
スレの進行が滞っているのでこちらに書きます。

class C1{
}

class C2 extends C1{
  void f(){
    System.out.println("f() is executed.");
  }
}

class Example{
  public static void main(String args[]){
    C1 obj = new C2();
    obj.f();
  }
}

上記のプログラムをコンパイルすると、
「メソッド f() はclass C1 で見つかりません。」
というメッセージが出てコンパイルエラーとなりました。

あるクラスの変数によってサブクラスのオブジェクトを参照する場合、
そのオブジェクトが呼び出すメソッドは、スーパークラスでも宣言されている
オーバーライドメソッドでなければならないということですか?
0441デフォルトの名無しさん2007/03/15(木) 03:51:11
>>440
>    C1 obj = ほげほげ
>    obj.f(); 

2行目は、C1 の f() を探す。
04424402007/03/15(木) 04:33:07
>>441
なるほど、あくまでその変数のデータ型に基づいてメソッドを選択するってことですね。
どうもありがとうございました!
0443デフォルトの名無しさん2007/03/15(木) 09:46:06
見つかって呼ばれるメソッドは変数のほうではなく、
オブジェクトに定義されているもの。
0444デフォルトの名無しさん2007/03/15(木) 12:12:22
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(name)));
try {
...
} finally { reader.close(); }

とかって、素直で読みやすいコードだと思うんですが、
InputStreamReader や BufferedReader のコンストラクタで例外が発生したら
name のファイルが開きっぱなしになってしまいますよね?
(実際はもっと複雑なフィルタがかぶさってます。)

↓みたいに FileInputStream だけ別の変数にしとかないといけないんでしょうか?

FileInputStream file = new FileInputStream(name);
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(file));
try {
...
} finally { reader.close(); }
} finally { file.close(); }

close() がダブってるんでキモイのと、これだともしかしてさらに
InputStreamReader でもう一段 try しないといけないのかも・・・と、
なんだか釈然としないです。
0445デフォルトの名無しさん2007/03/15(木) 12:27:25
以下のようなソースがあった場合、
readerでIOExceptionを発生させるには読み取り権限がないファイルを渡すことでテスト
FileNotFoundExceptionを発生させるには存在しないファイルを渡すことでテストしようと思いますが
writerでIOExceptionやclose()メソッドでIOExceptionが発生した場合、
JUnitでどんなコードを書いたらよいのかがわかりません
よろしくお願いします
public String read(String name) {
  Reader reader = null; StringWriter writer = null;
  File file = new File(name);
  try {
    reader = new InputStreamReader((new FileInputStream(file)));
    writer = new StringWriter();
    int c;
    while ((c = reader.read()) != -1)
      writer.write(c);
    return new String(writer.toString());
  } catch (FileNotFoundException e) { System.out.println(e.getMessage());
  } catch (IOException e) { System.out.println(e.getMessage());
  } finally {
    try {
      if (writer != null)
        writer.close();
    } catch (IOException e) { System.out.println(e.getMessage()); }
    try {
      if (reader != null)
        reader.close();
    } catch (IOException e) { System.out.println(e.getMessage()); }
  }
  return null;
}
0446デフォルトの名無しさん2007/03/15(木) 12:29:56
>>444
tryブロックの外で、closeすべき変数を null を初期値とし、まとめて宣言する。
finally で、null チェックして逆順に close を呼び出す。というのはどうでしょう

ラップしてる変数の close 処理がうまくいくことを前提にするなら、
if文をネストして、null ではない一番外側の変数だけでcloseを呼び出す。
と言うのもありかも?
0447デフォルトの名無しさん2007/03/15(木) 12:33:56
>>444
1.5 以降なら、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36027&forum=12&start=15
の、かつのり氏の StreamUtils#close みたいなユーティリティメソッド作って、

FileInputStream file = null;
BufferedReader reader = null;
IOException e = null;
try {
 file = new FileInputStream(name);
 reader = new BufferedReader(new InputStreamReader(file));
 //....
}catch(IOException ex){
 e = ex;
}finally{
 StreamUtils.close(e, reader, file);
}
みたいにするとか。

1.4までだと java.io.Closeable がないから この方法は使えないんだけどね。
0448デフォルトの名無しさん2007/03/15(木) 12:45:55
>>445
InputStream を渡すメソッドだったら簡単だけど。
djUnit の Virtual Mock Objects 使ってみるとか?
0449デフォルトの名無しさん2007/03/15(木) 14:13:34
質問です

画面に文字列を出力させるときに、その表示を一文字ずつ
順番に表示させるのって可能ですか?

例:ありがとう
と出力させるとしたら、「あ」が表示されて、少し待って「い」
みたいな感じです
0450デフォルトの名無しさん2007/03/15(木) 14:21:45
可能不可能でいえば可能。

画面てのがコマンドプロンプトなどのキャラクタ表示装置なのか
ウィンドウなのか、ウィンドウの中のテキストフィールドなのか
などによってやり方は違う。
0451デフォルトの名無しさん2007/03/15(木) 14:43:08
アプレット上にパネルを置いて、そのパネルでmouseWheelMovedイベントを拾うプログラムを作っているのですが
アプレットの外の部分(HTMLで文字などを表示してるところ)をマウスクリックすると
パネル上でマウスホイールを回してもmouseWheelMovedイベントが来ません。
何が問題なのでしょうか?
0452デフォルトの名無しさん2007/03/15(木) 17:20:00
Java 1.6.0のソースのStringの部分を眺めていたら、public String toUpperCase(Locale locale)の部分(2556行)に

/* Now check if there are any characters that need to be changed. */
scan: {
for (firstLower = 0 ; firstLower < count; ) {
(ry
}

という部分があったのですが、このscan: {}はどういう意味ですか?
0453デフォルトの名無しさん2007/03/15(木) 17:38:36
>>451
自分のウインドウの外の出来事を、しかもアプレットが知ることが出来たらやばくね?

>>452
ラベル:
ループの中でbreakやcontinueしてたりしない?

0454デフォルトの名無しさん2007/03/15(木) 17:53:03
>>453
そうでなくて
パネル上にカーソル移動→マウスホイール動かす→イベント上がる
のに
パネルの外をクリック→パネル上にカーソル移動→マウスホイール動かす→イベント上がらず
ってことです。
0455デフォルトの名無しさん2007/03/15(木) 18:14:23
マウスホイールって入力フォーカスのあるコントロールに通知されるんじゃなかったっけ?
なんかそれを変更するツールがあったよーな。
0456デフォルトの名無しさん2007/03/15(木) 19:29:56
すみません、質問なのですが。自分、去年末あたりからプログラミング(java)
を学び始めたのですが、DBをjavaのプログラミングで弄る技術は必須でしょうか?
0457デフォルトの名無しさん2007/03/15(木) 19:37:35
>>456 使わないなら不要、使うなら必要。
0458デフォルトの名無しさん2007/03/15(木) 19:50:43
何故こんな質問が出るか想像してみた。
 1.誰かからできないといけないと言われた
 2.その手の本を読んで、「javaでDBを使ってみよう」という所で詰まっている
 3.ネットでDBを使う例をよく見かけるので必要かと思った
 4.面接で「javaはひととおりできます」と言ってしまったので入社前に「ひととおり」というのはどの程度か知りたい

で、>>456が聞きたいのは「javaでDBを弄る技術がないと役立たずなのか」って事ではないだろうか。
0459デフォルトの名無しさん2007/03/15(木) 19:58:17
>>456
ヒント:いまどきRDB使わない業務アプリはほとんどない。
0460デフォルトの名無しさん2007/03/15(木) 20:02:45
>>456
その質問はこんな感じ。
「すみません、質問なのですが。自分、駅前商店街のあたりで料理屋を探していて、さて
これから適当な店に入ろうというところなのですが、食前にワインを注文すべきでしょうか」

吉野家でワインを注文するひとは少ないと思われ。
0461デフォルトの名無しさん2007/03/15(木) 20:04:50
>>458ええ、最近とうとうeclipseを導入したのですがHSQLDBを起動するためのソースが
eclipse上で上手く動かないのです。んで考えた末に出た結論がHSQLDBplugin
テキストエディタの時は上手く動いたのに何でだろorz クラスパス等の考慮は
完璧なんですが・・・
0462デフォルトの名無しさん2007/03/15(木) 20:12:45
やっぱり、eclipse破棄してテキストエディタでソース組むようにします。
eclipse使ってると技術が退化する。
0463デフォルトの名無しさん2007/03/15(木) 20:18:42
>>462
作業効率が落ちると消化できる量も当然減るわけで一概に技術が退化するとは思えない。
要するに
「コアな部分を解釈するか」
「作業効率を上げて色々な技術に触れるか」
方向性の違いじゃない?
0464デフォルトの名無しさん2007/03/15(木) 20:23:53
eclipseもプログラム言語もプログラマーにとっては道具
どのような道具を使えば望んだ結果が得られやすいのかが一番重要
0465デフォルトの名無しさん2007/03/15(木) 20:30:16
そうですね。eclipseは構文エラーなどをした時、その場で教えてくれるので
とても便利ですよね。じゃあ、どういった種類のソースを組むのかによって
使い分けることにします。
0466デフォルトの名無しさん2007/03/15(木) 20:51:53
経験の浅いプログラマは、たまにはテキストエディタで書いて
いろいろ振り返ってみるのも良いと思う。
「退化する」ってのは、本当は退化じゃなくて基礎があやふやになるということ。
ある程度の経験があって基礎がしっかり固まっている人はIDEを使ったところで
「退化」なんてしないし作業効率が上がるので、どんどん使えばいい。
そういう人は仮にIDEが使えない環境下で作業しなければいけない場面でも
問題なく普通に対応できる。
0467デフォルトの名無しさん2007/03/15(木) 20:54:21
要するに何が言いたいかっていうと
>>462は半年ROMってろってことですね
0468デフォルトの名無しさん2007/03/15(木) 20:56:02
IDE使うと楽にコーディングできるからテキストエディタには戻れなくなる。
覚えていなくてもいいことは人は忘れるものだ。
04694612007/03/15(木) 21:06:35
すみません、続報ですが、テキストエディタで組んだ奴は上手くDBに接続できたので、
そのソースをeclipseにコピーして実行したら上手く接続できました。
どうやら原因は私がeclipseに甘えていたことのようです。orz
0470デフォルトの名無しさん2007/03/15(木) 21:07:47
>>466
文法をしっかり覚えている=プログラマとしての経験が豊富
みたいな口ぶりだな。
04714612007/03/15(木) 21:16:25
下らない審問ばかりで申し訳ないのですが、私まだjavaしか使えないので
これからc,c++学ぶ予定なのですが、もしそれらの言語でGUIプログラムを組むとき
流れは( ContentPaneを拾得したり、JButtonなどを宣言する流れは同じなのでしょうか?
04724612007/03/15(木) 21:33:22
c,c++学ぶときのお楽しみって事で。Σ(´∀`;)

さっきの原因が分かりました。hsqldb/libにあるjarファイルを2つとも
importしてたのが原因だったようです。盲点でした・・・
0473デフォルトの名無しさん2007/03/15(木) 21:36:28
>>470

いや、>>466の言いたいことは文法だけじゃなく開発全般にわたっての事ではないかと。
IDEでやっていることをIDEなしでもちゃんとできるようになろうよ、と。
それができれば自ずとプログラマとしての力もつくんでないの?
IDEなしで開発していると思いがけずいろんなものが見えてくることもあるし…
0474デフォルトの名無しさん2007/03/15(木) 22:30:44
C++でGUIプログラム組む時は基本的にMFCまたはWTL/ATLを使う。
詳細はググるように。
.NETの場合はFormsとWPFがあります。
FormsはVBの流れをくんだ開発手法でWPFはJSPやASPの流れを組んだ開発手法と思えば良いと思う。
0475デフォルトの名無しさん2007/03/15(木) 22:34:04
俺C++がメインでJavaは素人だからトンチンカンなこと言ってるかもしれないけど……
例えばある変数がintだったかlongだったかで手が止まるとか、
20文字の変数名を手入力して間違えてコンパイルエラーとか、
ある関数の内容を確認するときにいちいち検索が必要になるとか、
もうナンセンス極まりない話だと思う。
それじゃ自分が常に全体を把握できる程度の規模のプログラムしか書けないよ。
断言できる、統合環境と技術力とは一切関係がない。
04764612007/03/15(木) 22:38:01
さっきのHSQLDBのことですが、pc再起動してもう一度実行してみたら
IllegalStateExceptionと出てまた失敗しました。
成功してたのに・・・バグ?(´・ω・`)
0477デフォルトの名無しさん2007/03/15(木) 22:44:00
>>476
APIでは、
public class IllegalStateException
extends RuntimeException
不正または不適切なときにメソッドが呼び出されたことを示します。
すなわち、Java 環境または Java アプリケーションは、要求されたオペレーションに適した状態ではありません。

設定ファイルやOSセキュリティなどで
サーバ・データベースの連携がうまくいってないのでは?
0478デフォルトの名無しさん2007/03/15(木) 22:56:05
全自動洗濯機があるんだから洗濯板の使い方なんてどうでもいいよ
0479デフォルトの名無しさん2007/03/15(木) 23:02:05
そういう奴は全自動洗濯機の性能評価・製品評価もできず、
自分が何をやっているのかも理解できない
いわれるがままに作業する全自動ロボットでしかないわけだが。
04804752007/03/15(木) 23:11:34
>>479
比喩を比喩で返すのは別にいいんだけどさ、
それは一体何を言わんとした比喩なの?
ある変数にカーソルを合わせたら「int」と出た、
じゃあこれはintなんだなと理解し、それに応じたコードを書き進めることが、
あるいはある関数で右クリックしてメニュー出して左クリックして
その関数の宣言されている場所に一気にジャンプして編集することが、
果たして「言われるまま作業する全自動ロボット」とまで
蔑まれるほど程度の低い行為だとはどうしても思えないんだけど。
君の言う「本当の」プログラミングって何よ?
0481デフォルトの名無しさん2007/03/15(木) 23:18:55
>>444
>InputStreamReader や BufferedReader のコンストラクタで例外が発生したら
ドキュメントには何も書いてないけど、
チェックされない例外やエラーが発生するかもしれないん?

closeは一番外側を閉じると、元まで伝播するんじゃなかったけ。
0482デフォルトの名無しさん2007/03/15(木) 23:21:56
>>480はコードアシストやジャンプ機能だけがIDEの機能だと思っているバカ。
0483デフォルトの名無しさん2007/03/15(木) 23:23:40
そんな基本的な機能まで放棄してテキストエディタかよって話だろ
04844752007/03/15(木) 23:28:41
>>482
VS様は(少なくとも個人で買える範囲では)最高の統合環境だと思います
それで何の話でしたっけ
0485デフォルトの名無しさん2007/03/15(木) 23:29:03
まあ、NetBeansあたりを使ってWebアプリ開発やっていると
・Servletコンテナのインストール方法を知らなくて良い
・それどころか、Servletコンテナの存在すら意識しなくて良い
・Servletをweb.xmlへ設定する方法を知らなくて良い
・それどころか、web.xmlの存在すら意識しなくて良い
・webアプリケーションのデプロイ場所・ディレクトリ構成を知らなくて良い。意識しなくて良い
・実行時クラスパス・ビルド時クラスパスを意識しなくて良い
・ソースディレクトリとデプロイ先ディレクトリが違うことを意識しなくて良い
等々のメリットだかデメリットだかが得られるわけだが、
どうなっているのか知らずに作業できる全自動ロボットという見方も出来るかもね。
0486デフォルトの名無しさん2007/03/15(木) 23:30:21
自分の目的に合ったものを探せばいいと思うよ
0487デフォルトの名無しさん2007/03/15(木) 23:30:32
>君の言う「本当の」プログラミングって何よ?

誰か「本当の」プログラミング なんて話してるのか?
0488デフォルトの名無しさん2007/03/15(木) 23:33:23
俺、真のスーパープログラマーになるんだ!!!11
0489デフォルトの名無しさん2007/03/15(木) 23:34:35
本当のプログラミング(笑)ってなんだよ
0490デフォルトの名無しさん2007/03/15(木) 23:37:15
>>488
Shiftキー離してるぞw
0491デフォルトの名無しさん2007/03/15(木) 23:44:13
自動的にエンコード・デコードしてくれるテキストエディタなんて使ってると、
技術が退化するぞ。

バイナリエディタを使うんだ。
0492デフォルトの名無しさん2007/03/15(木) 23:46:42
高級言語なんて使ってると、
技術が退化するぞ。

機械言語を使うんだ。
0493デフォルトの名無しさん2007/03/15(木) 23:47:17
>>447
外側が閉じれないのに、内側を閉じちゃっていいん?
0494デフォルトの名無しさん2007/03/15(木) 23:53:49
ソフトウェアなんて組んでいると、
技術が退化するぞ。

チップセットを自作するんだ。
0495デフォルトの名無しさん2007/03/15(木) 23:54:37
それが>>480の言うところの「本当の」プログラミングかwww
0496デフォルトの名無しさん2007/03/15(木) 23:55:19
いま洗濯物を干したところ。
そうなんだ。乾燥機がないんだよ。。。
0497デフォルトの名無しさん2007/03/16(金) 00:00:07
PCのスペックにうるさいやつがいるのはわかるけど
全自動洗濯機の性能評価とかいちいちするやついるんだな
JBuilderほどひどくなければ何でもいいだろ
0498デフォルトの名無しさん2007/03/16(金) 00:01:39
全自動洗濯機しか使えない奴は、洗濯物の干し方を知らないからな。
壊れたときに途方に暮れる。

ちゃんとシワ伸ばしたか?
色物は裏返したか?
型くずれする物をハンガーに掛けたりしてないか?
0499デフォルトの名無しさん2007/03/16(金) 00:02:12
JBuilderのどこがひどい?
eclipseとかNetBeansよりよっぽど使いやすいけど。
ああ、eclipseベースにした新しいやつのこと?
0500デフォルトの名無しさん2007/03/16(金) 00:02:34
>>497
価格.com あたりに行ってみ。
家電マニアという人種は意外と多い。
0501デフォルトの名無しさん2007/03/16(金) 00:05:05
>>497
つ http://bbs.kakaku.com/bbs/21105010440/
 http://bbs.kakaku.com/bbs/21103010412/
 http://bbs.kakaku.com/bbs/21103010450/
0502デフォルトの名無しさん2007/03/16(金) 00:06:39
>>498
それはない。自動でやってくれない部分については人はおぼえるよ。

IDEがお客さんとメールのやりとりまで勝手にやってくれるようになったら
メールも打てなくなるかもねw
0503デフォルトの名無しさん2007/03/16(金) 00:08:26
洗濯の初心者は、たまには洗濯板で洗ってみるのがいい。
0504デフォルトの名無しさん2007/03/16(金) 00:10:17
kakaku.comのリンクを貼るのはロングテールを利用してるだけ。
実際は性能評価なんてしてるやつはゼロに近いだろ。
まわりの人間からトシちゃんのファンをみつけるのはほぼ不可能だけど
トシちゃんのディナーショーにいけばトシちゃんのファンばっかだぞ。
0505デフォルトの名無しさん2007/03/16(金) 00:11:08
>>503
うおっ。洗濯板か。さすが2chだ。何でもありだな。
できれば板アド教えてプリーズ。
0506デフォルトの名無しさん2007/03/16(金) 00:11:36
>>493
閉じていいかどうかは、内側による。

FileInputStream の場合は開きっぱなしだと、
他のファイル開く時に OS で開けるファイルの上限にひっかかったりとか、
後で FileOutputStream で同じファイルを開けなかったりする可能性もあるので放置しない方が良いかも。

今回のは InputStream だったけど、
例えば OutputStream とかで close() 呼んだら DB に commit する、
とか、そーゆー実装になってる場合は閉じたら拙いだろうし。
0507デフォルトの名無しさん2007/03/16(金) 00:23:44
本当のプログラミングはこれからだ!
0508デフォルトの名無しさん2007/03/16(金) 00:24:17
まわりの人間から家電マニアを見つけるのは
トシちゃんファンを見つけるよりもたやすい。
0509デフォルトの名無しさん2007/03/16(金) 00:25:18
「ロングテール」言いたいだけちゃうかと
0510デフォルトの名無しさん2007/03/16(金) 00:25:26
javaでjcomboboxで選択したものを表示させるにはどうしたらいいですか?
0511デフォルトの名無しさん2007/03/16(金) 01:13:51
つ【やさしいJava本】
0512デフォルトの名無しさん2007/03/16(金) 02:18:23
>>508
やっぱりモーターは日立だよな。
0513デフォルトの名無しさん2007/03/16(金) 02:41:10
↓マブチとタミヤの争い
0514デフォルトの名無しさん2007/03/16(金) 02:54:32
>>513
模型オタの俺がマジレスするとタミヤはモーターは作ってないよ。あくまでも模型の会社だから。
タミヤの強みは金型とかでしょ。逆に、マブチは小型モーターに強み。
家電のことは詳しくないけど、マブチやタミヤって家電に絡んでるのか?
0515デフォルトの名無しさん2007/03/16(金) 02:57:11
クソスレであってもこーゆー>>514みたいなレスがあるのが2chの醍醐味だと思う。
0516デフォルトの名無しさん2007/03/16(金) 03:05:10
クソなのはこのスレじゃなくてこの流れなんだが、
その点を除けば同意
0517デフォルトの名無しさん2007/03/16(金) 06:36:34
つ【同意】(:D)| ̄|_ =3=3
0518デフォルトの名無しさん2007/03/16(金) 10:05:20
>>512
日立は「モートル」だろ。
0519デフォルトの名無しさん2007/03/16(金) 16:32:25
昨日の>461ですが皆様のお陰で解決しました。
どうもありがとうございました。
0520デフォルトの名無しさん2007/03/16(金) 19:02:48
エラー:パッケージ javax.servlet.http は存在しません。
どうしたらいいですか?
Tomcat 6.0
java1.6.0
0521デフォルトの名無しさん2007/03/16(金) 19:09:53
ググれ
0522デフォルトの名無しさん2007/03/16(金) 19:24:13
>>519
結局、原因はなんだったんだ?
0523デフォルトの名無しさん2007/03/16(金) 19:30:11
>>520
クラスパス確認すれ
0524デフォルトの名無しさん2007/03/16(金) 19:31:20
>>520
コンパイル時なのか実行時なのかくらい書け。
環境もなるべく詳しく書け。
0525デフォルトの名無しさん2007/03/16(金) 20:35:13
>>524
コンパイル時です
>>523
通ってませんでした

servlet.jarが入ってなかったので名前が似ているservlet-api.jarをJAVA_HOME/jre/lib/extに入れたのが原因でしょうか?
0526デフォルトの名無しさん2007/03/16(金) 20:48:54
>>525
よほどのことが無い限り ext とかはいじらん方が良かれ。

開発環境は何使ってます?
Eclipse や NetBeans なら
ターゲットの実行環境(tomcat6)から適切な jar を参照するんで
その辺りの煩わしさは皆無ですよ。
(tomcat6 に対応してたかはちと自信なし。)

テキストエディタだけでガリガリやってるなら
javac する時のクラスパスに、
実行環境のライブラリをまとめて指定したら
コンパイルは通ると思う。
0527デフォルトの名無しさん2007/03/16(金) 21:50:19
>>526
jcpad231を使ってプログラムを書いています
0528デフォルトの名無しさん2007/03/16(金) 22:10:22
>>522 結局原因はHSQLDB側のコマンドライン?を2つ起動してなかった事が原因
です。Σ(´∀`;)ちんけな原因orz
0529デフォルトの名無しさん2007/03/16(金) 22:13:37
>>526 ベータ版だけど最新のtomcatpluginならtomcat6使えますよ。
個人的にはtomcat5.5の方が良いです。
0530デフォルトの名無しさん2007/03/16(金) 23:12:15
CSVファイルって空白のデータもありえますよね?
最終列が空白の場合、splitでできるString配列のlengthが
異なってしまい処理が煩雑になります。みなさんどうしてますか?
自分は下記のようなデータがあったとき、

1,音原田九郎,
2,渋井丸拓男,事故死
3,LIND L TAILOR,

//いったん最終列に空白を追加して最終列を認識させる
text = text+" ";
String[] splitArray = text.split( "," );
処理1( splitArray[0] );
処理2( splitArray[1] );
//追加した空白はtrimで消去してから処理する
処理3( splitArray[2].trim() );

こうしているのですが、もうちょっとスマートなやり方ないですか?
0531デフォルトの名無しさん2007/03/16(金) 23:30:29
","つけるといいよ
0532じゅん2007/03/17(土) 02:22:13
ネットを開いてお気に入りを開くとフォルダがあるのですが、隠しファイルにしてしまい消えてしまいました。もう一度表示させるにはどうすればよいのでしょうか(>_<)
0533デフォルトの名無しさん2007/03/17(土) 02:44:52
コントロールパネル→ツール→フォルダオプション
で隠しファイルを表示する設定にできます。

その状態でお気に入りを開けば半透明のフォルダが
出てくるはずなんで、右クリックしてプロパティから
隠しファイルを解除してください。
0534デフォルトの名無しさん2007/03/17(土) 02:47:13
それJavaなん?
0535デフォルトの名無しさん2007/03/17(土) 02:47:45
>こうしているのですが、もうちょっとスマートなやり方ないですか?
末尾データが無いからとカンマを削る事がそもそもスマートじゃない
0536デフォルトの名無しさん2007/03/17(土) 04:14:15
何の説明も無いまま空白を半角空白と空文字列の二つの意味で使ってることに驚く。
0537デフォルトの名無しさん2007/03/17(土) 04:24:36
>>530
予め最大の列数が決まってるなら

String[] splitRecord(String record){
 String[] splitted = record.split(",");
 String[] result = new String[3];
 System.arraycopy(splitted, 0, result, 0, splitted.length);
 return result;
}

みたいな処理を通せば配列のサイズは統一される。

けれども、普通はクラスを定義して
CSVレコード1行からインスタンス1コを生成するファクトリメソッドを用意する。

そんなにも文字列で処理したい理由って何?
0538デフォルトの名無しさん2007/03/17(土) 10:21:01
import java.io.*;

public class File {
public static void main(String[] args) {
try{
FileReader f = new FileReader("test.txt");
BufferedReader b = new BufferedReader(f);
String s;
while((s = b.readLine())!=null){
System.out.println(s);
}
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}

}

}

ここのソースのwhileの部分がすこし理解ができないので
教えてください。
0539デフォルトの名無しさん2007/03/17(土) 10:24:48
s = b.readLine() は一行読んで代入
で、それが !=null の間だけ実行ってことは読み込めなくなったら終了ってこと
0540デフォルトの名無しさん2007/03/17(土) 10:37:54
>>538
大雑把に言うと、b.readLineメソッドの戻り値がnullになるまで繰り返すんだけど、
その読み出した値を処理で使いたいからsに代入してる
0541デフォルトの名無しさん2007/03/17(土) 10:46:23
理解できました!ありがとうございます。
また質問があります

Syouhizei syouhizei1 = new Syouhizei();
syouhizei1.a = 9600;
syouhizei1.b = 1.05;
syouhizei1.kakezan();
       ↓

class Syouhizei {
double a;
double b;
double c = a*b;

void kakezan()
{
System.out.println(c);
}
}

とやるとどうしても結果が0,0になってしまいます。
理由ががわからないので教えてもたらいたいです。

0542デフォルトの名無しさん2007/03/17(土) 10:53:45
処理の順番を考えろ
0543デフォルトの名無しさん2007/03/17(土) 10:54:15
>>541

cが計算されるのはSyouhizeiがインスタンス化されたときの一回だけ
syouhizei1.keisan()を呼び出す時点でa,bになにが設定されていても既にcは
初期値で計算済だから0.0が表示される、と。

それ以前にaやbを外部から直にいじるのはちょっといやだな
パラメータで渡そうよ。
0544デフォルトの名無しさん2007/03/17(土) 11:07:28
順番が違っていたんですね、わかりやすく説明していただいて
ありがとうございました!
パラメータで渡したほうが見栄えがいいってことでしょうか?
0545≠5432007/03/17(土) 11:14:44
>>544
見栄えっつーか安全性の問題
デバッグもしやすいしね

コンストラクタとか勉強汁
0546デフォルトの名無しさん2007/03/17(土) 13:30:11
import java.io.*;

public class Kingaku {
public static void main(String[] args) {
try {
FileReader f = new FileReader("test01.txt");
BufferedReader b = new BufferedReader(f);
String s;
while((s = b.readLine())!=null){
String st[] = new String[4];
st[0] = s.substring(0,8);
st[1] = s.substring(9,13);
st[2] = s.substring(14,22);
st[3] = s.substring(23,31);
String t = st[2];
String t2 = st[3];
int nu = Integer.parseInt(t);
int nu2 = Integer.parseInt(t2);
int nu3 = (nu*nu2);
double nu4 = (nu3*1.05);
FileWriter fw = new FileWriter("test02.txt");
fw.write(st[0]+","+st[1]+","+nu4);
fw.close();
}
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}
}
}
入力ファイルに3行文字列がはいってるのですが
出力ファイルには3行目の文字列しか出力してくれません。
これを3行まるまる出力させるにはどうすればいいいのでしょうか?
0547デフォルトの名無しさん2007/03/17(土) 13:42:32
buffer は怠惰だから flush しないと仕事を全うしない。
0548デフォルトの名無しさん2007/03/17(土) 13:45:42
アホか。ループ内で毎回ファイルを開きなおしてるからだ。
0549デフォルトの名無しさん2007/03/17(土) 13:48:18
>>546

斜め読みの脊髄反射で申し訳ないが fw.close()の前にfw.flush()
違ってたらすまん

ところで、try〜catchをException一つで受けるのって乱暴じゃね?
せめてファイル入出力系、数値変換系、その他で分けないと問題起こったとき原因の
切り分けができんぞ
0550デフォルトの名無しさん2007/03/17(土) 13:52:07
テストのために書くコードならよくやるなあ、めんどくさいし
0551デフォルトの名無しさん2007/03/17(土) 13:53:48
>>549
Exception e の内容を表示すれば問題ないと思われ。
0552デフォルトの名無しさん2007/03/17(土) 13:59:23
>>546
正しいこと言ってるのは>>548だけだからな。
0553デフォルトの名無しさん2007/03/17(土) 14:18:47
対処法がわからないです…教えていただけないでしょうか?
0554デフォルトの名無しさん2007/03/17(土) 14:26:54
めんどいから、これでいいじゃん
FileWriter fw = new FileWriter("test02.txt", true);
0555デフォルトの名無しさん2007/03/17(土) 14:42:22
>>553
BufferedReader b = null ;
FileWriter fw = null;
try {
b = new BufferedReader(new FileReader("test01.txt"));
fw = new FileWriter("test02.txt");
String s;
while((s = b.readLine())!=null){
// 略
fw.write(st[0]+","+st[1]+","+nu4);
}
b.close();
b = null;
fw.close();
fw = null ;
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}finally{
try{if(b!=null)b.close()}catch(Exception e){}
try{if(fw!=null)fw.close()}catch(Exception e){}
}

Exceptionのハンドリングは適当だし、動作は確認してないぞ
0556デフォルトの名無しさん2007/03/17(土) 14:49:32
>>554
ファイルがなかったらExceptionがThrowされなかったけ?
0557デフォルトの名無しさん2007/03/17(土) 14:58:15
あそっか。じゃあ先頭にorg.apache.commons.io.FileUtils.touch("test02.txt")
かなんかで空ファイル作成追加
0558デフォルトの名無しさん2007/03/17(土) 16:13:07
ものすごい勢いで本末転倒だなw
0559デフォルトの名無しさん2007/03/17(土) 20:31:36
JMSの仕様について勉強できるサイトや本ってないですか?
できれば日本語で・・・。
オライリーのJavaメッセージサービスは所持してます。
0560デフォルトの名無しさん2007/03/17(土) 20:43:49
クラスローダを独自に用意すれば、並行処理で同じstatic変数にアクセスしても値が違う
みたいなことが出来るのでしょうか?
0561デフォルトの名無しさん2007/03/17(土) 20:51:40
>>559
仕様はSUNのAPI仕様読むのが一番じゃないでしょうか。
仕様そのものはシンプルでキレイだけど
実装によるクセが大きいので、勉強はそこそこに
実装の調査に入った方が良い気がします。
0562デフォルトの名無しさん2007/03/17(土) 21:16:56
>561
利用する側でなく、JMSプロバイダを作る側なため、
仕様をきちんと理解してからでないときついかなと思った次第です。

オープンソースとか参考にするのがいいんですかねぇ・・・。
0563デフォルトの名無しさん2007/03/17(土) 21:16:56
VISTAでJAVAは使えますか?
0564デフォルトの名無しさん2007/03/17(土) 21:20:54
とりあえず使えます
0565デフォルトの名無しさん2007/03/17(土) 21:31:18
>>562
であるならなおのことSpecification読むしかないのでは。
あれが最終にして完全(であるべき)ですから。

差しさわりがなければMQ作ることになった理由を聞かせて欲すぃ・・
0566デフォルトの名無しさん2007/03/17(土) 21:39:02
> であるならなおのこと

おとこのこなら

に読めてしまったので眼科行ってくる
0567デフォルトの名無しさん2007/03/17(土) 21:42:51
アッー!
0568デフォルトの名無しさん2007/03/18(日) 14:13:19
SwingでBeanを編集するためのよいバインドツールみたいなものはありませんか?
0569デフォルトの名無しさん2007/03/18(日) 14:36:53
仕事関係です。SOAという言葉が大好きな人がいまして・・・。
まあまだ作ると決まったわけではないんですが。
英語大嫌いなんでキツイ(;´Д`)
0570デフォルトの名無しさん2007/03/18(日) 14:41:34
SOAと英語にどういう関係が、つーか誤爆か?
0571デフォルトの名無しさん2007/03/18(日) 14:43:18
そあー大変だな
てか別に英語関係なくね?
0572デフォルトの名無しさん2007/03/18(日) 14:45:12
http://kajuhome.com/tomcat5.shtmlを見てTomcatをセットアップしているのですが、起動時にはTomcatが起動していません。
起動後、コマンドラインから/etc/rc.d/init.d/tomcat5 start(中でcatalina.sh startを呼んでいます)で起動すると問題なく起動します。
catalina.outを見ると、停止時に

致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable

というエラーが出ています。また、起動時の表示を見ていると、上記のtomcat5より先にhttpdが起動しています。
上記URLには「必ずtomcat→apacheの順で起動すること」とありますので、ここも気になるところです。

以上二点、何かお気付きの点があれば御指摘ください。よろしくお願いします。ちなみに環境は
・CentOS 4.4
・jdk-1_5_0_11-linux-i586-rpm.binからインストールしたJDK1.5.0_11
・apache-tomcat-5.5.23.tar.gzから解凍したtomcat5.5.23
・jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gzからmakeしたmod_jk2.0.4
です。他に必要な情報があれば御指摘ください。
0573デフォルトの名無しさん2007/03/18(日) 15:09:04
>>572
CATALINA_HOMEとかが読まれてないんじゃないか?

しかし、/etc/profileを更新するとは強引だな

あと、jk2は終わってるぞ
0574デフォルトの名無しさん2007/03/18(日) 15:23:40
JAVA勉強してるのですが、将来的にもLG3Dを取り敢えずインスコしといたほうがいいですか?それともBistaにしとく?
05755722007/03/18(日) 15:29:14
>CATALINA_HOMEとかが読まれてないんじゃないか?
>
>しかし、/etc/profileを更新するとは強引だな

解決策&お勧めの方法などありましたら、「ここを見ろ」でOKですのでご教授ください(;´∀`)
ちなみにmod_jkも試してみたのですが、まったく同じ問題が出たのでクリーンインストールしなおしたとです……。
0576デフォルトの名無しさん2007/03/18(日) 15:32:46
今eclipseでdbを利用した簡単なアプリケーションを作っているのですが、
eclipseにhsql pluginを導入しました。しかし、
作ったアプリケーションをいざプラウザで表示しようとすると
HTTP????? 500 -

--------------------------------------------------------------------------------

type ??????

?????

?? The server encountered an internal error () that prevented it from fulfilling this request.

??

javax.servlet.ServletException: org.hsqldb.jdbcDriver
ってエラーが出るのですが。ちなみにDBへの接続は別のクラスがやるようになってます。
解決策分かる方、教えてください。お願いします。
0577デフォルトの名無しさん2007/03/18(日) 15:41:48
その別クラスからのDBへの接続は大丈夫でした
05785692007/03/18(日) 15:56:03
>570-571
565への返信です。
SOA→JMSという流れらしくて・・・。
で、JMSの仕様書英語しかなさそうなんで面倒だなと。
0579デフォルトの名無しさん2007/03/18(日) 15:57:47
ならまぁ、「SOAだから」じゃなくて単に英語苦手だからだな。
つ エール
0580デフォルトの名無しさん2007/03/18(日) 16:01:17
>>576
http://pc11.2ch.net/test/read.cgi/tech/1147444414/771
0581デフォルトの名無しさん2007/03/18(日) 16:13:55
今 Sun のサイトから
jdk-1_5_0_11-windows-i586-p.exe をダウンロードしてインストールしたのですが、
bin フォルダ内に javac コマンドがありません。
何か変更があったのですか?
javac に替わるコンパイルコマンドはどれでしょうか。
0582 2007/03/18(日) 16:26:28
キーボードから任意の数値nを入力させて、1からnまでの和を表示させるプログラムです。
たとえばnが7であれば、「1+2+3+4+5+6+7 = 28」という具合に表示させます。
本に載っている模範解答だと、この処理部分を

int sum = 0;

for (int i = 1; i <= n; i++) {
System.out.print(i + " + ");
sum += i; // sumにiを加える
}
System.out.println("= " + sum);

としているのですが、これだと「1+2+3+4+5+6+7+ = 28」になって、最後の余計な"+"が入っちゃうと思うんです。
そこで、この処理部分を

  int sum = 0;

  for (int i = 1; i <= n; i++){
   if (i != n){
   sum += i;
   System.out.print(i + "+");
   }

   else{
   sum += i;
   System.out.print(i);
   }

  }
  System.out.println("=" + sum);

というふうに修正してみたんですが、これって一般的な方法と言えるんでしょうか?
0583デフォルトの名無しさん2007/03/18(日) 16:30:10
Project Looking Glassに参加してる方は2chなんかにいないですよね?
0584デフォルトの名無しさん2007/03/18(日) 16:41:17
仮に居たとしても会話したくないだろうな
05855812007/03/18(日) 17:05:34
JDK のインストールの後の JRE のインストール先を JDK と同じフォルダにしたため
bin が上書きされてしまっていました。
失礼ぶっこきました。
0586デフォルトの名無しさん2007/03/18(日) 17:38:47
>>575
解決策はエスパーでもない限りわからん
スクリプトにechoでも埋め込んで確認するとかで調べるとかして原因を特定

お薦めは
ttp://ichimura.chi.its.hiroshima-cu.ac.jp/webdb/tomcat.html
の方法
ただし、内容は少し古いから適時読みかえること
jsvcのマニュアルも読んで適切にスクリプトを書き換えること
05875722007/03/18(日) 18:45:18
>>586
アドバイスありがとうございました。結論からいうと
>CATALINA_HOMEとかが読まれてないんじゃないか?
で大当たりでした。
/etc/rc.d/init.d/tomcat5の先頭にechoを入れると、起動時に環境変数まわりのエラーメッセージがドカンと表示されたので、
先頭に(/etc/profileとはまた別に、フルパス直書きで)環境変数を設定したところ、うまく起動できました。
また、念のためinit.dによる自動起動を停止し、/etc/rc.d/rc.localに記述する方法で明示的にtomcat→httpdと起動するようにしておきました。

大変助かりました。アドバイス、ありがとうございました。
0588デフォルトの名無しさん2007/03/18(日) 22:02:10
>>587
RH系なら、起動スクリプトの「# chkconfig」の行に、起動する順番を書けばいいでしょ。
「linux chkconfig 順番」でググってみたら?とりあえず1件見つけてみた。
ttp://www.geocities.co.jp/SiliconValley-Cupertino/9120/startup.html
0589デフォルトの名無しさん2007/03/18(日) 22:06:08
>>582
sum+=i;が重複してるからif-elseの外に出した方がいいな。
けどそれ以外はみんなそんな感じに書くと思うぞ。
逆に変態的な書き方があったらぜひ教えて欲しいもんだ。
0590デフォルトの名無しさん2007/03/18(日) 22:12:10
for (int i = 1; i <= n; i++) {
    sum += i;
    System.out.print(i);
    if (i != n) {
        System.out.print("+");
    }
}
0591デフォルトの名無しさん2007/03/18(日) 22:19:27
java -jar foo.jar としたときにシステムプロパティ java.class.path って
確実に実行モジュールである foo.jar のみが表示されるのかな?
仕様や実行結果を見るにどうもそうらしいんだけど。

絶対パスならそのまま、相対パスなら user.dir を付加すれば Win32 のGetModulePath の代わりになる?
05925822007/03/19(月) 00:42:19
>>589-590
そうですね。その方がスマートですね。
ありがとうございました!
0593デフォルトの名無しさん2007/03/19(月) 01:44:21
>>582
まぁ、あえて違う書き方をしたいと思ったら、

int sum = 1;
System.out.print(1);
for(int i = 2; i <= n; i++ ) {
 sum += i;
 System.out.print(i + "+");
}
System.out.print(" = " + sum);

ぐらいかな? あまりこういう書き方はしないと思うけど・・・。
0594デフォルトの名無しさん2007/03/19(月) 01:45:29
ごめん間違った

> System.out.print(i + "+");
System.out.print(" +" + i);

に修正
0595デフォルトの名無しさん2007/03/19(月) 02:16:02
>>589
普通に
for (int i = 1; i <= n; i++) {
sum += i;
System.out.print(i + (i != n ? " + " : " = "));
}
System.out.println(sum);
みたいなのを考えたけど、希望してるのならこんなの
for (int i = 1; i <= n; i++) {
System.out.print(i + " + ");
sum += i;
}
System.out.println("\b\b= " + sum);
0596デフォルトの名無しさん2007/03/19(月) 09:22:24
>>595
\bとはマニアックな・・・。
けどこうしてみるとifもないしスマートに見えるな。
機会があれば使ってみよう。
0597デフォルトの名無しさん2007/03/19(月) 14:01:53
開発はユニクソ?リヌクス?の方が多い?
05985722007/03/19(月) 15:25:20
>>588
フォロー、ありがとうございます。これでinit.dの下で管理できそうですね。
大変参考になりました。重ねて御礼申し上げます。
0599デフォルトの名無しさん2007/03/19(月) 21:11:24
新人教育でJavaを教えることになりました
知らないやつを基準に変数からクラス、オブジェクトまで教えるのですが
これだとすでにJavaやプログラミングを知っている人が退屈してしまうので
そいつらむけの適当な自習課題を用意しようと思います。
(簡単なゲームとかメモ帳作成とか)
参考になりそうなページはないですか?
0600デフォルトの名無しさん2007/03/19(月) 21:40:06
お前が作れよ
0601デフォルトの名無しさん2007/03/19(月) 22:01:06
ゲームとかメモ帳ってGUI方面だろ。
Webアプリ作らせたほうが実用的かと。
0602デフォルトの名無しさん2007/03/19(月) 22:24:57
Java知ってるやつにはDB使ったアプリを教えろ
0603デフォルトの名無しさん2007/03/19(月) 22:29:40
>>601
知らないやつ基準ということなのでそういう人が大多数という前提だと、
新人研修の自習でWebアプリ作るほどの力があるならそのまま現場投入で
たたき上げた方がよほど本人及び会社の為ではないかと
06046032007/03/19(月) 22:50:47
あ、現場投入云々はあくまで技術者として、ね。
社会人としてどうとかはまた別の話。
0605デフォルトの名無しさん2007/03/19(月) 22:59:07
>>599
http://java.cs.vt.edu/dev/javasound/api/javax/media/sound/sampled/package-tree.html
の javax.media.sound.sampled 使った何か
06061/22007/03/20(火) 00:17:04
import java.awt.*;
import java.awt.event.*;

class Awt10{
Frame frame;
Button button;
TextField text;

public Awt10(){
frame = new Frame( "フレーム" );
button = new Button( "クリックするとダイアログ表示" );
text = new TextField();

button.addActionListener( new ActionListener() {
public void actionPeformed(ActionEvent e){
new Dialog01( frame );
}
} );

frame.add( button, BorderLayout.NORTH );
frame.add( text, BorderLayout.SOUTH );
frame.pack();
frame.setVisible( true );
}

public static void main( String[] args ){
Awt10 awt10 = new Awt10();
}
}
06071/22007/03/20(火) 00:21:12
class Dialog01{
Dialog dialog;

public Dialog01( Frame frame ){
dialog = new Dialog( frame, "ダイアログ", true );
Label label = new Label( "ラベル" );
dialog.add( label );
dialog.pack();
dialog.setVisible( true );
}
}


これでコンパイルすると、
Awt10.java:15: <anonymous Awt10$1> は abstract でなく、java.awt.event.ActionList
ener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバ
ーライドしません。
public void actionPeformed(ActionEvent e){
こういうエラーが出てきてしまいます。
javaの入門本のコードそのまま打ち込んでいるんですが、どうしたらいいんですか?
0608デフォルトの名無しさん2007/03/20(火) 00:26:22
> actionPeformed
performed?
0609デフォルトの名無しさん2007/03/20(火) 00:36:55
>>607
>class Awt10{

これ本当?コピペ間違ってない?
このソースであのエラーが出るとは思えんが…
0610デフォルトの名無しさん2007/03/20(火) 00:40:10
うわーありがとうございました。
performedのスペルが間違ってました。恥ずかしい。

>>609さん
コピペは間違いはないと思います。。。
こういうエラー見たことなかったのでスペルちゃんと見てませんでした
06116092007/03/20(火) 00:49:21
すまん。勘違いだった(汗)
普段の自分のコーディングスタイルと違うので(と言い訳してみる)
0612デフォルトの名無しさん2007/03/20(火) 10:26:06
*=ってどういう意味?
0613デフォルトの名無しさん2007/03/20(火) 10:27:42
a = a * b; と a *= b; が同じ
0614デフォルトの名無しさん2007/03/20(火) 10:38:18
さんくす。
0615デフォルトの名無しさん2007/03/20(火) 11:38:00
a *= bってスタックに積む数が少ないから実行速度a = a * bより早いのかな?
0616デフォルトの名無しさん2007/03/20(火) 11:44:40
>>615
> スタックに積む数が少ない
そもそも、この違いがない、はず。
0617デフォルトの名無しさん2007/03/20(火) 12:44:50
単なる表記法の違いだよね…?
0618デフォルトの名無しさん2007/03/20(火) 13:04:47
a #= b と a = a # b の違いは、aが評価される回数。

x[func()] += y; と x[func()] = x[func()] + y;
だとfunc()の性能によっては大きな速度差が出ることがあるし、
func()が副作用を持つ場合は動き自体が違う可能性もある。
0619デフォルトの名無しさん2007/03/20(火) 13:18:13
a, b をメタ変数と考えるなw
0620デフォルトの名無しさん2007/03/20(火) 14:37:53
完全なインタープリタならいざ知らず、バイトコードまではコンパイルしてるのだから
式の評価順の解析(スタックや逆ポーランドといった)はコンパイル時におわってる。
より短くコードを書くことを良しとしていたCの文法を受け継いでるだけだ。
0621デフォルトの名無しさん2007/03/20(火) 16:16:30
>>620
要するにコンパイラが勝手に最適化するから気にするなでおk?
0622デフォルトの名無しさん2007/03/20(火) 19:12:20
WebappClassLoaderをサーブレット側から手動で動かすにはどうしたらいいですか?
0623デフォルトの名無しさん2007/03/20(火) 20:48:28
eclipseでワークスペース使ってコンソールから窓を開いて3DCGを表示するアプリ作ったのですが

それをアプレットに落とし込むにはどうしたらいいでしょか。
やり方教えて下しア
0624デフォルトの名無しさん2007/03/20(火) 20:52:01
C/C++ だと _ で始まる名前や場所を問わず __ を含む名前はシステムで予約されてるけど、Javaではどうなん?
0625デフォルトの名無しさん2007/03/20(火) 21:09:19
_については制限なし。

$も使えるが、機械生成されたものなど、用途を制限されている。
ただし、「それが望ましい」程度の縛り。
0626デフォルトの名無しさん2007/03/20(火) 21:09:25
>>624
Character#isJavaIdentifierStart も Character#isJavaIdentifierPart も true を返すから '_' 自体は使える。

_ で始まる名前とか __ で始まる名前とかで、予約はされてないはず。

コーディング規約で使わないのを推奨してたか、は忘れた。
0627デフォルトの名無しさん2007/03/20(火) 21:16:04
>>625-626
サンクス。自分でそんな名前を進んで使うつもりはないけど、
いま弄ってるソースでバンバンそんな名前が使われてたから気になってた。
0628デフォルトの名無しさん2007/03/20(火) 21:41:28
>>617
どこにレスを付けるのか迷ったけど、ここにレス付けるわ。
例A
short x = 0;
int i = 123456;
x += i; // エラーなし
x = x+ i; // エラー 精度が落ちている可能性

例B
Object o = "Hoge";
String s = "Test";
o = o + s;// エラーなし
o += s; // エラー 互換性のない型

元ネタ 書籍「Java Puzzlers」
0629デフォルトの名無しさん2007/03/20(火) 22:06:08
>x += i; // エラーなし
なんで?
0630デフォルトの名無しさん2007/03/20(火) 22:18:46
JLS15.26.2を読んでみた。

前者は、複合代入演算
E1 op= E2
の意味するところは
E1 = E1 op E2
ではなく、
E1 = (T)(E1 op E2) // TはE1の型
すなわち、複合代入演算子は暗黙のうちに代入される側の方へのキャストを
行うというのがポイント。

後者は、複合代入演算子が使えるのはプリミティブ型/そのラッパー型、そして
+=については左辺がStringの場合のみ、文字列連結が行われる。
(右辺はどんな型でもよい)
0631デフォルトの名無しさん2007/03/20(火) 22:22:58
>>629
例えば

byte b = 0;
b += 2; // 2 は int型

とかがコンパイルエラーになったらウザいでしょ。
0632デフォルトの名無しさん2007/03/20(火) 23:34:47
JPanelにCanvasをはりつけてCanvasにイメージを描画しようと思ってます。
JPanel内に↓のようなMyCanvasクラスを定義してpaint()を実装しました。

 private class MyCanvas extends Canvas {
  public void paint(Graphics g) {
   g.drawImage(resultImage, 0, 0, null); // resultImageはJPanelのインスタンス変数
  }
 }

JPanelでresultImageが変更されたときにmyCanvas.repaint()を呼んでいるのですが
Canvasのイメージが更新されません(一度、最小化して戻すと表示されてます)
再描画がうまくいってないようなのですがどのようにすればよいでしょうか。
0633デフォルトの名無しさん2007/03/20(火) 23:39:03
- MyCanvasはCanvas(AWTコンポネント)を継承せず、代わりにJPanelを継承
- paintではなくpaintComponentをオーバーライド

でどうか?
0634デフォルトの名無しさん2007/03/20(火) 23:51:18
アドバイスありがとうございます。
ただそれでもだめでした。
paintComponent()でSystem.out.println()やるとちゃんと表示されてるのでrepaint()で
メソッドは呼び出されてはいるようです。
ただはりつけたJPanelに表示はされません・・・

もとのパネル(MainPanel)では
setLayout(new BorderLayout());
imagePanel= new MyPanel();

add(imageCanvas, BorderLayout.CENTER);
ではりつけてます。
0635デフォルトの名無しさん2007/03/20(火) 23:52:10
add(imagePanel, BorderLayout.CENTER)
の間違いでした
0636デフォルトの名無しさん2007/03/20(火) 23:58:52
自己レスです

はりつけたMyPanelのpaintComponent()にsuper.repaint()を入れたらすぐ再描画されました。
貼り付け元のJPanelも再描画する必要があるってことでしょうか・・・
0637デフォルトの名無しさん2007/03/21(水) 00:02:58
関係ないかもしれないけど、
paintComponentでsuper.paintComponentは呼んでる?
0638デフォルトの名無しさん2007/03/21(水) 00:19:55
呼んでます・・・

JFrameの上にJPanelを貼り付けた場合は、paintComponent()ですぐ再描画されてたんですが、今度はJPanelの上にJPanelを貼り付けたからかと疑ってるんですが、関係ないかな。
0639デフォルトの名無しさん2007/03/21(水) 00:25:58
超初心者です。
本を見ると
「swingはAWTと異なり、コンテンペインを取得し、そこにコンテンツを配置する。」
というように書いております。
で、そのとおりgetContentPane()してaddしたらもちろん上手くいきました。
流れとしてはこんな感じで。→new JFrame().getContentPane().add(new JPanel());
その後もしかしてと思って、
new JFrame.add(new JPanel())
ってやっても普通にうまくいきました。
コンテンツペインを取得する必要ってあるんでしょうか?
0640デフォルトの名無しさん2007/03/21(水) 00:35:17
>>638
自己レスですが
g.drawImage(resultImage, 0, 0, this);
で解決したようです。null->thisにしました。
0641デフォルトの名無しさん2007/03/21(水) 00:37:44
>>639
最近のJFrameでは不要。必要に応じて内部でgetContentPane()した先に
要求をたらい回ししてくれる。

0642デフォルトの名無しさん2007/03/21(水) 00:41:07
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/swing/1.5/index.html#swingMajor
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753342
だな。
06436392007/03/21(水) 00:48:04
おお、、ありがとうございます。
getContentPane()は面倒だけどswingの構造を理解するのに役立ってたので
ちょっと複雑な気分です。
0644デフォルトの名無しさん2007/03/21(水) 13:28:38
jarファイルからカレントディレクトリにある任意のJDBCドライバを読み込ませるようにしたいのですが、
MANIFESTのクラスパスには何と記述すればよいのでしょうか?
.や*.jarでは認識しませんでした。
直接名前指定 or jre/lib/extにドライバを格納するしかないのでしょうか?
0645デフォルトの名無しさん2007/03/21(水) 13:39:51
記述部さらしてみ
06466442007/03/21(水) 13:49:58
Manifest-Version: 1.0
省略
Class-Path: *.jar xxxx.jar xxxx.jar

Manifest-Version: 1.0
省略
Class-Path: . xxxx.jar xxxx.jar

という感じです。記述の仕方に問題ありますか?
0647ひょこたんだお(^ω^ ◆E9k1wjKgHI 2007/03/21(水) 16:21:36
ごめんなすm(^ω^#)m

static Class forName(String className)

の使い方がわかんなひ(;ω;)おっおっお
簡単なソースをいくつかキボンヌッ
(#^ω^)ノたのんだうお
0648デフォルトの名無しさん2007/03/21(水) 16:43:35
>>644
必要なものを明示的に指定するという観点から、
ワイルドカードは使えないんじゃないのかねぇ。

http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html#Main%20Attributes
使えるとは書いてない。使えないとも書いてない。
0649デフォルトの名無しさん2007/03/22(木) 03:33:29
>>647
ここの
ttp://blog.goo.ne.jp/akubi_2005/m/200601

Mainクラスがいっぱいの時
にソースがあった。
0650デフォルトの名無しさん2007/03/22(木) 10:34:01
独学で苦戦している超初心者です。
自分でもいろいろ調べてみたのですが、困り果てて皆さんのお力に頼ることになりました。
今、コマンドラインに数字を一行で 10,24,35,40 のような形で入力させてそれぞれの数字を表示させるものを作っているのですが、コンパイルをして実行までは出来るのですが、数字を入力したあとにエラーが出ます。
エラーメッセージをググってみたのですが、検索には引っかかるものの「これだ!」というものが見つからなかったのでココに質問させていただきました。
以下にコードの一部とエラーメッセージを記載します。
public static void main(String[] args) throws IOException {
int input[];

System.out.println("数列はカンマ区切りの文字列で入力してください。");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String numbers[] = str.split(",");

int i=0;
input = new int[i];
while(i < numbers.length){
input[i] = Integer.parseInt(numbers[i]);
System.out.println(i + "つめは" + input[i]+ "です。");
i++;
}

}

以下エラーです。
java.lang.ArrayIndexOutOfBoundsException: 0
at Test.main(Test.java:28)
Exception in thread "main"
*ココでいう28というのがコードの28行目であれば
input[i] = Integer.parseInt(numbers[i]);が28行目にあたります。

どなたか、お助けください。
0651デフォルトの名無しさん2007/03/22(木) 10:39:17
> int i=0; 
> input = new int[i]; 
だれが見てもここだ
0652デフォルトの名無しさん2007/03/22(木) 10:40:31
>650
右辺の numbers[i] ではなく、恐らく input[i] から出ている例外かと。

int i=0;
input = new int[i];

この時点で input[] の要素数はゼロになっているが
それ以降 input[] の要素数を増やしていない以上 input[] の要素数はゼロのままだ。

input = new int[i];

を

input = new int[numbers.length];

にしてみたら?
06536502007/03/22(木) 11:07:57
>>652
どうもありがとうございます!解決しました!
答えだけでなく、どこがどのように間違っているかまで答えていただいて
大変勉強になりました。
0654デフォルトの名無しさん2007/03/22(木) 13:47:44
これってどうよ?
http://ja.wikibooks.org/wiki/Java
0655デフォルトの名無しさん2007/03/22(木) 14:13:36
>>654
個人的には、「Javaをはじめよう」以下は要らないような気もする。

char が -32768〜32767になってたり、
「リファレンス型というのは、クラスのことです」とか、間違いもちらほらあるし。

文法とかは、JLS へのリンク貼って終わりで良いとか、
入門者用のコンパイル手順を示すんなら、テキストでやるより
flash movie とかでやった方が親切なんじゃないか、と思ったり思わなかったり。
wikibook に flash 置けるのか知らんけど。
0656デフォルトの名無しさん2007/03/22(木) 15:35:54
>>514
おやおや? Java家電時代の到来か?

将来は、Javaで家電制御を企んでいるのかねー? Jiniかねー?

0657デフォルトの名無しさん2007/03/22(木) 17:43:49
まずはおいしいご飯からお願いします
0658デフォルトの名無しさん2007/03/22(木) 17:45:39
すみませんが、質問です。

HttpServlet のソースコードは、どのソフトに含まれているのでしょうか?
たぶんTomcatにあるのだろうと思っていたのですが、うまく見つけられません。
利用中のTomcat は4.1です。
0659デフォルトの名無しさん2007/03/22(木) 17:59:27
質問です。
HTTP Get のクエリ文字列から、パラメータ名とその値の組み合わせの集合を取
得するには、どうしたらいいでしょう?
0660デフォルトの名無しさん2007/03/22(木) 18:18:15
>>658
classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。
06616582007/03/22(木) 18:37:21
>>660
> classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。

ありがとうございます。ソースはどこで手に入るのでしょうか?
オープンソースですから、どこかで配布はしているはずなのですが。

実は>>659も私なのですが、以下の処理の参考にしたかったのです。
目的:URL文字列からクエリパラメータを手動で取り出す

URL文字列を与えられて、
String url = "http://www.youtube.com/watch?v=pd74BKx0x-w";;
ここからクエリ文字列を取り出し、
String qstring = new URL(url).getQuery();
//qstring = "v=pd74BKx0x-w"

ここまではできるのですが、それをパラメータと値に分解する方法が分かりません。
正規表現などで愚直に分けるしかないのでしょうか?
何か既存のAPIがあるのではないかと思うのですが。
0662デフォルトの名無しさん2007/03/22(木) 18:50:24
>何か既存のAPIがあるのではないかと思うのですが。

request.getParameter( "v" )で一発だ。

ソースではなくAPIドキュメントを利用するのがJavaでは普通。
http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html
http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpServletRequest.html
06636582007/03/22(木) 19:06:03
>>662
ありがとうございます。
HttpServletRequestは与えられていなくて、ただURL文字列だけがあるのです。
だから「手動で」取り出す必要があります。
説明不足ですみません。
0664デフォルトの名無しさん2007/03/22(木) 19:16:22
>>663

ほいっhttp://www.google.com/codesearch
?hl=ja&q=show:WeBMAMCdhTg:T67KRquB4ao:axPaDrtTH9s&sa=N
&ct=rd&cs_p=http://download.nextag.com/apache/
tomcat/tomcat-5/v5.5.17/src/apache-tomcat-5.5.17-src.tar.gz
&cs_f=apache-tomcat-5.5.17-src/container/catalina/src/share/
org/apache/catalina/core/ApplicationHttpRequest.java

このvoid parseParameters()あたりから辿ってけばいんじゃね?
0665デフォルトの名無しさん2007/03/22(木) 19:17:47
ソース tarballには入ってないの?

svnならhttp://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/
中は見てない。
06666582007/03/22(木) 20:20:55
>>664
ありがとうございます。どうやら↓のparseParameters()のようです。
これはどのjarファイルにあるのかなあ。
どうも探し方が分かりません。

http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/tomcat/
apache-tomcat-5.5.17-src/container/catalina/src/share/org/apache/
catalina/util/RequestUtil.java

>>665
> ソース tarballには入ってないの?
実装クラスは入っていますが、HttpServletRequest自体のソースは無いようです。
0667デフォルトの名無しさん2007/03/22(木) 20:26:32
質問です。
server.xmlの<context>のreloadable属性が
falseかtrueかの情報を
クラスから取得する方法はありますか?
0668デフォルトの名無しさん2007/03/22(木) 20:26:38
javax.servlet.http.HttpServletRequestはinterfaceだから、
ソース見ても実装情報はないよ。
06696582007/03/22(木) 20:36:56
>>668
> ソース見ても実装情報はないよ。
それはそうなのですが、ソースが無いと、Eclipseで追いづらいと思います。

なお、RequestUtil.class は catalina.jar に含まれていました。
publicクラスですが、一般ユーザが利用することが適切なのか、よく分かりません。

ところで、どのクラスがどのjarに含まれるのかを簡便に知るにはどうしたらい
いでしょう?

・1つ1つJarコマンドで表示
・拡張子をzipに変えて検索
・片端からEclipseのプロジェクトに組み込んでみる

これらよりもっといい方法はあるでしょうか?
0670デフォルトの名無しさん2007/03/22(木) 20:45:49
>>669
Eclipseで追うだけなら、jadclipseを入れておくとソースがないものは
jadで逆コンパイルしたものを表示してくれたりする。

jar探しは、コマンドラインに苦痛を感じないヒトなので、
jar tfで探すかなー。Eclipseに組み込むのはいい方法だと思います。

0671デフォルトの名無しさん2007/03/22(木) 21:42:42
String url = "http://foo.bar.com/hoge.cgi?a=b&x=y&foo=bar";;
String[] params = url.substring(url.lastIndexOf('?')+1).split("[&=]");
これで{"a","b","x","y","foo","bar"}っていう配列ができる。
後は、配列の偶数と奇数で分けて適当に処理すればいけるだろ。
0672デフォルトの名無しさん2007/03/22(木) 21:53:10
>>671
フラグメントがあったら最後の要素が "bar#hoge" みたいにならんか?
0673デフォルトの名無しさん2007/03/22(木) 22:06:09
>>672
なるほど。じゃあこれでどだ。無理矢理1行。
String[] params = url.substring(url.lastIndexOf('?')+1, url.indexOf('#') > 0 ? url.indexOf('#') : url.length()).split("[&=]");
06746582007/03/22(木) 22:50:29
>>670
ありがとうございます。参考になります。
できたら配布元のサイトでドキュメント化してくれていたら楽なのですが。

>>671-673
標準のAPIには存在しないらしいので、自分もそれなりに書いてみました。

String url = "http://www.youtube.com/watch?v=pd74BKx0x-w";;
String q = new URL(url).getQuery();
Map<String, String> map = new HashMap<String, String>();
for (String pv : q.split("&")) {
    String[] p = pv.split("=");
    map.put(p[0], p[1]);
}
0675デフォルトの名無しさん2007/03/22(木) 22:53:43
a=&x=yみたいに値がないパラメタがあったらうまくいかない気がする。
0676デフォルトの名無しさん2007/03/22(木) 22:55:13
675は>>673ね。

>>674
たいていはそれでいいけど同じキーの値が複数あったらうまくいかないので注意。
0677デフォルトの名無しさん2007/03/22(木) 22:58:46
パラメータ間の区切りに最近は;も使うので、汎用性から言ったらこれも認識する
とよい。
>>675のケースを回避するために、まず &(および; )だけで区切り、そののち=で
分解するといいだろう。
>>676を考慮するならmapの値側をコレクションクラスにする必要がある。
0678デフォルトの名無しさん2007/03/22(木) 23:26:33
書式指定子について教えてください。
ある本で↓みたいなのがでてきたんですが、%が多くて何やってんのかよくわかりません。

System.out.printf(String.format("%%2d | %%%dd\n", n), r, x);

%dで10進数に変換。2は2桁の長さを表す。ということはわかったのですが、
引数に対して書式指定子がやたら多いような気が・・・
メソッドが入り子になってるからややこしいんでしょうか?
そもそもformat()の第2引数 n は何に変換されるんでしょう?
06796582007/03/22(木) 23:27:54
>>675氏のケースに対応
String[] p = pv.split("=");
↓
String[] p = pv.split("=", 2);

自分の用途には>>676氏のケースはなさそうなので、これで何とかなりそうです。
ありがとうございました。
0680デフォルトの名無しさん2007/03/22(木) 23:35:52
%%が%そのものになるというのは理解してる?

順番に書くと、
String format = String.format("%%2d | %%%dd¥n", n);
System.out.printf(format, r, x);

たとえばnが5だと最終的には System.printf("%2d | %5d¥n", r, x) を行う。

# 一つ指摘しておくと、フォーマット指定として改行を記述するには¥n
# ではなく%nを使うべき。
0681デフォルトの名無しさん2007/03/23(金) 01:30:23
すみません、XPathAPIを使って、以下のXMLから<media:thumbnail> のurl属性
を取得するには、どのようにXPathを記述したらいいでしょうか?

http://video.google.com/videofeed?fgvns=1&fai=1&docid=507732229697832036&hl=en
(以下、抜粋)
<rss>
<channel>
<item>
<media:group>
<media:thumbnail
  url="http://video.google.com/ThumbnailServer2?app=vss&contentid=
c5ed681df175c4b0&offsetms=5000&itag=w320&lang=en&sigh=8GjvM1prox25GC-jte15jydXiAA"
  width="320"
  height="214" />
</media:group>
</item>
</channel>
</rss>

以下のページなどを参考にしているのですが、具体的な記述が無くて困っています。
http://msugai.fc2web.com/java/XML/XPath.html
0682デフォルトの名無しさん2007/03/23(金) 02:18:50
java関係ないね。と言っても該当スレがここしか見当たらない。

ttp://pc11.2ch.net/test/read.cgi/tech/1133280488/l50

06836812007/03/23(金) 02:31:04
>>682
すみません、XPathAPIに固有の問題もあるかと思い、こちらで質問しました。
例えば、.NETならこんなページがありますが、
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml05/easyxml05_03.html
この内容(addNameSpace)はJavaでは使えないようです。
0684デフォルトの名無しさん2007/03/23(金) 02:39:18
XmlNamespaceManager site:w3c.org
に該当するページが見つかりませんでした。

おや?
0685デフォルトの名無しさん2007/03/23(金) 04:58:49
>>681
>どのようにXPathを記述したらいいでしょうか?

こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないんだが・・・。

>XMLから<media:thumbnail> のurl属性
を取得する
ロケーションパスの書き方は分かるのか?

>>684
.NETのクラス名がw3cのページでヒットするわけ無いだろ。煽るならもっと頭使え。
googleくらい使えるようになろうな

xpath site:http://www.w3.org/
    ~~~~~~~~~~~~~~~~~~~~~~~~
06866812007/03/23(金) 05:12:15
すみません。
>>685
>
> こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。
> て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないん
> だが・・・。

おっしゃるとおり、よく理解しておりません。

> >XMLから<media:thumbnail> のurl属性
> を取得する
> ロケーションパスの書き方は分かるのか?

おそらく、
/rss/channel/item/media:group/media:thumbnail/@url
ではないかと思うのですが…。
06876812007/03/23(金) 05:18:48
追記です。
よく分かっていないのは、名前空間の扱いです。
.NETの実装を見て、JavaのXPathApiにも、addNameSpace にあたる関数があるの
だろうと考えたのですが、それを見つけられなくて困っていました。
0688デフォルトの名無しさん2007/03/23(金) 09:54:40
>>685は、XmlNamespaceManagerなんぞw3c標準にないのに知るかよ!
という回答するつもりだった人からのピーデーの某氏へのイヤミです。
0689デフォルトの名無しさん2007/03/23(金) 09:55:34
×という回答するつもりだった人からの
○という、回答するつもりだった人からの

「、」いっこ抜けて意味が変わってるしorz

0690デフォルトの名無しさん2007/03/23(金) 12:06:23
ログを解析するアプリケーションを作りたいのですが、SwingやAWTで
UI部分を作り、エンジン部分をC言語で作る事は出来るのでしょうか?

出来る場合、JAVA側(UI)とC側(エンジン)とのやりとりはどのような
感じになるのでしょうか?

C言語は少し経験ありますが、JAVAはまったくの初心者です。
よろしくお願いします。
0691デフォルトの名無しさん2007/03/23(金) 12:11:49
出来る。

やりとりはソケットを使う/JNIを使うなど。
0692デフォルトの名無しさん2007/03/23(金) 12:15:33
>>691
即レスありがとうございます
その単語でぐぐったら期待通りのAPIがHITしました!
06936812007/03/23(金) 12:54:47
自己フォローです。

Java XPath API
http://www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml
> しかし、pre という接頭辞を、http://www.example.com/books という URI
> にマップする必要があります。NamespaceContext インターフェースが
> JDK(Java software development kit) や JAXP にデフォルトで実装されてい
> ないのは多少ばかげた話ですが、実際にないのです。

この後、記事は「名前空間マッピングクラスを自作する」ことになります。ど
うなってるの?何か意見の対立と混乱があるように見えます。

ちょっと使おうと思っただけなのに。弱りました。
0694デフォルトの名無しさん2007/03/23(金) 13:05:58
PS3でFolding@homeが利用可能になりました!
タンパク質解析プロジェクトFolding@homeで病気で苦しむ人達を救えるかも。

PS3でFolding@homeしようぜ(Team 2ch)
http://ex22.2ch.net/test/read.cgi/ghard/1174030817/

チーム番号:162
チーム名:Team 2ch
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162

☆PS3での参加方法
PS3からFolding@homeを起動し、チーム番号162に入力すればOK。
ユーザ名は何でも良いが、http://folding.stanford.edu/japanese/download.html
にて、名前が既に使われているかどうか確認する事を推奨。
参加の確認としては、「オプション(△)」→「関連サイト」→「チーム処理統計量」と開き、
「Team 2ch」(上記URLのページ)が表示されればちゃんと参加できている。
☆Folding@homeについて
http://folding.stanford.edu/japanese/
0695デフォルトの名無しさん2007/03/23(金) 14:02:20
File#mkdirsが失敗した場合に
その原因を取得する方法ってありますか?
0696デフォルトの名無しさん2007/03/23(金) 14:23:47
>>695
無いよ。
SecurityManager が許可しない場合だけは例外もらうから分かるけど。

mkdir() する前に、作ろうとするディレクトリが既に存在しても失敗するし、
同名ファイルがあってディレクトリ作れなくても失敗するし、
ディレクトリの名前が不正な場合 名前が長すぎたり名前に使えない文字が含まれたり でも失敗するし、
ファイルシステム上の権限がなくてディレクトリを作れなくても失敗する。
0697デフォルトの名無しさん2007/03/23(金) 14:28:48
>>696
そうなんすか…orz
一応isDirectory()で存在しない時だけ作るようにはしてるんですが
何で失敗したのかわからないとどうしようもない…
0698デフォルトの名無しさん2007/03/23(金) 20:47:55
>>693
そもそもAPIは何使ってんだ?JAXP1.3以上?

名前空間のバインディングなんてアプリケーションによっては必要ないし
バインドするプレフィックスの数によってデータ構造なり検索アルゴリズムの
最適な実装が変わるから汎用な物は作れないから実装を用意するのは無駄。

バインダくらい自分で書け。愚痴しか書いてないじゃないか?
0699デフォルトの名無しさん2007/03/23(金) 23:10:02
よろしくお願いします。完全に手詰まってしまいました。

環境-
マシンA(開発機):Windows XP Pro、IIS6、WebLogic8.1、JavaSDK1.4.13
マシンB(評価機):Windows Server 2003、IIS6

マシンAで開発、デバッグしてOKなものをマシンBに置き換えています。
それぞれにサーブレットクラス1と固定値が書いてあるfinal staticメンバがいるクラス2があります。
マシンAとマシンBではクラス2のfinal staticメンバは違う値が書いてあります。

マシンAでリコンパイルしたクラス1をマシンBに置き換えます。
その後WebLogicを再起動後、マシンBを動かしてみると
マシンBでクラス1が参照しているクラス2のfinal staticメンバ変数が
マシンAの値となり、エラーが出てしまいます。
クラス2は置き換えていないのに、エラーになってしまいます。

どこかに値がキャッシュされてるとしか思えない動きなのですが、
APサーバを再起動しているのにそういうことがありうるのか、まったくわかりません。

0700デフォルトの名無しさん2007/03/23(金) 23:16:48
キャッシュでハマることはまああるけどそのパターンならキャッシュ以前の話。
マシンA.クラス2をマシンBに"一度も"持っていったことがないはずなのに
マシンA.クラス2の値を参照しているなんておかしい。
なんらかの形でいっしょに持っていってしまったとしか思えない。
0701デフォルトの名無しさん2007/03/23(金) 23:16:54
最適化されてクラス1にその定数の値が埋め込まれちゃってんじゃないの?
0702デフォルトの名無しさん2007/03/23(金) 23:22:43
http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#13.4.9

これじゃね?
0703デフォルトの名無しさん2007/03/24(土) 01:13:54
質問です。サーブレットとJAVAって違うの?
0704デフォルトの名無しさん2007/03/24(土) 01:24:06
>>703
質問です。ゴキブリと害虫って違うの?
07056812007/03/24(土) 01:59:52
XPathについての自己フォローです。おそらく解決しました。

何が分からないのか自体をよく分からず調べていたのですが、まとめるとこう
なります。

・XPathの名前空間と接頭辞のバインディングの設定の、Javaでの標準的な方法
 は何か?
→完全には決まっていない。それを規定するNamespaceContextは、インター 
 フェースだけしかなくて、実装がない。

・なぜ決まっていないのか?
→単にまだ出来ていないだけ。JAXPは現在1.3だが、1.5までには何とか。

・じゃあ、どうしたらいいのか?
→自分で非標準の実装を作るか、privateな内部クラスで使い捨てにするか、ま
 たは有志の作ったライブラリを利用するか。

・こういう大事なことがXPath単体でできるようになっていないのはなぜか?
→XPathはもともとXSLTのためのもので、XSLT自体がXMLだから、XSLT内に名前
 空間宣言をそのまま書けば済んでしまう。

実はXPathを知ったの自体がつい一昨日で、うまく調べられず、ずいぶん無駄な
回り道をしてしまいました。結局、

http://norman.walsh.name/2006/03/28/jaxpNamespaceContext
http://www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml
初見では分からなかったのですが、これらにほぼすべてが書かれていました。

解決に当たって、このスレのやり取りも非常に参考になりました。ありがとう
ございます。特に>>685, >>698さんには深く感謝します。
0706デフォルトの名無しさん2007/03/24(土) 02:27:26
質問者の見本みたいな人だ
0707デフォルトの名無しさん2007/03/24(土) 02:33:26
>>681以外の質問者のほとんどがクズに見えてきた
0708デフォルトの名無しさん2007/03/24(土) 03:49:46
お前ら冷静になって良く見てみろ。箇条書きにしてるだけで結局は

仕様が定める範囲と実装がサポートする範囲と自分で実装しなきゃいけない部分を理解してないし

そもそもどのコンテキストでXPathを使いたいのか一度も言ってないんだぞ?
XSL内でロケーションを表すのに使うのかプログラム中に直接叩きたいのかすら分からず仕舞だぞ?何を教えろと?

事後報告は当然の事だ。


#XPointerの事もたまにで良いので思い出してあげて下さい。
0709デフォルトの名無しさん2007/03/24(土) 10:37:35
できて当然のことでも褒めないと人は伸びない
0710デフォルトの名無しさん2007/03/24(土) 12:03:27
>709ごめんなさい…
0711デフォルトの名無しさん2007/03/24(土) 12:13:29
               |/
          _., .,、._,r hh.、 y...u,_ 、 、.,.,
        .yl!).彳}゙.^゙冖^^^゙゙'⌒゙゙「{ .〕:!|ァ_ l.r.
       .rl!.「.゙.′            .゙.^゙「.|^|'!.,.ri,、
    _,.u:l 「″        _,..vv-─--v、、.,__゙ ´「 リ゙ .r
  .-i(┴^        ,.v‐ ′    i!、  厂^'ー、_ .'゙/
 .,l|         .,.‐'゙r  '=,  .|ト!  ..     /_ ┘ _,
.[.′      .,r(,,vv!冖h厂 _,、、、,_ ¨゙()   .゙゙il|リ冖ミ(ミ,.l|/レ'
.||     _,yr!^″    [.zli》ニ《)ミ|l;, |ノ冖ーu「.,zzzzy,{丁′
.!ミ   .yr(l「′      〔″    `.,i^   .〔.!!干「「)v)《フ
i|  __,/′.}     .    \,,,,,_,,,,,,vr″    .゙)z    ,メ゙'ly
|゙/|レr》!  }     .}..       /,v--r ,、u_:rフ'¬ー^″ ゙ミ
》゙|′ .ミ .|     .∨   ,、    {lzトrr┘ \从,,)     }:! .《
}}.,rー ミ,,ェ    ,     .'|フ      .,,zu厶  ̄     ゙'^ l!
゙|从  》″    | r          -:(工ェ」zミv_   n.    〔   
.》ト  .′    ∨       7vv=(干=─干ミl||l,_,z ″    》
.《l,_ .'|!                 .__     , . ゙̄..      〕
 《^¨′                 .゙冖'^^'''冖   v\    }
 [      、        .           〕   〔 .′ .」_ .ll′
 .|      | 」       ._}         .hノ   .:| ,.. .,.トト 〕
 .}     .^′      ゙《,_           .、,ノ ...厂、 .il
  }          _  .、 .゙゙'〜 .y,_      _,r;|¨ <、、‐ . ノ
  .{,         〔 」  ´ ‐ 「ilリiアアァァァ;lllllli(リ゙} ┌ 冫.. .ア
   \        ∨゙ . _ .- . ' .`゙厂¨厂゙厂'. .゙ 、' .゙. ヽ‐,r|
   .ノy           .´ 、 .: ' ..:  .、 ' ` ' _ . .冫 -.',y;|^
0712コン2007/03/24(土) 13:30:20
jsp試したいのにトムキャットの設定がむずくてだめです。
エクリプスは動くし、しかしエクリプスでトムキャットはだめ、
どこかいいサイトあったら教えてください。

0713デフォルトの名無しさん2007/03/24(土) 14:25:14
>712
オレかよ(:D)| ̄|_ =3=3
0714デフォルトの名無しさん2007/03/24(土) 14:30:17
NetBeans使えばバンドルされてるからそれ使えばいいと思う。
設定が難しいってのには?だが、まあやりたい事の主品はそこじゃないだろうしね
0715デフォルトの名無しさん2007/03/24(土) 17:01:50
マウスカーソル消す方法ご存知ないですか?
Cursorクラス見てもそれらしい設定がないです・・・:
0716デフォルトの名無しさん2007/03/24(土) 17:53:52
>>715
カーソルを消したいComponentでjava.awt.Component#setCursor(Cursor cursor)を使え。
cursor = Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB), new Point(), "");
与えるImageについては別にこれでないといけないということはない。

Cursorクラスのドキュメントから全て辿れるぞ。もっとドキュメントの読み方を勉強汁。
Component#setCursorはクラス説明の関連項目から。
Toolkit#createCustomCursorはコンストラクタの説明から。
0717デフォルトの名無しさん2007/03/24(土) 17:54:18
>>715
java.awt.Toolkit#createCustomCursor(Image, Point, String); に透明な Image 渡す
0718デフォルトの名無しさん2007/03/24(土) 18:31:05
初歩的な質問で恐縮ですが、

<head>内に<link rel="stylesheet" type="text/css" href="css/style.css">

と入れるとjavaが動いてくれません。
色々手は尽くしてみたのですが・・
原因はなんでしょうか?

よろしくお願いします。

<link rel="stylesheet" type="text/css" href="css/style.css">
↑の一行を外すと動作してくれます。
0719デフォルトの名無しさん2007/03/24(土) 18:36:25
>>718
style.cssの中でアプレットを無効化してない?
07207182007/03/24(土) 18:44:59
>>719さん
早速のご返答ありがとうございます。
今確認してみましたが、無効となるような設定はしていないようです・・
0721デフォルトの名無しさん2007/03/24(土) 18:58:38
実は動いているけど見えないだけとか。
APPLET {
width: 0%;
}
こんなあからさまなのは無いと思うけど。
もう少しcssやhtmlの中身が分からないと何とも言えない。
linkタグやスタイルシートの有無でアプレットの動作が変わるなんて、どちらかというとweb製作板向きの話題かもしれんね。
少なくともその1行が無ければアプレット自身は動作しているわけだし。
もしくは、linkタグやcssの中身をアプレットで検知して動作を変えてるとか…はさすがに無いか。
0722デフォルトの名無しさん2007/03/24(土) 20:08:06
というかCSSファイルの内容の一部を削除していけば、どこが原因かわかるでしょ?
ファイル名に/が入ってもいうんだっけ?
07237152007/03/24(土) 21:01:33
>>716
>>717
アドバイスありがとうございます。
無事消せました。
0724デフォルトの名無しさん2007/03/24(土) 21:10:57
>>718
css晒せ
0725デフォルトの名無しさん2007/03/25(日) 10:14:55
>>712
TOMCAT_HOME\bin\startup.bat
だけで動くじゃん。ハマるぐらいならeclipse経由で起動する必要ない。
0726じゃぎ2007/03/25(日) 11:22:28
こんにちわ。

同一Webアプリケーション内の二つのサーブレット間で
同じ情報を共有したり、同じ情報を恒久的に持っていたりという意図に、
どちらかのサーブレットクラス内、あるいはその他、アクセス可能な
クラス内のStaic変数を使ったりするのはいけないんでしょうか。
また、Static変数内のものがSerializableかどうかの有無にも関係
ないんでしょうか。

ここのページのリスト3のように
ttp://www.atmarkit.co.jp/fjava/rensai2/jspservlet07/jspsevlet07_2.html

application.setAttribute("counter",intCnt);
として、applicationや、ServletContextのset(get)Attiributeを使う例を
良く見るんですが、モヤモヤしていて迷っています。。よろしくお願い致します。

過去ログでもうまくみつけられなかったんですが、もし関連したページが
あるようでしたら、二言、三言キーワードのようなものを投げて頂ければ
ありがたいですます。
0727デフォルトの名無しさん2007/03/25(日) 11:34:40
public static int
0728デフォルトの名無しさん2007/03/25(日) 11:39:47
そのServletクラスに属するべき情報かどうかで使いわけるべき。
「特定のServletクラスが持つ情報」ではなく、
あくまで「複数Servletクラス間で平等に共有するべき情報」なのであれば
ServletContextを使うほうがいいだろうね。
0729じゃぎ2007/03/25(日) 11:50:02
早速ありがとうございます。
ちょっと心配だったのは、Static変数にした場合、一時的には良くても、
ガベージコレクションなどが行われた際に、必ずしも値が保障されなく
なったりするのかな。。とか思ったりしてましたが、心配しなくても良い
ものなのでしょうか。
あつかましくて申し訳ありませんが、よろしければ、そのあたりのご教授
も頂ければ幸いに思います。
0730デフォルトの名無しさん2007/03/25(日) 11:51:50
GCがstatic破壊するなら何を信じればいいんだろう
0731デフォルトの名無しさん2007/03/25(日) 11:51:59
お願いします。例えば
if (list != null && list.size() > 1) {...}
でlistがnullの場合、以降の条件式は評価されないようなことに
名称はありますか?
また、他の言語では違ったりしますか?
0732デフォルトの名無しさん2007/03/25(日) 12:02:25
GCがクラスローダを回収したらstatic修飾子つきも回収されるけどな
0733デフォルトの名無しさん2007/03/25(日) 12:08:09
>>731
>以降の条件式は評価されないようなこと
特に名称は無い。
が、言い方としては「評価が打ち切られる」などと言われることが多い。

>他の言語では違ったりしますか?
C言語なども || や && に限ってはJavaと同じく左から評価される。
ただし、+-*/などの評価順はC言語では不定(決まっていない)。
右から評価されたり、ランダムに評価される実装の言語もあると思う。
0734デフォルトの名無しさん2007/03/25(日) 12:08:40
>>731
ショートサーキット評価
0735デフォルトの名無しさん2007/03/25(日) 12:11:48
>>734
ショートサーキット評価 の検索結果 約 988 件中 1 - 10 件目 (0.17 秒)

知名度は低いな。
0736デフォルトの名無しさん2007/03/25(日) 12:13:19
そうじゃない言語があるとしたら
わざわざif文を入れ子で書かないといけないのか。つらいな
0737デフォルトの名無しさん2007/03/25(日) 12:19:26
>>736
VBとか、そうなんじゃなかったっけ
0738デフォルトの名無しさん2007/03/25(日) 12:19:33
>>736
ヒント: ( )で括ればそれが先に評価される

if (((a=1) || b=1) && c=1) foobar;
07397312007/03/25(日) 12:21:18
>>733 >>734
ありがとうございます。
昔勉強したときに名前が付いていた気がしていたのですが、
質問される立場になったときに、思い出せず、もやもやしてました。
やっとスッキリしました。
0740デフォルトの名無しさん2007/03/25(日) 12:22:34
>>738
いやいや、カッコでくくってもc=1は評価されてしまうから
>>731の例だとぬるぽじゃん?
0741デフォルトの名無しさん2007/03/25(日) 12:55:59
http://en.wikipedia.org/wiki/Short-circuit_evaluation
俺もショートサーキットという言い方で覚えていたので、
ぐぐったら少なかった(1000行かない)というのは意外。

0742じゃぎ2007/03/25(日) 13:52:34
>>730 >>732
ありがとうございます。setAttributeのほうが、特別推奨される理由が
あるとすれば、ガベコレのようなところかなと、つたない頭で考えてました。
>>728さんにも、スッキリさせて頂きまして、ありがとうございました。
これで安心してサーブレットいじれます。
0743デフォルトの名無しさん2007/03/25(日) 14:09:49
ショートサーキット評価 988件
ショートサーキット演算子 618件
短絡評価 590,000件
短絡演算子 27,500件

訳したら増えたw
0744デフォルトの名無しさん2007/03/25(日) 14:12:28
>>743
しむらー、ぶんかつぶんかつー
0745デフォルトの名無しさん2007/03/25(日) 14:33:32
""でくくったら激減。

"ショートサーキット評価" 224件
"ショートサーキット演算子" 213件
"短絡評価" 304件
"短絡演算子" 124件

こんなもんなのか。
0746デフォルトの名無しさん2007/03/25(日) 16:23:20
バイナリファイルを比較する簡単な方法はないでしょうか? ……まぁ、

(1)サイズを比較して違ってたら無条件でOUT
(2)サイズが同じだったらストリームを二つ開いて、バイト単位で順次比較

とすればいいだけの話ですが、こんなの誰かが作ってるような気がしまして(汗)
0747デフォルトの名無しさん2007/03/25(日) 16:25:18
MD5で比較
0748デフォルトの名無しさん2007/03/25(日) 16:38:31
java.security.MessageDigest(のサブクラス)もありますな。
0749デフォルトの名無しさん2007/03/25(日) 16:51:17
ダイジェスト作る時間があれば順次比較が終ってるだろw

>>746
バイト単位の比較でもいいけど、int単位とかで、もっとまとめてやってもいいかもね
0750デフォルトの名無しさん2007/03/25(日) 16:55:03
てきとーなブロック単位でダイジェスト比較していくと効率がいいかもな。
0751デフォルトの名無しさん2007/03/25(日) 17:05:39
>>749
>>746は簡単に実装できる方法を求めてるから速度は二の次なんじゃないかね?
そういう意味でAPI使ってハッシュを求めさせるのはコーディングが簡単だし悪くない方法だと思う。
でも、コリジョンの可能性があるから、同一ハッシュ=同一バイナリとは言い切れないのが問題。
0752デフォルトの名無しさん2007/03/25(日) 17:14:11
>>750
お前、馬鹿だろ。

>>751
ハッシュ求めるより順次比較のほうが簡単じゃないか?
0753デフォルトの名無しさん2007/03/25(日) 17:23:44
あらかじめ MD5ハッシュが算出してあれば、それ比較してもいいけどね。
0754デフォルトの名無しさん2007/03/25(日) 17:27:46
>>751
無駄な上に不確実で最悪な方法だと思うが。
0755デフォルトの名無しさん2007/03/25(日) 17:28:33
質問主は誰かもう作ってるんじゃないか?
っていう質問してるのにお前等ときたら…
0756デフォルトの名無しさん2007/03/25(日) 17:41:56
ハッシュ算出してあるときの話じゃない。
ハッシュを算出するには算出する範囲のビットを全部見る必要がある。
それなら見た時点でお互いを比較すれば済む話。
0757デフォルトの名無しさん2007/03/25(日) 17:50:16
>>755
commons IO の org.apache.commons.io.IOUtils.contentEquals(InputStream,InputStream)
0758デフォルトの名無しさん2007/03/25(日) 17:57:35
これでいいじゃん。MessageDigestも使ってるし、みんなはっぴー。
標準APIじゃなくていいのならapache.commonsにあったと思うが。
public static void main(String[] args) throws Exception {
File file1 = new File(args[0]);
File file2 = new File(args[1]);
boolean flag = true;
if (file1.length() == file2.length()) {
FileInputStream in1 = new FileInputStream(file1);
FileInputStream in2 = new FileInputStream(file2);
byte[] buf1 = new byte[1024];
byte[] buf2 = new byte[1024];
while (in1.read(buf1) >= 0) {
in2.read(buf2);
if (! MessageDigest.isEqual(buf1, buf2)) {
flag = false;
break;
}
}
in1.close();
in2.close();
} else flag = false;
System.out.println(flag);
}
07597582007/03/25(日) 18:00:02
書かれてたorz
0760デフォルトの名無しさん2007/03/25(日) 18:02:56
>>758
一致しないときもストリームをcloseした方が綺麗
07617582007/03/25(日) 18:05:47
ん?閉じてると思うけど?まあ途中で例外出たらだめだけど。
0762デフォルトの名無しさん2007/03/25(日) 18:11:49
>>761
すまんwhileの外だった
}の数を見誤った
でもそれはMessageDigestを使ってるといえるのかw
0763デフォルトの名無しさん2007/03/25(日) 18:37:18
ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて
後から再利用するってことならまだ分るんだが、そんな前提もなしに
ハッシュを勧める莫迦がなんでこんなにいるんだ?
0764デフォルトの名無しさん2007/03/25(日) 22:06:41
Stringクラスの説明で
「文字列は定数です。この値を作成したあとに変更はできません。」
ってあるんですけど、

String str = new String("123456789");
str = "1";

こんなふうにあとから代入しても、コンパイルエラーも出ず、代入した文字列が表示されるんですけど
変更できないってどういう意味なんですかね?
0765デフォルトの名無しさん2007/03/25(日) 22:14:57
>>764
"abcde"="12345"
ってできないってことだ
1=3と同じ
0766デフォルトの名無しさん2007/03/25(日) 22:19:50
>>764
それは、変数の参照先オブジェクトが入れ替わっただけ。
"123456789"で初期化したオブジェクトそのものの内容は変更できない。
0767デフォルトの名無しさん2007/03/25(日) 22:54:13
>>764

str → "123456789"

だったのが

    "123456789"

str → "1"

になるってこと。元のインスタンスは破壊されない(参照が無くなればガベコレはされるけど
0768デフォルトの名無しさん2007/03/25(日) 23:15:47
HttpURLConnectionでHTMLソースをUTF-8でゲットしてくる際に
文字化けしてるかどうか判定する事ってできますか?
0769デフォルトの名無しさん2007/03/25(日) 23:29:55
>>763
> ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて
> 後から再利用するってこと
だとしても分かっちゃだめだろ。ファイルが一致することの証左にはならん。
0770デフォルトの名無しさん2007/03/26(月) 00:07:21
ネットでダウンロードするときに付属してることのあるハッシュコードは
飽くまでパリティチェック的な意味合いでしか使われてないと思う
0771デフォルトの名無しさん2007/03/26(月) 01:31:26
>>768
httpのヘッダ見れば良いんじゃね?
0772デフォルトの名無しさん2007/03/26(月) 01:47:51
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version n
umber in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
続行するには何かキーを押してください . . .

知り合いに聞いたところjavaとjavacのverをあわせれば良いといわれたんですが
よくわからない・・誰かたのんます!
07737642007/03/26(月) 01:58:19
回答ありがとうございます。理解できました。
String型の疑問がまだあるんですが、よければ回答お願いします。

メソッドに引数として参照型を与えて、その値を変更すると、int等の基本データ型とちがって
参照先の値が変更されますよね。
そこでメソッドの引数をString型にして、値を変更しても、参照変数が指しているオブジェクトは
変わらないんですが、これは値渡しみたいな事が行われてるんですかね?
それともまだ何か勘違いしているんでしょうか

static void method( String str ){
str = "java";
}
main{
String str = new String("123456789");
method( str );
System.out.println( str );//123....が表示される
}

説明下手だったらすいません。
0774デフォルトの名無しさん2007/03/26(月) 02:08:03
JavaはCと同じくすべて値渡しだ。
参照型であろうとC++のような参照渡しはないので
変数の「指し先」が関数呼び出しで変化することはない。
当然「指し先の内容」が変化することはありえる。
0775デフォルトの名無しさん2007/03/26(月) 09:35:53
カエレ!
0776デフォルトの名無しさん2007/03/26(月) 09:42:26
>>774
ネタで言ってるんだよな?
0777デフォルトの名無しさん2007/03/26(月) 09:59:07
Javaはすべて値渡し。これはもはや常識!
0778デフォルトの名無しさん2007/03/26(月) 10:41:15
参照を値渡しする、と言わないと分からない人は一生分かりませんよ。
0779デフォルトの名無しさん2007/03/26(月) 10:47:12
参照を値渡しするのとは違うだろ
Javaはこの辺りが変
0780デフォルトの名無しさん2007/03/26(月) 10:53:44
コネクションプーリング使うにはネット使わないといけないのね。orz
コネクションプールができなくて、3日も鬱になったジャマイカ。
0781デフォルトの名無しさん2007/03/26(月) 11:12:57
じゃばでぱけっとのもにたりんぐはできますか?
0782デフォルトの名無しさん2007/03/26(月) 11:28:53
>>779
どう違ってどう変なのか説明plz
0783デフォルトの名無しさん2007/03/26(月) 11:34:34
C++の参照もあれはあれで参照を狭い意味で使ってるから、
あれしか知らないで参照を語られても困るよな。
0784デフォルトの名無しさん2007/03/26(月) 12:05:48
>>773
> str = "java";
その例だと参照型の値を変更してるのではなくて、
参照先そのものを変更してる。

// 甲
static void method(Calendar c){
 c.add(....);
}

// 乙
static void method(Calendar c){
 c = Calendar.getInstance();
 c.add(....);
}

甲を呼び出した場合、呼び出し元の c は値が変更されてるが
乙を呼び出した場合、呼び出し元の c は値が変更されない。
乙内で参照される c は新たに別の Calendar オブジェクトを参照してるため、
呼び出し元の c に影響を与えないから。
あなたの例は乙に近い。

なお、String には Calendar の add に相当するような、内部の状態を変更するメソッドはない。
(あると不変オブジェクトではなくなってしまう。)
replace も substring も、返り値として String を返す。
元の String を参照しても、replace、substring される前の値と全く変化ない。
0785デフォルトの名無しさん2007/03/26(月) 12:11:28
>>783
逆
C++でオブジェクトA,Bに関して
A=Bとやると痛い目にあう、それは動的アドレスのコピーであるから(純粋な参照)。
JAVAの場合はポインタの概念は無い。
JAVAの場合、A=Bはオブジェクトの代入を示す。
非常に荒っぽい言い方だと、JAVAのソースではオブジェクトの代入はstrcpy、すなはち代入。
だが、JAVAの場合、参照先の値を変えてやると参照元の値も自動的に変わってくれるという、
Cの参照とも純粋な値渡しともつかない擬似参照になる。
おそらく参照元が値を使用する時、毎回値渡しを使用してるのか。
JAVAの参照は便利だがあやふやではある。
0786デフォルトの名無しさん2007/03/26(月) 12:13:25
訂正
非常に荒っぽい言い方だと、JAVAのソースではオブジェクトの
参照は
~~~~~
strcpy、すなはち代入。
0787デフォルトの名無しさん2007/03/26(月) 13:50:09
>>773
>new String("123456789")

関係ないけど"123456789"自体がString型のインスタンスだからそれは冗長
というかなんで不変オブジェクトにコピーコンストラクタがあるのか謎なんだけどたぶん設計ミスだな
0788デフォルトの名無しさん2007/03/26(月) 14:14:05
>>785
> オブジェクトの代入はstrcpy
え?
0789デフォルトの名無しさん2007/03/26(月) 14:21:00
少し前のレスくらい読めよ・・・
0790デフォルトの名無しさん2007/03/26(月) 14:26:30
とっても初心者なのですが
戻り値の意味がわかりません
return文とか適当に使っていたもので…
0791デフォルトの名無しさん2007/03/26(月) 14:42:42
>>789
わからない。代入がstrcpyてどこ読めば理解できる?
0792デフォルトの名無しさん2007/03/26(月) 14:43:22
ああ、代入じゃなくて参照てことか。
どっちみちわからん。
0793デフォルトの名無しさん2007/03/26(月) 15:01:00
>>787
new で明示した場合は文字列リテラルが同内容でも共有されなくなる。
結局JITで最適化される気がするけど・・・

お前ら丁度いいとこ見つけたからここ嫁!
ttp://javafaq.jp/S008.html

ちなみにJavascriptの文字列リテラルにメソッド適応した場合インタプリタが内部で文字列リテラルをStringオブジュクトにラップして捨てる。

つまり、javaと違って文字列リテラルとStringオブジェクトは違う。javaのStringBufferの感覚だ。
ていうかプリミティブ型の単純値は全部Object型のラッパー持ってる。

名前が似てるけど別物って良い例。
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide:Predefined_Core_Objects:String_Object
0794デフォルトの名無しさん2007/03/26(月) 16:53:39
>>784
丁寧な説明ありがとうございました。
メソッド内で新しいオブジェクトへの参照が変数に代入されているので
呼び出し元では元のオブジェクトを指しているままなんですね。
0795デフォルトの名無しさん2007/03/26(月) 17:20:55
>>794
そういうことです。

Stringだけなんとなく特別な印象を受けてしまいがちだけど、
"=" の意味は他の参照型(Object派生型、配列)と変わりません。
0796デフォルトの名無しさん2007/03/26(月) 18:41:46
>>785
参照先の値を変えたら参照元の値を自動的に変えるって・・・本気で言ってんのか?w
Javaにポインタが無いって言葉に騙されてるとしか思えない。
0797デフォルトの名無しさん2007/03/26(月) 19:29:14
Java の参照は C/C++ のポインタそのものじゃなかろうか。
ポインタ演算を隠してるだけで。

C++の参照(type&)は言語仕様的には別名(alias)と同義で、
内部実装は制約のある参照的なことやってます、だったような。
0798デフォルトの名無しさん2007/03/26(月) 19:36:23
たった今始めたばかりの初心者です。

ビルドをしたら、「環境変数JDK_HOMEにJDKをインストールしたディレクトリを設定してくだい」と表示されました。
なので、変数を「JDK_HOME」、値を「C:\Program Files\Java\jdk1.5.0_11」にしたのですが、また同じことが表示されます。
どうしたらいいですか?
0799デフォルトの名無しさん2007/03/26(月) 19:47:17
オブジェクトの渡し方で混乱している奴も多いだろうから、簡単な例を挙げとく。
コピーコンストラクタが正しく定義されていると仮定してくれ。

// C++の値渡し。交換できない。
void swap(Hoge x, Hoge y) {
Hoge temp = x; x = y; y = temp;
}

// C++のアドレス渡し。交換できる。
void swap(Hoge* x, Hoge* y) {
Hoge temp = *x; *x = *y; *y = temp;
}

// Cの参照渡し。交換できる。
void swap(Hoge& x, Hoge& y) {
Hoge temp = x; x = y; y = temp;
}

// Javaの『参照の値渡し』。交換できない。
public static void swap(Hoge x, Hoge y) {
Hoge temp = x; x = y; y = temp;
}
0800デフォルトの名無しさん2007/03/26(月) 19:48:24
>>798
開発環境を示さないと何とも言えない。
システム環境変数のJDK_HOMEをJDKディレクトリに設定したのか、
それともIDEの環境変数をJDKディレクトリに設定したのか
いくらでも解釈できるから
0801デフォルトの名無しさん2007/03/26(月) 22:18:39
>>800
あれ?もう1回やったらなぜかできました。
ありがとうございました。
0802デフォルトの名無しさん2007/03/26(月) 22:27:25
こらこら。
システム環境変数を書き換えたら、IDE(またはコマンドライン)は立ち上げ直さないと駄目だぞ。
0803デフォルトの名無しさん2007/03/26(月) 22:59:46
>>783
C++における参照の意味は狭いかもしれないけど
値渡し、参照渡しの意味はどの言語でも同じ。
本当の参照渡しを体験したかったらFortranをやるといいだろう。
0804デフォルトの名無しさん2007/03/26(月) 23:04:48
JavaでPCに送られてくるパケットをフィルタリングすることは可能でしょうか?
可能だったら、役に立ちそうなクラスなんかも教えていただけるとありがたいです。
0805デフォルトの名無しさん2007/03/26(月) 23:12:07
>>804
標準APIだけじゃ無理。
パケットキャプチャじゃなくて、パケットフィルタリングなのか。
それだと jpcap みたいな外部ライブラリ使っても無理のような。
0806デフォルトの名無しさん2007/03/26(月) 23:14:50
>>799
それJavaにアドレスの中身を指示する演算子が無いだけちゃうんかと
たとえばx.valueとかを交換すれば交換できるだろ
0807デフォルトの名無しさん2007/03/26(月) 23:31:36
>>806
値の交換とオブジェクトそのものの交換は違うだろう。
0808デフォルトの名無しさん2007/03/26(月) 23:36:06
>>807
そこが本質じゃないって。
JAVAの場合、オブジェクトはアドレスしか指せない。プリミティブは値しか指せない。
Cは中身もアドレスも指定できる。だからオブジェクトの交換という荒業が出来る。
0809デフォルトの名無しさん2007/03/26(月) 23:43:12
>>799
> // C++のアドレス渡し。交換できる。
これで交換できるってんなら、

static void swap(Object[] x, Object[] y){ Object temp = x[0]; x[0] = y[0]; y[0] = temp; }

とかすれば交換できるって話になっちまうんだが。
「アドレス渡し」とやらは Hoge* 自体の交換ができてないんだから交換できない、とした方が説明が楽。
0810デフォルトの名無しさん2007/03/26(月) 23:44:45
質問者の意図とずれた話を続ける事に意味があるのかと問いたい。
0811デフォルトの名無しさん2007/03/26(月) 23:46:45
>>809
参照渡し/値渡しの説明の文脈では、な。
0812デフォルトの名無しさん2007/03/26(月) 23:56:53
一般的にはパラメータへの再代入は無意味と覚えときゃいいよ。
なんなら全部のパラメータにfinalをつけてもいいくらい。(Javaのfinalは再代入不可を明示するシンボル。念のため。)
コンパイルエラーが出ないのは、互換性のためだろうけど……
0813デフォルトの名無しさん2007/03/27(火) 00:07:25
参照渡し/値渡しに関しては
間違ったことを書いているサイトが少なくないな。
2chでは、本は買うな、Webで十分だ、みたいな意見がよく出るけど
それも考え物だな。
0814デフォルトの名無しさん2007/03/27(火) 00:11:06
>>813
俺は実際にプログラミングやっててわかったけどな。
つうか本は参考程度にしか買わないしポインタ関連なんて一冊も買ってない
0815デフォルトの名無しさん2007/03/27(火) 00:11:51
>>812
>一般的にはパラメータへの再代入は無意味と覚えときゃいいよ。

呼び出し側では意味がないけど、呼び出された側では意味があるんじゃ?
0816デフォルトの名無しさん2007/03/27(火) 00:12:50
>>809
> static void swap(Object[] x, Object[] y){ Object temp = x[0]; x[0] = y[0]; y[0] = temp; }
まかり間違って こーゆーのが普及したりなんかすると
「配列渡し」っていう新語ができるわけだな。たぶん。
0817デフォルトの名無しさん2007/03/27(火) 00:16:44
「プログラミングやった」程度で理解した気になる奴ばかりだから、
今までバラバラな見解の悲惨なレスが繰り返されてたんだろ…
利用できるのと仕組みをおさえるのは違う
0818デフォルトの名無しさん2007/03/27(火) 00:17:30
>>815
意味はあるけど可読性を下げるから推奨しないな

>>816
むしろコンテナ渡しかと
0819デフォルトの名無しさん2007/03/27(火) 00:46:03
>>808
なんで本質じゃないんだよw
オブジェクトの中身を書き換えるんじゃなくてポインタ交換ができる/できないの話だよね?
0820デフォルトの名無しさん2007/03/27(火) 00:49:13
なんで言語の仕組みに関してこんな大議論になってんの?
質問している初心者ならまだしも、回答者側の人間は
信頼できるソースを自分で確認して終わりだろ?
まさか皆が皆
>俺は実際にプログラミングやっててわかったけどな。
とか言っている馬鹿と同じなのか?
0821デフォルトの名無しさん2007/03/27(火) 00:58:19
よくわからないところは俺様解釈で乗り切って
他人にも押し通す、これがJava厨。
こういうテキトーな態度でもなんとなく扱えてしまう言語、それがJava。
0822デフォルトの名無しさん2007/03/27(火) 01:10:38
>>813
雑誌の記事で Java は参照型は参照渡し…… とか書いてあるの、結構見たような。
0823デフォルトの名無しさん2007/03/27(火) 01:32:16
core JAVAには、
Javaは参照渡しだとかほざいちゃってる著者が
未だに地球上に存在していてウザイ早く氏ね
って書いてある
0824デフォルトの名無しさん2007/03/27(火) 02:07:04
3人の死刑囚がいます
王様は3人の死刑囚に言いました
「ここに白い帽子3つと黒い帽子が2ある、白か黒どちらかをお前たちにかぶせ
白い帽子をかぶったものが逃げたらそのまま逃がしてやろう、ただし黒い帽子をかぶった
ものが逃げたらその場で射殺する」
死刑囚は自分がなに色の帽子をかぶっているかはわかりませんが
他の二人がかぶっている帽子の色はわかります
王様は3人とも白い帽子をかぶせました
3人はしばらく考えた後、自分が白だと確信していっせいに逃げました
さて、なぜ自分が白だと確信できたのでしょう?
※アイコンタクトとかそういう答えじゃない
0825デフォルトの名無しさん2007/03/27(火) 02:17:29
全員植草教授だった
0826デフォルトの名無しさん2007/03/27(火) 03:10:40
>>824
A, B, C の3人の一人Aはこう考える:

(1)自分Aが黒だったとしよう。

(2)B,Cはそれぞれ、黒(A)と白(BまたはC)を見るはずだ。
 そこで彼らはこう考えるはずだ:
   もし自分B(またはC)が黒だったら、黒は2つしかないのだから、
   相手C(またはB)は一人で速攻で逃げるに違いない。
   そうではないので、自分は白である。

(3)そこまで考えの至ったBおよびCの二人は自分Aを置いて一斉に逃げるはずだ。

(4)そうではないので、最初の仮定(1)が間違っていて、自分は白である。

そこまで考えの至った3人は一斉に逃げた。
0827デフォルトの名無しさん2007/03/27(火) 03:16:14
わざわざこのスレに投下したのは
プログラマに論理的に考えさせようとしたのか。
それなら俺はあえて逆をいく。

 どうせいずれ死刑になるんだからここで射殺されたところで大差ない。
 だからいちかばちかで逃げ出してみた

でも、これだと「自分が白だと確信して」を満たさないか・・・
0828デフォルトの名無しさん2007/03/27(火) 03:22:22
主人公がこんなところで死ぬはずないから、では
0829デフォルトの名無しさん2007/03/27(火) 03:23:10
王様が黒い帽子をふたつ手に持っていた。
0830デフォルトの名無しさん2007/03/27(火) 03:25:22
3人は日ごろの顧客とのやりとりにより
エスパー能力を鍛えられているプログラマーで、
なぜか、自分が白だということを、本能的に過信した。
0831デフォルトの名無しさん2007/03/27(火) 03:38:37
magcup便利でし。感動しマスタ
0832デフォルトの名無しさん2007/03/27(火) 03:42:53
死刑囚である3人全員がそこまで頭が切れるはずがない
0833デフォルトの名無しさん2007/03/27(火) 03:51:12
Aは>>826のように考察し逃げることとした。
Bは黒と白の帽子を前にどうしてよいかわからなかった。
Cは黒と白の帽子を前にどうしてよいかわからなかった。
Aが逃げ出したのでBはつれられ逃げ出した。
Aが逃げ出したのでCはつれられ逃げ出した。
Aは射殺された・・・
0834デフォルトの名無しさん2007/03/27(火) 04:21:24
>>772
まさに「javaとjavacのverをあわせれば良い」

解決策1

   % java -version
    でJREのバージョンを確認。
   % javac -version
    でJDKのバージョンを確認。

  JREと同じバージョンのJDKを入れてコンパイルしなおす。


解決策2
  javacのバージョンと同じバージョンのjavaをフルパス指定で明示的に呼ぶ。
0835デフォルトの名無しさん2007/03/27(火) 04:25:29
A=自分が白
B=他二人が白
P(A)=3/5
P(B)=(3/5)*(2/4)=3/10
P(A,B)=(3/5)*(2/4)*(1/3)=1/10
P(A|B)=P(A,B)/P(B)=(10/3)*P(A,B)=1/3
だから確率的には逃げたら負け
0836デフォルトの名無しさん2007/03/27(火) 08:10:09
BufferedReaderのreadLineのブロックを解除したいのですが、どうしたらよいでしょうか
0837デフォルトの名無しさん2007/03/27(火) 08:59:10
初心者スレでくだらねえクイズごっこやって楽しいか?
0838デフォルトの名無しさん2007/03/27(火) 11:43:27
>>824
とりあえず最初にテストしろと言われてるので逃げ出すテストをしてみた
08398042007/03/27(火) 13:30:57
>>805
外部ライブラリ使っても無理ですか……。
Javaでは難しい(というか無理)なんでしょうか?

同じことを2度聞くような形になりますが、どうしても諦めきれないので返答お願いします。
0840デフォルトの名無しさん2007/03/27(火) 13:39:48
>>839
JNI使って奮闘してくれ。
0841デフォルトの名無しさん2007/03/27(火) 16:29:57
;;;;彡                   ミ;;;;;;;;;;;;;;;ミ
;;;チ'  ィ''' ヽ、_         ___,,,,,、`ヾ、;;;;;;ヾ
〃 ./ア三三三三ヾ     タィ三三三ッ、 `y;;;;チ
  ~"  ,,=r≡ァ、 ..~      _,,二、 ̄ヾキ };;ネ
   ー''"` kオッ' ,ヾ';;;,    /,,ヒェア,≧ー" };;;ト
    '"  ー‐''" ,;;;;   ::'~ヾ…‐ ´~  {;ツ
        ...,,,;;;;;;;::   ::::...       キ::}
|       ,,' ,r"'、::::  __、      {|ィ/.        __
;      .:: :;!、_   | 支 |`ヾ、. . : : : レ'         | 力 | _ ,ィ=ヽ、 ,
'、     ..::    ̄`ー.__| 点.|_ ヽ.: :  リ        ._| 点 |_[_ `ヽ  ヾ、
 、     tェ--ニ二~_.\  /ァ  ッ /         \  /Y   l、    `
. i      `ヾ‐'ー'ーL_~≧≦二二二二二二二二二二二ナく__,ム    ヽ
  }   `、  ` 、 ̄ ¨ ¨ "ノ    '/            `ヽ、  `、y-‐ヾヽ´¨
 ,,〉    、    `ー = - '     /              ヾ、  ゞ、___人_
/ \ 、  :::.            /                ヽ、  ヾ ̄´ ̄
   \ :::::::::::....       ...::::リ}                  、  `
     \::::::::, `ー---- '::::::::/ .ト、                 ー _
      ¨\;:,,      /    | `ヽ、                 `ヾt、_
         \,,......,,,イ      ト、   `ヽ、‐―- - - 、、_      !t_
0842デフォルトの名無しさん2007/03/27(火) 17:00:56
java.io.File#listFiles()ではArrayListをFile[]に変換しているようですが
1.0にコレクションがなかったから互換性のためという解釈でよいでしょうか。
0843デフォルトの名無しさん2007/03/27(火) 17:03:58
>>840
了解です。ありがとうございました。
0844デフォルトの名無しさん2007/03/27(火) 17:12:35
>>842
どのように解釈しようが その人の勝手で良いと思われ。
0845デフォルトの名無しさん2007/03/27(火) 17:13:17
Vectorはあったので、そのつもりがあればVectorにしてたと思う。
配列使うのかコレクション使うのかは、統一とれてないねえ。
真っ当な総称型があるならコレクションで決まりだろうけど
erasureなんて導入して・・・アホか。
0846デフォルトの名無しさん2007/03/27(火) 17:14:07
>>845
Vector があっても、中身が File ってのを保証できないんだがな。1.4 までは。
0847デフォルトの名無しさん2007/03/27(火) 17:16:07
>>697
isExists()もつかうべき
0848デフォルトの名無しさん2007/03/27(火) 17:17:06
>>703
http://ja.wikipedia.org/wiki/Servlet
0849デフォルトの名無しさん2007/03/27(火) 17:20:34
なぜここに来てそんな遅レスを
0850デフォルトの名無しさん2007/03/27(火) 18:34:00
問1
パラメータから得た値をnとして、2のn乗を求めて表示してください。
nの上限は62として、63以上が入るとメッセージを表示するようにしてください。
int型だと2の30乗までになってしまいます。

って問題なんですけど

import java.io.*;
public class kadai13{
public static void main(String[]args)throws IOException{

�@

int i=1;
long a=2;
while(i<myAnswer){
a*=2;
i++;
}
if(myAnswer<=62){
System.out.println("2の"+myAnswer+"乗は"+a+"です。");
}else if(myAnswer>=63){
System.out.println("2の2乗までしか計算できないよ。");
}
}
}


この�@のところに
int a=Imterger.parse Int(args[0])
ってのを使って解かなければならないんですが
分かる方教えてください。
0851デフォルトの名無しさん2007/03/27(火) 18:45:23
この時期に慌てて宿題の丸投げなんかするなよ
単位落としてしまえ
0852デフォルトの名無しさん2007/03/27(火) 18:52:26
宿題スレなんてのもあるのにアレだけど、
宿題に答えてやる奴ってなんなのかね?
ソフトウェア業界に対するいやがらせ?
0853デフォルトの名無しさん2007/03/27(火) 20:45:42
いいじゃん。どうせお前ら技術と給料は学生並みなんだから
0854デフォルトの名無しさん2007/03/27(火) 20:58:30
JConsoleにリモートで接続できません。
「接続に失敗しました」という味も素っ気も無いメッセージしか出てこないので、「どのあたりを調べればいいのか」で結構ですのでアドバイスを下さい。

調べたいのはTocatで動いているサーブレットの動作状況です。
サーバのOSはLinux(CentOS)、クライアントはWindowsXPです。
サーバ側でのローカル(Localhost:0)では接続できましたが、やはり可能ならクライアントで監視できれば嬉しいです。
オプションは、JAVA_OPTSに
-Dcom.sun.management.jmxremote.port=18080
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
としています。
使っていないポート番号ということで、8004と18080の二つを試したのですが、いずれも×でした。ファイアーウォールはテスト用サーバなので設定していません。

以上、よろしくお願いします。
0855デフォルトの名無しさん2007/03/27(火) 22:05:25
初めて質問します、場違いだったらすみません(´・ω・`)
昨日からwinXPでJavaを始めた者なのですが
EclipseとNetbeans、どちらの開発環境が使いやすいのでしょうか?
また人気なのはどちらか教えて頂けませんか?
宜しくお願いします。
0856デフォルトの名無しさん2007/03/27(火) 22:07:28
初心者なら迷わずeclipse
0857デフォルトの名無しさん2007/03/27(火) 22:15:36
SwingやりたいならNetBeanもいいな。
0858デフォルトの名無しさん2007/03/27(火) 22:24:07
つかSwingバリバリの事務アプリならNetBeans一択。
手書きでできる程度のウィンドウだけならeclipseも可。
他の部分はeclipseの方が洗練度が高いと思うけど好み次第かな。
0859デフォルトの名無しさん2007/03/27(火) 22:28:19
おお、沢山のお答え有難う御座います><
Swingのことはまだ考えていないので
まずはeclipseで慣れてみようと思います。
教えて頂き有難う御座いました。
0860デフォルトの名無しさん2007/03/27(火) 23:46:13
クライアントアプリならC++使えよ。
Javaは3層アーキテクチャのファンクション層が一番の強みなんだから。
Swingでクライアントアプリを発注するアホなクライアントなんてそんなにいないだろう。
0861デフォルトの名無しさん2007/03/28(水) 00:43:28
初心者にC++すすめるのはアホではないの?
0862デフォルトの名無しさん2007/03/28(水) 00:46:27
場合によるが、この場合はアホだと言わざるを得ないな
0863デフォルトの名無しさん2007/03/28(水) 00:56:52
C++が難しいわけではない。
コーディング規約で制限しないから複雑怪奇なコードを量産する人が多いだけだ。
アドレスやメモリの概念なら基本情報処理程度の知識があるなら普通に理解できるだろう。
C++・C#・Javaを最低限使いこなすのはプログラマなら当たり前のことだ。
0864デフォルトの名無しさん2007/03/28(水) 00:57:28
>>861
とりあえず、安直にそう考えたお前はアホ。
0865デフォルトの名無しさん2007/03/28(水) 01:01:09
>>863
質問者のことをもっと考えてやろうな。
ってかC++が難しいとか誰が言ってるのよ?
0866デフォルトの名無しさん2007/03/28(水) 01:01:52
>>863
だから初心者だっつの
0867デフォルトの名無しさん2007/03/28(水) 01:05:00
>>863
>俺はC++をマスターしてるんだぜ!どうだすごいだろ!
まで読んだ
0868デフォルトの名無しさん2007/03/28(水) 02:24:27
Swingって言ってるから画面の話なんだろうけど
C++は何使って画面作るのを想定してるんかな。
MFCでやれって言われたら俺は逃げるけどな。
非質問をスルーできない俺は素人。
0869デフォルトの名無しさん2007/03/28(水) 03:58:34
swingといえばオラクルのごみくずマネージャー
0870デフォルトの名無しさん2007/03/28(水) 08:24:53
>>868
Swingのことは考えてないって言ってんだろ。よく読もうな。
0871デフォルトの名無しさん2007/03/28(水) 11:58:24
sunのjava認定試験申し込もうと思ったら会社名とかの入力が必須なんだけど無職だと受けれないの?
0872デフォルトの名無しさん2007/03/28(水) 12:27:21
>>871
俺、会社名は入力しなかった
0873デフォルトの名無しさん2007/03/28(水) 21:55:07
Javaで、ファイルの作成時刻や更新時刻を変更する方法を教えてください。
0874デフォルトの名無しさん2007/03/28(水) 22:00:15
やっぱり、JavaみたいなB級言語じゃ無理なんでしょうか?
0875デフォルトの名無しさん2007/03/28(水) 22:01:28
org.apache.commons.io.FileUtils#touch
0876デフォルトの名無しさん2007/03/28(水) 22:06:38
>>875
それだけじゃわかりません! もっと詳しく教えてください。
0877デフォルトの名無しさん2007/03/28(水) 22:09:38
B級言語の訳はわからないが、オブジェクト指向でランタイム依存の言語という認識ではあるが。
0878デフォルトの名無しさん2007/03/28(水) 22:10:44
>>877
そんな御託はいいから、ちゃんと教えてください!
0879デフォルトの名無しさん2007/03/28(水) 22:14:24
>>874=>>876=>>878( not >>873)だけど、なんか俺、病んでるな。
スレ汚しすまんかった。
0880デフォルトの名無しさん2007/03/28(水) 22:20:40
>>873
更新時刻なら File#lastModified()

作成日時は今のところ標準ライブラリじゃ無理。
jconfig みたいなライブラリ使えば取れるけど。
0881デフォルトの名無しさん2007/03/28(水) 22:29:21
>>880
それ変更用じゃないのでは
0882デフォルトの名無しさん2007/03/28(水) 22:32:17
>>881
変更なら File#setLastModified(long) で。
0883デフォルトの名無しさん2007/03/28(水) 22:58:00
20070328225000 というような、年月日時分秒の14文字文字列があるんですが、
これをDateクラスに格納するにはどうやればいいんでしょうか。
ちなみにこれは 2007/03/28 22:50:00 という意味です。
0884デフォルトの名無しさん2007/03/28(水) 23:05:44
org.apache.commons.lang.time.DateUtils#parseDate
0885デフォルトの名無しさん2007/03/28(水) 23:07:30
できればJavaの標準ライブラリに入ってるクラスで教えてほしいのですが。
0886デフォルトの名無しさん2007/03/28(水) 23:08:18
ない
0887デフォルトの名無しさん2007/03/28(水) 23:11:03
>>886補足
元の文字列を少しずつちぎって、java.util.Calendarに入れる
0888デフォルトの名無しさん2007/03/28(水) 23:11:25
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
Date dt = sdf.parse("20070328225000");

これでできるはず。
0889デフォルトの名無しさん2007/03/28(水) 23:31:07
ありがとうございます!それでやってみます。
0890デフォルトの名無しさん2007/03/28(水) 23:47:52
作成時刻はそもそもファイルシステムによっては記録されてなかったりするので
たとえCからでも取りようがないこともある。

UNIXのctimeはよくcreation timeの略だと誤解されるが、違う。
0891デフォルトの名無しさん2007/03/29(木) 03:15:44
>>890
自慢げにそんなくそ知識披露されても困ります><
0892デフォルトの名無しさん2007/03/29(木) 03:25:13
スクリプトの質問も受け付けてくれる?
0893デフォルトの名無しさん2007/03/29(木) 03:31:18
>>892
rhinoならjavaの話題になるのかもしれんが、まあお勧めはしないよ。
rhinoそのものというより、javaとのインタフェースの話題なら、大丈夫かもしれんが。
javascriptそのものの話題なら従来通りweb製作板で聞いたほうがいい。
0894デフォルトの名無しさん2007/03/29(木) 04:01:10
>>832
rhinoでかつECMAの仕様範囲内なら出来ればネタ投下の意味を込めて下でたのんます。

ttp://pc11.2ch.net/test/read.cgi/tech/1088298991/l50

LiveConnect使ったJavaとの絡みならここになるんだろうか。

それ以外はやっぱ専用スレじゃね?
Scripting APIの話ならそろそろスレ立てても良い気がするんだよね。
0895デフォルトの名無しさん2007/03/29(木) 11:45:53
さほど盛り上がってないってことなんじゃなかろうか。
0896デフォルトの名無しさん2007/03/29(木) 12:32:37
Javaの仕事でSchemeを書きまくれる日が早く来ますように。
0897デフォルトの名無しさん2007/03/29(木) 14:23:53
てす
0898デフォルトの名無しさん2007/03/29(木) 18:07:50
おねがいします。
jdk1.6をインストールしたのですが
'javac(笑)' は、内部コマンドまたは外部コマンド、  操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と表示され実行できません。
0899デフォルトの名無しさん2007/03/29(木) 18:37:10
>>898
>>1
0900デフォルトの名無しさん2007/03/29(木) 18:47:43
>>898の(笑)の意図がわからん
0901デフォルトの名無しさん2007/03/29(木) 21:11:35
ストリーム再生アプリ作りたいのですが
JAVAのクラスにストリームを扱えるものはありますか?
0902デフォルトの名無しさん2007/03/29(木) 21:24:30
ストリームの意味分かって言ってる?
0903デフォルトの名無しさん2007/03/29(木) 21:40:14
>>902
すみません。質問が悪かったでしょうか。

URLクラスのgetContent()メソッドを使用して取得したストリーミング映像データを
再生することが可能かもしれないとは思っているのですが、
動画再生クラスがあるのか
ストーリーミング映像をJAVAで扱えるのかということが知りたかったのです。
0904デフォルトの名無しさん2007/03/29(木) 21:44:07
JavaはJavaで「ストリーム」って言葉があるからややこしいなw
0905デフォルトの名無しさん2007/03/29(木) 21:44:38
>>903
メディアプレイヤークラスなんて聞いたことないが。
09069052007/03/29(木) 21:46:59
>>903
ググったらこんなの出ました。

クラス MediaPlayer <Phase2.5>
http://sakura.meijo-u.ac.jp/java/kddi-ezplus/com/jblend/media/MediaPlayer.html
0907デフォルトの名無しさん2007/03/29(木) 21:50:22
>>902
QuickTime for Javaっつうのがある。
JavaからQuickTimeプレイヤーをいじれるAPIだったと思う。
ttp://developer.apple.com/quicktime/qtjava/
09089032007/03/29(木) 21:52:03
>>906-907

ありがとうございます!!!!
これで希望が見えてきたのでJAVAで行くことに決めました。
0909デフォルトの名無しさん2007/03/29(木) 21:52:51
>>906
そりゃ携帯専用だろ。MIDPとかKDDI Profileとか書いてあるし。
0910デフォルトの名無しさん2007/03/29(木) 21:53:51
MediaTrackerみたいな感じのがあったような気がする
0911デフォルトの名無しさん2007/03/29(木) 21:54:37
>>906
どう考えても携帯用です。本当に略
0912デフォルトの名無しさん2007/03/29(木) 22:00:35
java.awt.MediaTrackerは画像やオーディオをロードするときに
読み込み状況(複数)をヲチするためのクラス(だったのだが結局画像に
しか対応していない)で、読み込みを開始/中止すること/読み終わった
か否かを知ることくらいしかできない。

もともとはネットワークがとても遅い時代にアプレットで画像読み込み
が終わるのを待つために使ったりした。
0913デフォルトの名無しさん2007/03/29(木) 22:03:00
MediaTrackerは便利だぞ
コンソールアプリで画像を扱いたい時には
09149032007/03/29(木) 22:37:42
QuickTimeForJavaページの Installerリンクが切れてるwww
QuickTimeをカスタムインストールすれば行けそうなのでやってみます

Eclips使ってみますが前途多難な予感
でもマジありがとう
0915デフォルトの名無しさん2007/03/29(木) 22:51:01
javaswingでプログラムを作ってるんですが
ウィンドウにもともと着いているボタンの最大化と最小化
あとウィンドウのサイズ変更を不可にしたいのですが
どうしたらよいのでしょうか
0916デフォルトの名無しさん2007/03/29(木) 22:57:27
setResizable(false)はあるけど、
最大化と最小化はどうだったかな。
0917デフォルトの名無しさん2007/03/29(木) 22:58:17
>>904
君はストリームという単語の意味をわかっていないようだ。
データの流れは全部ストリームであり、データの種類が異なっているだけ。
0918デフォルトの名無しさん2007/03/29(木) 23:00:02
JMF(Java Media Framework)使えば?
0919デフォルトの名無しさん2007/03/29(木) 23:03:26
>>916
ありがとうございます。
setResizable(false)で最大化とサイズ変更は不可にできるようです。

最小化はまぁウィンドウのサイズが変わるわけではないですしOKとします。
09209032007/03/29(木) 23:11:13
>>918
ググってみました
サンクス!!!
ありがとう
0921デフォルトの名無しさん2007/03/29(木) 23:22:50
>>917みたいに言葉じりを捕らえるやつプログラマに多すぎ(笑)
0922デフォルトの名無しさん2007/03/30(金) 00:12:06
JMFってたかがメディアプレイヤに使うようなAPIか・・・?
俺はそういう用途にはちと高レベルかなと思って止めたな。
QT4jはmacとwinしか対応してなくてしかもwinのサポートは中途半端なんだよな。

ゲームで動画再生するのに丁度良いのってないよな。

sound engineもoggかFLACあたりに対応してほしい。
0923デフォルトの名無しさん2007/03/30(金) 01:05:51
>>921=904
言葉じりということにしたいらしいが、君が間違ってるだけだろう。
0924デフォルトの名無しさん2007/03/30(金) 01:24:29
>>923
なぜそんなに必死なんだ?
904はクラスとしてのストリームがあるって言ってるだけじゃないの?
0925デフォルトの名無しさん2007/03/30(金) 01:31:45
間違っているのを正すのは当たり前だろう。
それに(笑)とかいって冷静さを装ってる>>921は必死じゃないのか?
0926デフォルトの名無しさん2007/03/30(金) 01:33:02
マじゃないんだから、ほっとけば?
0927デフォルトの名無しさん2007/03/30(金) 07:17:30
俺は>921じゃないが…>904はあくまで>901の事を言った発言ね。

俺はJavaでWebストリーミング配信を扱った事無いが
解答はともかくJavaのスレでストリーミング配信を指して
「ストリーム」なんて使うと混乱するなあ、と言いたかっただけ。
ストリームって言葉の無い環境ならエスパー出来る奴も居るんだろうけど。

つーかそもそも、ストリームって別にJavaだけの用語じゃないよね。
データの流れというか並びというか。
例えばオープン系OSのファイルをバイトストリームと言ったりするし。

で、そのストリームを扱うクラスが
Javaのストリーム系クラスなんだが
質問者の訊きたい本題と違うしその内解るだろぐらいの気持ちで
単にストリームという言葉の指摘がてら感想を言っただけ。

まあ「ストリーミング」って言葉も添えた方が良かったのは認める。失礼した。
0928デフォルトの名無しさん2007/03/30(金) 09:19:52
オープン系OSのファイルをバイトストリームと言います
0929デフォルトの名無しさん2007/03/30(金) 10:25:35
コマンドライン引数で取得したargs[0]ってStringで、それをintにしたいんだけどどうしたらいいですか?
0930デフォルトの名無しさん2007/03/30(金) 10:42:50
>>929
Integer.parseInt(args[0])
0931デフォルトの名無しさん2007/03/30(金) 14:02:56
メソッドを作るとき引数指定できますよね。
私は引数有りのメソッドとか滅多に思いつかないのですが、参考書のサンプルソース
などを見ていると、自作クラスを引数にしていたり、ライブラリーのクラスを使っていたり
真似ができそうもありません。そこで質問なのですが、皆さんが引数を指定するとき
その目的は単に1:ローカル変数として使用するために引数を入れた。
2:厳密に計算して組んだプローチャート通りに引数を入れた。
どちらのパターンが多いです?
0932デフォルトの名無しさん2007/03/30(金) 14:05:48
>>931
3 : 引数が必要だから。

以外にはない。
0933デフォルトの名無しさん2007/03/30(金) 14:26:31
>>931
>プローチャート通りに
このあたりで既におかしいなぁ……

1点目:正しくはフローチャート
2点目:フローチャートは過去の産物。ミクロレベルにおいて Java とは相性が悪い
0934デフォルトの名無しさん2007/03/30(金) 14:36:27
引数が要らないという状況が分からん
擬似グローバル変数でも作ってどこからでも入手できるようにしてるのか?
0935デフォルトの名無しさん2007/03/30(金) 14:53:47
まだ実務とかしたこと無い、修業中の身なんですΣ(´∀`;)
0936デフォルトの名無しさん2007/03/30(金) 15:09:10
http://friendshiphade.hp.infoseek.co.jp/index.html
0937デフォルトの名無しさん2007/03/30(金) 16:04:32
>>931
メソッドは、動詞として考えると良いよ
「〜を包丁で切る」というメソッドを作ったとしよう
このメソッドに、「ニンジン」「タマネギ」「にく」と引数を渡す事で、いろいろな物が切れる訳だ
これは、「ニンジンをを包丁で切る」「タマネギを包丁で切る」「にくを包丁で切る」という
引数なしの3つのメソッドを作るよりも手間が掛からず保守性も高いでしょ?
09389312007/03/30(金) 17:11:09
javaは基礎の基礎は終わったんですけどね。(DB,SQL文とかサーブレット)ここまで
来たんですが良い参考書が無くて最近停滞気味orzそれとももう職安に就職希望出して
勤ながら勉強しようかしら。
0939デフォルトの名無しさん2007/03/30(金) 17:21:46
そんなレベルで基礎の基礎が終わったとか言うな
0940デフォルトの名無しさん2007/03/30(金) 17:30:09
>>938
貴方が悩んでいる部分はJavaに関する事ではなく設計技法なんじゃないかと思う。
デザインパターンに関する本とか読んで見たらどうだろうか?
09419312007/03/30(金) 17:39:11
>>940 その意見参考にさせてもらいます。
0942デフォルトの名無しさん2007/03/30(金) 17:56:45
ジェネリクスでよくわからないところがあるのですが

/////////////////////////////////////////////////////////////////////////////////

TreeMap<String,CharNode> ptr = this.next;//nextは次のノードのTreeMap<String,CharNode>

CharNode stuck = (CharNode)ptr.get(key);//追加したCharNodeを呼び出す
ptr = (TreeMap<String,CharNode>)stuck.next;//追加したCharNodeのnextが指すTreeMapに切り替える

//CharNodeは自作のクラスです
////////////////////////////////////////////////////////////////////////////////

Test.java:31: 警告:[unchecked] 無検査キャストです
検出値 : java.util.TreeMap
期待値 : java.util.TreeMap<java.lang.String,CharNode>

と起こられるんですが検査してキャストするにはどうしたらいいんでしょうか?
ジェネリクスを使わない場合は
ptr = (TreeMap)stuck.next;でキャストできると思うんですがorz
0943デフォルトの名無しさん2007/03/30(金) 18:01:57
CharNode stuck = ptr.get(key);
0944デフォルトの名無しさん2007/03/30(金) 18:02:48
ptr = stuck.next;
0945デフォルトの名無しさん2007/03/30(金) 18:04:38
next を TreeMap<String, CharNode> で宣言してなかったりするとかいうオチは流石にないよな。
0946デフォルトの名無しさん2007/03/30(金) 18:05:01
CharNode<String, CharNode> stuck じゃね?
つーか31行目ってどこよ。
09479422007/03/30(金) 18:15:28
>ptr = (TreeMap<String,CharNode>)stuck.next;//追加したCharNodeのnextが指すTreeMapに切り替える
が31行目です

>945
そのオチでしたorz
ご迷惑おかけしました・・・
ようはしっかりジェネリクスつかってれば型キャストもいままで通りできるんですよね?
09489462007/03/30(金) 18:22:28
原因が分かって何よりだし、関係ない場所だったが、
自分が恥ずかしいので訂正しておく。
TreeNode<String, CharNode>だな。
09499462007/03/30(金) 18:23:09
TreeMap...orz
速いけどもう寝る。
0950デフォルトの名無しさん2007/03/30(金) 18:46:51
>>938
クラスに処理させるときはインスタンス変数を使い、
メソッドに処理させるときは引数で渡す。
たまに1メソッドで完結するのにインスタンス変数使うやつがいるけど
あれは好きじゃないな。可読性が落ちる。
0951デフォルトの名無しさん2007/03/30(金) 20:58:02
tomcat使っているのですが、DBプラウザに入力したことがDBに登録されるようなサンプルを作っています。
idはprimary keyなのでtomcatを再起動すると入力を受け付けなくなってしまいます。
良い方法はないでしょうか?
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
ServletContext context = getServletContext();
Integer id = (Integer) context.getAttribute("count");
if(id == null)
{
id = new Integer(0);
}
id = new Integer(id.intValue() + 1);
context.setAttribute("count",id);
Connection con = null;
Statement smt = null;
request.setCharacterEncoding("Windows-31J");
String mail = request.getParameter("mail");
String name = request.getParameter("name");
String sql = "insert into entry values("+id+",'"+name+"','"+mail+"')";
0952デフォルトの名無しさん2007/03/30(金) 21:00:22
最初の行のDBプラウザはミスです。脳内補完しておいてください。
0953デフォルトの名無しさん2007/03/30(金) 21:01:03
>>951
idをフィールドに移して、destroy時にどこかに保存するというのはどうか
0954デフォルトの名無しさん2007/03/30(金) 21:10:14
毎日同じ時刻に処理を行いたいんですがどうすればいいでしょうか?
Timer::scheduleだと指定時刻に一回だけか同じ間隔で実行しかできません
0955デフォルトの名無しさん2007/03/30(金) 21:11:25
cronとかないの?
0956デフォルトの名無しさん2007/03/30(金) 21:12:24
前回の処理の最後で次回のスケジューリングをするとか。
0957デフォルトの名無しさん2007/03/30(金) 21:18:50
initとdestoryを使うんですね挑戦してみます。アドバイスありがとうございます。
0958デフォルトの名無しさん2007/03/30(金) 21:27:03
とりあえず Timer.schedule(タスク, 初めの日付, 24*60*60*1000); で24時間毎に実行できそうです。
でも再起動するたびに初めの日付を計算しなおすのがあまりスマートじゃないなーと
まさにcronみたいのがあれば便利なんですけど。
0959デフォルトの名無しさん2007/03/30(金) 21:32:36
Java cronでググったら、こんなのあった
http://www-06.ibm.com/jp/developerworks/java/040116/j_j-schedule.html
0960デフォルトの名無しさん2007/03/30(金) 21:52:25
>>959
おお、読んでみます。ありがとう
0961デフォルトの名無しさん2007/03/30(金) 22:44:14
JavaがGPLライセンスになったみたいだけど、
もしかしてJavaで作ったアプリって、全部フリーでソース公開しないといけなくなるの?
0962デフォルトの名無しさん2007/03/30(金) 22:52:23
>>961
んなーこたぁない。ちゃんと例外規定を設けてある。
0963デフォルトの名無しさん2007/03/30(金) 22:58:43
>>958
個人的には Quartz がお勧め。
http://www.opensymphony.com/quartz/

POJOでタスク実行クラス作って、
Spring 経由で CronTrigger 使う
ってのが俺のよくやるパターン。楽。
0964デフォルトの名無しさん2007/03/30(金) 23:55:42
>>963
これはも面白そうですね。ありがとう。
0965デフォルトの名無しさん2007/03/31(土) 00:43:10
>>961
GPLちゃんと読んだことある?

0966デフォルトの名無しさん2007/03/31(土) 02:23:31
>>961はGPLを読んで頭の中に収めると脳がGPL汚染されてopen headされると恐れているのでを未だ読んだことがない
0967デフォルトの名無しさん2007/03/31(土) 02:45:11
スレッドプログラミングのisInterrupted()について質問です。

スレッドクラスの作成方法は
1.Threadクラスを継承して作る
2.Runnableクラスを実装して作るの
二通りありますよね。

で、2の方法で作成したクラスに対して
isInterrupted()を実行するとコンパイルエラーになります。
これは、ただ単にisInterrupted()を実装しているのが
Threadクラスだからという理由だと思うのですが、
2のRunnableクラスを実装したクラスに対して
isInterrupted()を実行する方法って何かありますか?
あったら教えてください。

作成するサブスレッドクラスは、Threadクラス以外を
継承させたいので2の方法でやりたいです。
お願いします。
0968デフォルトの名無しさん2007/03/31(土) 02:48:28
Thread.currentThread()
09699672007/03/31(土) 02:53:17
public class HogeThread implements Runnable {

Thread myth;

public HogeThread(){
myth = new Thread(this);
}

public void start(){
myth.start();
}

public void run(){
}

public void interrupt() {
// TODO 自動生成されたメソッド・スタブ
myth.interrupt();

}

public boolean isInterrupted() {
// TODO 自動生成されたメソッド・スタブ
if( myth.isInterrupted() == true ){
return true;
} else {
return false;
}
}
}
09709672007/03/31(土) 02:59:20
すいません。
>>969のコードで自己解決しました。
Runnableを実装したクラスの中で
ThreadクラスのisInterrupted()を呼び出しただけで
なんとかなりそうだと思ってるんですが
特に問題ないですかね?

>>968さんのcurrentThread()は
初めて知ったんですけど
作成したサブスレッドクラスで
Thread.currentThread()
を実行するメソッドを用意して
そのメソッドをメインスレッドクラスから呼び出し
それからisInterrupted()を実行するって事ですか?

どっちの方法がいいんですかね?
0971デフォルトの名無しさん2007/03/31(土) 03:13:43
(1) 初めて知ってはいけない
(2) Thread.currentThread().isInterrupted() を使う
0972デフォルトの名無しさん2007/03/31(土) 03:24:19
ああ、すまん、他のスレッドの話か。
0973デフォルトの名無しさん2007/03/31(土) 04:09:53
エスパーしてみる。

スレッドと、クラス・オブジェクトは直交する概念。
放っておくと、スレッドは縦横無尽にオブジェクトの中を歩き回る。
スレッドがThreadクラスと関連付けられているのは、その方が都合がいいから。

Thread#interrupt() は、(Threadの)オブジェクトに対してインタラプトしているのではなく、
そのオブジェクトにラベル付けされたスレッドに対してインタラプトを要求している。
そのスレッドが現在どのオブジェクトの中を実行中であるかは関係ない。

逆に、現在、手元にあるオブジェクトの中身を実行しているスレッドは、
実はどこか遠い星からやってきた何者かかもしれない。
これは、Runnableの実装とかは直接関係ない。

自分以外のスレッドに対して操作を行うには
そのスレッドにラベル付けされたThreadのインスタンスへの参照が必要で、
自分の管理下にあるスレッドに対しては、その参照を保持するのが普通と思われ。
0974デフォルトの名無しさん2007/03/31(土) 04:25:22
GPLって生成物には感染しないんじゃなかったけ?

まあ、GNU CLASSPATH例外とかあるけど。

GPLよりw3cのソフトウェアライセンスの方が強烈だけどね。
ソフトウェア特許とか出てきても自由に使えるように、てのが目的で
パブリックドメインにするか通知文と一緒にソース公開するかの二択だから。

GPLv2と衝突するアパッチライセンス2.0のがややこしい。
0975デフォルトの名無しさん2007/03/31(土) 04:51:42
Q. GPLプログラムの出力結果もGPLによって保護されるのは、どんな場合ですか?
A. プログラムが、プログラム自身の一部を出力結果にコピーするときのみです。
0976デフォルトの名無しさん2007/03/31(土) 09:59:18
いや、GPLのライブラリ使ったアプリは、GPLライセンスにして、ソースを公開しないといけないんじゃなかったっけ?
先輩がライセンスのウィルスだって言ってたから、そう思ってたんだけど、もしかして間違ってる?
会社にも、GPLのライブラリは使うなって規定があるし・・・
0977デフォルトの名無しさん2007/03/31(土) 10:05:47
わざわざCLASSPATH例外をなんで作ったかって話だよ
09789512007/03/31(土) 10:10:21
あれから色々調べていたんですが、テーブルを登録するときに、
idの項目にauto_increment入れたら楽に解決しました。
0979デフォルトの名無しさん2007/03/31(土) 11:31:14
生成物よりのお話でもある

ライブラリの話じゃない

それにGPLは感染じゃない。寄生だ。
>>976の会社はGPLとLGPLの違いすら分かってない予感w

コピーレフトも良いがパブリックドメイン最高だぜ?
これこそ真の普及と自由だ。
0980デフォルトの名無しさん2007/03/31(土) 12:01:12
まあでもソフトを売り物にしてる会社なら予防措置としてGPLプロダクトの利用を禁止するのも一計だよ。
法務部がある規模の会社ならともかく、中小ではね。
0981デフォルトの名無しさん2007/03/31(土) 12:13:46
プロジェクト開設時にプロジェクトマネージャが
ライブラリを選定するのは当たり前の話だと思う。
それ以外のライブラリを禁止にするのも常識だが。
0982デフォルトの名無しさん2007/03/31(土) 12:26:01
>>981
プロジェクト開始前に、どうやったらどのライブラリを使うかわかるんだ?
0983デフォルトの名無しさん2007/03/31(土) 12:46:16
一年ほどJavaの最前線から遠ざかっていたのですが、
最近何か面白そうなJava系プロジェクトはありますか?

JSFとかJakartaとか、何か大きく進歩したんでしょうか。
0984デフォルトの名無しさん2007/03/31(土) 12:49:01
AJAXが追加されてデスマ増加中
0985デフォルトの名無しさん2007/03/31(土) 12:57:31
>984
Javaとは直接関係ないのにな。
0986デフォルトの名無しさん2007/03/31(土) 12:59:55
JavaとJavaScriptの区別が付いてないんだろう。
0987デフォルトの名無しさん2007/03/31(土) 13:00:41
言語としてのJavaとJavaを使ったWebサービスの作成の区別が付いてない
のかもしれない。
0988デフォルトの名無しさん2007/03/31(土) 13:07:05
今、AJAXを調べて少し状況を把握しました。

表現手法としてHTMLが限界を迎え、しかしHTMLを実際に置き換えられる
ソリューソンは無い。そんな中でGoogleがGoogleMap等を提供したことにより
DHTMLをゴリゴリ利用して表現力を伸ばす方向に進んだのですね。

・・・最悪だ。
0989デフォルトの名無しさん2007/03/31(土) 13:41:43
XMLHttpRequestオブジェクトなんて昔からあるのになんであの時はやらなくて今更注目されるのか理解できないってゲイツが嘆いてたよ。

嘆いてるゲイツを見たのはvaioはwindowsじゃないからサポートしたくない発言ぶりだった。

Ajaxは非同期でクライアントプルやってDOMでいじってるだけだからやってる事は10年以上変わってないけどね。

まあ、mosaic開発メンバの夢が次々と現実化してるんで良い事だが、
そろそろティムバーナーズリーにセマンティック・ウェブを頑張って欲しい。
0990デフォルトの名無しさん2007/03/31(土) 13:50:01
JavaでWebアプリを作成する以上AJAXは関係ある。
JavaとJavaScriptの区別がつかないような奴がJavaでプログラミングするわけないだろう。
どっちにしろAJAXでデスマ増やしてるのは事実だな。
0991デフォルトの名無しさん2007/03/31(土) 13:59:06
開発サイドとWebデザイナーサイドのどちらでAjaxを組むかが問題。
俺は責任とりたくないのでなるべくWebデザイナーにやらせる。
0992次スレ2007/03/31(土) 13:59:20
【初心者】Java質問・相談スレッド100【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1175317038/l50
0993デフォルトの名無しさん2007/03/31(土) 14:02:53
AJAXを使う場合、サーバサイドがどの言語であろうと影響があるな。
Javaだけでなく。

>>992乙
0994デフォルトの名無しさん2007/03/31(土) 14:29:08
こんにちは。
Stateless Session Beanのタイマーを使って、サーブレットが利用するある変数の値を
カウントアップしていきたいんですけど、その変数は、このBeanのStaticに置いたりしては
だめと解説に書いてありました。
こういった値を保持するために、もう一つStatefulのBeanを作らなくてはいけないのでしょうか。。
すごくコストのかかるやり方のような気がしているんですが。。
0995デフォルトの名無しさん2007/03/31(土) 14:30:30
AJAXのライブラリやフレームワークを使わないで直接javascript書いてるプロジェクトってあるの?
0996デフォルトの名無しさん2007/03/31(土) 14:31:39
ServletContextに入れればどう?
0997デフォルトの名無しさん2007/03/31(土) 14:32:12
>>994
>もう一つStatefulのBeanを作らなくてはいけないのでしょうか。
はじめからStatefulで作ればいいと思うよ。
0998デフォルトの名無しさん2007/03/31(土) 14:32:17
>>991
単純なAJAXならそれでもいいが、それが可能な時代はもう過ぎた。
DWRとかSeamRemortingを使った、デザイナーの手に負えない領域に入ってる。
09999942007/03/31(土) 14:36:26
>>996
早速ありがとうございます。
ServletContextに値を保持して、タイマーで呼び出されたBeanから、これに
アクセスするということでしょうか?
BeanがServletContextにアクセスする手段は、どういった感じになるんでしょう。。
>>997
Statefulはタイマーを使えないっぽいんです。。
1000デフォルトの名無しさん2007/03/31(土) 14:39:37
javaは永遠に仏滅です
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。