1 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:35:28 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド98【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1171787388/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
4 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 12:09:12 ] Javaからウェブカメラの映像を取得するには JNIとか使わなきゃむりぽ?
5 名前:デフォルトの名無しさん [2007/03/05(月) 12:16:58 ] >>4 ローカルのカメラならドライバ次第では? ネット上の映像ならソケットで取れないか?
6 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 12:21:08 ] >>4 JMF
7 名前:4 mailto:sage [2007/03/05(月) 12:32:02 ] >>5 ローカルなんだ。 いろんなカメラに対応させたいんだが。 >>6 調べてみる。 トンクス
8 名前:デフォルトの名無しさん [2007/03/05(月) 13:25:35 ] このエフェクトはどうやって作られているのでしょうか? 画像を縦方向に1ドット単位で刻む→それらをx軸の画面中央から離れた分だけ縦に拡大処理→再結合して表示、 なんていうのしか思いつきませんorz couples.jp/cgi-bin/ht_panorama_dsp.cgi?hotelcode=221&panorama=front_top&ptn=2
9 名前:デフォルトの名無しさん [2007/03/05(月) 13:47:11 ] アプレットに表示されている線や複数の画像を、 一つの大きな画像と見て拡大縮小等の処理を行いたいのですがどんな感じで作れば良いでしょうか?
10 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 14:38:41 ] >>9 Graphics2DとImage使ったらできないかな?
11 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 15:10:27 ] >>10 ご回答ありがとうございました。 恥ずかしながら、その単語は初めて聞きました。調べて勉強してみます。
12 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 15:25:28 ] ラストスレおめでと。 残り少ないけどよろ。 (:D)| ̄|_
13 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:37:22 ] JAVAにおける文字コードについて質問なのですが、こちらでよろしいでしょうか? OutputStreamWriterなどで文字コードを指定のうえ ファイルを読み込み、読み込んだファイルをそのまま出力する処理を 作成していますが機種依存文字(丸1や(株))が文字化けしてしまいます。 「MS932」を指定するだけでは足りないのでしょうか? 動作環境はREDHUTでTOMCATのバージョンは5.5です。 なおWindows環境での動作確認ではうまく処理できました。
14 名前:13 mailto:sage [2007/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();
15 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:42:35 ] >>1 のWikiroomが403なんだけどたまたま? それともつぶれた?
16 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:46:30 ] >>13 まずはTomcat関係無しに、Redh a tのjavaで文字化けせずに Windows-31Jの文章が読み書きできるか確認。 それと、MS932ではなく、Windows-31Jにしておいた方がいいですよ。 Windows-31Jは、IANA登録名ですから。
17 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:53:51 ] すみません、eclipseなんですが、中括弧の付く位置が初期設定では メソッド() { こんな感じになってるんですが、 メソッド() { こんな感じにする事はできないのでしょうか?見難くってやってられません。 もし設定を変える方法を知っていたら教えてください。お願いします。
18 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 19:20:46 ] >>17 Window>Preference Java>Code Style>Formatter
19 名前:デフォルトの名無しさん [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 と書き込みをしたい。どうすればできるの。一つでもいいから誰か教えて
20 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 19:29:58 ] >>13 System.out.println(java.nio.charset.Charset.foName("MS932").getClass()); とかやって、実装してるクラスを確認してみるとか。
21 名前:17 mailto:sage [2007/03/05(月) 19:30:52 ] 一応設定は上手く行きました。教えてくれてありがとうございます。
22 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 19:31:17 ] >>19 宿題は宿題スレに。 ★★ Java の宿題ここで答えます Part 60 ★★ pc11.2ch.net/test/read.cgi/tech/1169300052/
23 名前:13 mailto:sage [2007/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);
24 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 19:50:21 ] >>23 何だろうねぇ? Tomcatの起動オプションに強制指定入れてみる? -Dfile.encoding=MS932 これ。
25 名前:デフォルトの名無しさん [2007/03/05(月) 20:00:11 ] >19やさすぃいJavaにそのまま書いてあるお (:D)| ̄|_
26 名前:デフォルトの名無しさん mailto:sage [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(); } } }
27 名前:前スレ976 mailto:sage [2007/03/05(月) 21:11:21 ] 前スレ>>987 Linuxの設定、Java version関係なく sendする直前に、recv処理をすることで対応できました。 回答どもです。
28 名前:19 [2007/03/05(月) 21:20:03 ] >26
29 名前:19 [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)
30 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 21:33:02 ] もう涙が出ちゃう。・゚・(ノД`)・゚・。
31 名前:デフォルトの名無しさん [2007/03/05(月) 21:37:30 ] なるほど、スレタイ通りだ。wwwww
32 名前:デフォルトの名無しさん [2007/03/05(月) 21:38:21 ] >>29 そのファイルの拡張子はどうなってる?
33 名前:19 [2007/03/05(月) 21:42:49 ] javac txt.java java txt で実行しているわよ
34 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 21:47:27 ] とりあえず>>1 は読んだか?
35 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 21:48:55 ] >>33 hoge ってディレクトリ掘って、そん中に txt.class をつっこめ。 そのあと java hoge.txt ね。 >>19 の > ってかいてあって、java hoge.txtと実行すると ってのが原因。
36 名前:19 [2007/03/05(月) 21:50:11 ] 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath これでしょ。これは前から知っててとっくに解決済み。そもそも これ解決してないなら他のプログラムとかは通らないでしょ。 eclipseでやあっている
37 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 21:53:01 ] パッケージ宣言とっちゃえば?
38 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 21:54:09 ] >>36 そこに書いてあるのはパッケージ使わない場合だけだから、 今回は参考にならんよ?
39 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 21:54:55 ] > パッケージ宣言とっちゃえば? >>19 の仕様に反するんだけど。
40 名前:13 mailto:sage [2007/03/05(月) 22:00:31 ] ちょっと確認したのですが、この方法でサーバに生成されたファイルの 文字コードを確認したらEUCになっていました。これってサーバ依存の 文字コードがデフォルトで選択されているってことですよね。 ただ「OutputStreamWriter」でエンコーディングの指定をしているにも 関わらずそのようになってしまったのはなんでだろう…。
41 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 22:06:43 ] >>40 > この方法 それって >>14 ? >>23 ? EUC って丸付き数字あったっけか?
42 名前:19 [2007/03/05(月) 22:12:09 ] >>37 俺も思った
43 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 23:23:40 ] synchronized修飾子を指定したメソッドなんですが、 スレッド名.wait()を使用するとjava.lang.IllegalMonitorStateException: current thread not ownerが出ます。 この場合どんなことが原因だと考えられるのでしょうか?
44 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 23:44:52 ] wait() を用いたこと
45 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 00:07:06 ] >>43 エラーメッセージの通り。 もしくは、モニターの所有権について >>43 が理解できてない事。
46 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 00:08:25 ] >>44-45 失礼しました。勉強しなおしてきます。
47 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 00:09:48 ] >>43 Objectのwaitメソッドを使っているわけだからその辺のドキュメント漁れば答えが見えてくるはずなんだけど… > このメソッドを呼び出すのは、このオブジェクトのモニターを所有するスレッドだけでなければ > なりません。スレッドがオブジェクトのモニターのオーナになる方法については、notify メソッド > を参照してください。 直接的ではないにせよ最低限のヒント位は出ているから、普段からAPIドキュメントみるクセをつけた方が良いかと。
48 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:50:04 ] すんません。 homepage2.nifty.com/igat/igapyon/diary/2005/ig051228.html ここ見て、swtからwin32APIが扱えることを知ったんだけど、 キーイベントやウィンドウのリサイズきかなくない? ウィンドウは拾えてるみたいなんだけど…
49 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 02:11:29 ] え?ここJNIあり? 幅広いね
50 名前:デフォルトの名無しさん [2007/03/06(火) 06:49:35 ] GUIで質問があります。 JComboBoxで選択した文字を、JLabelに出力するようしたいのですが、 どのようにやれば良いのでしょうか? このGUI(ttp://www.uploda.org/uporg718906.jpg.html)の場合、 『output』というところにTokyo, Osaka, Nagoyaと選択したら出力されるようにしたいです。
51 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 07:19:39 ] >>50 addActionListenerかaddItemListenerを使う。 簡単なのはActionListenerのほうかな。 編集可能か否かでちょっと違うかもしれないが。 JComboBoxのAPIを見ること。
52 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 08:57:45 ] なんでそんなことが分からないレベルで2chに質問しようと思いつくのか。 それとも釣りか。
53 名前:13 mailto:sage [2007/03/06(火) 09:04:58 ] >>41 14の方です。23の方はうまくいってます。EUCに丸文字ないので ばけていたのだと思います…。が、14の方法で何故EUCファイルが できてしまったのでしょう…。現在それを調べています。
54 名前:デフォルトの名無しさん mailto:sage [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+"日"); } } この場合、引数ってのはどれにあたるのでしょうか?
55 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 13:33:54 ] String[] args now.YEAR now.MONTH now.DATE y+"年"+m+"月"+d+"日" メソッドに渡してるものは全部引数
56 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 13:34:56 ] 何の引数? コマンドライン引数ならmainメソッドのargsだが、プログラム中では利用 されていないね。 getの引数はnow.YEARとかだな。 printlnの引数はy + ... + "日"という式。 本筋とは関係ないけど、Calendarは日時を表すオブジェクトではないので nowという誤解させるような名前を付けるのは好ましくない。
57 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:13:12 ] >>55-56 迅速な対応ありがとうございます。また質問なのですが 上の日付の書式を書くとなるとどう書けばいいのでしょうか?
58 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:18:06 ] SimpleDateFormat
59 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:28:21 ] 何も知らない俺がiアプリで計算機程度のソフト作れるようになるには どのくらいの時間かかりますか?
60 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:52:25 ] そんなことを2chに聞きに来るような人には一生無理だと思います。
61 名前:デフォルトの名無しさん [2007/03/06(火) 14:54:04 ] >>59 「作る時間」じゃなくて「作れるようになるまでの時間」って事? 今からでも作れるよ。君に足りないのは技術力じゃなく決断力だ。
62 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:55:32 ] >>15 普通に見られるぞ。
63 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:56:19 ] >>13 native2asciiとか使ったことある?
64 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:57:37 ] >>17 Eclipseは専用スレがあるから、一応、そちらで。 【初心者】EclipseでJavaの勉強 2時間目【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1147444414/ 【Java/C/PHP/Perl/Ruby/Python/TeX】Eclipse M22 pc11.2ch.net/test/read.cgi/tech/1168166588/
65 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:59:48 ] >>29 でたー、これわざとやってるとしか(ry ファイル名.java.txtになってたってやつかー
66 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:01:41 ] >>40 コンパイルオプションで指定した文字コードは? だめならとりあえずnative2ascii Stringオブジェクトを使うとき、文字コード指定していないとかでは? JISAutoDetectとか昔、懐かしいことしていた記憶がある・・・・
67 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:02:56 ] 質問に答えればいいのにプログラマってごちゃごちゃうるさいね。 >>59 適当だけど40時間(8h/日なら5日間、4h/日なら10日間)ぐらいじゃない? 計算機ロジック自体は簡単だけど、 開発ビルド環境、iアプリの作り方、サーバへのアップとダウソでハマると思う。
68 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:03:48 ] >>63 >>66 >>13 嫁
69 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:03:56 ] 思うんだが、丸文字丸文字いうてるやつは 丸文字の意味を間違えてないか? と突っ込んでみる。
70 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:04:50 ] >>67 つうか、お前がプログラマなんだろ。 俺はプログラマじゃないから答えてやらないよ。
71 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:06:17 ] 丸文字といえば、やはりこれ 丸文字書体の手書き風TrueTypeフォント「ことり文字ふぉんと」v1.0が公開 先端が尖っていない滑らかな女の子らしい運筆で書かれている www.forest.impress.co.jp/article/2003/01/08/kotorimojifont.html
72 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:07:14 ] >>67 おまえは、場合によっては、質問者に 余計なお世話だと思われることだろう。
73 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:08:01 ] そもそも>>67 の発言はあくまで推測だし。 単なる丼勘定
74 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:08:34 ] >>67 相手は「何も知らない」って言ってるんだぜ? あの質問から読み取れる情報は「日本語は理解できている」程度なんだぜ?
75 名前:デフォルトの名無しさん [2007/03/06(火) 15:19:03 ] >>67 お前の解答って「作る時間」じゃねーの?w 質問は「作れるようになる時間」だぞ。 『質問に答えればいいのに』答えられてないじゃんwwwww
76 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:19:30 ] >>70 >>72-74 必死すぎ
77 名前:デフォルトの名無しさん [2007/03/06(火) 15:23:37 ] >>76 本人乙
78 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:28:52 ] 何この自作自演連レス
79 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:39:01 ] >>67 あれてるけどさんくす。 環境は整いました。 アップダウンは昔HP作ってたからたぶん問題なし。 が、プログラム自体に戸惑って止まってます。 BASICはやったことあったけど、javaとは全然違うね。難しい。
80 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:53:14 ] 1.4対応の本は虎対応本に買い換えたほうがいいの?
81 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 16:10:42 ] 使えなくなるわけではないが、別途Tiger(つーかいまはその次のMustangが最新) の知識を得る必要はある。
82 名前:デフォルトの名無しさん [2007/03/06(火) 16:13:11 ] コンパイルはでける。 実行すると、下記の表示される↓ [Fatal Error]:1:5: Invalid byte 1 of 1-byte UTF-8 sequece. 実行ソースは、やさしげなJava活用編、XML文書をDOMによって読み書きする(p291)です。
83 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 16:26:22 ] JOptionPane.showInputDialogのダイアログに出てくるテキストフィールドに、 初期状態から文字を表示させておくことはできないのでしょうか?
84 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 16:31:24 ] >>82 いきなりなんの話だ? XML中に表明しているエンコーディングと実際のエンコーディングが 食い違ってるんじゃないの?
85 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 16:37:53 ] >>83 初期値を指定できるshowInputDialogを使う。 1.4以降なら3つあるはず。
86 名前:デフォルトの名無しさん [2007/03/06(火) 16:40:28 ] >85 〜Dialog("Your Name?","65")
87 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:04:38 ] >>85-86 ありがとうございました。無事解決しました。
88 名前:デフォルトの名無しさん [2007/03/06(火) 17:06:44 ] >82は解決しませんでした。 諦めました、スルーして下さい。
89 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:39:16 ] >>76 質問者本人か? 質問する前に日本語を勉強しようや。 さもなければ、半島に帰りな
90 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:40:05 ] >>79 また自演だ。コテハンぴゅあとかいうドトネト厨の荒らしだろお前w
91 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:12:15 ] >>88 諦めるもなにも読んだまんまだが? まずはxmlの仕様を勉強しろ >>84 正確には文字コードが指定されてなかったんでパーサがサポートするデフォルトの文字コードで読みに行ったらテキストのエンコードがUTF-8じゃなかったから仕様に従って致命的なエラー扱いにしたんだな。 何も考えてない奴が一番初めにコケるテンプレ嫁以前の問題だな。ググれば幾らでも出てくる。
92 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 20:10:53 ] >>82 バイナリエディタで開いて1byte目にBOMついてないか確認しろ。
93 名前:デフォルトの名無しさん [2007/03/06(火) 21:14:39 ] javaファイル、xmlファイル、どっちがBOM付きでどっちがUTF-8?
94 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:21:59 ] mustangからBOM付きUTF-8扱えるようになってたような。
95 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:29:15 ] javaファイル →BOM付きshift_jis xmlファイル →BOM無しshift_jis ですよね?よね?
96 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:35:55 ] BOMってのはUTF-16の話だ。
97 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:52:34 ] >>96 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. bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378911 UTF-8 decoder handling of byte-order mark has changed
98 名前:デフォルトの名無しさん [2007/03/06(火) 23:01:15 ] 原因がわかりまちた。 xmlファイルの文頭にこれ→<!--注釈-->をつけたことが原因でしたぁ〜ん (:D)| ̄|_ ごめんなご
99 名前:デフォルトの名無しさん [2007/03/06(火) 23:45:51 ] ソケットのストリームにおいて、コネクションを維持しながら 文字ストリームで通信した後にオブジェクトストリームで通信をしたいのですが、 文字ストリームのcloseメソッドの呼び出しって行う必要はあるのでしょうか?
100 名前:デフォルトの名無しさん [2007/03/06(火) 23:50:43 ] らくしてかれいにスレッド99コメント99げっとかしらかしら〜 (:D)| ̄|_
101 名前:99 [2007/03/07(水) 00:16:57 ] それは気がつかなんだ。 (:D)| ̄|_ ごめんなご
102 名前:48 mailto:sage [2007/03/07(水) 01:50:52 ] すれ違いだったんだろうか… ここまで見事にスルーされるとは思ってなかったぜ。
103 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 02:19:25 ] >>102 SWT関連なら専用スレがあるよ ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
104 名前:デフォルトの名無しさん [2007/03/07(水) 03:42:07 ] StreamTokenizerで 自然対数表示で書かれたdouble値を読み込むことってできないでしょうか? 例えば、2.52224e-005という文字列を読み込んだときに 0.00025224 と認識させたいのですが、 double a = st.nval; とすると、a=2.52224となってしまいます。
105 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 03:52:52 ] >>103 そこGUIだから
106 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 03:58:56 ] >>106 それ、常用対数。
107 名前:104 mailto:sage [2007/03/07(水) 04:00:20 ] >自然対数表示で書かれたdouble値を読み込むことってできないでしょうか? 自然対数表示じゃなくて、指数表示の間違いでした
108 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 04:17:32 ] (:D)| ̄|_ メインOSとデータをフォーマットしてしまったぜ! イェィ( ̄ー ̄)b
109 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 04:23:40 ] >>105 だから何?
110 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 04:40:06 ] >>107 ttp://java-house.jp/ml/archive/j-h-b/046214.html
111 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 05:04:04 ] >>105 ??GUIだから誘導されてるんじゃ・・・
112 名前:104 mailto:sage [2007/03/07(水) 05:25:00 ] >>110 ありがとうございます、解決しました〜
113 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:08:49 ] なんだよ1日たってみたら自演扱いかよ。 しかもわけわからんコテ扱い。 初めてこの板来てこれだしな。 プログラマってのはこんなにレベル低いのか? それともアホがここにすみついてんのか?
114 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:24:53 ] 自分が馬鹿なのを認識できないクズが一匹いますね
115 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:56:02 ] 誰? >>67 か?
116 名前:デフォルトの名無しさん [2007/03/07(水) 12:25:35 ] うっすら涙目の>>113 登場。
117 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:08:47 ] 入力ファイルから値を受け取りそれぞれのクラスで処理してその結果を 出力ファイルにだすっていうプログラムを作りたいんですけど 入力ファイルはどういうふううに作成すればいいのでしょうか? メモ帳からではないですよね?
118 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:20:27 ] >>113 ん、母体が大きくなるとアホも居ますわ。すまんこやけどスルーしたってください。
119 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:23:30 ] >>117 > 入力ファイルから値を受け取りそれぞれのクラスで処理して の部分が曖昧なのでなんともいえない。 メモ帳でも作れるかもしんないし、作れないかもしれない。
120 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:23:44 ] >>117 入力ファイルがテキストファイルならメモ帳で作っても問題ないんじゃない? というか、やりたいことに対して、その意味が自分で分かってないってことは ・・・・宿題? 宿題が分からない場合は 1.友人に相談 2.教師に相談 3.宿題スレで相談 こんな感じでリアルをもう少し活用してみましょう。
121 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:30:31 ] レス、ありがとうございます。 すみません言葉たらずでした… レコード形式?みたいにデータを入力していってその 値を受け取るって形にしたいのですがこういうのは メモ帳で作れます?
122 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:37:56 ] レコード形式って?
123 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:39:15 ] >>121 作れるかどうかメモ帳起動してみればいいんじゃないのかな?
124 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 15:54:56 ] >>113 ならプログラマやめれば?
125 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:07:27 ] Javaを用いて、既存のファイルやフォルダのコピー、移動を行いたいのですが、 どのような方法がありますか? Fileクラスにロードしたファイルを、renameTo()メソッドで移動をしてみたのですが、 ディレクトリをまたいだり、ルートフォルダが異なったりするとうまくいきません。 API仕様書には、環境に大きく依存すると書いてあり、確かにそのような気配がします。 (ちなみに、環境はWindowsXPです。) Runtime.exec()や、ProcessBuilderを用いてバッチ処理のような形で実現させるしかないのでしょうか? あるいは、java.ioパッケージを駆使するしかないのでしょうか? その場合は、どのクラスを使うと便利か、示唆していただけないでしょうか。
126 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:21:55 ] Jakarta Commons IOあたりにあるかとも思ったが、ないね。
127 名前:デフォルトの名無しさん [2007/03/07(水) 17:53:12 ] Swing関係のAPIに書かれてる 「警告: このクラスの直列化されたオブジェクトは、今後のSwing リリースと・・・略・・・XMLEncoderを参照してください。 」 の意味がよく分かっていないのですが 「XMLで書け」って意味でしょうか?
128 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:11:25 ] >>XMLEncoderを参照してください とりあえず嫁。なぜ読まん?
129 名前:デフォルトの名無しさん [2007/03/07(水) 18:14:28 ] >>128 既に何度も読んだ。マジで意味が分からん・・・。
130 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:17:51 ] シリアライズしてもいいけど、Serializableを使うとバイナリ互換問題が ついて回るので、RMIみたいな短期の場合にのみ使ってくれ。保存して おいて別バージョンのSwingで読めなくてもしらないよ。そういう用途に はXMLEncoder/Decoderを使ってくれ。
131 名前:デフォルトの名無しさん [2007/03/07(水) 18:26:48 ] 各環境に合わせてコンパイルし直せ さもなくばXMLEncoder使え って事であってます?
132 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:30:41 ] ちゃうちゃう シリアライズしたものをファイルとかに保存して、それ読み込んで使ったりすると JREのバージョンが変わったときに読めなくなる/使えなくなるよってこと。
133 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:34:29 ] >>131 うーん、そうじゃなくて、他のバージョンのJVM上にオブジェクトの シリアライズイメージを送ったとき、問題出るかもしれんよ、ということ。 コンパイルし直ししても、 JDK6の javax.swing.Hogehoge をJDK8 のJVM上に送ったとき、そこでインスタンスが復元出来ないかもしれないってこと。 具体的には、そのクラスの serialVersionUID が将来変えられる可能性があるということかな。
134 名前:デフォルトの名無しさん [2007/03/07(水) 18:34:56 ] >>132 お手数掛けました。 ありがとうございました。
135 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:37:58 ] >>126 あるだろう。コピーくらいなら。 Runtimeなんていらない。 java.ioだけでどうにかできるはず。 根性いるかも知れないけど。 まずFileクラスでフォルダを指定して、 フォルダの中をdir()で再帰的に調べて記憶しておく。 つぎに移動やコピー。 ここでは、移動(コピー)先フォルダを指定したら。 移動(コピー)先フォルダ名のパス文字列をつかってFileクラスでディレクトリ作成。 あとは同じディレクトリにファイルやサブディレクトリなどを再帰的にコピー。
136 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:38:41 ] >>129 SerializableがXMLEncoderに変わっただけ。 つうかググれ。
137 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:39:51 ] >>131 ここに答えが乗っている 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
138 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:52:07 ] >>135 ファイルの中身だけコピーするならなんとかなると思うけど。 属性とか所有者とか、シンボリックリンクではコピー先にシンボリックリンクを作るとか、 そーゆー事まで考え出すと java.io だけじゃ無理のような。
139 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 20:43:09 ] >>136 おまえはその前に、リロード汁w
140 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 22:38:44 ] Mac OS X使ってます。 OS XにはAPIドキュメントというものはないんでしょうか? Eclipceで日本語のホバー表示をするために、 MergeDoc(mergedoc.sourceforge.jp/ )というのを入れたいんですが、 APIドキュメントというのが必要らしいです。
141 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 22:47:18 ] >>140 /System/Library/Frameworks/JavaVM.framework/Versions/バージョン/ Home/docs/
142 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 23:02:33 ] >>141 /System/Library/Frameworks/JavaVM.framework/Versions/バージョン/ Home/ まではあるんですが、docsフォルダがないです。。。
143 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 23:10:40 ] ああ、ADCからダウンロードしないとないかも。
144 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 23:13:57 ] www.apple.com/downloads/macosx/apple/macosx_updates/java2se50developerdocumentation.html これか?
145 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:00:56 ] ActionListener等ってFrameとかにimplementsして使うのが普通ですか? この方法だと自分のやりたい事がどうもスッキリとできないんです
146 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:10:24 ] オセロや将棋のプログラムを作りたいのですが、どのプログラム言語が適しているのか教えてください。 プログラムの知識は、どの言語でも使うif文とかfor文とかを最近覚えた程度の全くの初心者です。 数学は独学だけど大学程度の数学なら分かるつもりです。論文や専門書もかなり読みました。 アルゴリズムとか超興味あります。 しかし何から手をつければ良いのか検討が付かないのアドバイスをください。 ちなみに学生なのでPCを買うお金が無いので学校の5〜10年ぐらい昔の古いPCが開発環境です。
147 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:13:18 ] オセロや将棋程度ならなんでもOK。 強いて言えば、VBがユーザインタフェースを作りやすいけど、開発環境にお金がかかる。 Javaなら無料だけど古いPCでは厳しいか。
148 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:13:53 ] lisp
149 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:15:38 ] >>145 - 複数箇所で使い回すならクラス(場合によってはメンバークラス)。 - その場限りなら匿名クラス。 にしている。
150 名前:145 mailto:sage [2007/03/08(木) 00:22:34 ] >>149 具体的に言えば、 Aボタンを押したらBテキストフィールドから値を受け取り Cテキストフィールドを更新するといった処理を複数作る という事をしたいんですが、この場合はメンバクラスとして作るのがスマートですかね? おそらく匿名クラスや普通のクラスではややこしい書き方をしないと出来ないと思うので
151 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:33:13 ] >>150 フレームのメンバーになっているボタンやテキストへのアクセスが出来た ほうが便利だろうから、メンバークラスがよいように見える。
152 名前:145 mailto:sage [2007/03/08(木) 00:40:31 ] >>149 ,151 レスありがとうございます その辺りのスコープの問題はメンバクラスにする事で何とかするのが普通なんですね ボタンやラベルを一つのパネルに纏めてしまって、そのパネルもメンバクラスに・・・ なんてすればさらにコードが読みやすくできるのかなぁ
153 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 02:11:06 ] >>138 パーミッションだけならJavaでもできる。 他は・・・ Runtimeとかかねえ Jakarta Commons VFSでにたようなことできなかったかな・・・
154 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 02:17:36 ] >>145 ,152 乗り遅れた… 個人的にはオブジェクトの役割が比較的きっちり分かれるMVCが好み ttp://java.sun.com/developer/technicalArticles/javase/mvc/ ↑英語ですが…日本語でも山ほど資料はあるのでググってみて ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
155 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 03:55:02 ] >>111 よく読め。 GUIの話題なんて一言も振ってない。
156 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:03:14 ] その通り キーイベントやウィンドウのリサイズが利かないって話題なんだからCUI関係だよ GUIと間違えちゃいかん
157 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:21:08 ] APIリファレンスって印刷して使うものなの? ものすごい量になる悪寒
158 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:46:51 ] >>157 お前の想定している状況がイマイチ分からん。 シリアライズの話だけどそもそもアプリケーションプログラマがSwingコンポーネントをシリアライズするってどういう場合? 元々シリアライズってファイルシステムなんかに永続的にオブジェクトの状態を保存する目的のものじゃないでしょ? ネットワーク超えてたれ流すためでしょ? シリアライズを永続的な保存目的に使いだしたからXMLEncoder/XMLDecoderが出てきたの?
159 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 07:10:33 ] 永続的な目的云々もそうだが、ことさらSwingのAPIにだけシリアライズに よるバージョン問題のことが書いてある理由も謎だ。
160 名前:125 mailto:sage [2007/03/08(木) 08:04:27 ] >>126 >>135 >>153 返答ありがとうございます。 手間が掛かりそうなので、簡単に実現できそうなRubyに乗り換えることにしました。 Swingが使えないのが残念ですが。 ちなみに作ろうとしていたのはエロ画像の自動整理プログラムでした。
161 名前:デフォルトの名無しさん [2007/03/08(木) 10:01:01 ] ひとつのつながったテキストを区切って別々のページに保存したいときって どうすればいいですか?
162 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:02:30 ] >>153 6.0 のパーミッション操作も全部じゃないよ。 外部ライブラリ使うなら、JConfig 使うとかした方が楽かも。
163 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:03:34 ] >>161 「別々のページに保存」ってのが具体的に何したいのかわからん。
164 名前:デフォルトの名無しさん [2007/03/08(木) 10:10:33 ] えと、100行のテキストがあったとして、10行ずつ区切って 別のファイルに保存ってことです。
165 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:16:31 ] 言ってる事をそのままコードにするだけだからどこがどう出来てないのか情報がないと教えようがない
166 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:19:44 ] java.sun.com/javase/ja/6/download.html にAPIドキュメント追加されてる。
167 名前:デフォルトの名無しさん [2007/03/08(木) 10:55:36 ] 今クローラーってのを作る課題なんですけど、リンク先をページから 拾ってきて、ページごとに保存しなくちゃいけないんです。 で、リンク先抜き出してソース落とすとこまではできたんですけど、 全部つながってひとつのファイルに保存されちゃうんで、それを 区切って保存したいってことです。
168 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:03:08 ] >>167 再帰的にやればいいんじゃね?
169 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:18:38 ] >>167 > 全部つながってひとつのファイルに保存されちゃうんで ……。つなげなければ良いんじゃね?
170 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:46:43 ] 何でつながるのかわかってないんじゃね?
171 名前:145 mailto:sage [2007/03/08(木) 12:33:17 ] >>154 レスありがとうございます >ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ 確かにメンバクラスにすると再利用が難しくなるかなぁと思ってました そこでMVCという単語を絡めて検索した所 まさに今考えていた事が既に話し合われていた場所を発見する事ができました www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18201&forum=12&7 まだしっかりとは読んでいないのですが、これで気持ちよく開発が進めれそうです 本当にありがとうございました ;D
172 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:10:21 ] 商品番号、日付、単価、数量 0001,20070308,1200,50 とテキストファイルに記入。 日付の値は日付の処理を行うメソッドに渡し、単価と数量の値は 計算する処理を行うメソッドに渡す。 ということをしたいのですが可能でしょうか? 可能ならばやり方を教えていただきたいです。
173 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:10:59 ] >>167 そもそもなんで繋がってんのか分からんがクローラー作るならWWW Wanderer(Wandex), Aliweb, WebCrawlerを調べてみな? まあ、見つけられたらの話だが・・・国内鯖で見つからんなら ttp://en.wikipedia.org/wiki/ で調べりゃあるから、ちゃんと探せば技術文書も論文も化石が埋まってるから。(但し殆どがwwwの歴史の論文だけど) AliwebとWebCrawlerは存命の筈だけど #あと鯖に迷惑だから素人にそんなもん作らせるなと糞講師に言っとけ!(-Α-")
174 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:13:46 ] >>172 屑仕様な宿題は出しても不可能な仕様の宿題を出す訳ないでしょ? 宿題スレのテンプレ持ってお引っ越ししましょうね?
175 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:14:21 ] >>172 split
176 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:17:22 ] 2chに宿題訊きにくるような奴と将来一緒に仕事したくないなあ
177 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:09:13 ] >>168 そして再帰的にやって 相互リンクで永久ループにハマってあぼーん
178 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:11:00 ] >>176 たんと礼儀とルールと一般常識をわきまえて聞くなら良いけど 質問に答えてくれないと逆ギレするようなやつとは一緒に仕事したくないよな〜
179 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 17:30:50 ] >>177 基底条件ってもんくらい分かってるだろ? でなきゃループ内で再帰やったとき止まらんw
180 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:32:06 ] 1つのjavaファイルに、複数の public class を記述すると、 コンパイルしたときに、$付きの class ファイルが生成されます。 こんな書き方ありなんでしょうか?
181 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:47:22 ] >>180 JVMの身にもなってみろ
182 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:16:30 ] >>180 あり。 > 1つのjavaファイルに、複数の public class を記述すると、 入れ子になったクラスなら $ とかがつくし、 トップレベルに public なクラスが複数あったら コンパイルエラーにしないと言語仕様に反する。
183 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:57:55 ] Javaのことはまったくわかりません。 場違いだったら構わず指摘してください。よろしくお願いします。 www.strangepuzzle.com/jnetcube.html このサイトにあるルービックキューブ用のタイマーを 動かしたいのですが、ダウンロードしたあと 何をしたらいいのかまったくわからないんです。 どうすればタイマーを動かすことができるのでしょうか。
184 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:09:20 ] >複数の public class コンパイラ通るのか!?
185 名前:デフォルトの名無しさん [2007/03/08(木) 21:10:26 ] 質問させてください。 例えば、DBの1レコードごとに一つのHTMLページのソースが入ってる状態があります。 例 1レコード目 1 トップページ 2レコード 2 サブページ1 3レコード 3 サブページ2 HTTPリクエストに応じたレコードをJSPで表示で表示しているとします。 通常ならリクエストの形は hogehoge.jsp?id=2 とかだと思います。 これをクエリを使わないで/で区切ったリクエストに応じて表示する方法はないでしょうか? 例えば hogehoge.jsp/2/ ↑のリクエストの形で2レコード目の要求として扱う方法はないでしょうか? 2ちゃんねるみたいに pc11.2ch.net/test/read.cgi/tech/1173026128/ というふうにクエリ使わないで/だけでやる方法をさがしています
186 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:46:42 ] javax.servlet.http.HttpServletRequest#getPathInfo()
187 名前:デフォルトの名無しさん mailto:sage [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つの単語ではなくランダムな組み合わせで表示させたい。 ちなみに今は問題文と選択肢のテキストを別々のファイルに保存しているのですが これも問題ありでしょうか?よろしくお願いします。
188 名前:デフォルトの名無しさん mailto:sage [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; }
189 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:46:11 ] あとは自分で。
190 名前:デフォルトの名無しさん mailto:sage [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; } }
191 名前:デフォルトの名無しさん mailto:sage [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; } }
192 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:31:39 ] >>191 public class DataComparator implements java.util.Comparator<Sensyu> {
193 名前:デフォルトの名無しさん mailto:sage [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)/~
194 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 02:49:47 ] toArray で Object[] に変換してるから。 Sensy[] に変換するよう引数をとる toArray の方を使いましょう。
195 名前:193 mailto:sage [2007/03/09(金) 03:05:33 ] >>194 さんありがとう toArray public <T> T[] toArray(T[] a) のことですね、 Sensyu[] oa = al.toArray( ここがわかりませんどうしましょドジですいません );
196 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 04:09:57 ] >>195 new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、 もしサイズが足りなければ新たに確保してくれる。 APIリファレンスのtoArrayの項目をきちんと読むんだ。
197 名前:193 mailto:sage [2007/03/09(金) 04:29:14 ] >>196 さんありがとうございます。 でっ、できました。ヽ(^o^)丿 難解だけどAPIリファレンス出来るだけ読むようにします。 つきあってくれてありがとう‥
198 名前:デフォルトの名無しさん [2007/03/09(金) 04:48:13 ] 音声の再生についての質問です。 好きなタイミングで音声を鳴らしたり消したりしたいのですが、 スレッド処理を用いている場合はどう書いたらいいのでしょうか? startメソッドにac.loop;と書くと延々鳴ってしまいますし、 runメソッド内に書くとやはり音声の冒頭部分だけが繰り返し再生されてしまいます。 ソース sourcepost.sytes.net/sourceview.aspx?source_id=29248 startメソッドに再生部分を記述 www.za.ztv.ne.jp/yosi-h/Java_Ski.html
199 名前:デフォルトの名無しさん [2007/03/09(金) 10:26:18 ] どなたかご存知でしたら教えてください。 JavaでPDFを作成するiTEXTにて テーブルを作成するときに途中でページからはみ出そうなときは 次ページに改ページしてくれる方法ってないでしょうか? よろしくおねがいします。
200 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 11:21:38 ] >>198 アプレットは単音鳴らすか鳴らせ続けるかだからループさせつつ任意のタイミング止めて再開とかしたいなら適当なサウンドエンジン使った方が良いよ。 >>199 どっかで制御方法見た気がするが・・・javadocくらい叩き込んだ?
201 名前:デフォルトの名無しさん [2007/03/09(金) 11:30:17 ] >200 javadocはよくわかりませんが こちらのサイトでiTEXTのコマンドについては大体わかったのですが ttp://itextdocs.lowagie.com/tutorial/ 質問した内容のサンプルコードが無かったので悩んでます。
202 名前:デフォルトの名無しさん [2007/03/09(金) 11:36:18 ] >200 ありがとうございます。 iTEXTのJAVAdoc見つかりました。 理解できるか分かりませんがちょっと読んでみようと思います。
203 名前:デフォルトの名無しさん [2007/03/09(金) 11:39:01 ] table.tableFitsPage きっとコレジャン! 200サンクス!
204 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 13:53:33 ] >>191 いろいろ解決方法はあるみたいだが、 al = Collections.checkedList(al, Sensyu.class); を使いたくなってくるなあ。これならObjectなど他の型に渡しても 警告が出なくなる。 @SupressWarning("unchecked")でもいいけどさ
205 名前:デフォルトの名無しさん [2007/03/09(金) 14:54:12 ] https://sdlc6e.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=A232C894EA5C4D2F03723CB5357D7872;jsessionid=A232C894EA5C4D2F03723CB5357D7872 まとめ見てここからダウンロードしようとしてるんですけどこの後どうすればいいんですか?
206 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:47:43 ] >>205 Accept License Agreement してから Java(TM) SE Development Kit Documentation 6, Japanese 選べば? 英語版欲しいなら、English の方選んで。
207 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:50:25 ] >>206 サンクス
208 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 19:47:33 ] 英語読めない奴が英語版欲しいと思えんが、jdk6のl10n終わって良かったな。 相変わらず変な訳だが
209 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 20:04:01 ] そういやなんでJavaって日本語版あるんだろ?
210 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 20:18:14 ] むしろ英語マニュアルのが読みやすい俺ガイル
211 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:09:04 ] >>208 i10n って、日本語訳終わっただけで中国語訳とかまだじゃない?
212 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:37:28 ] >>209 1. 市場が大きい。 2. 訳の需要が大きい。 日本語は造語力が大きいので高等教育で用いられる用語も訳すことが出来、 結果として日本語しかできなくても高等教育が受けられる。 アジアの準先進国の言語などでそれほど造語力が高くない場合、そこまで できないので、英語で高等教育を行わざるを得なくなり、結果として高等 教育を受けた人はみな英語が出来るので、英語で困らなくなってしまう。 という意見を聞いたことがある。
213 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:43:59 ] 日本だろうと曲がりなりにも高等教育を受けたら普通英語ぐらいできると思うのだが もし高等教育の意味が文字通り高卒の事だったのなら謝る
214 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:49:04 ] >>213 学校教育英語に幻想持ってないか?
215 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:52:08 ] ただ単にi18nの一環でかつ日本人は母国語版を欲しがる人種ってだけじゃね? 技術文書の翻訳版を欲しがるのは日本人くらいだし
216 名前:125 mailto:sage [2007/03/09(金) 22:32:27 ] Rubyでは簡単に実現できたので、再びJavaに戻ってきて作成しています。 ファイルのコピー、移動はFileクラスとFileInputStream,FileOutputStreamあたりを使うことで、簡単に実現できました。 ところでお聞きしたいのですが、InputStreamのread( byte[] buffer )、OutputStreamのwrite( byte[] buffer )で使用する 配列サイズというのは、どれくらいが適しているのでしょうか? バッファーが大きければ処理が早く済むがメモリの消費量が大きくなる、ということはなんとなくわかるのですが、 適量のバッファーサイズの見当がつきません。 現在主流となっているマシンスペックだと、適量のバッファーサイズとはどれくらいなのでしょうか?
217 名前:187 mailto:sage [2007/03/09(金) 22:37:51 ] >>190 返事が遅くなってしまってすみません。 提示していただいたコードを参考にやってみます。 ありがとうございました。
218 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:40:22 ] >>213 英語で小説読もうとして三日であきらめたことを思い出した 資料としてなら読み進めるのは大して苦じゃないが大量になるとかなりウザい メインで英語使うなんて信じられん
219 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:54:05 ] >>216 セオリーは無いと思う。 俺はなんとなく 4kB 〜 16kB あたり取ってるが。
220 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:01:30 ] >>218 小説と技術文書は全然違うでしょ。 語彙空間がまるで違うよ。 俺自分の専攻の論文ならすらすら読めるけど、 一般向けの小説(ハリウッド映画の原作)は 3ページで挫折しかけてるw
221 名前:デフォルトの名無しさん mailto:sage [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 と表示されます。 どなたかお助けください。
222 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:47:21 ] 関連付けの問題か、あるいはコマンドプロンプトが一瞬出ているのに気付かないかのどっちか
223 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:00:44 ] 3つの整数をキーボード入力させてそこから計算させるプログラムを作っているのですが、 入力させた文字列の中に英字または小数がある場合、「○個目には整数を入力してください」という メッセージを表示させたいのですが、Integer.parseIntでの例外をNumberFormatException で拾うという手段を取ってみたのですが、この場合何個目の入力が整数でないのかを個別に 表示することが出来ません。どの入力が間違っていても同一のメッセージ表示しか出来ません。 この方法以外に入力された文字列の中で整数以外の入力を判別して、どの入力がエラーなのかを知らせる方法はありますか?
224 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:02:50 ] ちとその部分のコード書いてみ?
225 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:10:12 ] >>221 Windowsだとjavaじゃなくjavawに関連づけられてるかもしれない。
226 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:31:23 ] >>222 >>225 ありがとうございます。今見てみましたが、javawなってました。 javaにかえて再びwクリックしてみると一瞬だけコマンドプロンプトが表示されましたが、すぐに消えてしまいました。 これはこういうものなのでしょうか?コマンドプロンプトの画面をずっと表示させておくことは出来ますか?
227 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:45:48 ] BufferReaderか何か使ってキーボード入力待ちにするのが一番お手軽w
228 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:50:28 ] 今ならjava.util.Scannerを薦めたい。 ttp://www.javadrive.jp/start/scanner/index1.html
229 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 02:04:30 ] なるほど。勉強になりました。ありがとうございました。
230 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:57:05 ] 空の文字列 "" と、null の違いがよくわからない。。。
231 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:16:57 ] >>230 空の文字列は、長さは0だけど文字列。つまり、Stringのオブジェクトが存在する。 nullは、何もないということ、オブジェクトがないという状態を表す。
232 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:20:30 ] >>221 パッケージ作っといて修飾名でクラス指定してないって訳じゃなさそうだね。 winの関連づけはjavawだからそれはいじらないでコマンドプロンプトから打て。 CUIプログラムをクリックしても動きません!って発想が既におかしい。プロンプト立ち上げてからならjavaが終了してもプロンプトが残ってて消えないはず。 OSのしくみとかそこら辺を分かってないだけだからまずそこら辺を勉強した方が良い。 てか独学?専門生? >>230 MS VMだと同義w nullはObject派生型なんだけど値は何にも関連付けられてない。 空文字列は"\u000000"になるんだっけ? 他言語やってて言語によって定義が違うから掴めないの? ただ単にjavaのnullが分かってない? 後者ならjavaの本見ればいい。
233 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:01 ] >>232 > MS VMだと同義w そんな話は聞いた事がない。 > nullはObject派生型なんだけど値は何にも関連付けられてない。 Java では null は null型だよ。空型とか訳される事もあるけど。 Object からは派生してない特別な型。 > 空文字列は"\u000000"になるんだっけ? は? 薀蓄語りたいなら、ちゃんと言語仕様ぐらい見てからやれ。
234 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:56 ] >>232 >nullはObject派生型なんだけど値は何にも関連付けられてない。 null は null 型のただ一つの値。 Object 派生型でもないし値が関連付けられていないわけでもない。
235 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:39:34 ] >>232 何か自分の知識を語りたいのは分かるんだが その表現をする言語力が伴っていないようで少し哀れ 相手の理解力を超えた表現しか出来てないよ・・・・
236 名前:223 mailto:sage [2007/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の整数で入力ください" でそれぞれメッセージを表示させたいのです。 助言をいただけたら幸いです。
237 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:01:07 ] >>236 parseInt を3つまとめてtry-catchするんじゃなくて、 ひとつづつtry-catchすればわかるじゃん。 あとはカウンタ変数でも作って、今何番目のparseIntやってるかわかるようにするとか。
238 名前:223 mailto:sage [2007/03/10(土) 09:06:27 ] >>237 ひとつずつキャッチする手はもうやってみたのですが、やっぱりそれが一番早いですかね? カウンタ変数のほうをチャレンジしてみたいと思います。 ありがとうございました!
239 名前:223 mailto:sage [2007/03/10(土) 09:17:34 ] >>237 忘れてました。ひとつずつtryのすぐあとでcatchしていくと例外は拾えるんですけど、 処理をそこで終われないですよね?その後にある計算式は例外でも実行されてしまって エラーになってしまいました。 もし、ひとつずつtry-catchしていくのであれば、どこに計算式などを入れるべきですか?
240 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:41:12 ] >>236 入力ください で吹いたw
241 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:42:37 ] >処理をそこで終われないですよね? return;
242 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:39:34 ] >>239 try-catchだと記述が長ったらしくなるから、parseをラップするメソッドを作る手もある。 引数は文字列、戻り値はInteger但しparse失敗時はnull。 そのメソッドの中でtry-catchを使う。 .NETにあるTryPaseの亜流みたいなもん。
243 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:55:31 ] HashMapを使って文字列と数字を扱いたいのですが HashMap<String, int>はintがObjectじゃないからできないんでしょうか? この場合HashMap<String, Integer>とするべきですか?
244 名前:221 mailto:sage [2007/03/10(土) 10:59:49 ] >>232 スクールに通ってましたが素人同然です('A`) 関連付けはjavawを変更できないとすると、 結局>>221 のプログラムはwクリックでは実行出来ないということでしょうか? 誰かにこのプログラムを使ってもらう時に 「コマンドプロンプトからjava -jar Test.jarって入力してね」 と言うのはちと苦しいです。
245 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:03:57 ] >>243 プリミティブ型は入れられないのでそうする必要がある。 使うときはautoboxing/unboxingが効くので直接プリミティブを使う コードを書いてもOK。コンパイラがこっそりIntegerに入れたり出したり してくれる。
246 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:05:08 ] @echo OFF java -jar Test.jar なバッチを一緒に置いておいてもダメだっけか? 最近WindowsでJava使ってないから忘れたわ。
247 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:15:38 ] >>245 ありがとうございます 色々調べたり実験したりでちょっと遅れてしましました 宣言だけIntegerにすれば、他ではintとして扱っても問題ないんですね
248 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:52:50 ] >>244 ダブルクリックみたいなGUIど真ん中なことやりたかったら、普通はswingとか使う。 コマンドプロンプトがどうしても必要な場合は>>246 の言うとおりバッチでラップすればおk。
249 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:31:28 ] >>219 ありがとうございます。 調べてみたら、Javaの上位IOクラスは内部バッファとして8192byteつかっていることがわかりました。 その値に統一して使いたいと思います。
250 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:34:43 ] バッチファイル使うんなら、pause で入力待ちすればOKか。
251 名前:221 mailto:sage [2007/03/10(土) 15:47:13 ] バッチファイルというのは初耳でした。 >>246 をTest.jarのあるフォルダにa.batとして保存してこれをwクリックで無事実行できました! 皆さんに感謝します。
252 名前:230 mailto:sage [2007/03/10(土) 17:44:56 ] なるほど、ヌル文字列とヌルポインタの関係みたいなもんですね(`・ω・´) 遅レスですが、ありがとうございました。
253 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:55:32 ] Cのようなポインタを使用するプログラムだと常識として覚えてるものだが、 JAVAのようなオブジェクト指向だとポインタ意識しなくていいから知らない人が増えてきたな。 便利になると共に起こる、知識不足の弊害だな。
254 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:10:00 ] >>253 >JAVAのようなオブジェクト指向だとポインタ意識しなくていいから んなアホな
255 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:13:10 ] >>254 ポインタ操作って普通に使わないでしょう。
256 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:23:16 ] ポインタ演算とか冗長な書き方を許容してないだけでポインタを使ってることを意識しないわけじゃないだろ
257 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:27:04 ] 意識しなくていいというと語弊があるが、 実際に意識していない初心者が増えてきたってことだと思う。
258 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:02:20 ] private int id; public int getId(){return id;} public void showId(){ System.out.println("idは" + ● + "です。"); } この場合、●に入れるのはidかgetId()のどっちがいいんかな。 好みの問題でおk?
259 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:03:49 ] >>216 つうか、他のIOクラスでデコレートすれば サイズなんて気にしなくても良いはずだが。
260 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:06:24 ] >>246 つうか、マニフェストとJava Web Start使えよ
261 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:22:11 ] >>258 getId() がいいと思う。
262 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:27:19 ] >>261 thx
263 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:39:39 ] >>261 おなじ暮らすないならidでもいいとは思うけど。
264 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:06:13 ] >>261 うーん、悩ましい問題だなぁ…好みというか、目的による? けど、まぁ、getId()のほうが良いと思う。 例えばそのクラスのサブクラスでgetId()をオーバーライドして getId() { return "00" + id; } とかしたときに・・・
265 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:11:29 ] >>264 を風呂入る前に訂正 まず、アンカーは>>258 に。 あと、 ×getId() { return "00" + id; } ○getId() { return "00" + super.getId(); }
266 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:13:02 ] >>265 …駄目だ俺(笑 getId()は int なのな。 まぁ意図は汲み取ってください(汗
267 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 01:21:31 ] 抽象化はその部分における汎用性・再利用性を増すが 同時に複雑さが増し、保守が難しくなる。 また、よく考えられていない抽象化は、 結局それを使う場合に1から考え直す必要があり、 無駄な労力になる。むしろ、誤解を生む弊害すらある。 そして、「よく考える」とは言っても難しく、的外れになることが多く、 無駄な抽象化がプログラム中に散乱することになりやすい。 そこで、アジャイル的には、まず単純に作って、 例えば顧客に叩いてもらって、抽象化が必要なところを早期に発見する。 (テスト駆動なら、まずテストに叩かれるだろう) その観点から見ると、 必要と分かるときが来るまで getId() よりも id を使うのがいい。
268 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:00:38 ] 外から見ることを基準に考えちゃ駄目なのかな。 getId で取得した値と showId で表示した値は、大抵の場合で一致しなければおかしいから、 直感的に考えた場合は id より getId のほうが適切だろうと思う。たとえ getId が final だったとしてもね。
269 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:05:07 ] 追記:「外から見る」ってのは、id が private であって外から見れないことも含めてる。 外から見た場合、id を使うと 『何かよく分からないけど ID の内部表現を showId が表示している』 ってなって分かり難いんじゃないかと。
270 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:53:30 ] >>268-269 同意 使う側の視点で考えるのがいいと思う idという情報をを操作したい人のためのものなのだからその人のことを 考えなければ、悪く言えば独りよがりな実装になってしまうと思う
271 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 09:06:40 ] 俺の経験から言うと、極力生のフィールドは使うべきではない。 ボトルネックになる可能性、どうしても生フィールドでなければできない処理などは 例外的に使用を許可する、くらいの縛りを加えるようにする方が良い。 トラブル対応、仕様変更対応には絶対にこの方針が必要。無いと死ぬ。大規模だとね。
272 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 09:19:12 ] 使う場所によってフィールドを直接参照したりgetter経由だったり まちまちなのは良くない。
273 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:09:41 ] モジュール結合度の観点から考える結合度は低い方が独立性が高いため、 データ結合で単一のデータを引数として渡すべき。
274 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:29:20 ] iを打てば補完できるのでid。 getterはgetIまで打たないと補完が面倒。
275 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:02:11 ] >>271 同意! >>274 開発時に面倒臭がって楽しようとすると後々痛い目にあったりする予感
276 名前:デフォルトの名無しさん [2007/03/11(日) 12:32:01 ] 30個近くのclassファイルをjarにコンパイルするにはどうすればいいんですか?
277 名前:デフォルトの名無しさん mailto:sage [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にコンパイル」と言われると違和感を覚えるな。
278 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:17:31 ] >>274 getまで打てば、そのクラスのアクセッサが一覧出来るのでむしろ便利。 フィールド名だとごちゃごちゃしてる。 >>271 んだんだ。 それに、遅延初期化の為にも入れているかな。 private Hogehoge hogehoge; public Hogehoge getHogehoge(){ if( hogehoge==null ){ hogehoge = new Hogehoge(); } return hogehoge; } (synchronized はどうしたとかややこしい話は取りあえず抜きな、初心者スレだと荒れそうだから)
279 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:25:43 ] >>278 フィールドが20個あればgetまで打っても20個出てきてそこから選ばないといけない。 変数名なら頭文字打つだけで絞り込める。 まあ俺はthis.をつけるのでそこまで打つだけでOKのときもあるが。
280 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:26:13 ] >>277 j2re1.4.2_13 をDL、インストールしてみたのですがこの後がわかりません コマンドプロンプトに打ち込んでも 'jar' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 とでてきてしまいます;;
281 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:59:17 ] パスが通ってない >>1 を読め
282 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:06:44 ] >>280 j2re だと jar 入ってないような。 j2dk か jdk 使え。
283 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:07:40 ] >>280 コマンドプロンプトに java -version って打ってみ?
284 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:45:08 ] フィールドが20個あったらthis打っても20個候補が出るだろうによw
285 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:48:50 ] JAVAでもプロパティ導入すればいいのに・・・ わざわざ毎回アクセッサメソッドつくるとフィールド参照からメソッド記述にするのめんどくさい。
286 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:49:35 ] >>284 getと3文字打つのが怠いんだろうね。 って、どんだけwwww まぁ、publicアクセス不要なフィールドにはgetter付けないから 20個フィールドがあってもホントはもっと絞れるんだけどね。
287 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:55:29 ] >>285 リファクタリング機能がある開発環境使えば良いじゃん。
288 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:56:56 ] >>285 jdk7の議論でプロパティは話題に上っている。 [mustang/Java SE 6] 次世代Javaの動向 4 [dolphin] ttp://pc11.2ch.net/test/read.cgi/tech/1163986696/ の中に、情報へのポインタがあるよ。 まだ本決まりじゃなくて構文は揺れてるだろうけど、 クロージャよりは揉めずに入りそうな気がしてる。
289 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:19:31 ] >>258 つ もしかして "自己カプセル化"
290 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:38:54 ] >>265 同じクラスないであればthis.idで良いジャマイカ スーパーなときだけgetId()
291 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:40:32 ] >>278 Factory MethodパターンやFlyweightパターンで 改造したくなってくるなあ。
292 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:41:42 ] >>284 どういうクラスなんだか。委譲も集約を ちゃんと使っていれば極力減らすこともできよう
293 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:42:06 ] >>285 IDEで自動生成しろよ
294 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:42:11 ] >>292 たとえば携帯電話のスペックをオブジェクトで表現しようとしたら 20なんて軽く超えると思うけど。どうやって削るの? 高さ 幅 厚さ 質量 連続待受時間静止時 連続待受時間移動時 連続通話時間音声通話時 連続通話時間テレビ電話時 液晶サイズメインディスプレイ 液晶サイズサブディスプレイ 液晶最大同時発色数メインディスプレイ 液晶最大同時発色数サブディスプレイ 液晶解像度(ドット数)メインディスプレイ 液晶解像度(ドット数)サブディスプレイ 名前最大登録件数 電話番号最大登録件数 メールアドレス最大登録件数 メール保存容量送信メール メール保存容量受信メール iアプリ保存件数 ミュージックプレーヤー バックグラウンド再生 連続再生 iメロディ・着信メロディ バーコードリーダー 赤外線通信対応 Bluetooth通信 FOMAプラスエリア対応
295 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:49:44 ] 携帯電話という込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする 液晶が別のメーカーのだったら一気に変えないといけないんだよな、そのクラス……
296 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:54:28 ] >>294 なんで無理して一つのクラスでやるんだよw
297 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:54:52 ] いやいや、例ですよ。車でも住宅でもなんでもいいけど変数が20なんて珍しくない。
298 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:00:53 ] >>295 の言葉を借りるが、 車でも住宅でもなんでもいいけど込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする
299 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:02:24 ] オブジェクト指向なんだから、きちんと設計してから作らないとね。 まず、デザインパターンを覚えるといいかな。
300 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:08:54 ] だー、論点そこじゃねえええ。 1つのクラスですべてを完結させるなんて一度も書いてねえ。 親クラス、子クラスのように抽象化していったって 20以上の変数を持つクラスはありえるってことです。
301 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:15:42 ] あったらあったで仕方ないだろ。 おれならまず分けることを考えるが。
302 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:18:16 ] そりゃjava.awt.Componentとか持ち出してきたら50個くらい持ってるようなのもあるわ しかし普通はそんなのはないぞ
303 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:22:12 ] よくこんなどーでもいい話題にがんがんレスが付けられるな
304 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:33:27 ] あったら、あきらめる。 以上。
305 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:08:06 ] どっちみち「エディタで候補を絞るのがメンドイから」なんて理由でクラス設計したらあかん罠w
306 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:18:15 ] private int hogehoge; って書いたら、内部で使うために private int getHogehoge() { return hogehoge; } て書かなきゃいけないん?
307 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:29:53 ] 内部なら直にアクセスしろよ
308 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:30:40 ] 自己カプセルフィールドって考えもある
309 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:44:40 ] さすがにそういうあたりは必要なときにリファクタリングすればいいようにおもうなあ
310 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:54:48 ] privateなら変更することになっても影響範囲は閉じてるし、 必要になってからメソッドにするでいいよ。
311 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:31:02 ] あるURL [1] www.hogehoge.ho.ge/aaa/bbb/index.html からのHTMLの(?)相対アドレス [2] "bbb.html" に対応するURLは [3] www.hogehoge.ho.ge/aaa/bbb/bbb.html だと思うのですが、 [1]と[2]から[3]を得る機能はJavaSE6にはありますか?
312 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:23:39 ] >>311 java.net.URI uri = java.net.URI.create("www.hogehoge.ho.ge/aaa/bbb/index.html" ).resolve("bbb.html"); とか。
313 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:56:28 ] >>294 配列 or ハイスペック携帯電話のみサポートに切り替えて解決
314 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:00:53 ] >>300 『分割し、統治せよ』 『アジャイルソフトウェア開発奥義』にはそう乗っている。 だが、 どうしてもクラスを分割できなければ、 やれることはまだまだある。 ディスプレイのサイズなんぞstaticでやれ。 そんなに苦しいなら配列でやれ。
315 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:02:53 ] >>311 そういう機能 とはいわん気がするが。 そういうAPIはありますか、だろ。 機能というとまるで言語仕様のことみたいだ。 その手のAPIは言語仕様とは別だしな
316 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:28:56 ] クラスの設計についての本読み始めたところだから結構興味がある。 VCのMFCなんか数十個の関数や変数を含んでいるクラスが普通だから そこまで分割する必要があるのかどうか、 分割するといいことがあるのか知りたいところ。
317 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:37:17 ] ソースファイルの数が増えてリッチな気分が味わえます。
318 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:39:55 ] 保守性に強くなるとかそんなんだろ コピペが減るとか
319 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:51:43 ] >>314 すまんが、何ページ?
320 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 22:07:18 ] MFCはDocumentViewアーテクチャだからあまり参考にするべきでないけど。 変数や関数の数自体は気にするべきではない。 気にするべきはモジュール結合度と強度、クラス設計で委譲・継承などのデザインパターンといったところを気にするべき。
321 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 22:19:18 ] 質問よろしくです。 tiffファイルを操作する簡易エディタを作りたいと思っています。 やりたいこと ・複数のtiffファイルを結合して保存する。 ・複数頁のtiffファイルを1ページ毎に分けて保存する。 ・画像の上にテキストを挿入する Java Advanced Imaging(JAI)を使えば簡単に作れますか? 他に便利なAPIがあれば教えてください?
322 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:36:16 ] 質問です。 Javaのメソッドで、C++でいうところのconstなクラス関数を作りたいのですが、可能なのでしょうか? つまり、そのメソッドはメンバー変数の書き換えを行なわないということを保証させたいのです。 色々調べてみたところ、Javaにconstはないとのこと。 似たような機能か?と思ってfinalについても調べてみましたが、期待した内容ではありませんでした。
323 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:37:58 ] >>322 >finalについても調べてみましたが、期待した内容ではありませんでした。 kwsk
324 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:43:08 ] >>323 ・finalとついたメソッドは、オーバーライドされなくなる ・finalとついた変数は、書き換えられることがなくなる(配列の中身などは書き換えられるので注意) ・finalとついたクラスは、継承されなくなる といった効果のようでした。
325 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:53:29 ] >>322 static
326 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:56:46 ] >>322 enumじゃダメなん?
327 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:58:04 ] 322の内容が理解できない人が多くてワロタw
328 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:59:59 ] >>325 ああ、なるほど。確かに。 でも、ちょっと別の制限が強くなりすぎますね。 やりたいことは abstract class IScene { abstract void Task(); abstract void Draw(); } として、これをオーバーライドさせてゲームのシーンを作らせたいのです。 その際、Drawではメンバー変数の書き換えを禁止させたいのです。
329 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:07:51 ] staticだと、インスタンス内の変数書き換えは不可能になるが、読み込みも不可能になっちまうか・・・
330 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:14:34 ] メンバー変数を、参照は出来るが変更は不可にしたいということなら、 変数はprivateで宣言しておいて、publicもしくはprotectedなアクセサメソッドを 公開しておけばいいんじゃない?
331 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:18:13 ] >>330 それ全然『メンバー変数の書き換えが行なわれないこと』が保証できてねーじゃん 継承する側がいくらでも間違いを犯せる C++でもconst_castしちまえばメンバー変数いじれるけどなw
332 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:19:41 ] public interface Const{ public static final 〜 } じゃダメなの?
333 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:24:07 ] >>322 基本的に無理。 標準APIのメソッド呼び出した時に、そのメソッドがインスタンスの状態を変更しない事まで考えるなら。 JSR-308 のサンプルにある @ReadOnly が それっぽいけど、早くてもJDK7にならないと入らない。 自分のクラスのメンバ変数の書き換え禁止だけなら、@Const みたいなアノテーション自作して、 @Const処理するようなAPTまで自作すれば出来なくはないけど……
334 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:24:44 ] >>331 なんで? abstract class IScene { private var1; abstract void Task(); abstract void Draw(); public getVAr1(){ return var1; } } ということだけど。 「Drawではメンバー変数の書き換えを禁止させたいのです」 という要求には答えてると思うけど。 もっとも、Task()メソッドからも書き換えは出来ないけど。
335 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:24:53 ] >>332 すいません、>>328 がinterfaceで書くべきものだということは分かるのですが、 それでメンバー変数が書き換えされないことが保証される理由がわかりません。 >>332 のfinalは何に対してついているものなのでしょうか?(変数?メソッド?)
336 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:27:05 ] >>334 質問者じゃねーけど、やりたいことくらいは推測できる。お前も少しは推測して書いてやれよw 継承元の変数をいじらせたくないって要望じゃねーだろ。 継承先の変数であってもいじらせたくねーんだろ。
337 名前:332 mailto:sage [2007/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]"; }
338 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:33:54 ] >>336 そういう意味か? 自分で定義した変数を読み取り専用にするなんて、 C++でもできないだろ。 スーパークラスで管理する状態などを、サブクラスで勝手に 書き換えられるのが嫌なんじゃないのかな。 だから>>334 でいいかと思うのだが。
339 名前:デフォルトの名無しさん mailto:sage [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 については今ぐぐりながら理解しようとしているところです…。
340 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:39:20 ] >>338 >自分で定義した変数を読み取り専用にするなんて、 >C++でもできないだろ。 できるよハゲw const関数は何のためにあんだ。
341 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:43:20 ] C++のconstメンバ関数が何なのか知らない奴がレスしてるな。
342 名前:338 mailto:sage [2007/03/12(月) 00:43:38 ] 悪い、別に断言したつもりはなかったんだが。 「C++でもできないだろ」 じゃなくて 「C++で出来たっけ?」だな。 C++はずいぶんやってないんで忘れた。
343 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:56:05 ] てか、なんでJavaにはconstがないのか不思議でならない。 キーワードだけは定義されてるって書いてあるけど、なんで削られたん?
344 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:15:37 ] C# には const あるけど const 関数は無いな。
345 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:18:40 ] >>343 お馬鹿なJavaプログラマにはまともに使いこなすことができないだろうという判断から。
346 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:23:46 ] むしろその逆で過剰な安全装置と見なされて削られたって話じゃないの? C++をメインで使ってる身からすると全然過剰だとは思わないけど。
347 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 04:47:35 ] const関数で呼び出されたら、その中から変数にアクセスする際に やはり const として宣言されていない関数は呼び出すことができないのかな
348 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 06:43:57 ] コンパイル時に「変数が変更される可能性があります」とエラーが出る 呼び出せたらconstの意味がない
349 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 09:19:31 ] JavaってC#におけるXmlSerializerのようなものは無いんでしょうか? オブジェクトを丸ごと渡してやればXMLファイルに書き出してくれて、 XMLファイルを丸ごと渡してやればもとのオブジェクトを生成してくれるという
350 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 09:34:33 ] >>349 近いのは java.beans.XMLEncoder と java.beans.XMLDecoder かな? 保存できるのは beans のプロパティだけになっちゃうけど。
351 名前:デフォルトの名無しさん [2007/03/12(月) 16:33:01 ] String s; if(s = "") { } 間違えて上のコードを入力したとき s = "" の部分に「型の不一致: String から boolean には変換できません。」 というエラーメッセージが出てきました。 自分にはどう見ても右辺左辺ともにString型としか思えないのですが、なぜこのようなメッセージが出たのですか?
352 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 16:39:02 ] まず、javaでは比較する場合は==を使う =だと代入になってしまい、ifの中にはbooleanを入れなきゃいけないのにStringになってしまう 次に、==にしてもお前の期待する動作はしない java String 比較 でググれ
353 名前:デフォルトの名無しさん [2007/03/12(月) 17:03:10 ] >>352 Stringの比較はequals()メソッドで行うということですね 簡潔でわかりやすいレスありがとうございます
354 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 17:19:32 ] >>353 そっちはどちらかというとこの質問においてはオマケ。 =を比較のつもりで使っているほうが本質的な間違い。
355 名前:デフォルトの名無しさん [2007/03/12(月) 17:26:02 ] >>354 すみません。はじめの時点で言葉足らずでした 比較に = を使ってはいけないのは知っていたのですが、 VBの癖でついやってしまい、エラーが出て、 >>351 の疑問が出たので質問させていただきました。
356 名前:デフォルトの名無しさん [2007/03/12(月) 17:30:11 ] Javaでアプリケーションを作成しています。 二重起動を防止する案を考えているのですが File.createTempFile(String prefix, String suffix)でファイルを生成して File.deleteOnExit()で削除指定 ファイルの有無で起動中かどうかを判断するという処理にしようかと思ってます。 『もっと良い案があるよ』 『そのやり方だとこういう問題が発生する』 等御意見頂けますでしょうか。
357 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 18:51:39 ] >>356 createTempFile だと、 prefix + "java.io.Fileが勝手に付加する文字列" + suffix って 名前のファイルを作っちゃわない? 二重起動防止にならんと思うけど。 あと、deleteOnExit だと、正常に終了できなかった場合はファイル残ったままになるよ。 もっとも、正常に終了できなかった場合にファイルを削除する方法は 今のところ提供されてないので二重起動の場合はダイアログだして ユーザが選択できるようにした方が良いかも。v2c がやってるみたいに。
358 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 18:55:11 ] >>355 Java では、 if(式) の式の部分は boolean じゃないとエラーになる。 if(s = "") の 「s = ""」って代入式の型は String なので、 コンパイラに boolean じゃないと怒られただけ。
359 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 19:00:25 ] あらかじめ決めておいたポート番号のソケットをオープンできたら起動、 というのを見かけた。レースコンディションにはならないような気がする。 ・異常終了したときの後始末はうまくできるんだろうか。 ・ユーザー単位でのみ複数起動を禁止して別ユーザーなら起動を許す、 みたいなのは工夫が必要になるな。 RMI Registry(Activation)やJMXでなんかやれそうな気がしないでもない。
360 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 19:11:37 ] >>357 ありがとうございます。 Preferences+ユーザー選択って感じにしようかな・・・。
361 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 19:13:45 ] >>359 なるほど・・・ソケットは思いつかなかった。
362 名前:デフォルトの名無しさん [2007/03/12(月) 20:30:57 ] synchronizedのブロックの適用が及ばない範囲、及ぶ範囲、そしてその理由について わかりやすく教えてもらえませんか('A`) 同時に動くスレッド2個ぐらいで、、 HP5箇所ぐらい見たんですがいまいち理解できません
363 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 20:57:50 ] >>357 俺は nio のファイルロックで判定した。
364 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 20:58:59 ] 356あてだった・・
365 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 21:05:56 ] HashMapでClass<T>とList<T>を関連付けたいのですがいい方法はありませんか?
366 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 21:07:40 ] >>365 HashMap<Class<T>, List<T>>
367 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 21:14:41 ] >>366 あの……それだとHashMapをnewするときにTになにか入れないといけないけどそういう使い方を意図しているのではなくて。 T.classをキーにしてgetしたらList<T>型のオブジェクトが返ってくるようにしたいんです。 もしくはList型オブジェクトをなんかしてList<T>型にキャストするとか。
368 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:02:31 ] >>367 「関連づけたい」という曖昧な言葉を使ったことへの反省はしないのね。
369 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:52:46 ] >>368 反省しました ……ってなんて答えりゃいいかわからんそのあてつけみたいなのやめてくれよ…… 一回で伝わらなかったら何度か説明する機会くらい与えてくれよ…… 人格攻撃して話題そらしたいのか? 無理なら無理でいいよ別の方法考えるから……
370 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:55:18 ] >>367 HashMapを継承した新しいクラスを作ればいい。
371 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:03:31 ] >>370 Class<T>とTのときはそれでできたんだけど、(内部でHashMap<Class<?>,Object>に委譲して出口でclazz.cast(map.get(clazz))を返すようにした) List<T>のときはどうやって実装すればいいかわからないんです。 Reflection周りでいろいろ探してはいるんですが……
372 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:06:28 ] >>371 public <T> List<T> get(Class<T> c) { return (List<T>)get(c); }
373 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:07:22 ] 間違えた。 return (List<T>)super.get(c);
374 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:17:47 ] >>372 いけました。 ここで出る未チェックのキャストはアノテーションで強制的に黙らせる他ないんですよね?
375 名前:デフォルトの名無しさん [2007/03/12(月) 23:52:35 ] switchの条件にlong型が使えないのはなぜなんでしょうか char,short,int,enumは使えるのに 何か歴史的な理由があったりしますか? 効率?
376 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:10:08 ] long は int に暗黙的にキャストできないから。
377 名前:365 mailto:sage [2007/03/13(火) 00:31:52 ] ありがとうございました。 何とかうまくいきそうです!
378 名前:デフォルトの名無しさん [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); と思われる部分で;が足りませんというエラーが出ました、どう修正すればいいのですか?
379 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 03:10:28 ] ・エラーメッセージはそのまま書く。改変されると推測が困難。 ・ソースは必要な箇所を可能な限り原文に忠実に記述する。 Int とか、「作成」から始まる行とか、何が正しいのか分からない。
380 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 16:28:12 ] interface と abstract class の違いが良くわかりません。 interface でなければならない(もしくはその方がよい)場合、 また逆にabstract class でなければならない場合とは、 どんな場合なのでしょうか??
381 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 17:26:30 ] Javaでは多重継承できないから属性を表すような実装はInterface 一方、デフォルト実装を与えたい場合などはabstract class
382 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 17:47:50 ] このクラスは○○というメソッドを持っているよ→interface このクラスをベースに○○というメソッドを使って機能拡張してね→abstract class
383 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 22:58:08 ] 型の継承 → interface 実装の継承 → abstract
384 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:05:27 ] >>380 ・ある性質に特有の処理が存在する。部分的に実装を共有できる。 もしくはどうしてもある種の実装が必要だ。 (interface は実装をもてない。abstract class はもてる。) ・その性質の出現する場面が予想できる。もしくは限定した局面でしか使用しない。 (あとから再利用を試みる場合、interface の方が制約が少ない。 abstract class だと、別のクラスの継承が必要な時にはもう使えない。) 上記を満たすなら abstract class。 制限をかけることによって(考えることを減らすことで)実装を容易にしたい場合も。 それ以外は interface。 interface の方がより純粋。制限が少なくて柔軟性が高い。 反面、実装の手間が多くなる。 最近は「とりあえずinterfaceにしとけ」な気がする。 実装に関してはヘルパークラスやテンプレートクラスを内包して、 そっちに処理を転送する方法で、継承と大差ない手間で済む。 その上で拡張性を保てる。 GUIフレームワークの基本部品なんかは abstract class ベースのものが多い。 画面表示に関する基本実装がどうしても必要とかそんなんだろうか。
385 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:08:57 ] 非オブジェクト指向言語だからといって オブジェクト指向的にプログラムがかけないことはないように、 abstract class を interface代わりに使ってプログラムは書けるだろうけど、 そんな悲しいことは普通はしない。
386 名前:デフォルトの名無しさん [2007/03/13(火) 23:27:22 ] x64で動作するeclipseってあったっけ? もしくはjava用のIDE
387 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:34:38 ] >>380 interfaceを作って、abstract で骨格実装(デフォルトの実装)を作って、 多くの実装クラスを骨格実装を継承するようにすると 柔軟な構造になるよ。ひと手間掛かるけど
388 名前:380 mailto:sage [2007/03/14(水) 00:14:01 ] なるほど… デフォルト実装の必要性と、プログラムの柔軟性との兼ね合いってことでつね。 みんなありがd
389 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:38:02 ] >>333 不変クラスつくればいいだけだろう。 あれでconstなクラスは作れる。 無理って事は無い。
390 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:39:26 ] >>324 配列の中身が書き換えられないように、 Collections.unmodifiableList()を使うとか、 clone()を使うとか、考えようぜ。 IBMのdwで、不変クラスで検索してみ。 constに相当するものを作る方法がのってる。 Wikipediaの「イミュータブル」でも検索してみると良い。
391 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:39:54 ] >>327 しばらくスレを見ていなかったので>>322 のことにまだ気づかなかっただけだ。
392 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:41:03 ] >>332 それは、Effective Javaでは禁じ手とされているものだぞ。 攻めて、enum型にせよ。enumが駄目ならfinalでコンストラクタがprivateなクラスを。
393 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:41:49 ] >>337 定数インタフェースは、勝手に実装されることがあるからやめとけ。
394 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:41:58 ] public class Hello { public static void main(String args[]) { System.out.println("Hello!"); } }
395 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:43:43 ] >>343 代替手段があるからいらないんだよ。 constは余計なゴミなんだよ。ゴミ。 全てを不変にしたくないときはfinalのほうが柔軟性が効くんだよ柔軟性が。 部分的に可変にしたほうがよいこともあろう。 >>345 みたいな浅はかでお馬鹿なC言語厨には理解できないが。
396 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:44:43 ] >>351 FindBugsを使え。そういう問題が起きても 困惑することは無くなるだろう
397 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:47:22 ] >>375 switchは総ナメ野郎の糞だから
398 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:53:34 ] >>395 防御的コピーって知ってる? 代替手段がないからこんなことしないといけないんだけど。
399 名前:デフォルトの名無しさん [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() ) ; } }
400 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 01:23:52 ] >>399 Derived のメソッド定義に @override をつけたものとして話を進めるけど それはオーバライドじゃないから怒られる。ジェネリクス関係ない。
401 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 01:42:18 ] >>398 不変じゃなかったら、constつけてても防御コピーしなきゃだめだろ
402 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 01:56:36 ] >>401 残念ながらC++のconstは防御的コピーする必要はない。
403 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:20:34 ] 勝手にコピーされるから? 不変でないオブジェクトは、明示的にせよ暗黙的にせよコピーしないと、 中にしまいこんだはずのオブジェクトを勝手に編集される可能性がある。
404 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:42:49 ] 不変バージョンと可変バージョンが1つのクラスで定義でき、 const つけると不変クラスとして使えるってことか? たしかに、両方のバージョンをそれぞれ作るのは面倒
405 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:43:16 ] 超初心者です。。midiを内部で生成して再生するプログラムを作ろうと、ググっていて 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な配列に代入するにはどうすればいいんですか? 何か勘違いをしているようでしたらご指摘をお願いします。。
406 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:58:05 ] byte は 0 〜 255 じゃない -128 〜 127 なんだよ……
407 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 03:04:54 ] >>405 > とあるように0xffまではbyteで扱えるはずですよね? 違う。byteは -128〜127まで。 キャストを使って符号を無視するように明示しないかぎり byte では 255(0xFF) は扱えない。 > 0x80以上をbyteな配列に代入するにはどうすればいいんですか? 直接的にはキャストを使う。 間接的には String から byte配列に変換するようなユーティリティメソッド作るとか "\u007F\u0080".getBytes("ISO8859-1"); みたいに文字列リテラル使ってみるとか。
408 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 03:21:44 ] >>406-407 ありがとうございます。 >直接的にはキャストを使う。 java-house.jp/ml/archive/j-h-b/026824.html を参考に byte b = (byte)0xff; でエラーが出ないことは確認できました。 配列の場合は static byte test [] = (byte []) new int [] {0x7f, 0x80}; とかやってみたんですが、どうもうまく行きません(変換できない型) これは後出しで変換するしかないんでしょうか?
409 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 03:24:00 ] static byte[] test = new byte [] { (byte)0x7f, (byte)0x80 };
410 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 03:33:54 ] なるほど、確かにうまく代入されています。 ただ毎度面倒くさいし、見掛けも悪いのであらかじめ -128 〜 127 の数値で扱うようにしておいたほうが 良いかも、と思いました。。。 ありがとうございました。
411 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:26:00 ] UByte 型作っちゃいなYO
412 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 05:30:50 ] ejbってもう誰も使ってないの? みんなjspで力つきたのか? phpレベルの底辺が好きなんだね。
413 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 08:25:06 ] >>412 ばかめ!EJB2は死んだわ!
414 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 09:01:03 ] 誰かこれを解説してください。 >3個の数字の並び替えの場合、その並び替えは 3! = 3 * 2 * 1 = 6通り、 >ですが、1回だけ shuffleを行う際に使っている j、k の選び方は 36 通りです。 >つまり、これが6通りの並び替えのどれかに対応します。 >しかしながら、 (36 ) ÷ ( 3 ! )は割り切れないのでどれかの並び方に偏ってしまうということがわかります。 blogs.sun.com/javaev/
415 名前:デフォルトの名無しさん mailto:sage [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 続きは自力で。
416 名前:414 mailto:sage [2007/03/14(水) 09:37:37 ] >>415 ありがとうございます。助かりました。
417 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:24:34 ] 作成したjarファイルを、JREが必要無い状態で、exe形式で実行したいと考えています。 検索してみたところ「JET」なるコンパイラが見つかり、 「パーソナルエディション」なら個人に限り無料で使用できると聞いたのですが、 公式サイト内を探してみてもパーソナルエディションが見つかりません。 ひょっとして配布終了してしまったのでしょうか?
418 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:36:12 ] >>398 知っとるわい馬鹿
419 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:37:18 ] >>402 constするとその内部にあるものまですべてfinalになるなら 部分的にconstにできるfinalのほうが柔軟性が良いんだけどね。
420 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:38:42 ] >>417 ないっぽいね。exe化はあきらめて、JSmoothかexewrapあたりにしておくのが吉。
421 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:52:00 ] double型からint型に変えるやり方はあるのですが 逆にint型らdouble型にかえるやり方があるのでしょうか? 一応double型からint型に変えるやり方を参考にして やってみたのですがどうもエラーがでるようで・・・」
422 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:00:15 ] 何をやった。 意図していた結果 / 実際の結果 を具体的に書くといいぞ。 double doubleValue = (double)100; と書いたらコンパイル時に〜という メッセージが出ました、とか。
423 名前:デフォルトの名無しさん mailto:sage [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 個 になってしまいまして、どうすればいいのがわからないです。
424 名前:デフォルトの名無しさん mailto:sage [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
425 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:27:15 ] intとdoubleを入れ替えたということは int s = 5.0; // A double i = (double)s; としたわけだな? 今回の目的はintをdoubleに変換することなんだよな? Aの行で確かに精度が落ちている。 intなんだからただの5でないといけない。
426 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:27:40 ] >>423 > int s = 5.0; 5.0 は浮動小数点リテラルで、型は double だから、 int に代入するにはキャストしないとダメ。 int s = (double)5.0; もしくは、整数リテラルを使って int s = 5;
427 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:28:32 ] × int s = (double)5.0; ○ int s = (int)5.0;
428 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:39:05 ] 解決できました!みなさま即レスで返していただきありがとうございました!
429 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:43:22 ] doubleにintを代入するときはそのまま入っちゃうのは、 情報欠落がないから。 プリミティブの ワイドニング変換(widening primitive conversion) ナローイング変換(narrowing primitive conversion) というのを調べるといいかも。
430 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:53:17 ] 初心者はこのJava入門(Wikibooks)を読むべし 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
431 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 18:19:30 ] >>417 gcjとかはどうよ?
432 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 18:40:46 ] > doubleにintを代入するときはそのまま入っちゃうのは、 逆?
433 名前:417 mailto:sage [2007/03/14(水) 19:24:05 ] >>420 >>431 ありがとうございます。>>431 さんがおっしゃっているgcjを試してみたいと思います。 プログラム自体はSwingなんですが、gcjはSwingはダメなんですね。 この機会にSWTも勉強してみようかと思います。 ご親切にありがとうございました。
434 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:46:31 ] >>433 JRE無しでないと駄目な理由は? たぶん他の代替手段も、各種DLLが必要になってくると思うけど・・・
435 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:13:15 ] >>429 doubleにlongを代入するとき、そのまま入っちゃうのは何故? 情報欠落があるのに。
436 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:23:36 ] >>435 int→floatでも情報損失があるけど言語規定上問題なく拡大変換される。 プリミティブ型の拡大変換は情報損失の有無に関わりなくコンパイル時も実行時もエラーを発生させない。 だから、変換の可否は情報損失とは関係なく、言語仕様でそうなっていると言うべき。
437 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:59:22 ] double d = Double.valueOf(args[i]);とdouble d = Double.valueOf(args[i]);の違いって何かあるんですか?
438 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:08:10 ] >>437 その2つ、全く同じに見えるけど。
439 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:08:24 ] なにもない
440 名前:デフォルトの名無しさん mailto:sage [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 で見つかりません。」 というメッセージが出てコンパイルエラーとなりました。 あるクラスの変数によってサブクラスのオブジェクトを参照する場合、 そのオブジェクトが呼び出すメソッドは、スーパークラスでも宣言されている オーバーライドメソッドでなければならないということですか?
441 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 03:51:11 ] >>440 > C1 obj = ほげほげ > obj.f(); 2行目は、C1 の f() を探す。
442 名前:440 mailto:sage [2007/03/15(木) 04:33:07 ] >>441 なるほど、あくまでその変数のデータ型に基づいてメソッドを選択するってことですね。 どうもありがとうございました!
443 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 09:46:06 ] 見つかって呼ばれるメソッドは変数のほうではなく、 オブジェクトに定義されているもの。
444 名前:デフォルトの名無しさん [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 しないといけないのかも・・・と、 なんだか釈然としないです。
445 名前:デフォルトの名無しさん mailto:sage [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; }
446 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:29:56 ] >>444 tryブロックの外で、closeすべき変数を null を初期値とし、まとめて宣言する。 finally で、null チェックして逆順に close を呼び出す。というのはどうでしょう ラップしてる変数の close 処理がうまくいくことを前提にするなら、 if文をネストして、null ではない一番外側の変数だけでcloseを呼び出す。 と言うのもありかも?
447 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:33:56 ] >>444 1.5 以降なら、 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 がないから この方法は使えないんだけどね。
448 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:45:55 ] >>445 InputStream を渡すメソッドだったら簡単だけど。 djUnit の Virtual Mock Objects 使ってみるとか?
449 名前:デフォルトの名無しさん [2007/03/15(木) 14:13:34 ] 質問です 画面に文字列を出力させるときに、その表示を一文字ずつ 順番に表示させるのって可能ですか? 例:ありがとう と出力させるとしたら、「あ」が表示されて、少し待って「い」 みたいな感じです
450 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 14:21:45 ] 可能不可能でいえば可能。 画面てのがコマンドプロンプトなどのキャラクタ表示装置なのか ウィンドウなのか、ウィンドウの中のテキストフィールドなのか などによってやり方は違う。
451 名前:デフォルトの名無しさん [2007/03/15(木) 14:43:08 ] アプレット上にパネルを置いて、そのパネルでmouseWheelMovedイベントを拾うプログラムを作っているのですが アプレットの外の部分(HTMLで文字などを表示してるところ)をマウスクリックすると パネル上でマウスホイールを回してもmouseWheelMovedイベントが来ません。 何が問題なのでしょうか?
452 名前:デフォルトの名無しさん mailto:sage [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: {}はどういう意味ですか?
453 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:38:36 ] >>451 自分のウインドウの外の出来事を、しかもアプレットが知ることが出来たらやばくね? >>452 ラベル: ループの中でbreakやcontinueしてたりしない?
454 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:53:03 ] >>453 そうでなくて パネル上にカーソル移動→マウスホイール動かす→イベント上がる のに パネルの外をクリック→パネル上にカーソル移動→マウスホイール動かす→イベント上がらず ってことです。
455 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 18:14:23 ] マウスホイールって入力フォーカスのあるコントロールに通知されるんじゃなかったっけ? なんかそれを変更するツールがあったよーな。
456 名前:デフォルトの名無しさん [2007/03/15(木) 19:29:56 ] すみません、質問なのですが。自分、去年末あたりからプログラミング(java) を学び始めたのですが、DBをjavaのプログラミングで弄る技術は必須でしょうか?
457 名前:デフォルトの名無しさん [2007/03/15(木) 19:37:35 ] >>456 使わないなら不要、使うなら必要。
458 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:50:43 ] 何故こんな質問が出るか想像してみた。 1.誰かからできないといけないと言われた 2.その手の本を読んで、「javaでDBを使ってみよう」という所で詰まっている 3.ネットでDBを使う例をよく見かけるので必要かと思った 4.面接で「javaはひととおりできます」と言ってしまったので入社前に「ひととおり」というのはどの程度か知りたい で、>>456 が聞きたいのは「javaでDBを弄る技術がないと役立たずなのか」って事ではないだろうか。
459 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:58:17 ] >>456 ヒント:いまどきRDB使わない業務アプリはほとんどない。
460 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:02:45 ] >>456 その質問はこんな感じ。 「すみません、質問なのですが。自分、駅前商店街のあたりで料理屋を探していて、さて これから適当な店に入ろうというところなのですが、食前にワインを注文すべきでしょうか」 吉野家でワインを注文するひとは少ないと思われ。
461 名前:デフォルトの名無しさん [2007/03/15(木) 20:04:50 ] >>458 ええ、最近とうとうeclipseを導入したのですがHSQLDBを起動するためのソースが eclipse上で上手く動かないのです。んで考えた末に出た結論がHSQLDBplugin テキストエディタの時は上手く動いたのに何でだろorz クラスパス等の考慮は 完璧なんですが・・・
462 名前:デフォルトの名無しさん [2007/03/15(木) 20:12:45 ] やっぱり、eclipse破棄してテキストエディタでソース組むようにします。 eclipse使ってると技術が退化する。
463 名前:デフォルトの名無しさん [2007/03/15(木) 20:18:42 ] >>462 作業効率が落ちると消化できる量も当然減るわけで一概に技術が退化するとは思えない。 要するに 「コアな部分を解釈するか」 「作業効率を上げて色々な技術に触れるか」 方向性の違いじゃない?
464 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:23:53 ] eclipseもプログラム言語もプログラマーにとっては道具 どのような道具を使えば望んだ結果が得られやすいのかが一番重要
465 名前:デフォルトの名無しさん [2007/03/15(木) 20:30:16 ] そうですね。eclipseは構文エラーなどをした時、その場で教えてくれるので とても便利ですよね。じゃあ、どういった種類のソースを組むのかによって 使い分けることにします。
466 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:51:53 ] 経験の浅いプログラマは、たまにはテキストエディタで書いて いろいろ振り返ってみるのも良いと思う。 「退化する」ってのは、本当は退化じゃなくて基礎があやふやになるということ。 ある程度の経験があって基礎がしっかり固まっている人はIDEを使ったところで 「退化」なんてしないし作業効率が上がるので、どんどん使えばいい。 そういう人は仮にIDEが使えない環境下で作業しなければいけない場面でも 問題なく普通に対応できる。
467 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:54:21 ] 要するに何が言いたいかっていうと >>462 は半年ROMってろってことですね
468 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:56:02 ] IDE使うと楽にコーディングできるからテキストエディタには戻れなくなる。 覚えていなくてもいいことは人は忘れるものだ。
469 名前:461 [2007/03/15(木) 21:06:35 ] すみません、続報ですが、テキストエディタで組んだ奴は上手くDBに接続できたので、 そのソースをeclipseにコピーして実行したら上手く接続できました。 どうやら原因は私がeclipseに甘えていたことのようです。orz
470 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:07:47 ] >>466 文法をしっかり覚えている=プログラマとしての経験が豊富 みたいな口ぶりだな。
471 名前:461 [2007/03/15(木) 21:16:25 ] 下らない審問ばかりで申し訳ないのですが、私まだjavaしか使えないので これからc,c++学ぶ予定なのですが、もしそれらの言語でGUIプログラムを組むとき 流れは( ContentPaneを拾得したり、JButtonなどを宣言する流れは同じなのでしょうか?
472 名前:461 [2007/03/15(木) 21:33:22 ] c,c++学ぶときのお楽しみって事で。Σ(´∀`;) さっきの原因が分かりました。hsqldb/libにあるjarファイルを2つとも importしてたのが原因だったようです。盲点でした・・・
473 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:36:28 ] >>470 いや、>>466 の言いたいことは文法だけじゃなく開発全般にわたっての事ではないかと。 IDEでやっていることをIDEなしでもちゃんとできるようになろうよ、と。 それができれば自ずとプログラマとしての力もつくんでないの? IDEなしで開発していると思いがけずいろんなものが見えてくることもあるし…
474 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:30:44 ] C++でGUIプログラム組む時は基本的にMFCまたはWTL/ATLを使う。 詳細はググるように。 .NETの場合はFormsとWPFがあります。 FormsはVBの流れをくんだ開発手法でWPFはJSPやASPの流れを組んだ開発手法と思えば良いと思う。
475 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:34:04 ] 俺C++がメインでJavaは素人だからトンチンカンなこと言ってるかもしれないけど…… 例えばある変数がintだったかlongだったかで手が止まるとか、 20文字の変数名を手入力して間違えてコンパイルエラーとか、 ある関数の内容を確認するときにいちいち検索が必要になるとか、 もうナンセンス極まりない話だと思う。 それじゃ自分が常に全体を把握できる程度の規模のプログラムしか書けないよ。 断言できる、統合環境と技術力とは一切関係がない。
476 名前:461 [2007/03/15(木) 22:38:01 ] さっきのHSQLDBのことですが、pc再起動してもう一度実行してみたら IllegalStateExceptionと出てまた失敗しました。 成功してたのに・・・バグ?(´・ω・`)
477 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:44:00 ] >>476 APIでは、 public class IllegalStateException extends RuntimeException 不正または不適切なときにメソッドが呼び出されたことを示します。 すなわち、Java 環境または Java アプリケーションは、要求されたオペレーションに適した状態ではありません。 設定ファイルやOSセキュリティなどで サーバ・データベースの連携がうまくいってないのでは?
478 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:56:05 ] 全自動洗濯機があるんだから洗濯板の使い方なんてどうでもいいよ
479 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:02:05 ] そういう奴は全自動洗濯機の性能評価・製品評価もできず、 自分が何をやっているのかも理解できない いわれるがままに作業する全自動ロボットでしかないわけだが。
480 名前:475 mailto:sage [2007/03/15(木) 23:11:34 ] >>479 比喩を比喩で返すのは別にいいんだけどさ、 それは一体何を言わんとした比喩なの? ある変数にカーソルを合わせたら「int」と出た、 じゃあこれはintなんだなと理解し、それに応じたコードを書き進めることが、 あるいはある関数で右クリックしてメニュー出して左クリックして その関数の宣言されている場所に一気にジャンプして編集することが、 果たして「言われるまま作業する全自動ロボット」とまで 蔑まれるほど程度の低い行為だとはどうしても思えないんだけど。 君の言う「本当の」プログラミングって何よ?
481 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:18:55 ] >>444 >InputStreamReader や BufferedReader のコンストラクタで例外が発生したら ドキュメントには何も書いてないけど、 チェックされない例外やエラーが発生するかもしれないん? closeは一番外側を閉じると、元まで伝播するんじゃなかったけ。
482 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:21:56 ] >>480 はコードアシストやジャンプ機能だけがIDEの機能だと思っているバカ。
483 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:23:40 ] そんな基本的な機能まで放棄してテキストエディタかよって話だろ
484 名前:475 mailto:sage [2007/03/15(木) 23:28:41 ] >>482 VS様は(少なくとも個人で買える範囲では)最高の統合環境だと思います それで何の話でしたっけ
485 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:29:03 ] まあ、NetBeansあたりを使ってWebアプリ開発やっていると ・Servletコンテナのインストール方法を知らなくて良い ・それどころか、Servletコンテナの存在すら意識しなくて良い ・Servletをweb.xmlへ設定する方法を知らなくて良い ・それどころか、web.xmlの存在すら意識しなくて良い ・webアプリケーションのデプロイ場所・ディレクトリ構成を知らなくて良い。意識しなくて良い ・実行時クラスパス・ビルド時クラスパスを意識しなくて良い ・ソースディレクトリとデプロイ先ディレクトリが違うことを意識しなくて良い 等々のメリットだかデメリットだかが得られるわけだが、 どうなっているのか知らずに作業できる全自動ロボットという見方も出来るかもね。
486 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:30:21 ] 自分の目的に合ったものを探せばいいと思うよ
487 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:30:32 ] >君の言う「本当の」プログラミングって何よ? 誰か「本当の」プログラミング なんて話してるのか?
488 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:33:23 ] 俺、真のスーパープログラマーになるんだ!!!11
489 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:34:35 ] 本当のプログラミング(笑)ってなんだよ
490 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:37:15 ] >>488 Shiftキー離してるぞw
491 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:44:13 ] 自動的にエンコード・デコードしてくれるテキストエディタなんて使ってると、 技術が退化するぞ。 バイナリエディタを使うんだ。
492 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:46:42 ] 高級言語なんて使ってると、 技術が退化するぞ。 機械言語を使うんだ。
493 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:47:17 ] >>447 外側が閉じれないのに、内側を閉じちゃっていいん?
494 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:53:49 ] ソフトウェアなんて組んでいると、 技術が退化するぞ。 チップセットを自作するんだ。
495 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:54:37 ] それが>>480 の言うところの「本当の」プログラミングかwww
496 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:55:19 ] いま洗濯物を干したところ。 そうなんだ。乾燥機がないんだよ。。。
497 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:00:07 ] PCのスペックにうるさいやつがいるのはわかるけど 全自動洗濯機の性能評価とかいちいちするやついるんだな JBuilderほどひどくなければ何でもいいだろ
498 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:01:39 ] 全自動洗濯機しか使えない奴は、洗濯物の干し方を知らないからな。 壊れたときに途方に暮れる。 ちゃんとシワ伸ばしたか? 色物は裏返したか? 型くずれする物をハンガーに掛けたりしてないか?
499 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:02:12 ] JBuilderのどこがひどい? eclipseとかNetBeansよりよっぽど使いやすいけど。 ああ、eclipseベースにした新しいやつのこと?
500 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:02:34 ] >>497 価格.com あたりに行ってみ。 家電マニアという人種は意外と多い。
501 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:05:05 ] >>497 つ bbs.kakaku.com/bbs/21105010440/ bbs.kakaku.com/bbs/21103010412/ bbs.kakaku.com/bbs/21103010450/
502 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:06:39 ] >>498 それはない。自動でやってくれない部分については人はおぼえるよ。 IDEがお客さんとメールのやりとりまで勝手にやってくれるようになったら メールも打てなくなるかもねw
503 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:08:26 ] 洗濯の初心者は、たまには洗濯板で洗ってみるのがいい。
504 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:10:17 ] kakaku.comのリンクを貼るのはロングテールを利用してるだけ。 実際は性能評価なんてしてるやつはゼロに近いだろ。 まわりの人間からトシちゃんのファンをみつけるのはほぼ不可能だけど トシちゃんのディナーショーにいけばトシちゃんのファンばっかだぞ。
505 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:11:08 ] >>503 うおっ。洗濯板か。さすが2chだ。何でもありだな。 できれば板アド教えてプリーズ。
506 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:11:36 ] >>493 閉じていいかどうかは、内側による。 FileInputStream の場合は開きっぱなしだと、 他のファイル開く時に OS で開けるファイルの上限にひっかかったりとか、 後で FileOutputStream で同じファイルを開けなかったりする可能性もあるので放置しない方が良いかも。 今回のは InputStream だったけど、 例えば OutputStream とかで close() 呼んだら DB に commit する、 とか、そーゆー実装になってる場合は閉じたら拙いだろうし。
507 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:23:44 ] 本当のプログラミングはこれからだ!
508 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:24:17 ] まわりの人間から家電マニアを見つけるのは トシちゃんファンを見つけるよりもたやすい。
509 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:25:18 ] 「ロングテール」言いたいだけちゃうかと
510 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:25:26 ] javaでjcomboboxで選択したものを表示させるにはどうしたらいいですか?
511 名前:デフォルトの名無しさん [2007/03/16(金) 01:13:51 ] つ【やさしいJava本】
512 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:18:23 ] >>508 やっぱりモーターは日立だよな。
513 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:41:10 ] ↓マブチとタミヤの争い
514 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:54:32 ] >>513 模型オタの俺がマジレスするとタミヤはモーターは作ってないよ。あくまでも模型の会社だから。 タミヤの強みは金型とかでしょ。逆に、マブチは小型モーターに強み。 家電のことは詳しくないけど、マブチやタミヤって家電に絡んでるのか?
515 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:57:11 ] クソスレであってもこーゆー>>514 みたいなレスがあるのが2chの醍醐味だと思う。
516 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 03:05:10 ] クソなのはこのスレじゃなくてこの流れなんだが、 その点を除けば同意
517 名前:デフォルトの名無しさん [2007/03/16(金) 06:36:34 ] つ【同意】(:D)| ̄|_ =3=3
518 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 10:05:20 ] >>512 日立は「モートル」だろ。
519 名前:デフォルトの名無しさん [2007/03/16(金) 16:32:25 ] 昨日の>461ですが皆様のお陰で解決しました。 どうもありがとうございました。
520 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:02:48 ] エラー:パッケージ javax.servlet.http は存在しません。 どうしたらいいですか? Tomcat 6.0 java1.6.0
521 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:09:53 ] ググれ
522 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:24:13 ] >>519 結局、原因はなんだったんだ?
523 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:30:11 ] >>520 クラスパス確認すれ
524 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:31:20 ] >>520 コンパイル時なのか実行時なのかくらい書け。 環境もなるべく詳しく書け。
525 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 20:35:13 ] >>524 コンパイル時です >>523 通ってませんでした servlet.jarが入ってなかったので名前が似ているservlet-api.jarをJAVA_HOME/jre/lib/extに入れたのが原因でしょうか?
526 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 20:48:54 ] >>525 よほどのことが無い限り ext とかはいじらん方が良かれ。 開発環境は何使ってます? Eclipse や NetBeans なら ターゲットの実行環境(tomcat6)から適切な jar を参照するんで その辺りの煩わしさは皆無ですよ。 (tomcat6 に対応してたかはちと自信なし。) テキストエディタだけでガリガリやってるなら javac する時のクラスパスに、 実行環境のライブラリをまとめて指定したら コンパイルは通ると思う。
527 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 21:50:19 ] >>526 jcpad231を使ってプログラムを書いています
528 名前:デフォルトの名無しさん [2007/03/16(金) 22:10:22 ] >>522 結局原因はHSQLDB側のコマンドライン?を2つ起動してなかった事が原因 です。Σ(´∀`;)ちんけな原因orz
529 名前:デフォルトの名無しさん [2007/03/16(金) 22:13:37 ] >>526 ベータ版だけど最新のtomcatpluginならtomcat6使えますよ。 個人的にはtomcat5.5の方が良いです。
530 名前:デフォルトの名無しさん mailto:sage [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() ); こうしているのですが、もうちょっとスマートなやり方ないですか?
531 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:30:29 ] ","つけるといいよ
532 名前:じゅん mailto:tabiwayogisya.breakoneslegman@ezweb.ne.jp [2007/03/17(土) 02:22:13 ] ネットを開いてお気に入りを開くとフォルダがあるのですが、隠しファイルにしてしまい消えてしまいました。もう一度表示させるにはどうすればよいのでしょうか(>_<)
533 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 02:44:52 ] コントロールパネル→ツール→フォルダオプション で隠しファイルを表示する設定にできます。 その状態でお気に入りを開けば半透明のフォルダが 出てくるはずなんで、右クリックしてプロパティから 隠しファイルを解除してください。
534 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 02:47:13 ] それJavaなん?
535 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 02:47:45 ] >こうしているのですが、もうちょっとスマートなやり方ないですか? 末尾データが無いからとカンマを削る事がそもそもスマートじゃない
536 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 04:14:15 ] 何の説明も無いまま空白を半角空白と空文字列の二つの意味で使ってることに驚く。
537 名前:デフォルトの名無しさん mailto:sage [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コを生成するファクトリメソッドを用意する。 そんなにも文字列で処理したい理由って何?
538 名前:デフォルトの名無しさん mailto:sage [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の部分がすこし理解ができないので 教えてください。
539 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:24:48 ] s = b.readLine() は一行読んで代入 で、それが !=null の間だけ実行ってことは読み込めなくなったら終了ってこと
540 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:37:54 ] >>538 大雑把に言うと、b.readLineメソッドの戻り値がnullになるまで繰り返すんだけど、 その読み出した値を処理で使いたいからsに代入してる
541 名前:デフォルトの名無しさん mailto:sage [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になってしまいます。 理由ががわからないので教えてもたらいたいです。
542 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:53:45 ] 処理の順番を考えろ
543 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:54:15 ] >>541 cが計算されるのはSyouhizeiがインスタンス化されたときの一回だけ syouhizei1.keisan()を呼び出す時点でa,bになにが設定されていても既にcは 初期値で計算済だから0.0が表示される、と。 それ以前にaやbを外部から直にいじるのはちょっといやだな パラメータで渡そうよ。
544 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 11:07:28 ] 順番が違っていたんですね、わかりやすく説明していただいて ありがとうございました! パラメータで渡したほうが見栄えがいいってことでしょうか?
545 名前:≠543 mailto:sage [2007/03/17(土) 11:14:44 ] >>544 見栄えっつーか安全性の問題 デバッグもしやすいしね コンストラクタとか勉強汁
546 名前:デフォルトの名無しさん mailto:sage [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行まるまる出力させるにはどうすればいいいのでしょうか?
547 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:42:32 ] buffer は怠惰だから flush しないと仕事を全うしない。
548 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:45:42 ] アホか。ループ内で毎回ファイルを開きなおしてるからだ。
549 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:48:18 ] >>546 斜め読みの脊髄反射で申し訳ないが fw.close()の前にfw.flush() 違ってたらすまん ところで、try〜catchをException一つで受けるのって乱暴じゃね? せめてファイル入出力系、数値変換系、その他で分けないと問題起こったとき原因の 切り分けができんぞ
550 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:52:07 ] テストのために書くコードならよくやるなあ、めんどくさいし
551 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:53:48 ] >>549 Exception e の内容を表示すれば問題ないと思われ。
552 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:59:23 ] >>546 正しいこと言ってるのは>>548 だけだからな。
553 名前:デフォルトの名無しさん [2007/03/17(土) 14:18:47 ] 対処法がわからないです…教えていただけないでしょうか?
554 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:26:54 ] めんどいから、これでいいじゃん FileWriter fw = new FileWriter("test02.txt", true);
555 名前:デフォルトの名無しさん mailto:sage [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のハンドリングは適当だし、動作は確認してないぞ
556 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:49:32 ] >>554 ファイルがなかったらExceptionがThrowされなかったけ?
557 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:58:15 ] あそっか。じゃあ先頭にorg.apache.commons.io.FileUtils.touch("test02.txt") かなんかで空ファイル作成追加
558 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 16:13:07 ] ものすごい勢いで本末転倒だなw
559 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 20:31:36 ] JMSの仕様について勉強できるサイトや本ってないですか? できれば日本語で・・・。 オライリーのJavaメッセージサービスは所持してます。
560 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 20:43:49 ] クラスローダを独自に用意すれば、並行処理で同じstatic変数にアクセスしても値が違う みたいなことが出来るのでしょうか?
561 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 20:51:40 ] >>559 仕様はSUNのAPI仕様読むのが一番じゃないでしょうか。 仕様そのものはシンプルでキレイだけど 実装によるクセが大きいので、勉強はそこそこに 実装の調査に入った方が良い気がします。
562 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:16:56 ] >561 利用する側でなく、JMSプロバイダを作る側なため、 仕様をきちんと理解してからでないときついかなと思った次第です。 オープンソースとか参考にするのがいいんですかねぇ・・・。
563 名前:デフォルトの名無しさん [2007/03/17(土) 21:16:56 ] VISTAでJAVAは使えますか?
564 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:20:54 ] とりあえず使えます
565 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:31:18 ] >>562 であるならなおのことSpecification読むしかないのでは。 あれが最終にして完全(であるべき)ですから。 差しさわりがなければMQ作ることになった理由を聞かせて欲すぃ・・
566 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:39:02 ] > であるならなおのこと おとこのこなら に読めてしまったので眼科行ってくる
567 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:42:51 ] アッー!
568 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:13:19 ] SwingでBeanを編集するためのよいバインドツールみたいなものはありませんか?
569 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:36:53 ] 仕事関係です。SOAという言葉が大好きな人がいまして・・・。 まあまだ作ると決まったわけではないんですが。 英語大嫌いなんでキツイ(;´Д`)
570 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:41:34 ] SOAと英語にどういう関係が、つーか誤爆か?
571 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:43:18 ] そあー大変だな てか別に英語関係なくね?
572 名前:デフォルトの名無しさん [2007/03/18(日) 14:45:12 ] 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 です。他に必要な情報があれば御指摘ください。
573 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 15:09:04 ] >>572 CATALINA_HOMEとかが読まれてないんじゃないか? しかし、/etc/profileを更新するとは強引だな あと、jk2は終わってるぞ
574 名前:デフォルトの名無しさん [2007/03/18(日) 15:23:40 ] JAVA勉強してるのですが、将来的にもLG3Dを取り敢えずインスコしといたほうがいいですか?それともBistaにしとく?
575 名前:572 [2007/03/18(日) 15:29:14 ] >CATALINA_HOMEとかが読まれてないんじゃないか? > >しかし、/etc/profileを更新するとは強引だな 解決策&お勧めの方法などありましたら、「ここを見ろ」でOKですのでご教授ください(;´∀`) ちなみにmod_jkも試してみたのですが、まったく同じ問題が出たのでクリーンインストールしなおしたとです……。
576 名前:デフォルトの名無しさん [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への接続は別のクラスがやるようになってます。 解決策分かる方、教えてください。お願いします。
577 名前:デフォルトの名無しさん [2007/03/18(日) 15:41:48 ] その別クラスからのDBへの接続は大丈夫でした
578 名前:569 mailto:sage [2007/03/18(日) 15:56:03 ] >570-571 565への返信です。 SOA→JMSという流れらしくて・・・。 で、JMSの仕様書英語しかなさそうなんで面倒だなと。
579 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 15:57:47 ] ならまぁ、「SOAだから」じゃなくて単に英語苦手だからだな。 つ エール
580 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 16:01:17 ] >>576 pc11.2ch.net/test/read.cgi/tech/1147444414/771
581 名前:デフォルトの名無しさん mailto:age [2007/03/18(日) 16:13:55 ] 今 Sun のサイトから jdk-1_5_0_11-windows-i586-p.exe をダウンロードしてインストールしたのですが、 bin フォルダ内に javac コマンドがありません。 何か変更があったのですか? javac に替わるコンパイルコマンドはどれでしょうか。
582 名前: mailto:sage [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); というふうに修正してみたんですが、これって一般的な方法と言えるんでしょうか?
583 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 16:30:10 ] Project Looking Glassに参加してる方は2chなんかにいないですよね?
584 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 16:41:17 ] 仮に居たとしても会話したくないだろうな
585 名前:581 mailto:sage [2007/03/18(日) 17:05:34 ] JDK のインストールの後の JRE のインストール先を JDK と同じフォルダにしたため bin が上書きされてしまっていました。 失礼ぶっこきました。
586 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 17:38:47 ] >>575 解決策はエスパーでもない限りわからん スクリプトにechoでも埋め込んで確認するとかで調べるとかして原因を特定 お薦めは ttp://ichimura.chi.its.hiroshima-cu.ac.jp/webdb/tomcat.html の方法 ただし、内容は少し古いから適時読みかえること jsvcのマニュアルも読んで適切にスクリプトを書き換えること
587 名前:572 mailto:sage [2007/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と起動するようにしておきました。 大変助かりました。アドバイス、ありがとうございました。
588 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:02:10 ] >>587 RH系なら、起動スクリプトの「# chkconfig」の行に、起動する順番を書けばいいでしょ。 「linux chkconfig 順番」でググってみたら?とりあえず1件見つけてみた。 ttp://www.geocities.co.jp/SiliconValley-Cupertino/9120/startup.html
589 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:06:08 ] >>582 sum+=i;が重複してるからif-elseの外に出した方がいいな。 けどそれ以外はみんなそんな感じに書くと思うぞ。 逆に変態的な書き方があったらぜひ教えて欲しいもんだ。
590 名前:デフォルトの名無しさん mailto:sage [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("+"); } }
591 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:19:27 ] java -jar foo.jar としたときにシステムプロパティ java.class.path って 確実に実行モジュールである foo.jar のみが表示されるのかな? 仕様や実行結果を見るにどうもそうらしいんだけど。 絶対パスならそのまま、相対パスなら user.dir を付加すれば Win32 のGetModulePath の代わりになる?
592 名前:582 mailto:sage [2007/03/19(月) 00:42:19 ] >>589-590 そうですね。その方がスマートですね。 ありがとうございました!
593 名前:デフォルトの名無しさん mailto:sage [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); ぐらいかな? あまりこういう書き方はしないと思うけど・・・。
594 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 01:45:29 ] ごめん間違った > System.out.print(i + "+"); System.out.print(" +" + i); に修正
595 名前:デフォルトの名無しさん mailto:sage [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);
596 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 09:22:24 ] >>595 \bとはマニアックな・・・。 けどこうしてみるとifもないしスマートに見えるな。 機会があれば使ってみよう。
597 名前:デフォルトの名無しさん [2007/03/19(月) 14:01:53 ] 開発はユニクソ?リヌクス?の方が多い?
598 名前:572 mailto:sage [2007/03/19(月) 15:25:20 ] >>588 フォロー、ありがとうございます。これでinit.dの下で管理できそうですね。 大変参考になりました。重ねて御礼申し上げます。
599 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:11:24 ] 新人教育でJavaを教えることになりました 知らないやつを基準に変数からクラス、オブジェクトまで教えるのですが これだとすでにJavaやプログラミングを知っている人が退屈してしまうので そいつらむけの適当な自習課題を用意しようと思います。 (簡単なゲームとかメモ帳作成とか) 参考になりそうなページはないですか?
600 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:40:06 ] お前が作れよ
601 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:01:06 ] ゲームとかメモ帳ってGUI方面だろ。 Webアプリ作らせたほうが実用的かと。
602 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:24:57 ] Java知ってるやつにはDB使ったアプリを教えろ
603 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:29:40 ] >>601 知らないやつ基準ということなのでそういう人が大多数という前提だと、 新人研修の自習でWebアプリ作るほどの力があるならそのまま現場投入で たたき上げた方がよほど本人及び会社の為ではないかと
604 名前:603 mailto:sage [2007/03/19(月) 22:50:47 ] あ、現場投入云々はあくまで技術者として、ね。 社会人としてどうとかはまた別の話。
605 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:59:07 ] >>599 java.cs.vt.edu/dev/javasound/api/javax/media/sound/sampled/package-tree.html の javax.media.sound.sampled 使った何か
606 名前:1/2 mailto:sage [2007/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(); } }
607 名前:1/2 mailto:sage [2007/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の入門本のコードそのまま打ち込んでいるんですが、どうしたらいいんですか?
608 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:26:22 ] > actionPeformed performed?
609 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:36:55 ] >>607 >class Awt10{ これ本当?コピペ間違ってない? このソースであのエラーが出るとは思えんが…
610 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:40:10 ] うわーありがとうございました。 performedのスペルが間違ってました。恥ずかしい。 >>609 さん コピペは間違いはないと思います。。。 こういうエラー見たことなかったのでスペルちゃんと見てませんでした
611 名前:609 mailto:sage [2007/03/20(火) 00:49:21 ] すまん。勘違いだった(汗) 普段の自分のコーディングスタイルと違うので(と言い訳してみる)
612 名前:デフォルトの名無しさん [2007/03/20(火) 10:26:06 ] *=ってどういう意味?
613 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:27:42 ] a = a * b; と a *= b; が同じ
614 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:38:18 ] さんくす。
615 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:38:00 ] a *= bってスタックに積む数が少ないから実行速度a = a * bより早いのかな?
616 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:44:40 ] >>615 > スタックに積む数が少ない そもそも、この違いがない、はず。
617 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 12:44:50 ] 単なる表記法の違いだよね…?
618 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 13:04:47 ] a #= b と a = a # b の違いは、aが評価される回数。 x[func()] += y; と x[func()] = x[func()] + y; だとfunc()の性能によっては大きな速度差が出ることがあるし、 func()が副作用を持つ場合は動き自体が違う可能性もある。
619 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 13:18:13 ] a, b をメタ変数と考えるなw
620 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 14:37:53 ] 完全なインタープリタならいざ知らず、バイトコードまではコンパイルしてるのだから 式の評価順の解析(スタックや逆ポーランドといった)はコンパイル時におわってる。 より短くコードを書くことを良しとしていたCの文法を受け継いでるだけだ。
621 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 16:16:30 ] >>620 要するにコンパイラが勝手に最適化するから気にするなでおk?
622 名前:デフォルトの名無しさん [2007/03/20(火) 19:12:20 ] WebappClassLoaderをサーブレット側から手動で動かすにはどうしたらいいですか?
623 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:48:28 ] eclipseでワークスペース使ってコンソールから窓を開いて3DCGを表示するアプリ作ったのですが それをアプレットに落とし込むにはどうしたらいいでしょか。 やり方教えて下しア
624 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:52:01 ] C/C++ だと _ で始まる名前や場所を問わず __ を含む名前はシステムで予約されてるけど、Javaではどうなん?
625 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:09:19 ] _については制限なし。 $も使えるが、機械生成されたものなど、用途を制限されている。 ただし、「それが望ましい」程度の縛り。
626 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:09:25 ] >>624 Character#isJavaIdentifierStart も Character#isJavaIdentifierPart も true を返すから '_' 自体は使える。 _ で始まる名前とか __ で始まる名前とかで、予約はされてないはず。 コーディング規約で使わないのを推奨してたか、は忘れた。
627 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:16:04 ] >>625-626 サンクス。自分でそんな名前を進んで使うつもりはないけど、 いま弄ってるソースでバンバンそんな名前が使われてたから気になってた。
628 名前:デフォルトの名無しさん mailto:sage [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」
629 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:06:08 ] >x += i; // エラーなし なんで?
630 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:18:46 ] JLS15.26.2を読んでみた。 前者は、複合代入演算 E1 op= E2 の意味するところは E1 = E1 op E2 ではなく、 E1 = (T)(E1 op E2) // TはE1の型 すなわち、複合代入演算子は暗黙のうちに代入される側の方へのキャストを 行うというのがポイント。 後者は、複合代入演算子が使えるのはプリミティブ型/そのラッパー型、そして +=については左辺がStringの場合のみ、文字列連結が行われる。 (右辺はどんな型でもよい)
631 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:22:58 ] >>629 例えば byte b = 0; b += 2; // 2 は int型 とかがコンパイルエラーになったらウザいでしょ。
632 名前:デフォルトの名無しさん mailto:sage [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のイメージが更新されません(一度、最小化して戻すと表示されてます) 再描画がうまくいってないようなのですがどのようにすればよいでしょうか。
633 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:39:03 ] - MyCanvasはCanvas(AWTコンポネント)を継承せず、代わりにJPanelを継承 - paintではなくpaintComponentをオーバーライド でどうか?
634 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:51:18 ] アドバイスありがとうございます。 ただそれでもだめでした。 paintComponent()でSystem.out.println()やるとちゃんと表示されてるのでrepaint()で メソッドは呼び出されてはいるようです。 ただはりつけたJPanelに表示はされません・・・ もとのパネル(MainPanel)では setLayout(new BorderLayout()); imagePanel= new MyPanel(); add(imageCanvas, BorderLayout.CENTER); ではりつけてます。
635 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:52:10 ] add(imagePanel, BorderLayout.CENTER) の間違いでした
636 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:58:52 ] 自己レスです はりつけたMyPanelのpaintComponent()にsuper.repaint()を入れたらすぐ再描画されました。 貼り付け元のJPanelも再描画する必要があるってことでしょうか・・・
637 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:02:58 ] 関係ないかもしれないけど、 paintComponentでsuper.paintComponentは呼んでる?
638 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:19:55 ] 呼んでます・・・ JFrameの上にJPanelを貼り付けた場合は、paintComponent()ですぐ再描画されてたんですが、今度はJPanelの上にJPanelを貼り付けたからかと疑ってるんですが、関係ないかな。
639 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:25:58 ] 超初心者です。 本を見ると 「swingはAWTと異なり、コンテンペインを取得し、そこにコンテンツを配置する。」 というように書いております。 で、そのとおりgetContentPane()してaddしたらもちろん上手くいきました。 流れとしてはこんな感じで。→new JFrame().getContentPane().add(new JPanel()); その後もしかしてと思って、 new JFrame.add(new JPanel()) ってやっても普通にうまくいきました。 コンテンツペインを取得する必要ってあるんでしょうか?
640 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:35:17 ] >>638 自己レスですが g.drawImage(resultImage, 0, 0, this); で解決したようです。null->thisにしました。
641 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:37:44 ] >>639 最近のJFrameでは不要。必要に応じて内部でgetContentPane()した先に 要求をたらい回ししてくれる。
642 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:41:07 ] java.sun.com/j2se/1.5.0/ja/docs/ja/guide/swing/1.5/index.html#swingMajor bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753342 だな。
643 名前:639 mailto:sage [2007/03/21(水) 00:48:04 ] おお、、ありがとうございます。 getContentPane()は面倒だけどswingの構造を理解するのに役立ってたので ちょっと複雑な気分です。
644 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 13:28:38 ] jarファイルからカレントディレクトリにある任意のJDBCドライバを読み込ませるようにしたいのですが、 MANIFESTのクラスパスには何と記述すればよいのでしょうか? .や*.jarでは認識しませんでした。 直接名前指定 or jre/lib/extにドライバを格納するしかないのでしょうか?
645 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 13:39:51 ] 記述部さらしてみ
646 名前:644 mailto:sage [2007/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 という感じです。記述の仕方に問題ありますか?
647 名前:ひょこたんだお(^ω^ ◆E9k1wjKgHI mailto:age [2007/03/21(水) 16:21:36 ] ごめんなすm(^ω^#)m static Class forName(String className) の使い方がわかんなひ(;ω;)おっおっお 簡単なソースをいくつかキボンヌッ (#^ω^)ノたのんだうお
648 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 16:43:35 ] >>644 必要なものを明示的に指定するという観点から、 ワイルドカードは使えないんじゃないのかねぇ。 java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html#Main%20Attributes 使えるとは書いてない。使えないとも書いてない。
649 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 03:33:29 ] >>647 ここの ttp://blog.goo.ne.jp/akubi_2005/m/200601 Mainクラスがいっぱいの時 にソースがあった。
650 名前:デフォルトの名無しさん mailto:sage [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行目にあたります。 どなたか、お助けください。
651 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:39:17 ] > int i=0; > input = new int[i]; だれが見てもここだ
652 名前:デフォルトの名無しさん mailto:sage [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]; にしてみたら?
653 名前:650 mailto:sage [2007/03/22(木) 11:07:57 ] >>652 どうもありがとうございます!解決しました! 答えだけでなく、どこがどのように間違っているかまで答えていただいて 大変勉強になりました。
654 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 13:47:44 ] これってどうよ? ja.wikibooks.org/wiki/Java
655 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 14:13:36 ] >>654 個人的には、「Javaをはじめよう」以下は要らないような気もする。 char が -32768〜32767になってたり、 「リファレンス型というのは、クラスのことです」とか、間違いもちらほらあるし。 文法とかは、JLS へのリンク貼って終わりで良いとか、 入門者用のコンパイル手順を示すんなら、テキストでやるより flash movie とかでやった方が親切なんじゃないか、と思ったり思わなかったり。 wikibook に flash 置けるのか知らんけど。
656 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 15:35:54 ] >>514 おやおや? Java家電時代の到来か? 将来は、Javaで家電制御を企んでいるのかねー? Jiniかねー?
657 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:43:49 ] まずはおいしいご飯からお願いします
658 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:45:39 ] すみませんが、質問です。 HttpServlet のソースコードは、どのソフトに含まれているのでしょうか? たぶんTomcatにあるのだろうと思っていたのですが、うまく見つけられません。 利用中のTomcat は4.1です。
659 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:59:27 ] 質問です。 HTTP Get のクエリ文字列から、パラメータ名とその値の組み合わせの集合を取 得するには、どうしたらいいでしょう?
660 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:18:15 ] >>658 classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。
661 名前:658 mailto:sage [2007/03/22(木) 18:37:21 ] >>660 > classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。 ありがとうございます。ソースはどこで手に入るのでしょうか? オープンソースですから、どこかで配布はしているはずなのですが。 実は>>659 も私なのですが、以下の処理の参考にしたかったのです。 目的:URL文字列からクエリパラメータを手動で取り出す URL文字列を与えられて、 String url = "www.youtube.com/watch?v=pd74BKx0x-w"; ここからクエリ文字列を取り出し、 String qstring = new URL(url).getQuery(); //qstring = "v=pd74BKx0x-w" ここまではできるのですが、それをパラメータと値に分解する方法が分かりません。 正規表現などで愚直に分けるしかないのでしょうか? 何か既存のAPIがあるのではないかと思うのですが。
662 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:50:24 ] >何か既存のAPIがあるのではないかと思うのですが。 request.getParameter( "v" )で一発だ。 ソースではなくAPIドキュメントを利用するのがJavaでは普通。 sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpServletRequest.html
663 名前:658 mailto:sage [2007/03/22(木) 19:06:03 ] >>662 ありがとうございます。 HttpServletRequestは与えられていなくて、ただURL文字列だけがあるのです。 だから「手動で」取り出す必要があります。 説明不足ですみません。
664 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:16:22 ] >>663 ほいっwww.google.com/codesearch ?hl=ja&q=show:WeBMAMCdhTg:T67KRquB4ao:axPaDrtTH9s&sa=N &ct=rd&cs_p=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()あたりから辿ってけばいんじゃね?
665 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:17:47 ] ソース tarballには入ってないの? svnならsvn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/ 中は見てない。
666 名前:658 mailto:sage [2007/03/22(木) 20:20:55 ] >>664 ありがとうございます。どうやら↓のparseParameters()のようです。 これはどのjarファイルにあるのかなあ。 どうも探し方が分かりません。 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自体のソースは無いようです。
667 名前:デフォルトの名無しさん [2007/03/22(木) 20:26:32 ] 質問です。 server.xmlの<context>のreloadable属性が falseかtrueかの情報を クラスから取得する方法はありますか?
668 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:26:38 ] javax.servlet.http.HttpServletRequestはinterfaceだから、 ソース見ても実装情報はないよ。
669 名前:658 mailto:sage [2007/03/22(木) 20:36:56 ] >>668 > ソース見ても実装情報はないよ。 それはそうなのですが、ソースが無いと、Eclipseで追いづらいと思います。 なお、RequestUtil.class は catalina.jar に含まれていました。 publicクラスですが、一般ユーザが利用することが適切なのか、よく分かりません。 ところで、どのクラスがどのjarに含まれるのかを簡便に知るにはどうしたらい いでしょう? ・1つ1つJarコマンドで表示 ・拡張子をzipに変えて検索 ・片端からEclipseのプロジェクトに組み込んでみる これらよりもっといい方法はあるでしょうか?
670 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:45:49 ] >>669 Eclipseで追うだけなら、jadclipseを入れておくとソースがないものは jadで逆コンパイルしたものを表示してくれたりする。 jar探しは、コマンドラインに苦痛を感じないヒトなので、 jar tfで探すかなー。Eclipseに組み込むのはいい方法だと思います。
671 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:42:42 ] String url = "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"}っていう配列ができる。 後は、配列の偶数と奇数で分けて適当に処理すればいけるだろ。
672 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:53:10 ] >>671 フラグメントがあったら最後の要素が "bar#hoge" みたいにならんか?
673 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:06:09 ] >>672 なるほど。じゃあこれでどだ。無理矢理1行。 String[] params = url.substring(url.lastIndexOf('?')+1, url.indexOf('#') > 0 ? url.indexOf('#') : url.length()).split("[&=]");
674 名前:658 mailto:sage [2007/03/22(木) 22:50:29 ] >>670 ありがとうございます。参考になります。 できたら配布元のサイトでドキュメント化してくれていたら楽なのですが。 >>671-673 標準のAPIには存在しないらしいので、自分もそれなりに書いてみました。 String url = "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]); }
675 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:53:43 ] a=&x=yみたいに値がないパラメタがあったらうまくいかない気がする。
676 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:55:13 ] 675は>>673 ね。 >>674 たいていはそれでいいけど同じキーの値が複数あったらうまくいかないので注意。
677 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:58:46 ] パラメータ間の区切りに最近は;も使うので、汎用性から言ったらこれも認識する とよい。 >>675 のケースを回避するために、まず &(および; )だけで区切り、そののち=で 分解するといいだろう。 >>676 を考慮するならmapの値側をコレクションクラスにする必要がある。
678 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:26:33 ] 書式指定子について教えてください。 ある本で↓みたいなのがでてきたんですが、%が多くて何やってんのかよくわかりません。 System.out.printf(String.format("%%2d | %%%dd\n", n), r, x); %dで10進数に変換。2は2桁の長さを表す。ということはわかったのですが、 引数に対して書式指定子がやたら多いような気が・・・ メソッドが入り子になってるからややこしいんでしょうか? そもそもformat()の第2引数 n は何に変換されるんでしょう?
679 名前:658 mailto:sage [2007/03/22(木) 23:27:54 ] >>675 氏のケースに対応 String[] p = pv.split("="); ↓ String[] p = pv.split("=", 2); 自分の用途には>>676 氏のケースはなさそうなので、これで何とかなりそうです。 ありがとうございました。
680 名前:デフォルトの名無しさん mailto:sage [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を使うべき。
681 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:30:23 ] すみません、XPathAPIを使って、以下のXMLから<media:thumbnail> のurl属性 を取得するには、どのようにXPathを記述したらいいでしょうか? video.google.com/videofeed?fgvns=1&fai=1&docid=507732229697832036&hl=en (以下、抜粋) <rss> <channel> <item> <media:group> <media:thumbnail url="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> 以下のページなどを参考にしているのですが、具体的な記述が無くて困っています。 msugai.fc2web.com/java/XML/XPath.html
682 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:18:50 ] java関係ないね。と言っても該当スレがここしか見当たらない。 ttp://pc11.2ch.net/test/read.cgi/tech/1133280488/l50
683 名前:681 mailto:sage [2007/03/23(金) 02:31:04 ] >>682 すみません、XPathAPIに固有の問題もあるかと思い、こちらで質問しました。 例えば、.NETならこんなページがありますが、 www.atmarkit.co.jp/fdotnet/easyxml/easyxml05/easyxml05_03.html この内容(addNameSpace)はJavaでは使えないようです。
684 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:39:18 ] XmlNamespaceManager site:w3c.org に該当するページが見つかりませんでした。 おや?
685 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 04:58:49 ] >>681 >どのようにXPathを記述したらいいでしょうか? こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないんだが・・・。 >XMLから<media:thumbnail> のurl属性 を取得する ロケーションパスの書き方は分かるのか? >>684 .NETのクラス名がw3cのページでヒットするわけ無いだろ。煽るならもっと頭使え。 googleくらい使えるようになろうな xpath site:www.w3.org/ ~~~~~~~~~~~~~~~~~~~~~~~~
686 名前:681 mailto:sage [2007/03/23(金) 05:12:15 ] すみません。 >>685 > > こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。 > て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないん > だが・・・。 おっしゃるとおり、よく理解しておりません。 > >XMLから<media:thumbnail> のurl属性 > を取得する > ロケーションパスの書き方は分かるのか? おそらく、 /rss/channel/item/media:group/media:thumbnail/@url ではないかと思うのですが…。
687 名前:681 mailto:sage [2007/03/23(金) 05:18:48 ] 追記です。 よく分かっていないのは、名前空間の扱いです。 .NETの実装を見て、JavaのXPathApiにも、addNameSpace にあたる関数があるの だろうと考えたのですが、それを見つけられなくて困っていました。
688 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:54:40 ] >>685 は、XmlNamespaceManagerなんぞw3c標準にないのに知るかよ! という回答するつもりだった人からのピーデーの某氏へのイヤミです。
689 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:55:34 ] ×という回答するつもりだった人からの ○という、回答するつもりだった人からの 「、」いっこ抜けて意味が変わってるしorz
690 名前:デフォルトの名無しさん [2007/03/23(金) 12:06:23 ] ログを解析するアプリケーションを作りたいのですが、SwingやAWTで UI部分を作り、エンジン部分をC言語で作る事は出来るのでしょうか? 出来る場合、JAVA側(UI)とC側(エンジン)とのやりとりはどのような 感じになるのでしょうか? C言語は少し経験ありますが、JAVAはまったくの初心者です。 よろしくお願いします。
691 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 12:11:49 ] 出来る。 やりとりはソケットを使う/JNIを使うなど。
692 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 12:15:33 ] >>691 即レスありがとうございます その単語でぐぐったら期待通りのAPIがHITしました!
693 名前:681 mailto:sage [2007/03/23(金) 12:54:47 ] 自己フォローです。 Java XPath API www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml > しかし、pre という接頭辞を、www.example.com/books という URI > にマップする必要があります。NamespaceContext インターフェースが > JDK(Java software development kit) や JAXP にデフォルトで実装されてい > ないのは多少ばかげた話ですが、実際にないのです。 この後、記事は「名前空間マッピングクラスを自作する」ことになります。ど うなってるの?何か意見の対立と混乱があるように見えます。 ちょっと使おうと思っただけなのに。弱りました。
694 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 13:05:58 ] PS3でFolding@homeが利用可能になりました! タンパク質解析プロジェクトFolding@homeで病気で苦しむ人達を救えるかも。 PS3でFolding@homeしようぜ(Team 2ch) ex22.2ch.net/test/read.cgi/ghard/1174030817/ チーム番号:162 チーム名:Team 2ch fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162 ☆PS3での参加方法 PS3からFolding@homeを起動し、チーム番号162に入力すればOK。 ユーザ名は何でも良いが、folding.stanford.edu/japanese/download.html にて、名前が既に使われているかどうか確認する事を推奨。 参加の確認としては、「オプション(△)」→「関連サイト」→「チーム処理統計量」と開き、 「Team 2ch」(上記URLのページ)が表示されればちゃんと参加できている。 ☆Folding@homeについて folding.stanford.edu/japanese/
695 名前:デフォルトの名無しさん [2007/03/23(金) 14:02:20 ] File#mkdirsが失敗した場合に その原因を取得する方法ってありますか?
696 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:23:47 ] >>695 無いよ。 SecurityManager が許可しない場合だけは例外もらうから分かるけど。 mkdir() する前に、作ろうとするディレクトリが既に存在しても失敗するし、 同名ファイルがあってディレクトリ作れなくても失敗するし、 ディレクトリの名前が不正な場合 名前が長すぎたり名前に使えない文字が含まれたり でも失敗するし、 ファイルシステム上の権限がなくてディレクトリを作れなくても失敗する。
697 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:28:48 ] >>696 そうなんすか…orz 一応isDirectory()で存在しない時だけ作るようにはしてるんですが 何で失敗したのかわからないとどうしようもない…
698 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:47:55 ] >>693 そもそもAPIは何使ってんだ?JAXP1.3以上? 名前空間のバインディングなんてアプリケーションによっては必要ないし バインドするプレフィックスの数によってデータ構造なり検索アルゴリズムの 最適な実装が変わるから汎用な物は作れないから実装を用意するのは無駄。 バインダくらい自分で書け。愚痴しか書いてないじゃないか?
699 名前:デフォルトの名無しさん [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サーバを再起動しているのにそういうことがありうるのか、まったくわかりません。
700 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 23:16:48 ] キャッシュでハマることはまああるけどそのパターンならキャッシュ以前の話。 マシンA.クラス2をマシンBに"一度も"持っていったことがないはずなのに マシンA.クラス2の値を参照しているなんておかしい。 なんらかの形でいっしょに持っていってしまったとしか思えない。
701 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 23:16:54 ] 最適化されてクラス1にその定数の値が埋め込まれちゃってんじゃないの?
702 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 23:22:43 ] java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#13.4.9 これじゃね?
703 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 01:13:54 ] 質問です。サーブレットとJAVAって違うの?
704 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 01:24:06 ] >>703 質問です。ゴキブリと害虫って違うの?
705 名前:681 mailto:sage [2007/03/24(土) 01:59:52 ] XPathについての自己フォローです。おそらく解決しました。 何が分からないのか自体をよく分からず調べていたのですが、まとめるとこう なります。 ・XPathの名前空間と接頭辞のバインディングの設定の、Javaでの標準的な方法 は何か? →完全には決まっていない。それを規定するNamespaceContextは、インター フェースだけしかなくて、実装がない。 ・なぜ決まっていないのか? →単にまだ出来ていないだけ。JAXPは現在1.3だが、1.5までには何とか。 ・じゃあ、どうしたらいいのか? →自分で非標準の実装を作るか、privateな内部クラスで使い捨てにするか、ま たは有志の作ったライブラリを利用するか。 ・こういう大事なことがXPath単体でできるようになっていないのはなぜか? →XPathはもともとXSLTのためのもので、XSLT自体がXMLだから、XSLT内に名前 空間宣言をそのまま書けば済んでしまう。 実はXPathを知ったの自体がつい一昨日で、うまく調べられず、ずいぶん無駄な 回り道をしてしまいました。結局、 norman.walsh.name/2006/03/28/jaxpNamespaceContext www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml 初見では分からなかったのですが、これらにほぼすべてが書かれていました。 解決に当たって、このスレのやり取りも非常に参考になりました。ありがとう ございます。特に>>685 , >>698 さんには深く感謝します。
706 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 02:27:26 ] 質問者の見本みたいな人だ
707 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 02:33:26 ] >>681 以外の質問者のほとんどがクズに見えてきた
708 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 03:49:46 ] お前ら冷静になって良く見てみろ。箇条書きにしてるだけで結局は 仕様が定める範囲と実装がサポートする範囲と自分で実装しなきゃいけない部分を理解してないし そもそもどのコンテキストでXPathを使いたいのか一度も言ってないんだぞ? XSL内でロケーションを表すのに使うのかプログラム中に直接叩きたいのかすら分からず仕舞だぞ?何を教えろと? 事後報告は当然の事だ。 #XPointerの事もたまにで良いので思い出してあげて下さい。
709 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 10:37:35 ] できて当然のことでも褒めないと人は伸びない
710 名前:デフォルトの名無しさん [2007/03/24(土) 12:03:27 ] >709ごめんなさい…
711 名前:デフォルトの名無しさん mailto:sage [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;|^
712 名前:コン [2007/03/24(土) 13:30:20 ] jsp試したいのにトムキャットの設定がむずくてだめです。 エクリプスは動くし、しかしエクリプスでトムキャットはだめ、 どこかいいサイトあったら教えてください。
713 名前:デフォルトの名無しさん [2007/03/24(土) 14:25:14 ] >712 オレかよ(:D)| ̄|_ =3=3
714 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 14:30:17 ] NetBeans使えばバンドルされてるからそれ使えばいいと思う。 設定が難しいってのには?だが、まあやりたい事の主品はそこじゃないだろうしね
715 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 17:01:50 ] マウスカーソル消す方法ご存知ないですか? Cursorクラス見てもそれらしい設定がないです・・・:
716 名前:デフォルトの名無しさん mailto:sage [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はコンストラクタの説明から。
717 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 17:54:18 ] >>715 java.awt.Toolkit#createCustomCursor(Image, Point, String); に透明な Image 渡す
718 名前:デフォルトの名無しさん [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"> ↑の一行を外すと動作してくれます。
719 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 18:36:25 ] >>718 style.cssの中でアプレットを無効化してない?
720 名前:718 [2007/03/24(土) 18:44:59 ] >>719 さん 早速のご返答ありがとうございます。 今確認してみましたが、無効となるような設定はしていないようです・・
721 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 18:58:38 ] 実は動いているけど見えないだけとか。 APPLET { width: 0%; } こんなあからさまなのは無いと思うけど。 もう少しcssやhtmlの中身が分からないと何とも言えない。 linkタグやスタイルシートの有無でアプレットの動作が変わるなんて、どちらかというとweb製作板向きの話題かもしれんね。 少なくともその1行が無ければアプレット自身は動作しているわけだし。 もしくは、linkタグやcssの中身をアプレットで検知して動作を変えてるとか…はさすがに無いか。
722 名前:デフォルトの名無しさん [2007/03/24(土) 20:08:06 ] というかCSSファイルの内容の一部を削除していけば、どこが原因かわかるでしょ? ファイル名に/が入ってもいうんだっけ?
723 名前:715 mailto:sage [2007/03/24(土) 21:01:33 ] >>716 >>717 アドバイスありがとうございます。 無事消せました。
724 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 21:10:57 ] >>718 css晒せ
725 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 10:14:55 ] >>712 TOMCAT_HOME\bin\startup.bat だけで動くじゃん。ハマるぐらいならeclipse経由で起動する必要ない。
726 名前:じゃぎ [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を使う例を 良く見るんですが、モヤモヤしていて迷っています。。よろしくお願い致します。 過去ログでもうまくみつけられなかったんですが、もし関連したページが あるようでしたら、二言、三言キーワードのようなものを投げて頂ければ ありがたいですます。
727 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:34:40 ] public static int
728 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:39:47 ] そのServletクラスに属するべき情報かどうかで使いわけるべき。 「特定のServletクラスが持つ情報」ではなく、 あくまで「複数Servletクラス間で平等に共有するべき情報」なのであれば ServletContextを使うほうがいいだろうね。
729 名前:じゃぎ [2007/03/25(日) 11:50:02 ] 早速ありがとうございます。 ちょっと心配だったのは、Static変数にした場合、一時的には良くても、 ガベージコレクションなどが行われた際に、必ずしも値が保障されなく なったりするのかな。。とか思ったりしてましたが、心配しなくても良い ものなのでしょうか。 あつかましくて申し訳ありませんが、よろしければ、そのあたりのご教授 も頂ければ幸いに思います。
730 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:51:50 ] GCがstatic破壊するなら何を信じればいいんだろう
731 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:51:59 ] お願いします。例えば if (list != null && list.size() > 1) {...} でlistがnullの場合、以降の条件式は評価されないようなことに 名称はありますか? また、他の言語では違ったりしますか?
732 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:02:25 ] GCがクラスローダを回収したらstatic修飾子つきも回収されるけどな
733 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:08:09 ] >>731 >以降の条件式は評価されないようなこと 特に名称は無い。 が、言い方としては「評価が打ち切られる」などと言われることが多い。 >他の言語では違ったりしますか? C言語なども || や && に限ってはJavaと同じく左から評価される。 ただし、+-*/などの評価順はC言語では不定(決まっていない)。 右から評価されたり、ランダムに評価される実装の言語もあると思う。
734 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:08:40 ] >>731 ショートサーキット評価
735 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:11:48 ] >>734 ショートサーキット評価 の検索結果 約 988 件中 1 - 10 件目 (0.17 秒) 知名度は低いな。
736 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:13:19 ] そうじゃない言語があるとしたら わざわざif文を入れ子で書かないといけないのか。つらいな
737 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:19:26 ] >>736 VBとか、そうなんじゃなかったっけ
738 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:19:33 ] >>736 ヒント: ( )で括ればそれが先に評価される if (((a=1) || b=1) && c=1) foobar;
739 名前:731 mailto:sage [2007/03/25(日) 12:21:18 ] >>733 >>734 ありがとうございます。 昔勉強したときに名前が付いていた気がしていたのですが、 質問される立場になったときに、思い出せず、もやもやしてました。 やっとスッキリしました。
740 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:22:34 ] >>738 いやいや、カッコでくくってもc=1は評価されてしまうから >>731 の例だとぬるぽじゃん?
741 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:55:59 ] en.wikipedia.org/wiki/Short-circuit_evaluation 俺もショートサーキットという言い方で覚えていたので、 ぐぐったら少なかった(1000行かない)というのは意外。
742 名前:じゃぎ [2007/03/25(日) 13:52:34 ] >>730 >>732 ありがとうございます。setAttributeのほうが、特別推奨される理由が あるとすれば、ガベコレのようなところかなと、つたない頭で考えてました。 >>728 さんにも、スッキリさせて頂きまして、ありがとうございました。 これで安心してサーブレットいじれます。
743 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:09:49 ] ショートサーキット評価 988件 ショートサーキット演算子 618件 短絡評価 590,000件 短絡演算子 27,500件 訳したら増えたw
744 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:12:28 ] >>743 しむらー、ぶんかつぶんかつー
745 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:33:32 ] ""でくくったら激減。 "ショートサーキット評価" 224件 "ショートサーキット演算子" 213件 "短絡評価" 304件 "短絡演算子" 124件 こんなもんなのか。
746 名前:デフォルトの名無しさん [2007/03/25(日) 16:23:20 ] バイナリファイルを比較する簡単な方法はないでしょうか? ……まぁ、 (1)サイズを比較して違ってたら無条件でOUT (2)サイズが同じだったらストリームを二つ開いて、バイト単位で順次比較 とすればいいだけの話ですが、こんなの誰かが作ってるような気がしまして(汗)
747 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:25:18 ] MD5で比較
748 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:38:31 ] java.security.MessageDigest(のサブクラス)もありますな。
749 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:51:17 ] ダイジェスト作る時間があれば順次比較が終ってるだろw >>746 バイト単位の比較でもいいけど、int単位とかで、もっとまとめてやってもいいかもね
750 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:55:03 ] てきとーなブロック単位でダイジェスト比較していくと効率がいいかもな。
751 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:05:39 ] >>749 >>746 は簡単に実装できる方法を求めてるから速度は二の次なんじゃないかね? そういう意味でAPI使ってハッシュを求めさせるのはコーディングが簡単だし悪くない方法だと思う。 でも、コリジョンの可能性があるから、同一ハッシュ=同一バイナリとは言い切れないのが問題。
752 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:14:11 ] >>750 お前、馬鹿だろ。 >>751 ハッシュ求めるより順次比較のほうが簡単じゃないか?
753 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:23:44 ] あらかじめ MD5ハッシュが算出してあれば、それ比較してもいいけどね。
754 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:27:46 ] >>751 無駄な上に不確実で最悪な方法だと思うが。
755 名前:デフォルトの名無しさん [2007/03/25(日) 17:28:33 ] 質問主は誰かもう作ってるんじゃないか? っていう質問してるのにお前等ときたら…
756 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:41:56 ] ハッシュ算出してあるときの話じゃない。 ハッシュを算出するには算出する範囲のビットを全部見る必要がある。 それなら見た時点でお互いを比較すれば済む話。
757 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:50:16 ] >>755 commons IO の org.apache.commons.io.IOUtils.contentEquals(InputStream,InputStream)
758 名前:デフォルトの名無しさん mailto:sage [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); }
759 名前:758 mailto:sage [2007/03/25(日) 18:00:02 ] 書かれてたorz
760 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 18:02:56 ] >>758 一致しないときもストリームをcloseした方が綺麗
761 名前:758 mailto:sage [2007/03/25(日) 18:05:47 ] ん?閉じてると思うけど?まあ途中で例外出たらだめだけど。
762 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 18:11:49 ] >>761 すまんwhileの外だった }の数を見誤った でもそれはMessageDigestを使ってるといえるのかw
763 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 18:37:18 ] ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて 後から再利用するってことならまだ分るんだが、そんな前提もなしに ハッシュを勧める莫迦がなんでこんなにいるんだ?
764 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:06:41 ] Stringクラスの説明で 「文字列は定数です。この値を作成したあとに変更はできません。」 ってあるんですけど、 String str = new String("123456789"); str = "1"; こんなふうにあとから代入しても、コンパイルエラーも出ず、代入した文字列が表示されるんですけど 変更できないってどういう意味なんですかね?
765 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:14:57 ] >>764 "abcde"="12345" ってできないってことだ 1=3と同じ
766 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:19:50 ] >>764 それは、変数の参照先オブジェクトが入れ替わっただけ。 "123456789"で初期化したオブジェクトそのものの内容は変更できない。
767 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:54:13 ] >>764 str → "123456789" だったのが "123456789" str → "1" になるってこと。元のインスタンスは破壊されない(参照が無くなればガベコレはされるけど
768 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:15:47 ] HttpURLConnectionでHTMLソースをUTF-8でゲットしてくる際に 文字化けしてるかどうか判定する事ってできますか?
769 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:29:55 ] >>763 > ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて > 後から再利用するってこと だとしても分かっちゃだめだろ。ファイルが一致することの証左にはならん。
770 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 00:07:21 ] ネットでダウンロードするときに付属してることのあるハッシュコードは 飽くまでパリティチェック的な意味合いでしか使われてないと思う
771 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 01:31:26 ] >>768 httpのヘッダ見れば良いんじゃね?
772 名前:デフォルトの名無しさん mailto:sage [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をあわせれば良いといわれたんですが よくわからない・・誰かたのんます!
773 名前:764 mailto:sage [2007/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....が表示される } 説明下手だったらすいません。
774 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:08:03 ] JavaはCと同じくすべて値渡しだ。 参照型であろうとC++のような参照渡しはないので 変数の「指し先」が関数呼び出しで変化することはない。 当然「指し先の内容」が変化することはありえる。
775 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 09:35:53 ] カエレ!
776 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 09:42:26 ] >>774 ネタで言ってるんだよな?
777 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 09:59:07 ] Javaはすべて値渡し。これはもはや常識!
778 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:41:15 ] 参照を値渡しする、と言わないと分からない人は一生分かりませんよ。
779 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:47:12 ] 参照を値渡しするのとは違うだろ Javaはこの辺りが変
780 名前:デフォルトの名無しさん [2007/03/26(月) 10:53:44 ] コネクションプーリング使うにはネット使わないといけないのね。orz コネクションプールができなくて、3日も鬱になったジャマイカ。
781 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:12:57 ] じゃばでぱけっとのもにたりんぐはできますか?
782 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:28:53 ] >>779 どう違ってどう変なのか説明plz
783 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:34:34 ] C++の参照もあれはあれで参照を狭い意味で使ってるから、 あれしか知らないで参照を語られても困るよな。
784 名前:デフォルトの名無しさん mailto:sage [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 される前の値と全く変化ない。
785 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:11:28 ] >>783 逆 C++でオブジェクトA,Bに関して A=Bとやると痛い目にあう、それは動的アドレスのコピーであるから(純粋な参照)。 JAVAの場合はポインタの概念は無い。 JAVAの場合、A=Bはオブジェクトの代入を示す。 非常に荒っぽい言い方だと、JAVAのソースではオブジェクトの代入はstrcpy、すなはち代入。 だが、JAVAの場合、参照先の値を変えてやると参照元の値も自動的に変わってくれるという、 Cの参照とも純粋な値渡しともつかない擬似参照になる。 おそらく参照元が値を使用する時、毎回値渡しを使用してるのか。 JAVAの参照は便利だがあやふやではある。
786 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:13:25 ] 訂正 非常に荒っぽい言い方だと、JAVAのソースではオブジェクトの 参照は ~~~~~ strcpy、すなはち代入。
787 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 13:50:09 ] >>773 >new String("123456789") 関係ないけど"123456789"自体がString型のインスタンスだからそれは冗長 というかなんで不変オブジェクトにコピーコンストラクタがあるのか謎なんだけどたぶん設計ミスだな
788 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:14:05 ] >>785 > オブジェクトの代入はstrcpy え?
789 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:21:00 ] 少し前のレスくらい読めよ・・・
790 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:26:30 ] とっても初心者なのですが 戻り値の意味がわかりません return文とか適当に使っていたもので…
791 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:42:42 ] >>789 わからない。代入がstrcpyてどこ読めば理解できる?
792 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:43:22 ] ああ、代入じゃなくて参照てことか。 どっちみちわからん。
793 名前:デフォルトの名無しさん mailto:sage [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
794 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:53:39 ] >>784 丁寧な説明ありがとうございました。 メソッド内で新しいオブジェクトへの参照が変数に代入されているので 呼び出し元では元のオブジェクトを指しているままなんですね。
795 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:20:55 ] >>794 そういうことです。 Stringだけなんとなく特別な印象を受けてしまいがちだけど、 "=" の意味は他の参照型(Object派生型、配列)と変わりません。
796 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:41:46 ] >>785 参照先の値を変えたら参照元の値を自動的に変えるって・・・本気で言ってんのか?w Javaにポインタが無いって言葉に騙されてるとしか思えない。
797 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:29:14 ] Java の参照は C/C++ のポインタそのものじゃなかろうか。 ポインタ演算を隠してるだけで。 C++の参照(type&)は言語仕様的には別名(alias)と同義で、 内部実装は制約のある参照的なことやってます、だったような。
798 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:36:23 ] たった今始めたばかりの初心者です。 ビルドをしたら、「環境変数JDK_HOMEにJDKをインストールしたディレクトリを設定してくだい」と表示されました。 なので、変数を「JDK_HOME」、値を「C:\Program Files\Java\jdk1.5.0_11」にしたのですが、また同じことが表示されます。 どうしたらいいですか?
799 名前:デフォルトの名無しさん mailto:sage [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; }
800 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:48:24 ] >>798 開発環境を示さないと何とも言えない。 システム環境変数のJDK_HOMEをJDKディレクトリに設定したのか、 それともIDEの環境変数をJDKディレクトリに設定したのか いくらでも解釈できるから
801 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:18:39 ] >>800 あれ?もう1回やったらなぜかできました。 ありがとうございました。
802 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:27:25 ] こらこら。 システム環境変数を書き換えたら、IDE(またはコマンドライン)は立ち上げ直さないと駄目だぞ。
803 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:59:46 ] >>783 C++における参照の意味は狭いかもしれないけど 値渡し、参照渡しの意味はどの言語でも同じ。 本当の参照渡しを体験したかったらFortranをやるといいだろう。
804 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:04:48 ] JavaでPCに送られてくるパケットをフィルタリングすることは可能でしょうか? 可能だったら、役に立ちそうなクラスなんかも教えていただけるとありがたいです。
805 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:12:07 ] >>804 標準APIだけじゃ無理。 パケットキャプチャじゃなくて、パケットフィルタリングなのか。 それだと jpcap みたいな外部ライブラリ使っても無理のような。
806 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:14:50 ] >>799 それJavaにアドレスの中身を指示する演算子が無いだけちゃうんかと たとえばx.valueとかを交換すれば交換できるだろ
807 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:31:36 ] >>806 値の交換とオブジェクトそのものの交換は違うだろう。
808 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:36:06 ] >>807 そこが本質じゃないって。 JAVAの場合、オブジェクトはアドレスしか指せない。プリミティブは値しか指せない。 Cは中身もアドレスも指定できる。だからオブジェクトの交換という荒業が出来る。
809 名前:デフォルトの名無しさん mailto:sage [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* 自体の交換ができてないんだから交換できない、とした方が説明が楽。
810 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:44:45 ] 質問者の意図とずれた話を続ける事に意味があるのかと問いたい。
811 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:46:45 ] >>809 参照渡し/値渡しの説明の文脈では、な。
812 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:56:53 ] 一般的にはパラメータへの再代入は無意味と覚えときゃいいよ。 なんなら全部のパラメータにfinalをつけてもいいくらい。(Javaのfinalは再代入不可を明示するシンボル。念のため。) コンパイルエラーが出ないのは、互換性のためだろうけど……
813 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:07:25 ] 参照渡し/値渡しに関しては 間違ったことを書いているサイトが少なくないな。 2chでは、本は買うな、Webで十分だ、みたいな意見がよく出るけど それも考え物だな。
814 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:11:06 ] >>813 俺は実際にプログラミングやっててわかったけどな。 つうか本は参考程度にしか買わないしポインタ関連なんて一冊も買ってない
815 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:11:51 ] >>812 >一般的にはパラメータへの再代入は無意味と覚えときゃいいよ。 呼び出し側では意味がないけど、呼び出された側では意味があるんじゃ?
816 名前:デフォルトの名無しさん mailto:sage [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; } まかり間違って こーゆーのが普及したりなんかすると 「配列渡し」っていう新語ができるわけだな。たぶん。
817 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:16:44 ] 「プログラミングやった」程度で理解した気になる奴ばかりだから、 今までバラバラな見解の悲惨なレスが繰り返されてたんだろ… 利用できるのと仕組みをおさえるのは違う
818 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:17:30 ] >>815 意味はあるけど可読性を下げるから推奨しないな >>816 むしろコンテナ渡しかと
819 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:46:03 ] >>808 なんで本質じゃないんだよw オブジェクトの中身を書き換えるんじゃなくてポインタ交換ができる/できないの話だよね?
820 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:49:13 ] なんで言語の仕組みに関してこんな大議論になってんの? 質問している初心者ならまだしも、回答者側の人間は 信頼できるソースを自分で確認して終わりだろ? まさか皆が皆 >俺は実際にプログラミングやっててわかったけどな。 とか言っている馬鹿と同じなのか?
821 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:58:19 ] よくわからないところは俺様解釈で乗り切って 他人にも押し通す、これがJava厨。 こういうテキトーな態度でもなんとなく扱えてしまう言語、それがJava。
822 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:10:38 ] >>813 雑誌の記事で Java は参照型は参照渡し…… とか書いてあるの、結構見たような。
823 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:32:16 ] core JAVAには、 Javaは参照渡しだとかほざいちゃってる著者が 未だに地球上に存在していてウザイ早く氏ね って書いてある
824 名前:デフォルトの名無しさん [2007/03/27(火) 02:07:04 ] 3人の死刑囚がいます 王様は3人の死刑囚に言いました 「ここに白い帽子3つと黒い帽子が2ある、白か黒どちらかをお前たちにかぶせ 白い帽子をかぶったものが逃げたらそのまま逃がしてやろう、ただし黒い帽子をかぶった ものが逃げたらその場で射殺する」 死刑囚は自分がなに色の帽子をかぶっているかはわかりませんが 他の二人がかぶっている帽子の色はわかります 王様は3人とも白い帽子をかぶせました 3人はしばらく考えた後、自分が白だと確信していっせいに逃げました さて、なぜ自分が白だと確信できたのでしょう? ※アイコンタクトとかそういう答えじゃない
825 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 02:17:29 ] 全員植草教授だった
826 名前:デフォルトの名無しさん mailto:sage [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人は一斉に逃げた。
827 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:16:14 ] わざわざこのスレに投下したのは プログラマに論理的に考えさせようとしたのか。 それなら俺はあえて逆をいく。 どうせいずれ死刑になるんだからここで射殺されたところで大差ない。 だからいちかばちかで逃げ出してみた でも、これだと「自分が白だと確信して」を満たさないか・・・
828 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:22:22 ] 主人公がこんなところで死ぬはずないから、では
829 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:23:10 ] 王様が黒い帽子をふたつ手に持っていた。
830 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:25:22 ] 3人は日ごろの顧客とのやりとりにより エスパー能力を鍛えられているプログラマーで、 なぜか、自分が白だということを、本能的に過信した。
831 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:38:37 ] magcup便利でし。感動しマスタ
832 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:42:53 ] 死刑囚である3人全員がそこまで頭が切れるはずがない
833 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:51:12 ] Aは>>826 のように考察し逃げることとした。 Bは黒と白の帽子を前にどうしてよいかわからなかった。 Cは黒と白の帽子を前にどうしてよいかわからなかった。 Aが逃げ出したのでBはつれられ逃げ出した。 Aが逃げ出したのでCはつれられ逃げ出した。 Aは射殺された・・・
834 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 04:21:24 ] >>772 まさに「javaとjavacのverをあわせれば良い」 解決策1 % java -version でJREのバージョンを確認。 % javac -version でJDKのバージョンを確認。 JREと同じバージョンのJDKを入れてコンパイルしなおす。 解決策2 javacのバージョンと同じバージョンのjavaをフルパス指定で明示的に呼ぶ。
835 名前:デフォルトの名無しさん mailto:sage [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 だから確率的には逃げたら負け
836 名前:デフォルトの名無しさん [2007/03/27(火) 08:10:09 ] BufferedReaderのreadLineのブロックを解除したいのですが、どうしたらよいでしょうか
837 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 08:59:10 ] 初心者スレでくだらねえクイズごっこやって楽しいか?
838 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 11:43:27 ] >>824 とりあえず最初にテストしろと言われてるので逃げ出すテストをしてみた
839 名前:804 mailto:sage [2007/03/27(火) 13:30:57 ] >>805 外部ライブラリ使っても無理ですか……。 Javaでは難しい(というか無理)なんでしょうか? 同じことを2度聞くような形になりますが、どうしても諦めきれないので返答お願いします。
840 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:39:48 ] >>839 JNI使って奮闘してくれ。
841 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 16:29:57 ] ;;;;彡 ミ;;;;;;;;;;;;;;;ミ ;;;チ' ィ''' ヽ、_ ___,,,,,、`ヾ、;;;;;;ヾ 〃 ./ア三三三三ヾ タィ三三三ッ、 `y;;;;チ ~" ,,=r≡ァ、 ..~ _,,二、 ̄ヾキ };;ネ ー''"` kオッ' ,ヾ';;;, /,,ヒェア,≧ー" };;;ト '" ー‐''" ,;;;; ::'~ヾ…‐ ´~ {;ツ ...,,,;;;;;;;:: ::::... キ::} | ,,' ,r"'、:::: __、 {|ィ/. __ ; .:: :;!、_ | 支 |`ヾ、. . : : : レ' | 力 | _ ,ィ=ヽ、 , '、 ..::  ̄`ー.__| 点.|_ ヽ.: : リ ._| 点 |_[_ `ヽ ヾ、 、 tェ--ニ二~_.\ /ァ ッ / \ /Y l、 ` . i `ヾ‐'ー'ーL_~≧≦二二二二二二二二二二二ナく__,ム ヽ } `、 ` 、 ̄ ¨ ¨ "ノ '/ `ヽ、 `、y-‐ヾヽ´¨ ,,〉 、 `ー = - ' / ヾ、 ゞ、___人_ / \ 、 :::. / ヽ、 ヾ ̄´ ̄ \ :::::::::::.... ...::::リ} 、 ` \::::::::, `ー---- '::::::::/ .ト、 ー _ ¨\;:,, / | `ヽ、 `ヾt、_ \,,......,,,イ ト、 `ヽ、‐―- - - 、、_ !t_
842 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:00:56 ] java.io.File#listFiles()ではArrayListをFile[]に変換しているようですが 1.0にコレクションがなかったから互換性のためという解釈でよいでしょうか。
843 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:03:58 ] >>840 了解です。ありがとうございました。
844 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:12:35 ] >>842 どのように解釈しようが その人の勝手で良いと思われ。
845 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:13:17 ] Vectorはあったので、そのつもりがあればVectorにしてたと思う。 配列使うのかコレクション使うのかは、統一とれてないねえ。 真っ当な総称型があるならコレクションで決まりだろうけど erasureなんて導入して・・・アホか。
846 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:14:07 ] >>845 Vector があっても、中身が File ってのを保証できないんだがな。1.4 までは。
847 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:16:07 ] >>697 isExists()もつかうべき
848 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:17:06 ] >>703 ja.wikipedia.org/wiki/Servlet
849 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:20:34 ] なぜここに来てそんな遅レスを
850 名前:デフォルトの名無しさん mailto:sage [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]) ってのを使って解かなければならないんですが 分かる方教えてください。
851 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 18:45:23 ] この時期に慌てて宿題の丸投げなんかするなよ 単位落としてしまえ
852 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 18:52:26 ] 宿題スレなんてのもあるのにアレだけど、 宿題に答えてやる奴ってなんなのかね? ソフトウェア業界に対するいやがらせ?
853 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 20:45:42 ] いいじゃん。どうせお前ら技術と給料は学生並みなんだから
854 名前:デフォルトの名無しさん [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の二つを試したのですが、いずれも×でした。ファイアーウォールはテスト用サーバなので設定していません。 以上、よろしくお願いします。
855 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:05:25 ] 初めて質問します、場違いだったらすみません(´・ω・`) 昨日からwinXPでJavaを始めた者なのですが EclipseとNetbeans、どちらの開発環境が使いやすいのでしょうか? また人気なのはどちらか教えて頂けませんか? 宜しくお願いします。
856 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:07:28 ] 初心者なら迷わずeclipse
857 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:15:36 ] SwingやりたいならNetBeanもいいな。
858 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:24:07 ] つかSwingバリバリの事務アプリならNetBeans一択。 手書きでできる程度のウィンドウだけならeclipseも可。 他の部分はeclipseの方が洗練度が高いと思うけど好み次第かな。
859 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:28:19 ] おお、沢山のお答え有難う御座います>< Swingのことはまだ考えていないので まずはeclipseで慣れてみようと思います。 教えて頂き有難う御座いました。