[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 17:23 / Filesize : 229 KB / Number-of Response : 870
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2008/01/13(日) 00:25:22 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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質問・相談スレッド110【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1197710566/

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

次スレは>>980あたりで。

2 名前:デフォルトの名無しさん [2008/01/13(日) 00:34:43 ]
ニダ。

3 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 00:35:32 ]
   ∧  b
  /●ヽ/
 (∧_∧)  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< しねよおめーら
 (    )  \_____
 | | |
 (__)_)

4 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 00:46:56 ]
>>pc11.2ch.net/test/read.cgi/tech/1197710566/987

2つめの質問について。
(5)です。
www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Varargs/Varargs.html
とか、"Java 可変長引数"あたりのキーワードで調べれば?

1つめの質問について。
ちゃんと調べてないけど、コンパイル段階で
> それ1つだけ
になってるんじゃ?つまり検索は発生しない。


5 名前:987,993 mailto:sage [2008/01/13(日) 01:12:58 ]
>2つめの質問について。
>(5)です。
>www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Varargs/Varargs.html
>とか、"Java 可変長引数"あたりのキーワードで調べれば?
>
>1つめの質問について。
>ちゃんと調べてないけど、コンパイル段階で
> それ1つだけ
>になってるんじゃ?つまり検索は発生しない。

「それぞれ1つだけ書いたら」というのは、その時は
method("str2");で、(1)(3)(4)のどれもが呼ばれますよね、
シグナチャとしてはマッチしてますよね、
ということの単なる確認(思考実験)です。
実際には(1)(3)(4)をオーバーロードメソッドとして書いて、
(1) public void method(String... s) {}
(3) public void method(String s) {}
(4) public void method(String s,int... i) {}
それからmethod("str2");します。
その時(1)が呼ばれるらしい事は分かっているのですが、
じゃ、(1)を削ったら(3)(4)どっち?と。
で、そもそもどういう検索順なの?と。
という事なんです(^^;

--
リンクは、見てみました(どうもありがとうございます)が、
第一引数から可変長をアーリーアクセス扱いの時期の
記事のようで・・・
可変長引数のあるオーバーロードメソッドの検索順の定義
までは追求なさってないようでした。


6 名前:987,993 mailto:sage [2008/01/13(日) 01:18:51 ]
それと書き忘れましたがsuperからの継承かどうかも関係あるのかも・・・
というのもわかってません(^^;


7 名前:デフォルトの名無しさん [2008/01/13(日) 03:14:35 ]
質問です
文字列から数字だけを取り出そうとすると

at java.long.Integer(Integer.java …) ってエラーがでます。


ボタンが押されたらサイトにアクセスしてhttpの文字列から数字だけを取り出すプログラムです

8 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 03:20:22 ]
質問です、で始めるなら何を聞きたいか明確に述べなさい。

9 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 04:09:48 ]
質問です。
いつになったらsunは符号なし整数を使えるようにしてくれますか?
バイナリデータ扱うとすごく大変です。

10 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 04:10:14 ]
>>5
www-06.ibm.com/jp/software/websphere/developer/j2se/guide/pdf/j2se5.pdf
の39ページ。
大本に当たりたいのなら
jcp.org/en/jsr/detail?id=201

> その時(1)が呼ばれるらしい
いや(3)。>>4の説明を読んで何故(1)だと思うの?



11 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 07:22:24 ]
NodeList を for でまわしてノード参照しながら、そのうちの特定のノードを削除とかすると
NodeList の長さが変ったりするバカ仕様は何なの?

12 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 07:38:07 ]
>>11
1999 年頃だったかな。IBM の何とかという日本人 (後に AlphaWorks に逝った) が Java の
お勉強に作った xml4j と言う XML パーサがデファクトスタンダードとして世に広まってしまって、
その頃からそういう動きだったよ。その後 Apache に引き継がれ Xerces と名を変え、今の
JDK の標準 XML 実装として使われている。だから XML 関連 API の C 臭さ、使いにくさ、
挙動の不自然さ全てこの日本人のせい。

13 名前:デフォルト [2008/01/13(日) 09:35:55 ]
javaのプログラマになったらどんな仕事がありますか?

14 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 09:47:44 ]
>>13
仕事してません><

15 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:11:52 ]
バイナリデータと整数の符号の有り無しの相関関係がわからない

16 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 12:12:14 ]
一番上のビットが+/-に使われるか使われないかの違い。
情報工学の本見れば必ず書いてある。

17 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 13:42:15 ]
それは知っているけど、なんで大変なの?

18 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 13:50:23 ]
byte の負値が暗黙変換で int に格上げされると上位 3 バイトのビットが全て立ってしまう
(例: 0x80 → 0xFFFFFF80)。そのままビット論理和やビット論理積取ると想定外の結果に
なるから、byte → int 格上げ時には必ず 0xFF でマスクしてやる必要がある。
だがこれを忘れてもコンパイルは通るし、負にならない限りは正しく動いてしまうからちょっと厄介。

19 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 13:55:28 ]
実行時バグの追跡はしんどいからな

20 名前:デフォルトの名無しさん [2008/01/13(日) 13:59:14 ]
学校のjavaの課題むずい…



21 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 14:07:02 ]
>18
普通はbyteのままでやるもんじゃないのか?

22 名前:987,993 mailto:sage [2008/01/13(日) 14:10:39 ]
>10
ありがとうございます!
確かに・きっちり一致・autoboxing・可変長引数の順に拡張して
探していくとありますね。langspec-3.0.pdfの本ネタの方にも
phase1,2,3で上記検索をしていくことが
15.12.2 Compile-Time Step 2: Determine Method Signatureに
書いてありました。助かりました!


23 名前:987,993 mailto:sage [2008/01/13(日) 14:12:00 ]
そもそも私がおかしいと思って質問したのは、actualtests(笑)に
QUESTION: 118
class Alpha {
public void foo(String... args)
{System.out.print("Alpha:foo ");}
public void bar(String a)
{System.out.print("Alpha:bar ");}
}
class Beta extends Alpha {
public void foo(String a)
{System.out.print("Beta:foo ");}
public void bar(String a)
{System.out.print("Beta:bar ");}
public static void main(String[] argv) {
Alpha a = new Beta();
Beta b = (Beta)a;
a.foo("test");b.foo("test");
a.bar("test");b.bar("test");
}
}
answer:
Alpha.foo Beta.foo Beta.bar Beta.bar
とあったからです。
Alphaのfooはstaticじゃないです。煙が出るほどみましたから(笑)。


24 名前:987,993 mailto:sage [2008/01/13(日) 14:13:16 ]
おかしいおかしいと考えていて、langspec-3.0.pdfも見ましたが
今回みたいにここの個所しか定義の記述がある分けないというところまで
たどり着けないでいました。
ありがとうございます。
これは、一般化すると仕様の読みが足りないだけなので、
wikiはいいですよね。actualtests警告という事はあるかもですが。
ほんとうにありがとうございます。


25 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 14:17:40 ]
>>21
byte 対 byte のビット論理演算は int。まぁ大抵はシフト演算 + ビット論理演算で併せて使うから、
想定外のところのビットが立ってるとおかしな結果になる。

一般的なのだと 4 バイト整数のバイトオーダー変換とか、8 ビットバイトバイナリを 6 ビットずつ
整数化するような処理考えてみ。

26 名前:987,993 mailto:sage [2008/01/13(日) 14:18:45 ]
引用した035-055のQ118のactualtestsバージョンは070507でした。


27 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 16:49:09 ]
>>21
バイナリ演算のつもりでやってても、式中で暗黙に int へ変換されてたりしてハマる事は結構多い。
バイナリをいじるコードを書くときは、しつこく ( b & 0xff ) と書いておいた方が無難。


というか、普通にこれはJavaの言語仕様が腐ってると思うんだけど、こういう仕様である必然性って何かあるのかね。

28 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 16:52:33 ]
何でこんな仕様なの? と疑問に思ったら BugParade で検索するとすっきりする。
余計にモヤっとすることの方が多いかも知れんが。

29 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:05:30 ]
java-house.jp/ml/archive/j-h-b/026762.html#body

30 名前:デフォルトの名無しさん [2008/01/13(日) 19:10:00 ]
int a=Integer.valueOf(str).intValue() が使えないんですけどどうすればいいですか?



31 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:41:46 ]
>>30
1. 文末にセミコロンが入っているかチェック。
2. str に正しい値が入っているかをチェック。
3. a を正しく使用しているかチェック。

つーか valueOf(String).intValue() とかやるくらいなら parseInt() 使え。

32 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:50:00 ]
>>29
それって、Cでバッドノウハウが使えちゃうことを説明しているだけで、
Javaで警告すら出ない理由にはなってないような・・・。

33 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:18:29 ]
>>32
何に対してどういう警告を出せと言ってるの?


34 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:24:52 ]
それを言われると確かに困るが・・・

35 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:10:21 ]
Cから初めて、今Javaやってるのですが
クラスやら継承やらが、複雑で…というか
スパゲッティプログラムになりやすい?じゃヴぁって


なんか、.がつくたびに、クラス見て戻って先に進めない。疲れる

36 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:34:03 ]
そりゃCでも構造体とか関数使いまくれば一緒じゃ?

37 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:45:32 ]
>>35
一般的にはJavaのほうがスパゲッティになりにくい。
>>35が書きづらく思ってるのは単に慣れてないだけ。

下の方は、EclipseなりNetBeansなりでコードアシスト使えばいい。

あと、文面からしてクラスや継承を使いすぎてる感じがする。
必要のないところにまでそういう機能を使う必要はない。
Cからの人なら、最初はC的に書いて、徐々にOOPに置き換えていけば一番楽だと思う。

38 名前:デフォルトの名無しさん [2008/01/13(日) 21:48:03 ]
jarの中からjarが置かれているディレクトリを取得するにはどうすれば良いでしょうか

new File(".").getAbsoluteFile();
で取得出来ると思っていたのですが
cd /hoge
/usr/java/jrexxx/bin/java -jar /usr/local/XXX.jar
で取得出来たのはカレントディレクトリの/hogeでした・・・。

39 名前:デフォルトの名無しさん [2008/01/13(日) 22:09:34 ]
できないので諦めろ

40 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:16:27 ]
>>39
ありがとうございます
System.getProperty("java.class.path")から無理やり取るか思案中です。
それとも.shとか.batとか用意してjarと同階層から起動すれば良いのか・・・鬱だ。



41 名前:デフォルトの名無しさん [2008/01/13(日) 22:18:28 ]
すみません。2回目の質問です。

現在googleカレンダーのjava用apiを勉強しているのですが、ライブラリのimport
ができなくて困ってます。
コンパイルの際、必要なjarファイル(gdata-client-1.0.jarとgdata-calendar-1.0.jar)
はちゃんと指定してるつもりですがimportしたパッケージが存在しませんというエラー
が出てコンパイルが出来ません。

(コンパイルのコマンド)
javac -classpath /home/〜/gdata-client-1.0.jar:/home/〜/gdata-calendar-1.0.jar GCAccessor.java
(エラーメッセージ例)
パッケージcom.google.gdata.dataは存在しません
・・・

開発環境はOSはVineLinux4.1、jdkは1.6.0_03です。
ちなみに同じコードをwindowsでやった場合はコンパイル・実行できましたが
linuxではコンパイルすらできません・・・。

ネットでいろいろ調べたのですが、原因が分かりませんでした・・・。
ここなら詳しい方がいそうなので、どなたか原因の分かる方教えていただけないでしょうか?

42 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:21:26 ]
>>37-38
ありがとー
今、入門書系を片手に、チマチマサンプル弄くってる。

どうも、Cで慣れすぎてて。
privateやらそこらは理解できたけど、継承やらのところでウワー、うぜーとおもて

43 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:05:22 ]
>>38
System.out.println(MyClass.class.getResource(MyClass.class.getName().replace('.', '/')));

44 名前:ぽっぽ [2008/01/14(月) 01:25:11 ]
入力ストリームですが、

BufferedReader rd = new BufferedReader(new InputStreamReader(System.in,1));  //第二引数のバッファサイズを1で指定

String str = rd.readLine();
System.out.println(str);  //strの内容を表示

↑の文で入力した内容を表示させたとします。
で、一行目でバッファのサイズを1で指定してるので、
1文字しか読込めないプログラムになったと思うのですが、
最後のprintで確認すると入力した分がそのまま表示されます。

バッファサイズが1なので abcdefg と入力すると
a だけが表示されると思ったのですが、何か理解が間違ってますか?

45 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:28:52 ]
間違ってます。
バッファサイズを何だと思ってるの?

46 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:39:35 ]
>>44
バッファサイズというのは一度に読み込める量を決めるもので、それを超えて読み込めない
という制限をつけるものではない。

100 バイトのデータ読むのに 5 バイトのバッファを用意すれば 20 回も I/O が発生して
効率が悪いが、100 バイトのバッファなら 1 回で読み込める。逆に 1000 バイトのバッファは
使わないメモリ 900 バイト分の無駄。

47 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:43:31 ]
>>44
str を洗濯機、入力した文字列を風呂の残り湯、
バッファサイズをバケツの容量と考える。
洗濯に必要な水が30リットルだったとする。
これに対してバケツの容量は5リットルだとしよう。

さて、君はあきら君にバケツを使って
洗濯機に風呂の残り湯を汲み移すように言いつけた。
バケツで5リットルしか汲めないので、
あきら君は洗濯機には5リットルを移して作業を完了した。

あきら君の仕事に満足できないと思えるなら
1文字だけ読み込むという動作が正しくないと理解できるはず。

48 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:47:17 ]
いや、あきら君はポンプを使うべきだ。

49 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:49:02 ]
>>48
それを言うなら、
仕事はあきら君ではなくポンプに行わせるべきだ
じゃね?

50 名前:ぽっぽ [2008/01/14(月) 01:50:35 ]
なるほど・・・。
strに格納できる文字数の上限かと誤解してました。
先輩方ありがとうございます。



51 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:53:33 ]
>>47
質問者の期待する結果から違ってるんだからそんな例は意味がない。

52 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:41:07 ]
>>50
ソースを使え、ルーク。

53 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 07:47:24 ]
>>11
NodeListってDOMの?
それならDOMのNodeListはライブオブジェクトだから。
変更はすぐさま反映される。そういう仕様。

54 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:10:45 ]
>>53
XPath で取得した NodeList では反映さないので、仕様として甘いといわざるをえんがな。

55 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:25:51 ]
それ実装の問題

56 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:52:56 ]
DOM の状態が変る or ノード取り出すたびに XPath 評価しなおして反映させるのが
現実的なわけないんだから、NodeList を live とした時点で仕様が破綻してるのも分からんのか。

57 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:55:10 ]
DOMだったら反映させても非現実的にはならんと思うけど。

58 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:59:13 ]
ん、ひょっとして XPath がどれだけ遅いかご存知でない?

59 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:03:52 ]
W3Cに文句言えよ。バカじゃないの?

60 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:04:01 ]
XPath使ってない場合の話



61 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:19:12 ]
暴れるだけだからバカの相手はしなさんな

62 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:23:09 ]
>>59
仕様の問題か実装の問題かで何でいきなり W3C までエスカレーションすんだよw アホ?

63 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:33:14 ]
W3C って API やらスキーマだけ規定して オナヌー してるところでしょ。
「俺たちは崇高な活動家。ありがたい API 作ってやったから勝手に
実装して使っとけ。実装側から提案なんてありえないw」 臭がとても強いところ。

64 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:46:46 ]
あそこは今は大手 IT 企業のアーキテクト連中の肩書きアップの場になってる。
キャリア官僚が省庁や特殊法人渡ってるのとよく似てる。

65 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:02:17 ]
うろ覚えの記憶なので恐縮ですが
メソッドだか関数だかに変数を引数として渡した時、
呼び出し先でその引数に変更を加えることで、元の変数も同様に変化させるには
どうすれば出来たんでしたっけ。戻り値を使ったわけではなかったと思います。

66 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:11:09 ]
>>65
可変オブジェクトを、複製せず、そのままメソッドに渡せば良い。

67 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:18:07 ]
リターンバッファという奴です。

68 名前:デフォルトの名無しさん [2008/01/14(月) 12:51:57 ]
>>67
それってもしかして、CやC++のポインタに相当する?

69 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:53:49 ]
Jtableにて1列のみクリック不可(選択編集不可)にしたいんですが、
どうすればいいでしょう?

70 名前:デフォルトの名無しさん [2008/01/14(月) 13:11:47 ]
>69
JTableModel#isCellEditable



71 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 13:35:54 ]
>>66-67
ありがとうございます。
一般的に参照渡しって言われるようなものですね。

72 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 13:41:24 ]
>>70
早速のレスありがとうございます。

JTableModel#isCellEditable

とは、TableModeインターフェイスのisCellEditableを使えということでしょうか?
isCellEditableメソッドを調べますと
rowIndex、columnIndex に位置するセルが編集可能な場合に true を返します。
と出てきました。

import java.awt.*;
import javax.swing.*;
class JTableTest extends JFrame {
JTableTest() {
getContentPane().setLayout(new FlowLayout());
JTable tb = new JTable(3, 3);
tb.setValueAt("あああ", 0, 0);
tb.setValueAt("いいい", 1, 1);
tb.setValueAt("ううう", 2, 2);
JScrollPane sp = new JScrollPane(tb);
sp.setPreferredSize(new Dimension(230, 80));
getContentPane().add(sp);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JTableTest");
setSize(250, 120);
setVisible(true);
}
public static void main(String[] args) {
new JTableTest();
}
}
とした場合 A列を、選択編集クリックすべて不可にしたいのですが、どうすればいいでしょうか?

73 名前:てきとう mailto:sage [2008/01/14(月) 13:44:09 ]
JTable tb = new JTable(3, 3){
  public boolean isCellEditable(int r, int c){
    return (r != 0);
  }
};


74 名前:デフォルトの名無しさん [2008/01/14(月) 13:59:30 ]
>>73様 レスありがとうございます。

JTable tb = new JTable(3, 3);

JTable tb = new JTable(3, 3){
    public boolean isCellEditable(1,1){
        return (1 != 0);
    }
};

と変えてみましたがコンパイルエラーになってしまいました。
以下エラーメッセージ
JTableTest.java:9: 型の開始が不正です。
public boolean isCellEditable(1,1){
    ^
JTableTest.java:11: <identifier> がありません。
}
^
エラー 2 個

しつこくて申し訳ありませんが、よろしくお願いします。

75 名前:てきとう mailto:sage [2008/01/14(月) 14:03:59 ]
まちがえたw JTable のメソッドじゃねーやハズカピー

JTable tb = new JTable(new DefaultTableModel(3, 3){
  boolean isCellEditable(int row, int column){
    return (column != 0);
  }
});


76 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:05:16 ]
>>74
(思わずカエレ!!と言ってしまいそうになる)

それは無名クラスの定義文です。
内部クラス > 無名クラス(途中)
ttp://www.javaroad.jp/java_class15.htm

>>75
有るにはありますが、挙動に注意です。

77 名前:デフォルトの名無しさん [2008/01/14(月) 14:25:38 ]
>>75
>>76

どうもありがとうございました
とても勉強になりました。

78 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:26:56 ]
javaのとっかかりで
GUIを作りながら勉強できるサイトとかありますか?

79 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:39:59 ]
>>78
java.sun.com/docs/books/tutorial/uiswing/index.html
日本語版ってあるんだっけ…?



80 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:44:24 ]
出来れば日本語で
ほんとの初心者向けのが助かります



81 名前:デフォルトの名無しさん [2008/01/14(月) 19:15:31 ]
創るJavaじゃね?

82 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:24:31 ]
>>81
宣伝乙。どこにGUIの話が載ってるの?
book.mycom.co.jp/MYCOM/html/book/978-4-8399-2681-6/index/978-4-8399-2681-6.html

83 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:52:56 ]
GUIなら最近java6対応の本が出てたな。

84 名前:デフォルトの名無しさん [2008/01/14(月) 19:58:44 ]
NetBeansでつくって学ぶ Java GUI & Webアプリケーションと書いてあるが?

85 名前:デフォルトの名無しさん [2008/01/14(月) 20:24:46 ]
教えて下さい

コマンドプロンプトでjava -version 入れたら
Error: could not open `C:\Program Files\Java\j2re1.4.2_16\lib\i386\jvm.cfg'
こんなエラーが表示されます。
J2SDKを1.4.2.16→1.4.2.10と変えたらこんな事に・・・
どうすればよいのやら・・・

86 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:39:04 ]
>>85
たぶん環境変数の問題だと思うけど、
取り敢えずコントロールパネルの中の"Java"を起動してみて
期待する設定になってるか見てみたら?

87 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:44:53 ]
というか1.4.2の最新って1.4.2.14くらいじゃなかったけ?


88 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:45:35 ]
ああ、バージョンダウンしたのか。

89 名前:デフォルトの名無しさん [2008/01/14(月) 20:57:15 ]
>>86
コントロールパネルにJava Plug-in があって
それ起動しようとしたらエラー・・・

>>88
バージョンダウンです

90 名前:sage [2008/01/14(月) 21:11:26 ]
うぅぅぅ
the time zone update file
がダウンロードできない(T_T)

Welcome xxx | Logout
[continue]

先に進まない



91 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:14:05 ]
前のバージョンをアンインストールして再インストールする方をクリーンインストール。
たぶん、ごみが残るからごみは手動で消す。

92 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:14:39 ]
>>89

93 名前:デフォルトの名無しさん [2008/01/14(月) 21:57:17 ]
>>91
85です。解決しました。

1_4_2_10や1_4_2_16はうまくいかなかったです。
なぜうまくいかないのか今はわかりません。今後調べてみます。


ひとまずアンインストールを行った後、1.5.0_14をインストールし、
ユーザ環境変数のみ
PATH
C:\Program Files\Java\jdk1.5.0_14\bin
に設定して、
javac
java -version
の確認がとれました。
ありがとうございました。

94 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:04:27 ]
java_home設定しといた方が良いよ。

95 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:51:51 ]
Stringで受け取った文字列に対しての色変更はどのようにしたら良いのでしょうか?


96 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:56:49 ]
>>95
・Stringには色はありません。
・標準入出力には色を付けられません。
・Graphics.setColorを使えばいいと思うよ。
・何十回も質問を読み直してから来ればいいと思うよ。

97 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 05:06:32 ]
なんというおもしろ質問

98 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:24:40 ]
>>95
勘で。
pc11.2ch.net/test/read.cgi/tech/1196543694/354


99 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:22:05 ]
javaはコンソール制御できないからなぁ。

100 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:24:22 ]
そういや一応、Cursesはあるよね。



101 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:28:53 ]
エスケープシーケンスでできんじゃね? NT 系のコマンドプロンプトでできなくなったんだっけ?

102 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:59:24 ]
できない

103 名前:デフォルトの名無しさん [2008/01/15(火) 09:50:35 ]
double/doubleを小数点以下第一位まで表示するにはどのようにすればいいのでしょうか??

104 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 10:25:54 ]
formatでいんじゃね

105 名前:デフォルトの名無しさん [2008/01/15(火) 10:35:26 ]
www.hcn.zaq.ne.jp/no-ji/game/game.htm
ここのシューティングのJAVA版が動かないんですが。どうしたら動きますか?


106 名前:デフォルトの名無しさん [2008/01/15(火) 12:13:48 ]
作った人に聞く

107 名前:デフォルトの名無しさん [2008/01/15(火) 12:53:22 ]
MozillaParserを使い始めたんですが
クイックスタートに載ってる

File parserLibraryFile = new File("./native/bin/MozillaParser" + EnviromentController.getSharedLibraryExtension());
String parseLibrary = parserLibraryFile.getAbsolutePath();
MozillaParser.init(parseLibrary, "C:\\dapper\\mozilla\\dist\\bin");
Document domDocument = MozillaParser.getInstance().parse("<html>Hello world!</html>");
MozillaParser.getInstance().stopRunning();

がうまく動きません
Pathなどは通してありMozillaParserそのものは呼び出せますが
メソッドが呼び出せません

ひょっとして仕様変ってますか

108 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:56:55 ]
エラーメッセージは?

109 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:21:59 ]
SE 6 で JavaScript 使えるようになったことだし、そろそろ PDA のフルブラウザ程度の
標準 GUI コンポーネント作れよというチラ裏。

110 名前:デフォルトの名無しさん [2008/01/15(火) 13:37:25 ]
つJavaFX Mobile



111 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:48:40 ]
>>12
NodeListの動作はW3C DOMが決めているものだから、xml4j云々は関係な
いでしょ。W3C DOMの仕様だって、IEとMozillaのJavaScript DOMの挙動
を明確化するところから始まったものだし。



112 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:17:41 ]
java初めて1ヶ月の初心者です。
エクリプスで普通に実行できるプロジェクトが、DOSからjreで起動しようとするとシンボルが見つかりませんエラーを頻発するのは何が原因と考えられますか?
ちなみにjavacをやっても、同じ数だけ、クラスが見つからないよエラーが出ます。

113 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:20:11 ]
クラスパス関連

114 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:05:05 ]
ttp://www.uploda.net/cgi/uploader2/index.php?file_id=0000048495.txt
サンプルみながら弄くってるのですが

ボタン押したら終了するようなのって
このソースのどこら辺をどう変えたらいいですか

115 名前:デフォルトの名無しさん [2008/01/15(火) 16:10:00 ]
>114
jframe.setDefaultCloseOperation(jframe.DO_NOTHING_ON_CLOSE);
JavaDoc、JFrameのsetDefaultCloseOperationの項目を嫁

116 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:10:54 ]
actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して
終了ボタンなら終了動作をすれ

117 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:17:12 ]
>>actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して
すんません、どうやって判定するんですか

118 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:17:37 ]
==

119 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:49:14 ]
ネットで既にあるアプリケーションのサンプル、ソースを見ると
Main.java A.java B.java のようにクラスごとにファイルを分割しているもの
見るのですが、どのように分割したファイルを関連付けすればいいのでしょうか

例えばMenuItem等の基本的機能を実装したMain.javaに、
JTreeを実装したA.java、TextAreaを実装したB.javaを追加するような形です

120 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:52:03 ]
同じパッケージ (同じディレクトリに保存してある) なら何もしなくても使えるだろ。



121 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:57:19 ]
すみません、表現がおかしかったですね
・MainでMainメソッド等を作った
・A,BでMainメソッド込みで必要な機能をそれぞれ作った
 ↑
 これをMainに関連付けるにはどうしたらいいのでしょうか

122 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:00:46 ]
↓エスパー求む

123 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:01:32 ]
すみませんが、質問です。
intの配列を、リストに変換するライブラリはないでしょうか?
commons にありそうな気がするのですが。

Arrays.asList() を使ったのですが、
intの配列だと、配列全体を一要素とするリストができてしまいます。
java.util.Arrays.asList(new int[]{1,2,3})
=> (java.util.Arrays$ArrayList<E>) [[I@18f6235]

Integerの配列なら、そのままリストに変換されるのですが。
java.util.Arrays.asList(new Integer[]{1,2,3})
=> (java.util.Arrays$ArrayList<E>) [1, 2, 3]


124 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:04:21 ]
なんか最近質問も回答もひどいな。

125 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:11:56 ]
>>123
一発変換じゃないけど、commons lang の
Integer[] org.apache.commons.lang.ArrayUtils#toObject(int[])
とかで、いったんInteger[]に変換してからArrays#asList()で変換するとか。

126 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:14:33 ]
>>121
「関連付ける」っていう表現がJava歴12年の私によくわからない。
何を心配しているのだ?


127 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:15:42 ]
List<Integer> list = new ArrayList<Integer>();
for(int i: array){
  list.add(i);
}

なぜこの程度のコードのために非標準ライブラリを使おうとするんだ?

128 名前:123 mailto:sage [2008/01/15(火) 17:27:31 ]
>>125
おお、これでOKです!ありがとうございます。
commons.apache.org/lang/api/org/apache/commons/lang/ArrayUtils.html#toObject(int[])

>>127
まあループをなるべく書かないのがポリシーなのだと思ってください。
LISPで再帰せずにmapを使うようなものです。
commons-langは、まずどんなプロジェクトでも使わないことはないし。

129 名前:123 mailto:sage [2008/01/15(火) 17:39:13 ]
趣味じゃなくて実用の話をすると、これは配列の中身をログに書き出すために、
リストに変換したかったのです。配列#.toString()と違い、List#toString()は
各要素を出力してくれますので。

ロギングのためにわざわざループを書いたり、その後使うあてのない諸々の変
数を宣言したりするのは煩雑ですが、これなら一行ですみます。

log.debug("x = " + Arrays.asList(ArrayUtils.toObject(xarray)));


130 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:41:35 ]
それは十分趣味だと思うが。



131 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:51:26 ]
>>129
そーゆー用途なら java.util.Arrays#toString(int[]) でも良いのでは?
もっとも、1.5以上じゃないと使えないけど。

132 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:05:40 ]
final
static final
static

の使い分けがわかりません。

final float TEST = 1.0f;
static final float TEST = 1.0f;
static TEST = 1.0f;

どういう状況・どういう時に使い分けるのですか?

133 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:13:45 ]
>>132
メンバ変数の話だとすると、
final
変更できないメンバに付ける。コンストラクタで初期化することはで
きるので、あるインスタンス内でのみ有効な実行時定数として使う
static final
そのクラスの全インスタンスに共通の定数として使う
static
そのクラスの全インスタンスに共通の変数として使う



134 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:17:52 ]
>>133
ありがとうございます。
static final は Cでいうと #define みたいなものと捕らえて大丈夫ということでしょうか?


135 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:23:12 ]
>>134
そんな感じですね。

例を思いついたので書いてみる
class 人間 {
static final int 足の数 = 2; // 足の数は全人類共通
static int 人口;
final String 名前; // 名前は一度決めれば変わらない

人間(String n) {
名前 = n;
}
void 出生() {
人口++;
}
void 死去() {
人口--;
}
}


136 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:24:23 ]
定数の特徴がstaticでfinalなんだよ
って昔言われたな

137 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:26:21 ]
>>135
わかりやすい例で納得できました
ありがとうございます

138 名前:123 mailto:sage [2008/01/15(火) 18:36:34 ]
>>131
> そーゆー用途なら java.util.Arrays#toString(int[]) でも良いのでは?
> もっとも、1.5以上じゃないと使えないけど。

おおお!全然知りませんでした!ありがとうございます。
早速これに乗り換えます。

139 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:41:14 ]
>>135
カタワは人間でないt(ry

140 名前:デフォルトの名無しさん [2008/01/15(火) 19:23:05 ]
>>139
カタワは基本構造から差し引かれているわけだから2本って定義は間違ってないよ。




141 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:48:07 ]
java.nio.channelsのSelector#wakeupについて教えて下さい。

このメソッドはSelector#selectの待ち合わせを解除するものですが、
動かしてみたところ、
Selector#selectで待ち合わせていないときに(複数回)Selector#wakeup
を呼び出すと呼ばれた回数だけ次のSelector#selectで待ち合わせをしなくなるように見えますが
そういうものですかね?






142 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:05:46 ]
>>129
>List#toString()は
>各要素を出力してくれますので。

そうとは限らない。おまいは何か勘違いしている。
Listの実装に何を使うかによって違う。



143 名前:デフォルトの名無しさん [2008/01/15(火) 21:16:48 ]
import java.util.*;

class Super {}
class Sub extends Super {}
public class Main {
    static void test1() {
        List<? extends Super>s = new ArrayList<Sub>();
        s.add(new Super());    //あ
        s.add(new Sub());    //い
    }
    static void test2() {
        List<? super Sub>s = new ArrayList<Super>();
        s.add(new Super());    //う
        s.add(new Sub());    //え
    }
    public static void main(String args[]) {
        test1();
        test2();
    }
}

上記コードの あ・い・う・え すべて「シンボルを見つけられません。」というエラーになるんですが
本には あ・い はエラー、う・え はOKって書いてあるんです。
これて、本が間違ってるんでしょうか?それとも何かコンパイラーの設定とかあるんでしょうか?
本はソフトバンククリエイティブの 「 Java2 Exam 310-055 」で、336ページです。
ここだけがどうしても理解できないので、スッキリしたいです。

144 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:32:51 ]
ひどいコードだな。

145 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:30:40 ]
>>141
java.sun.com/javase/ja/6/docs/ja/api/java/nio/channels/Selector.html#wakeup()
>ある選択操作から次の選択操作までの間にこのメソッドを 2 回以上呼び出しても、
>1 回だけ呼び出したときと同じ結果になります。

ってあるから、もしそうだとしたらバグかな?
どうでもいいとは思うが

146 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:34:42 ]
漠然とした質問で申し訳ありませんがお聞きします。
eclipseなどだと、ソーエディタの変数名にマウスカーソルを合わせたりすると「型名 変数名 -クラス.メソッド」
という感じで表示されますよね?
この文字列ってどうにかして取得できませんか?イメージとしては
元のJavaのソースコードを食わせて、すべての変数に対して「型名 変数名 -クラス.メソッド」
が取得できればいいです。
eclipseはJavaで書かれていると聞いたので、こういったことを処理するクラスがあるのでしょうか?

147 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:39:24 ]
>>146
リフレクションAPIを使うといいよ

148 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:40:23 ]
Eclipseはすべて自前でやっている
Eclipseのプラグインを作ってEclipse(というかJDT)の機能を使うって手もあるけど・・・

そのJavaのソースコードを普通にコンパイルして、実行時にリフレクションで取得する方が簡単と思う
たとえばAっていう名前のクラスなら A.class.getDeclaredMethods() とか

149 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:41:14 ]
>>146
できねーよ。自分でパーサー組んでコンテキスト分析すれ。

150 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:42:28 ]
>>147
早速のご回答ありがとうございます
大変恐縮なのですが、そのAPIはどのパッケージにあるか教えていただけますか?



151 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:44:43 ]
おまいら別クラスの任意の位置のローカル変数にどうやってリフレクション使わせる気だ。

152 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:53:16 ]
変数名が要るのか、失敬
それなら、classファイルのデバッグ情報を読む・・・ちょっと手間だな

153 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:35:59 ]
>>105
ダブルクリック。

154 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:01:28 ]
>>143
本の通りで、コンパイルエラーになるなら本が間違ってる。
もしくは、本の説明が足りない。もしくは、本にとってあなたは想定外の人物。

私の環境だと「え」以外はエラー。

155 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 01:03:42 ]
>>143 の疑問は解けないかもしれないが、今回探した中では一番読み応えのあった文章
Javaの理論と実践: Generics、了解!
(初級:ただし、JDK 5.0でのgenericの基本に慣れている必要がある)
ttp://www.ibm.com/developerworks/jp/java/library/j-jtp01255/

156 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:20:37 ]
>>121

Main.java
 ……
 static int hogehoge = 1;
 static A a = new A();
 static B b = new B();
 ……
 a.starting();

A.java
class A {
 public void starting() {
  int i = Main.hogehoge;
  Main.b.ending(i);
  ……
 }
}
試せ。適当に書いてみてエラーが出なければ多分正しい

157 名前:デフォルトの名無しさん [2008/01/16(水) 15:01:17 ]
Iteratorを使ったループでの同期化について質問させてください。

動画の描画のような、毎秒数十回呼び出されるループ内で、ArrayListをIteratorで回してます。その一方で、別スレッドからこのArrayListに追加するためのメソッドがあります。

(例)--------------
ArrayList<Hoge>() hoge = new ArrayList<Hoge>();

loop(){ // 毎秒数十回呼び出すループ
 Iterator<Hoge> it = process.iterator();
 while(it.hasNext()){
  Hoge h = it.next();
  if(!h.loop()){ // Hoge内のループがfalseを返したら削除
   it.remove();
  }
 }
}

public void addHoge(Hoge h){
 hoge.add(h)
}
------------------

こういう場合にIteratorループでConcurrentModificationExceptionが起こらないようにするには、どうすれば良いのでしょうか?

synchronized修飾子で囲ってみたり、Collections.synchronizedList使ってみたりと色々試したのですが、どうしてもConcurrentModificationExceptionが起こってしまいます。

大人しくVector + Enumerationを使ったり、for(int i = 0; i < hoge.size(); i++) で回せば解決するのですが、Iteratorでの解決策が無いはずは無いと思うのです・・・。

158 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:15:37 ]
loopの中をsynchronized(process)で、
addの中をsynchronized(hoge)で
くくる?
www.nextindex.net/java/thread/syncblock.html

159 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:17:19 ]
CopyOnWriteArrayListを使ってIterator#removeの代わりにList#removeにする・・・とか。

160 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:34:58 ]
JAVAを使う職業に転職したいのですがいい本はないでしょうか?
今は会社員ですが、辞める予定ですので、早く覚えたいのです。



161 名前:157 mailto:sage [2008/01/16(水) 16:47:54 ]
さっそくのご回答有難うございます。

そしてすいません、4行目の

Iterator<Hoge> it = process.iterator(); は、
 ↓
Iterator<Hoge> it = hoge.iterator();

の間違いでした。

>> 158さん
ありがとうございます。
どちらのメソッドもsynchronizedブロックで括るということですね。
むむむ、しかし試してみたところ、やはりadd後に即、loop内でConcurrentModificationExceptionが起こってしまいました。

ArrayListをiteratorで回してる最中は、追加・削除等の処理は一切行っちゃダメってことなんですかね。何か凄く不便に感じます。
多分、僕が無知なだけなんだろうとは思いますが・・・。

>>159さん
やや!並行処理用のコレクションがあったとは知りませんでした。
パフォーマンスも満足行くものみたいですね。
ありがとうございます、活用してみます。

やはり、並行処理するならば、ArrayListにこだわるのは良くないということなんでしょうかね。

MapにはConcurrentHashMapがあるようですね。以下のサイトを参考にしました。
ttp://www.itarchitect.jp/technology_and_programming/-/24161.html

返答ありがとうございます。

162 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:51:04 ]
>>157
API を読みましょう。ってことなのでしょうか
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Collections.html

163 名前:デフォルトの名無しさん [2008/01/16(水) 16:57:34 ]
>157
List list = new ArrayList() {
  @Override
  public Iterator iterator() {
       ArrayList list = new ArrayList(this);
       return list.iterator();
  }
}

164 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:20:23 ]
<fmt:bundle> と <fmt:setBundle> って機能まとめて一つで良いよなぁという独り言。

165 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:17:07 ]
>>163

it.remove();


166 名前:デフォルトの名無しさん [2008/01/17(木) 09:41:33 ]
すいません、Javaを勉強しようと思っているのですが
色々種類がありすぎてどれから始めるのが良いのか分かりません。
おすすめとかありますか?
ちなみに、僕のスペックです。
・経験言語
 Perl(4年)/PHP(3年)
 Ruby(半年)/C(半年)
 JavaScript(1年)

167 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:54:15 ]
Java の色々種類って何だよ
開発環境なら Java SE 6.0 + Eclipse 3 使っとけ。
GUI なら Swing (Java SE 標準) 使っとけ。
Web 系なら Tomcat 使っとけ。
データベースなら PostgreSQL 使っとけ。
i-Appli, ゲームは知らん。

168 名前:デフォルトの名無しさん [2008/01/17(木) 10:40:08 ]
>166
得意分野から入るってならばSeasar2あたりでJ2EEをやる
Ruby(Rails)やったことあるならば大雑把には感覚つかめる筈
まったく知らない分野に手を伸ばしたいならばSocket通信とSwingあたりがいいかと思われ。
簡単なチャットプログラムあたりを作成するのがちょうどいい

169 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 14:43:05 ]
JDK6に含まれている JDBC 4.0 APIには、DataSet<T>やBaseQueryなどが
含まれていないようなのですが、これらは、他のライブラリに入っているのでしょうか?
 それとも、JDBC 4.0仕様から削除されたのでしょうか?

170 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:27:49 ]
リファレンス実装が十分固まらないうちにリリースに間に合わなくなって 1.6 から除外された。
その後は知らん。



171 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:30:36 ]
>>167
MySQL勧めとけ

internet.watch.impress.co.jp/cda/news/2008/01/17/18139.html

172 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:37:09 ]
Sun に買われた Cobalt がどうなったか知らんのか。

173 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 16:45:23 ]
Stream の close() の仕方について質問です。
以下のようなみたいなコードがあったとき、

FileInputStream fis = new FileInputStream("hoge.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);

今まで以下のように書いていました。

br.close();
isr.close();
fis.close();

ところでピアソンの「プログラミング言語Java 第4版」p.450(20.4 InputStreamReader と OutputStreamReader という節)
をみると、以下の記述があります。

>どちらの場合も、変換ストリームをクローズすると、関連付けされているバイトストリームもクローズされます。
>標準ストリームを変換するような場合には、クローズされるのは常に好ましくはないかもしれません。
>したがって、変換ストリームをいつクローズするかは慎重に検討してください。

これをよむと、以下のように isr.close() するだけで fis も close() されるという理解でよいですか?

br.close();
isr.close();

以下のように br.close() だけだと、isr と fis は close() されないですよね。

br.close();


174 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 16:48:59 ]
創るJava って第2版がでるんだな。(2008/1/23)

175 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 17:00:26 ]
>>173
br.close()だけでぜんぶクローズされるはず。
手元にソースがなくて確認はしてないけど、ストリームにかぶせるタイ
プのストリームはぜんぶclose()で中のストリームのclose()を呼んでい
たと思う。


176 名前:デフォルトの名無しさん [2008/01/17(木) 17:08:09 ]
>173
その文章書く時間あるならば、先にJavaDoc嫁
void close() throws IOException
    このストリームを閉じ、関連付けられているすべてのシステムリソースを解放します。ストリームがすでに閉じている場合、このメソッドを呼び出しても何も行われません。

177 名前:173 mailto:sage [2008/01/17(木) 17:15:07 ]
>>175
どうもありがとうございます。BufferedReader のソースを見たところ、
close() の内部で、BufferedReader のコンストラクタで受け取った Reader の close() を呼んでいました。

今後プログラムを書くときは、br.close(); だけを書くようにしよう。

>>176
すみません、聞く前に javadoc 読むようにします。
ちなみに PrintWriter#close() は、Javadoc では「関連づけられているすべてのリソースを開放する」とは
書かれていませんでしたが、ソースを見ると、やはりコンストラクタで受け取った Writer をclose() していました。

178 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 17:41:49 ]
>>177
1.6 のドキュメントだと、PrintWriter#close() には
「関連するすべてのシステムリソースを解放します」って書いてあるけど。

「ストリームを閉じます」だけで終わってるのは 1.4以前かな。

179 名前:173 mailto:sage [2008/01/17(木) 17:47:19 ]
>>178
手元にある DL 済みの javadoc は 1.5 です。(はじめのカキコ時に java のバージョンを書いておくべきでした)
「ストリームを閉じます」だけで終わっています。

やはり DL ずみの1.6 では、>>178 さんのようになっていますね。

180 名前:デフォルトの名無しさん [2008/01/17(木) 19:31:49 ]
JavaServletについてわからない事があるので教えていただけますか。

/*環境*/
OS:Windows xp Professional SP2
開発アプリケーション:Eclipse Version 3.3(Tomcatの起動はxampp内のTomcatを利用)
サーブレットコンテナ:Apache Tomcat 6.0(XAMPPのTomcatプラグインより利用)

Eclipseから出たメッセージ
「インポートされた javax.servlet は見つかりません。」

//Servlet.java
import java.io.*;
import javax.servlet.*; //”javax.servlet”の所で赤の波線が出る
import javax.servlet.http.*; //”javax.servlet”の所で赤の波線が出る
public class Servlet extends HttpServlet {
public void doGet (HttpServletRepuest req,HttpServletPesponse res)throws ServletException, IOException {
}
}

多分、servlet.jarか、servlet-api.jarが必要になるのだと思いますが。
これを、どのようにすれば、正常に動作させる事が出来るのか解らないです。

どうぞよろしくお願いします。




181 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:44:24 ]
初心者です、何を始めたらいいですか?

182 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:54:56 ]
Javaでぐぐるとこから始めたらいいです

183 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:08:06 ]
最近自分で調べた方が早い事ばかり聞いてくるな。

184 名前:デフォルトの名無しさん [2008/01/17(木) 20:26:40 ]
POIでVBAを含んだExcelを読み込み、保存するとVBAが消えてしまいます。
消えないようにする方法は無いでしょうか。
POIでVBAを書き込む方法ってありますか??


185 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:36:22 ]
Exception#printStackTraceで出力される例外情報を文字列化してログファイル
におちしたいんですが、良い方法ありますか?

186 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:47:06 ]
つ ロギング

187 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 22:49:01 ]
>>185
ちなみにNetBeansだとロギングAPIでコード補完されます。

188 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:08:31 ]
>>185
Throwableクラスに、文字列を取得するのにぴったりのメソッドがあるだろ?

189 名前:デフォルトの名無しさん [2008/01/17(木) 23:10:36 ]
サーブレットとJSP簡単に言うと如何使い分けてるのが一般的?

190 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:26:54 ]
MVCのCとVで分ける



191 名前:デフォルトの名無しさん [2008/01/17(木) 23:55:22 ]
servletでフィルターをかける場合にfilterインターフェイス使うみたいだけど、
インターフェイスって、implementしたクラスで実装するんじゃないのですか?


192 名前:デフォルトの名無しさん [2008/01/17(木) 23:58:04 ]
途中で書き込んでしまった。
色々な本なんかを見てると実装している部分が見当たらないんです。
俺の認識が間違ってるだけですか?


193 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:58:16 ]
その実装クラスを作るときに ServletFilter インターフェイス使ってんじゃん。

194 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:11:19 ]
なぜ継承やオーバーライドをするのでしょう?
似通っているクラスであれ、継承せずに新しいクラスを作り、
新しいメソッドを作ればいいとか思っちゃうのですが。
効率性の問題ですか?

195 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:17:43 ]
>>194
君みたいな開発者のおかげで、僕の仕事があります。ありがとう。

196 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:18:05 ]
>>194
ヒント:ポリモーフィズム

197 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:19:55 ]
>>194
新しいクラスも既存のクラスも同じインタフェイスで扱いたいから

198 名前:191 [2008/01/18(金) 12:32:05 ]
>>193
例えばinit()なんですけど、
実行される内容は自分で書きますが、
「最初に実行される」という決まりはどこに定義されていて、
自分の作ったクラスにどのように継承?されているのでしょうか?

199 名前:デフォルトの名無しさん [2008/01/18(金) 13:35:03 ]
そんな決まりはない
ただの慣習
されども慣習を守らないとみんなが迷惑する

200 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:01:12 ]
>>199
おい!

>>198
最初にinit()を実行するという決まりは、Servlet Specificationで規定されている。
だから、Servlet仕様にきちんと準拠して実装されたServletコンテナなら
Filterとして作成され、web.xmlにFilterとして登録されたクラスの
init()メソッドを呼び出すように実装されている。



201 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:10:15 ]
すみませんが、質問です。

Luceneというオープンソースの検索エンジンを使ってみたのですが、思ったよ
りパフォーマンスが出なかったので、プロファイラ hprof で分析してみました。

itpro.nikkeibp.co.jp/article/COLUMN/20061102/252525/

結果
CPU SAMPLES BEGIN (total = 50358) Thu Jan 17 17:43:10 2008
rank self accum count trace method
1 33.34% 33.34% 16787 300001 java.lang.Thread.run
2 33.33% 66.67% 16786 300005 java.lang.ref.Reference.getPending
3 17.58% 84.25% 8853 300364 java.io.RandomAccessFile.readBytes
4 11.94% 96.19% 6013 300777 java.io.RandomAccessFile.readBytes
5 0.33% 96.52% 167 300473 jrockit.net.SocketNativeIO.readBytesPinned
6 0.29% 96.81% 146 300537 java.lang.String.<init>
7 0.19% 97.00% 96 300536 org.apache.lucene.store.BufferedIndexInput.readByte
8 0.15% 97.15% 77 300587 org.apache.lucene.store.IndexInput.readString
9 0.14% 97.29% 69 300561 org.apache.lucene.store.IndexInput.readString
10 0.12% 97.41% 58 300578 org.apache.lucene.store.IndexInput.readString
...(略)...

てっきり java.io.RandomAccessFile.readBytes がCUP時間のほとんどを占める
かと思ったら、それは30%に満たず、java.lang.Thread.run と
java.lang.ref.Reference.getPending が全体の2/3を占めていました。

これは一体、何を意味するのでしょう?パフォーマンス改善には何をしたらい
いと思われますか?


202 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:11:14 ]
>>198
サーブレットコンテナを作る側と、サーブレットを作る側で
「お互いこういう決まりで作りましょうね」という規格(Servlet API)
の上で決まっているだけで、
唯一固有の実装により定義されるわけではない。

例えばTomcatなら、そのコードの中で、
Filterクラスをインスタンス化して、最初にinit()を実行し、
該当リクエストがある度にdoFilter()を実行する、
というように実装されている。
Tomcatのソース読めば見つかるはず。

これはあくまでTomcatの実装であって、
他のサーブレットコンテナ(ResinやJetty、商用ならWebSphereやWebLogicなど)なら
また別の書き方で、フィルタの扱い方が実装されているけど、
やはりServlet APIの規則に従って実装されている。
それをはずすとServlet API準拠って名乗れないからね。

繰り返すけど、この辺は、APIの仕様に定義されている。
これは文書読まないとわからない。
どのAPI使うにしろ、そういった約束事の塊に出くわすので、
慣れろと言うしかない。

203 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:19:23 ]
明快Javaってどうなの?

204 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:08:31 ]
自分で読んで決めろ。それか該当スレ
やさしいシリーズじゃなけりゃなんでもいい。

205 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:10:38 ]
創るJavaのほうがいいよ。

206 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:13:14 ]
>>205
もうすぐ新版もでるしね




はじめて工作員活動しちゃった

207 名前:デフォルトの名無しさん [2008/01/18(金) 17:13:59 ]
パネルの背景を画像にして、その上に各コンポーネントを貼り付けていこうと
考えているのですが、うまく表示されません。
1.最初は画像を背景にしたJLabelをJPanelに貼り付けて、
さらにその上に貼り付けていこうと考えていたのですが、
うまく作成することができませんでした。
(上に貼り付けたコンポーネントが正しく表示されない)
2.そこで、JPanelのpaintComponet部分でdrawImage
してみましたが、画像は描写されませんでした。

1の場合LayoutはSpringLayoutやNullで行へば回避できるのか?
そもそも2で行おうとしていることは可能なのか?
また、このような場合に行う良くある方法についてのアドバイスをお願いします。



208 名前:デフォルトの名無しさん [2008/01/18(金) 17:43:12 ]
javaの勉強中なんですが、
VectorやHashtebleなどでコンパイルすると、

注:Hashtable_sample.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。

とでるんですが、どうすれば解決できますか?

209 名前:デフォルトの名無しさん [2008/01/18(金) 17:48:45 ]
DOS窓って一体何のことですか?

210 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 17:49:30 ]
>-Xlint:unchecked オプションを指定して再コンパイルしてください。



211 名前:デフォルトの名無しさん [2008/01/18(金) 17:49:56 ]
>>207
自己レス
2のほうでImageIcon経由Imageを作成したらうまく動きました。
もしかしたら、ロードが終わってない状態で
画像を表示しようとしていたのかもしれません。

212 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 17:55:01 ]
>>207
1の方法でもちゃんと動いたぞ
import略
public class Test {public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {
JLabel label = new JLabel(new ImageIcon(getClass().getResource("image.png")));
label.setLayout(new FlowLayout());
label.add(new JButton("button"));
JPanel panel = new JPanel(new BorderLayout());
panel.add(label);
JFrame frame = new JFrame();
frame.add(panel);
frame.pack();
frame.setVisible(true);
}});}}

213 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 17:55:36 ]
>>209
コマンドプロンプトのことです

214 名前:デフォルトの名無しさん [2008/01/18(金) 18:01:38 ]
>>213
もしかしてWindowsのことですか!

215 名前:デフォルトの名無しさん [2008/01/18(金) 18:03:22 ]
-Xlint:unchecked オプションを指定ってどうすればいいんですか??

216 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:10:07 ]
>>208
Generics でぐぐるといいかもしんない

217 名前:デフォルトの名無しさん [2008/01/18(金) 18:16:53 ]
>>212
ありがとうございます。
さっそくJwindowに変えてやっていみたのですが、動きますね。
ラベルでなくパネルのほうにコンポーネントを貼り付けようとしたせいで
背景の画像が表示されなくなっていたのかもしれません。


218 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:17:23 ]
>>215
javadocの開発ツールjavacの部分嫁

219 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:55:48 ]
>>208
javac -Xlint:unchecked Hashtable_sample.java

220 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:52:24 ]
ジェネリックメソッドで
<T> T getT(){
    return //T型のオブジェクト生成
}
ってやりたいんだけど、どうすんの?つうかコンストラクタは引数無しじゃなきゃダメ?




221 名前:デフォルトの名無しさん [2008/01/18(金) 20:27:09 ]
Tに引数なしのコンストラクタがある保証ないじゃん

222 名前:デフォルトの名無しさん [2008/01/18(金) 20:30:37 ]
<T> T getT(Class<T> clazz){
    return clazz.newInstance();
}
とやるしかない
もしくはクラス名を渡すなど。

223 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:38:03 ]
>>222即レスあざす。・・・マジすか
まぁ、妥協できないとこじゃないんで別の実装考えますね。

224 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:53:21 ]
設計の問題でどうにかなる

225 名前:デフォルトの名無しさん [2008/01/18(金) 21:02:46 ]
>223
自分も同じようなこと考えたんだけど、コンパイルされた後には型情報ってなくなるんだよね。
あくまでコンパイル時にキャストがうまくいくってだけで、そこまで。
ただ、使い方を制限するなど、使い道は多いぜ。
<T extends HogeHoge> T getT(Class<T> clazz){
    return clazz.newInstance();
}

226 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:03:11 ]
ファイルから数値を読み込んでそれの合計とか平均とかだしたいんですけど
どうすればいいですか

227 名前:デフォルトの名無しさん [2008/01/18(金) 21:23:15 ]
勉強するといいよ

228 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:39:00 ]
javadoc読めば良いと思うよ

229 名前:デフォルトの名無しさん [2008/01/18(金) 21:51:14 ]
あんまりWebアプリ作る技術者系の人はここにはいないのかな

230 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:14:29 ]
>>220
>>155 おすすめ



231 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:20:57 ]
>>225,230
確かにTが実行時にコンスタントプール内のクラスを指し示してる保証もできないですしね。
バイトコード弄くりじゃ結局ジェネリックス使わないし・・・結局
<T> T createT(T t){
  //tが不正でないか調べる
  return t;//正しいtを返す
}
って感じにしました。まぁ、超個人的なことなんで何したいのか分からないと思いますが・・・
ありがとうございました。

232 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:15:50 ]
antのbuild.xmlってなんであんなフリーダムになっちゃったの?

233 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:14:35 ]
swingのJLayeredPanelに

ImageIcon icon = new ImageIcon(img);
jlabel.setIcon(icon);
jPanel.add(jlabel);
jlayeredPane.add(jPanel, 2);
おおざっぱですがというような方法で層状にして画像を表示しているのですが、上の6ピクセル行くらいが空白になってしまい表示できません。これを解決する方法ってありますか?
iconを使うと無理?

234 名前:デフォルトの名無しさん [2008/01/20(日) 22:51:55 ]
JLabelのBorderとかを設定
JLabelの機能を使わないならば、画像表示用のコンポーネントをJComponentを継承して作るほうが楽かも

235 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:54:53 ]
Borderですか。
そっちでやってみます。
ありがとうございます。できるかな。。

236 名前:デフォルトの名無しさん [2008/01/21(月) 01:18:13 ]
Cプログラマ必須テキストです!

mori.eco.to/

237 名前:233 mailto:sage [2008/01/21(月) 10:26:56 ]
>>234
結局borderではできませんでした。。
継承とかうまく扱えないので、他になにかいい解決方法があるといいのですが。

238 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:45:41 ]
>>237
setBorder(null)してみた?

239 名前:デフォルトの名無しさん [2008/01/21(月) 12:25:38 ]
それを言うなら、BorderFactory.createEmptyBorder(だっけ?)じゃね?


240 名前:デフォルトの名無しさん [2008/01/21(月) 15:07:50 ]
javaでCPUや、メモリ量などのシステム情報を取得するにはどうしたらいいですか?



241 名前:デフォルトの名無しさん [2008/01/21(月) 15:10:19 ]
format c:

242 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 15:30:11 ]
質問です。
無制限強度の管轄ポリシーファイルを%JAVA_HOME%\jre\lib\securityに置いて鍵長制限解除をしようとおもったのですが・・・、

CPadからGUIを起動して暗号・複合を行うと442bitsの鍵を扱えるのですが、
それらをまとめたjarをクリックして起動したGUIではどうしても暗号・複合ができませんorz
#無制限強度の管轄ポリシーファイルの必要ない64bitsの鍵はできます。
例外処理の内容は制限を超えた長さの鍵を使った時にでるものが投げられるので、
jarで起動するとどうも無制限強度の管轄ポリシーファイルを見てない感じなのですが・・・。


教えてくださいせんせー。

243 名前:デフォルトの名無しさん [2008/01/21(月) 16:49:40 ]
CPadってのは何者か解らんけど、開発環境か?
エスパーしてみると、jarをダブルクリックした時に使われるJREと、開発環境で使われるJREが異なるのが理由かと思われ

244 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:38:56 ]
CPad for Java2 SDK

245 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:40:12 ]
尿Pad

246 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 18:15:50 ]
>>243
まさにその通りでしたorz
開発環境ではjdk下のjreを参照してるのですね。勉強になりましたorz
てんてーありがとうー


//チラ裏
jdk
%JAVA_HOME%jdkx.x.x\jre\lib\security\US_export_policy.jarとlocal_policy.jar

jre(jrex.x.xは最新のjreフォルダ)
?\jrex.x.x\jre\lib\security\US_export_policy.jarとlocal_policy.jar

247 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 18:48:30 ]
ホットスポットがネイティブコードにコンパイルされるのって単純に実行回数?
それともバイトコード分析して?

248 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:05:21 ]
HotSpot実装ならホットスポット解析

249 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:30:39 ]
ホットスポット探すのに実行回数を一切使わないって事はないと思うが。

250 名前:デフォルトの名無しさん [2008/01/21(月) 22:20:59 ]
失礼します。
現在JAVAでRS232Cを使って通信を行なう事を行なっております。
まず現在行なっている仕様は
OS :Vine Linux 2.6.16 - 0vl160
J2SE :1.4.2_16
RXTX :2.07 i686 linux
Java Communications API :3.0 Linux

:参考サイト:
JAVA開発メモ - CommunicationsAPI
www.moriwaki.net/wiki/index.php?%5B%5BCommunicationsAPI%5D%5D

:現状:
JAVAにおいてはコンパイル・実行ともに問題無く使用できますが
RS232Cに関係するプログラムをコンパイルするとエラーが
起こります。
(www.ais-com.co.jp/jikken/java232c.html)でお借りしました。
雛形プログラムをコンパイルしたところ。
以下のような場所にシンボルが不明と出ました。
CommPortIdentifier
^
SerialPort.DATAITS_8....
^

実験は大学の実験室にて行なっているので
現在はエラー文をお見せできないので本当に申し上げません。
恐らくですが、rxtxかCommunicationsに問題があると思いますが
現在の所その解決策は見つかっておりません。

どなたか解かる限りでかまいませんので教えてください
よろしくお願いします。



251 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:31:45 ]
classpath通ってないんだけちゃうん??

252 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:01:17 ]
だろうね。説明サイトでは javacomm20-x86.tar を JAVA_HOME/jre/lib/ext に
入れろと書いてあるがちゃんと入ってるか? また入れたディレクトリの JDK が
本当に使われてるか? 下のコマンドでも叩いて確認しる

ls `dirname \`which javac\``/../lib/ext/javacomm20-x86.tar

どうしてもダメならクラスパス設定しる

export CLASSPATH=$CLASSPATH:/path/for/javacomm20-x86.tar

↓と、ここで満を持して lib/ext アレルギー患者が一言

253 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:43:10 ]
└→HDDが一杯で入りません。

254 名前:>>250 [2008/01/21(月) 23:52:19 ]
>>251
>>252
ご返答ありがとうございます。
classpathですね。明日早速試してみたいと思います。
また>>252さんのJDKが本当に使われているかを
試してみたいと思います。

255 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:58:31 ]
>>246
JREのパスを先に持ってくればいいんじゃね?

256 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:46:07 ]
匿名クラスを使わずにスレッドの生成できるんでしょうか?

257 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:59:39 ]
できる

258 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:07:14 ]
おまいらネットで役に立つと思った情報見つけたら広告くらいクリックしてやれよ。
という独り言。

259 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:45:00 ]
JAVAの練習に簡単なイメージビューアを作っています。

JFrameを継承したメインクラスにJMenubarをaddしてメニューを作っているのですが
ウィンドウを閉じるとメニューも一緒に消えてしまいます。

最後のウィンドウを閉じてもメニューは残るようにするにはどうすればいいのでしょうか?

260 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:59:55 ]
JMenuBar を static 宣言したりしないで、フレームごとに JMenuBar を new して add する。
とエスパー気味に答えてみる。



261 名前:デフォルトの名無しさん [2008/01/22(火) 03:09:15 ]
IDEで作ってみて解析してみれば?
最近この手の質問多すぎね?

262 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 03:14:02 ]
初心者無視スレや死滅スレ以前のはるか昔からですが何か。

263 名前:デフォルトの名無しさん [2008/01/22(火) 03:17:17 ]
まあでも、こう思うんだけど如何なの程度の推測持ってからの方が伸びるだろうね

264 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 04:24:20 ]
Logging API で Log4J で言うところの PatternLayout みたいなのって無いの?
tuka ひょっとしてわざわざ Formatter 作らなきゃダメなのかよ。

265 名前:デフォルトの名無しさん [2008/01/22(火) 10:29:03 ]
JDK5.0でのオートボクシングに関する質問です。

byte b = 1;
Integer i = new Byte(b) + new Integer(2);

この処理は問題なく実行されますが、処理の内容と順序は

1.Byte型とInteger型の足し算がアンボクシングでbyte型とint型の足し算になる
2.byte型とint型の足し算の結果はint型になる
3.int型がオートボクシングでInteger型となり代入される

これで合ってますか?
3はいいと思いますが、1-2は不安です。

266 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:36:43 ]
はい

267 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 11:54:45 ]
>>265
byte 型と int 型の足し算の際に byte 型が int 型に暗黙に型変換される。

268 名前:265 mailto:sage [2008/01/22(火) 13:43:15 ]
>>266-267
ありがとうございます。

269 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:18:27 ]
java5で配列から部分集合を全て列挙したいのですが,どのようにすればよいでしょうか?

270 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:44:15 ]
if文



271 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:44:17 ]
べき集合ってこと?

272 名前:デフォルトの名無しさん [2008/01/22(火) 15:51:30 ]
部分集合の条件を書けよw

273 名前:269 mailto:sage [2008/01/22(火) 16:20:56 ]
>>270
すみません.もう少し詳しくお願いします.

>>271
はい,べき集合の列挙です.分かり辛くてすみません

>>272
集合の条件はn個の自然数です.

274 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 16:37:40 ]
まともな質問もできねーのかよw
具体的にやりたいことをきちんと書く

275 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 16:47:03 ]
宿題スレ向きの内容じゃないの?べき集合の列挙ならアルゴリズムの問題。

276 名前:デフォルトの名無しさん [2008/01/22(火) 16:57:12 ]
文字コード変換で悩んでいます。

JIS 8単位符号:JIS X0201を使用して、変換を行いたいですが
実装がわかりません。

例)引数はString 戻り値もString
引数に0が入力された場合、JIS X0201を使用すると30に変換されるのですが
どのように実装を行ったらよろしいでしょうか??


277 名前:269 mailto:sage [2008/01/22(火) 16:57:47 ]
ごり押しですがべき集合を再帰的に呼び出すことで解決しました.
ありがとうございました.

278 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:15:12 ]
>>277
すぐ解決すんなら書くなよw

279 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:24:04 ]
>>276
> 例)引数はString 戻り値もString

そのインターフェイスは激しく変だぞ。何から何に変換したいの?
たとえば、Javaの1文字をJIX X 0201のコードにしたいのなら、
☆入力は char、戻り値は byte か int

もし、入力が複数の文字なら、
☆入力は String、戻り値は byte[]
じゃない?

JIS X 0201のコードはStringに成り得ないです。




280 名前:デフォルトの名無しさん [2008/01/22(火) 17:32:06 ]
"JIS X 0201のコードはStringに成り得ないです。 "
しらなかったです。

戻り値byte[]でも良いです。
結果的にはファイルに書き込めればよいので。

"☆入力は String、戻り値は byte[]
じゃない?"
で実装を教えてください。





281 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:41:22 ]
>>280

inputString.getBytes("JIS_X0201");
これだけ。

ファイルに書きたいだけだったら、
OutputStreamWriter writer = new OutputStreamWriter(
new FileOutputStream(fileName), "JIS_X0201");
writer.write(inputString);
という感じにOutputStreamWriterを使ってもいいね。


282 名前:デフォルトの名無しさん [2008/01/22(火) 19:06:11 ]
>>279
こいつアホ?

283 名前:デフォルトの名無しさん [2008/01/22(火) 19:23:15 ]
byte[] b = new byte[10];
byte[] temp_hoge = new byte[10];

これらふたつを比較して等しければtemp_Ahogeを返すようにしたいのですがどうすればいいのでしょうか?

if(ここに等しい条件を入れる){
return temp_Ahoge;
}

だと思うのですがアドバイスをお願いします。

284 名前:デフォルトの名無しさん [2008/01/22(火) 19:24:29 ]
>> 281
試してみましたが、
ファイルに何も書き出されませんでしたが、どうしてでしょうか??

実装は
String fileName = "C:\\tmp2\\sample.txt";
String inputString = "0";
OutputStreamWriter writer;
try {
writer = new OutputStreamWriter(new FileOutputStream(fileName),
"JIS_X0201");
writer.write(inputString);
System.out.println(inputString);

です。

285 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:34:43 ]
>>280
JavaのStringで保持してるbyteの文字セットはUnicode。
他の文字セットで保持する場合は、変換してbyte配列まま。

>>283
static boolean java.util.Arrays.equals(byte[], byte[])
但し、引数がnull同士の場合もtrueを返す。

286 名前:デフォルトの名無しさん [2008/01/22(火) 19:45:19 ]
>>285
レスありがとうございます。
早速使用させていただきます。

287 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:51:28 ]
>>284
さいごにwriter.close()してる?


288 名前:デフォルトの名無しさん [2008/01/22(火) 20:44:24 ]
>>287
書き忘れてました。

>>285
すいません。その変換することがよくわからんです。

289 名前:デフォルトの名無しさん [2008/01/22(火) 21:48:10 ]
A.javaというファイルとB.javaというファイルがあるとします。
このとき
A.javaからあるものをB.java
に渡したあとB.javaで処理をしてA.javaに返すプログラムを構築したいのですが
どのようなコードを書けばいいですか?

290 名前:デフォルトの名無しさん [2008/01/22(火) 21:51:40 ]
質問です。

JavaプログラムでCygwinに対して「javap -c 任意の.class」を行い、その結果を取り込みたいのですがどう行えばいいでしょうか。
ProcessBuilderを使えばいいようなのですが、そこから先が分かりません。
申し訳ありませんがよろしくお願いします。



291 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:52:11 ]
表現があいまい。
プロセス間通信みたいな事したいのならTCP/IPなり叩いてシリアライズされたオブジェクト渡すとか。

クラス間で単に見えれば良いだけならアクセス修飾子つけるとか

292 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:54:50 ]
>>290
ProcessBuilder から Process → InputStream の順に取得すればそこから javap コマンドの出力内容が取れる。

293 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:57:30 ]
cygwin は関係あるんだろーか?

294 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:59:48 ]
そんな質問者トラップに惑わされているうちはまだまだひよっこ。

295 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:01:33 ]
>>289
ファイルを処理するプログラムが希望なのか?

落ち着いて、用語を正しく使って質問しよう

296 名前:291 mailto:sage [2008/01/22(火) 22:03:46 ]
ややこしいな>>289

297 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:05:02 ]
>>289
public class A{
public static void main(String[] args){
  B b = new B();
  Object nanika = /* 何か */;
  Object kekka = b.shori(nanika)
}
}

public class B{
public Object shori(Object nanika){
  /* 処理 */
  return kekka;
}
}

298 名前:デフォルトの名無しさん [2008/01/22(火) 22:05:49 ]
早速のご解答ありがとうございます。

やりたいことは、.classファイルの情報をjavap -cコマンドで取得し、それらの情報を
プログラムで使用したいのです。

本当に初歩的ですいません。。。

299 名前:デフォルトの名無しさん [2008/01/22(火) 22:19:00 ]
大変失礼いたしました。
>>295を >>290に対する返答と勘違いしました、申し訳ありません。

試しに書いたプログラムです。

       ProcessBuilder pb = new ProcessBuilder("C://cygwin/Cygwin.bat","ls");
try {
Process p = pb.start();
InputStream stdIn = p.getInputStream();
InputStream errIn = p.getErrorStream();
int c;
while ((c = stdIn.read()) != -1) {
System.out.print((char)c);
}
stdIn.close();
while ((c = errIn.read()) != -1) {
System.out.print((char)c);
}
errIn.close();
int ret = p.waitFor();
System.out.println("process exited with value : " + ret);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
出力は一切ありませんでした。

300 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:24:05 ]
>>299
new ProcessBuilder("bash", "--login", "-c", "\"ls -laF\"")



301 名前:デフォルトの名無しさん [2008/01/22(火) 22:42:03 ]
>>296
あいまいすぎてすみません。
A( ttp://www.uploda.org/uporg1213982.zip.html )
というファイルがあってAのなかには

public static void main(String[] args) {
HelloWorldJNI hello = new HelloWorldJNI();
byte[] card_idm = new byte[16];
String temp;
String sid = "0404040404040404";

というコードがあるのですが、0404〜という特定のものではなく
Bが受け取る値をそのままAの上の部分に返したいんです。

302 名前:デフォルトの名無しさん [2008/01/22(火) 22:42:27 ]
>>300
回答ありがとうございます。

早速試したのですがエラーが、
java.io.IOException: CreateProcess: bash --login -c "ls -laF" error=2

試しに"bash"のみでやったところ同じエラーが返ってきました。
java.io.IOException: CreateProcess: bash error=2

パスか何かの影響なのでしょうか。。
また、Cygwinを無視して "cmd","cd ../"とやったところ

Microsoft Windows XP [Version x.x.xxxx]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\workspace\test>

という結果になり、cd ../については反映されていないようなのですが。。

303 名前:デフォルトの名無しさん [2008/01/22(火) 22:43:47 ]
>>302続き

という結果になり、cd ../については反映されていないようなのですが。。

304 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:45:50 ]
Eclipse3.3でtomcat6.0+JSPによるウェブアプリケーションを開発しています。
あるクラス(hoge)の作成には成功するのですが、そのクラスをJSPファイルから参照しようとすると
「NoClassDefFoundError: foo/bar」という例外が投げられてしまいます。
見つからないクラス(bar)というのはEclipseの機能である「ユーザー・ライブラリーの追加」で追加したJARファイルの中のクラスです。
・JSPファイルからこのクラスファイルを呼ばないようにする
・JSPやtocatなどを使用せず、かわりにmainメソッドを持つクラスを新たに作成し同様の処理を行う
などとすると、上記例外は生じません。
「ユーザー・ライブラリーの追加」によって追加されたクラスを含むクラスをJSPファイルで利用することはできないのでしょうか?
少々ややこしいですが、よろしくお願いします。

305 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:52:27 ]
>>302
フルパスで書け。"C:\\cygwin\\bin\\bash.exe"

306 名前:デフォルトの名無しさん [2008/01/22(火) 23:02:48 ]
>>305

解決いたしました、本当にありがとうございます。

307 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:06:23 ]
>>304
ユーザライブラリで追加した JAR ファイルを WEB-INF/lib の下に置け。

308 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:13:42 ]
>>301java bean使うとかプロパティファイルに追い出すとか単にpublic void setSID()なメソッドをAに定義するとか。

設計の問題なんだけどjavaの仕様自体は理解してるの?

してないならお勉強。

309 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:28:41 ]
>>308
レスありがとうございます。
卒業研究でJavaを使っているのですが全然わからなくて・・・。

310 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:29:39 ]
>>308
public void setSID()なメソッドをAに定義するというのは
A.javaのプログラム中に
public void setSID(){
というのを作って中で呼び出せばいいのでしょうか?



311 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:34:40 ]
初めっから勉強し直せ

312 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:51:35 ]
>>309
朝まで一夜漬けだ

浅煎り珈琲 - Java アプリケーション入門
ttp://www.nextindex.net/java/

313 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:26:07 ]
>>312
またそれかよ
宣伝乙

314 名前:login:Penguin [2008/01/23(水) 00:46:36 ]
String fileName = "C:\\tmp2\\sample.txt";
String inputString = "0";
OutputStreamWriter writer;
try {
writer = new OutputStreamWriter(new FileOutputStream(fileName),
"JIS_X0201");
writer.write(inputString);

と実装してみましたが、ファイルにはinputStringの値"0"が書き出された
だけでした。

やりたいこととしては、"0"を入力したときにJIS_X0201の値の"30"を
出力したいのですが、どうすればよろしいでしょうか??

315 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:54:27 ]
>>314
もしかして, '3' と '0' という文字を書き出したいの?

316 名前:login:Penguin [2008/01/23(水) 01:04:10 ]
"0"をJIS_X0201で読み込むと"30"という値になると思います。
自分の認識が間違っているかもしれませんので、"3","0"と分割して
書き出すやりかたがあれば教えてください。


317 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:23:58 ]
>>314,316
ある文字をJIS X 0201にエンコードしたときのバイト列を16進数の文字
列にしたい、ということなのね。

であれば、OutputStreamWriterは忘れて、
inputString.getBytes("JIS_X0201") で得たバイト列を1バイトずつ
String.format("%02x", ... で加工していくので良さそう。


318 名前:login:Penguin [2008/01/23(水) 01:31:48 ]
>>317
ご理解ありがとうございます。

実際の実装方法を聞いてもよいですか??
ファイルに書き込む処理まで行いたいです。

319 名前:デフォルトの名無しさん [2008/01/23(水) 01:37:47 ]
さすがに自分でやれよw

320 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:40:15 ]
>>318
317でここまで具体的にヒントが書いてあるんだから、あとは自分で書き
なさいな。




321 名前:login:Penguin [2008/01/23(水) 01:42:42 ]
ありがとうございます。
やってみるです。

322 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 04:12:01 ]
BigDecimalクラスで平方根の計算をしたいんですが、
これって用意されてないんでしょうか?
ググって見つかって喜んだらRubyでした orz


323 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 08:05:16 ]
用意されてないから自分で書くしかない。

324 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 08:18:10 ]
>>322
やはりそうですか。ありがとうございました。

325 名前:304 mailto:sage [2008/01/23(水) 08:31:13 ]
>>307
レスが遅くなってしまいすみません。
先ほど試してみたところ、上手くいきました。
ありがとうございました。

326 名前:デフォルトの名無しさん [2008/01/23(水) 11:22:00 ]
すみません。初心者の質問です。

System.out.printf("税金: $%.2f x 5.0% = $%.2f. \n", calcp, calctax);

で 5.0% と % を表示したいのですが、どうすればよろしいでしょうか?
よろしくお願いします。

327 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 11:24:38 ]
>>326
%%

328 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 11:30:06 ]
>>327
ありがとうございます!
やっとできた・・・(´∀`)

329 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:32:38 ]
オブジェクトをシリアライズ化してセーブしたファイルをロードし、
再びセーブしようとすると、こんなエラーが発生します
Exception in thread "AWT-EventQueue-0" java.lang.InternalError: Unable to bind [ファイル名] to parent
at sun.awt.shell.Win32ShellFolder2$4.call(Unknown Source)
at sun.awt.shell.Win32ShellFolder2$4.call(Unknown Source)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Unknown Source)
at sun.awt.shell.Win32ShellFolder2.getIShellFolder(Unknown Source)
at sun.awt.shell.Win32ShellFolder2$18.call(Unknown Source)
at sun.awt.shell.Win32ShellFolder2$18.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
対処方法は無いでしょうか

330 名前:デフォルトの名無しさん [2008/01/23(水) 18:38:57 ]
現在htmlから受け取ったデータをサーブレットで処理し、JSPで表示させるということをしています。
受け取ったデータをサーブレット内でDBの中にあるデータと照合し、
照合結果を出すということをしたいのですが、
サーブレット内の処理がうまくいきません。

ソースは

public class Servlet extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
req.setCharacterEncoding("Shift_JIS");
res.setContentType("text/html;carset = Shift_JIS");

//パラメータを取得
String id = req.getParameter("id");
String pas = req.getParameter("pas");
String result = "";

try{
// ドライバクラスをロード
Class.forName("org.gjt.mm.mysql.Driver");

// DBへ接続
String url = "jdbc:mysql:///testdb?user=root&password=admin&useUnicode=true&characterEncoding=sjis";
Connection con = DriverManager.getConnection(url);

// プレペアードステートメントオブジェクトを生成
PreparedStatement stmt = con.prepareStatement("SELECT * FROM Login WHERE ID = ? AND PASS = ? ");




331 名前:330 [2008/01/23(水) 18:40:21 ]
>>330の続き

//IN パラメータ値を設定する
stmt.setString(1,id);
stmt.setString(2,pas);

// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery();

//指定した条件と一致しているかどうか。
if(rs.next() == true){
result = "ログインに成功しました。";

}else{
result = "ログインに失敗しました。";
}



332 名前:330 [2008/01/23(水) 18:40:52 ]
>>331の続き
// データベースから切断
stmt.close();
con.close();

}catch(Exception e){
e.printStackTrace();
}

//セッションスコープで値を渡す
HttpSession session = req.getSession();
session.setAttribute("result", result);
RequestDispatcher rd = req.getRequestDispatcher("./loginResult.jsp");
rd.forward(req, res);
}
}

です。
コンパイルはできるのですが、処理を行っているときにtry{}の中を通らないみたいです。
resultの値をJSPで表示させたときnullと出てしまいます。
どのような処理をしたらresultに値を渡せるのかが分かりません。
よろしければ、ご教授お願いします。

333 名前:デフォルトの名無しさん [2008/01/23(水) 19:46:18 ]
例外は?
HTMLの方のソースは?
そもそもdoPostにたどり着いてんの?
System.outなりデバッカなりで処理をおった?

334 名前:RoundTrip [2008/01/23(水) 20:49:01 ]
質問:
同じinterfaceを持つクラスのインスタンスが、配列になっています。
これらのインスタンスにおいて、変数やインスタンスを共有したい場合
どのような方法があるでしょうか。

よろしくお願いします。

335 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:58:30 ]
>>334
クラス変数

336 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:59:13 ]
配列を所有している側のオブジェクトに所有させて、
そこに問い合わせたら?

337 名前:デフォルトの名無しさん [2008/01/23(水) 21:42:31 ]
前回はご回答ありがとうございました。
無事RS232Cのプログラムを作る事ができましたが
エラーが起こって困っています。
どうか、知恵を貸してください。
:作りたいもの:
Rs232Cを用いたシリアル通信を行なうプログラム
:参考サイト:
www.ais-com.co.jp/jikken/java232c.html
www.02.246.ne.jp/~torutk/javahow2/javaxcomm.html


338 名前:デフォルトの名無しさん [2008/01/23(水) 21:43:13 ]
:プログラム:
//rs232c.java

import java.io.*;
import java.util.*;
import java.text.*;
import javax.comm.*;
import gnu.io.UnsupportedCommOperationException;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;

class rs232c1{
public static void main(String args[]){
byte rs232c[];
rs232c = new byte[10];
try{
CommPortIdentifier ports = CommPortIdentifier.getPortIdentifier( "COM1" );
SerialPort port = ( SerialPort )ports.open( "RS232C", 1000 );
port.setSerialPortParams( 9600,SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE );
port.setFlowControlMode( SerialPort.FLOWCONTROL_NONE );
InputStream in232c = port.getInputStream();
//読み込み
in232c.read(rs232c);
System.out.println("read="+rs232c);
in232c.close();
port.close();
}
catch( Exception e ) {
System.out.println( "Error:" + e.getMessage() );
}
}
}

339 名前:デフォルトの名無しさん [2008/01/23(水) 21:47:43 ]
:実行後のエラーログ:
{\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fprq1\fcharset128 \'82\'6c\'82\'72 \'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;}}
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\lang1041\f0\fs20 #\par
# An unexpected error has been detected by HotSpot Virtual Machine:\par
#\par
# SIGSEGV (0xb) at pc=0xb7f6bedf, pid=2701, tid=16384\par
#\par
# Java VM: Java HotSpot(TM) Client VM (1.4.2_16-b05 mixed mode)\par
# Problematic frame:\par
# C [ld-linux.so.2+0x8edf]\par
::: 中略 :::
PATH=/usr/java/j2sdk1.4.2_16/bin:/usr/java/j2sdk1.4.2_16/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/mysql/bin:/usr/local/jdk1.2.2/bin:/usr/local/mysql/bin:/usr/local/jdk1.2.2/bin\par
USERNAME=root\par
LD_LIBRARY_PATH=/usr/java/j2sdk1.4.2_16/jre/lib/i386/client:/usr/java/j2sdk1.4.2_16/jre/lib/i386:/usr/java/j2sdk1.4.2_16/jre/../lib/i386\par
SHELL=/bin/bash\par
--------------- S Y S T E M ---------------\par
\par
OS:Linux\par
rlimit: STACK 8192k, CORE 0k, NPROC 4031, NOFILE 1024, AS infinity\par
load average:-0.01 0.00 -0.01\par
\par
CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2\par


340 名前:デフォルトの名無しさん [2008/01/23(水) 21:48:38 ]
>>337
>>338
>>339
長文失礼しました。



341 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:58:34 ]
分割して書きこむ暇があったら適当なうpろだに上げろ。

342 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:06:26 ]
>>341
別に分割はしてないんじゃね?

343 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:15:08 ]
ネイティブライブラリがクラッシュしてる。それ以上は知らん。

344 名前:デフォルトの名無しさん [2008/01/23(水) 22:41:12 ]
>>341
データをアップしました。
age3.tubo.80.kg/age02/view/7287.zip


345 名前:RoundTrip [2008/01/24(木) 00:40:07 ]
>>335
クラス変数って、どのクラスのでしょうか。
良ければご指導お願いします。

>>336
配列を所有している側のインスタンスに問い合わせる方法って
どんなものがありますか?
被せたinterfaceの関係で、あんまり引数使いたくないのです。
やっぱり、引数で渡すしか無いでしょうか…。

346 名前:デフォルトの名無しさん [2008/01/24(木) 11:13:10 ]
誤爆してしまいましたので、何卒、こちらでご指導お願い申し上げます。

次の選択肢より正しい記述をすべて選びなさい。

1:java.io.FileReaderはテキストファイルから文字を行単位で読み込むクラスである。
2:new File("bbs.txt")と記述すると、新しいファイルが作成される。
3:ファイルの操作を行う前には、Fileクラスのopenメソッドを必ず使用する。
4:BufferedReaderクラスのreadLineメソッドは、ファイルの終端までを読み込む。
5:FileクラスのisFileメソッドの戻り値がfalseだった場合は、そのファイルが無いか、またはその名がディレクトリである事を示している。


347 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:16:48 ]
>>346
javadocみれば一発!正解が全部書いてあるよ!

はい、次の人どうぞ

348 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:18:28 ]
>>346
全部間違い。

349 名前:デフォルトの名無しさん [2008/01/24(木) 11:27:14 ]
>>347さん、>>348さん、
激しくありがとうございました。


350 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:31:23 ]
5.は正解じゃないかと思ってjavadocを読み返したが、
確かにファイルでもディレクトリでもない場合がありうるみたいだね。

しかし、ファイルでもディレクトリでもないものってなんだろう?



351 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:39:27 ]
conとかnulかなと思って試してみたら、isFileがtrue返した。
調べてみたら、java6からfalse返すように変ったみたい。

352 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:42:40 ]
>>350
NamedPipe とか デバイスファイル とか。
Javaが動作するプラットフォームはWindowsだけじゃないし。

353 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:47:37 ]
>>351

次のメソッドの動作が変更されました。

  * CON、NUL、AUX、LPT などの予約されたデバイス名には必ず false を返すように、
     File.isFile() Windows 実装が変更されました。以前の戻り値は true で、それが
     Unix で使用するデバイスの動作と整合していないことから、対象ユーザーはこれを
     バグとみなしていました。
java.sun.com/javase/ja/6/docs/ja/technotes/guides/io/enhancements.html#6

354 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:58:36 ]
HIDDEN ファイル (存在するが見えない)
シンボリックリンク (リンク先がないのとシンボリックリンク自体が存在しないのとは違う)
デバイスファイル (扱いはファイルシステムに依存)

だいたいファイルとかディレクトリとか、問題が階層型ファイルシステムに限定だし。
AS/400 なんかメモリと二次記憶の区別がなくてファイルっつーか全部テーブルだし。

355 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:02:38 ]
大学の研究でJava3Dを勉強していて、彩画3Dというフリーのクラスライブラリを使って
参考文献を頼りにプログラムを試作しているのですが
ttp://www11.axfc.net/uploader/20/so/He_66742.zip.html PASS:java

回転する球体をストップさせた時、2つの球体が初期位置に戻らないようにして停止させた位置で
止まるようにするにはどうしたらいいのでしょうか

356 名前:デフォルトの名無しさん [2008/01/24(木) 14:03:25 ]
すいません、質問です。
MouseListenerインターフェイスを実装しようとしたんですが、
Test は abstract でなく、java.awt.event.MouseListener 内の abstract メソッド mouseReleased(java.awt.event.MouseEvent) をオーバーライドしません。
という風にコンパイルエラーが出て、困ってます。
全てのメソッドを実装しているはずなのですが…何故なんでしょうか?

import java.awt.event.MouseListener;

public class Test implements MouseListener {
public static void main (String args[]) {
}

public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
}

357 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:26:21 ]
>>356
スペルミスの可能性70%

358 名前:デフォルトの名無しさん [2008/01/24(木) 14:45:20 ]
>>357
その可能性考えて何度もAPIとにらめっこしたんだけど、
どこにも誤字は見当たらないんですよね…
KeyとMouseMotionもエラーになるが、その他のリスナーはちゃんと実装できるから余計わからない。

359 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:47:09 ]
>>356
MouseEvent が import されていない。

360 名前:デフォルトの名無しさん [2008/01/24(木) 14:56:12 ]
>>359
ごめん、他のリスナーで試そうとして今気づいた。orz
でも、import java.awt.event.*;にしても相変らずコンパイルエラー起こすようです。
スレ無駄に消費して申し訳ない。



361 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:12:23 ]
>>360
直した新しいソースと新しいエラーメッセージを

362 名前:デフォルトの名無しさん [2008/01/24(木) 15:21:47 ]
>>361
import java.awt.event.*;

public class Test implements MouseListener {
public static void main (String args[]) {
}
public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
}
エラーメッセージ:
Test.java:3: Test は abstract でなく、java.awt.event.MouseListener 内の abstract メソッド mouseReleased(java.awt.event.MouseEvent) をオーバーライドしません。

直す前とエラー内容は変わってないみたいです。

363 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:26:56 ]
>>362
なんで MouseListenerをインポートしてないのに
implements MouseListenerでエラーが出てないんだ?

364 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:28:21 ]
>>363
import java.awt.event.*;

365 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:31:40 ]
>>362
手元でやってもエラーでないけど。

366 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:35:46 ]
>>362
んー。Testと同じ階層に同名のMouseEventやらが存在する、とか…

367 名前:デフォルトの名無しさん [2008/01/24(木) 15:46:50 ]
>>366
Testを別の場所に移動したら動きました!
最初に実験した奴の名前がMouseEventだったのが原因だったみたいです。
盲点でした。本当にありがとうございます!

368 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:54:55 ]
今回の例では、import 完全修飾クラス名、で宣言すれば問題ない。
import java.awt.event.MouseEvent;

同一クラス内に同名のクラスが混ざったときも似たような方法で回避可能。
java.util と java.sql の Date は良く有る話。
ttp://www.atmarkit.co.jp/fjava/javatips/170java055.html

369 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 17:22:22 ]
Exception in thread "Thread-6" java.lang.ArrayIndexOutOfBoundsException: 8
at ipmsg.HelloWorldJNI.btoS(HelloWorldJNI.java:35)
at ipmsg.IDManager.getPID(IDManager.java:71)
at MainWindow.makeSortKey(MainWindow.java:270)
at MainWindow$RefreshList.run(MainWindow.java:304)
このエラーの意味がわからなくて困っています。
もしよろしければ教えていただけないでしょうか。

370 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 17:28:55 ]
java.lang.ArrayIndexOutOfBoundsException



371 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 17:53:08 ]
>>369
意味:バーカ、添字が8になってんぞ(藁

372 名前:デフォルトの名無しさん [2008/01/24(木) 19:27:31 ]
Javaでデータベース(MySQL)を操作して予定などを管理するプログラムをEclipseで作っています。
Eclipse上では動くのですが、jarファイル化してjarファイルから実行しようとするとソフト自体は動くのですが、
データベースに接続できません。
どうしたらよいのでしょうか?

373 名前:デフォルトの名無しさん [2008/01/24(木) 19:42:04 ]
エスパー募集中

374 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:51:27 ]
>>372
エスパーします。
mysqlのjdbcドライバがjarを実行するときのパスに入っていません。
-cp オプションで指定しましょう。

375 名前:デフォルトの名無しさん [2008/01/24(木) 19:54:41 ]
ありがとうございます。
今からやってみます。

376 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 22:19:08 ]
>>371
無事解決しました。
ありがとうございました。

377 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 09:49:45 ]
Ant の質問ここで良いかな?
<property> って一度設定したら再設定できないんだけど <antcall> にパラメータのような
可変値を渡したい場合ってどうするの?

378 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 10:53:37 ]
>>377
param
ttp://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/CoreTasks/antcall.html

379 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:39:01 ]
あらかじめ複数のタブがあり、あるタブが選択された瞬間に
そのタブのウィンドウサイズを変更したいのですが、どのようにすればできるのでしょうか?

380 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:07:16 ]
JTabbedPaneにaddChangeListenerしといて、stateChangedが来たらサイズを変えればいいんじゃないかな



381 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:34:42 ]
>>380
ちょっと調べてみますね。
ありがとうございました。

382 名前:デフォルトの名無しさん [2008/01/25(金) 16:29:04 ]
クラスにどんなメソッドがあるのかを見て勉強しているのですが

docs/ja/api/index.html
java.util.Scannerを見るとテキストスキャナということが分かるのですが

例えばファイルの中に特定の文字列を見つけ出すメソッドはあるのかな?
と思ったときどのように探していいのか分からないでいます
探し方をお教えていただけないでしょうか

383 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:30:46 ]
ググレカス

384 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:46:01 ]
ググレというかjavadocよく嫁の方じゃないか?

385 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:51:32 ]
>>382
基本は「ググれ」だけど、javadocから探せないこともない。
パッケージの一覧を見ると、ある程度は絞れるよ。
例えば、ファイル入出力ならjava.ioパッケージ。
文字列の検索なら、文字列のクラスjava.lang.String自身を調べるか、
またはjava.util.regexパッケージ。
両方見ると、「ファイルの中に特定の文字列を見つけ出す」処理をいっぺんに行う
メソッドが見つからないことが分かるので、
ファイルを読みとるクラスと文字列を検索するクラスを
組み合わせて自分で実装する必要があると理解できる。

とまあ、こんな感じで。

386 名前:デフォルトの名無しさん [2008/01/25(金) 17:12:38 ]
>>383 >>384 >>385
ありがとうございます
勉強になりました

387 名前:デフォルトの名無しさん [2008/01/25(金) 18:15:58 ]
>>385
さすがにそれは無理がある。現実的じゃ無い。
書いてあることを探し出すのは容易だが
書いてないことを探し出すのは相当根性がいるぞ。
ググったほうが早いと思うな。

388 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:27:15 ]
いくらパッケージからある程度想像付くとはいえ、API リファレンスってのは
目的から引くためのリファレンスではない。API リファレンスなんてのは所詮
部品の説明であって、やりたいことを実現するためにどの部品をどう組み
合わせれば良いかの説明は薄いと言わざるを得ない。

389 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:36:56 ]
>ファイルの中に特定の文字列を見つけ出すメソッドはあるのかな
の場合はストリームから文字列取り出せば良いだけだからjavadoc読んでたら分かると思うんだが。

ググってもjavadoc読んでもそれそのものは無いしさ。
APIリファレンス読んでみるしかないんじゃないか?

390 名前:デフォルトの名無しさん [2008/01/25(金) 18:43:55 ]
まずはリファレンスで検索しようよw




391 名前:デフォルトの名無しさん [2008/01/25(金) 21:11:41 ]
無いものをどうやって検索しろと?あんた脳に蛆が沸いてない?

392 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:16:55 ]
無いということがわかるだろw

393 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:18:54 ]
まあ落ち着け

394 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:52:50 ]
最初はindexOfでいじゃないか

395 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:58:46 ]
>>382 startsWith("String")とendsWith("String")使えば簡単な文字列解析できるよ。
java歴1年になるけど今日偶々javadoc見てたらみっけたw
くは〜 節穴俺orz

396 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:05:32 ]
javadocの見方がわからないポスケテ

397 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:21:41 ]
正八面体は何とか作製することが出来たのですが、どうしても正六面体が出来ません。
正六面体の座標値はどういう風に求めれば良いのでしょうか?

398 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:28:24 ]
数学板かと思ったw

399 名前:デフォルトの名無しさん [2008/01/26(土) 08:38:01 ]
グーグル先生に聞けよ

400 名前:デフォルトの名無しさん [2008/01/26(土) 08:39:21 ]
ちょっとまて、正六面体って立法体じゃねーかw



401 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:48:17 ]
>>397
正八面体と正六面体は双対の関係にありますので、
正八面体が書ければ正六面体も書けると思います。

402 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 09:30:30 ]
>>378
すまん、ぜんぜん気づかなかった

403 名前:デフォルトの名無しさん [2008/01/26(土) 11:31:49 ]
JDK6.0日本語ドキュメントの始めのページをIEで開いても
ましっろな空白のホームページになってしまって見ることが出来ません。
ワードで開くとちゃんと表示されます。
環境はwindows vista です。
本当に困っています。
よろしくお願いいたします。

404 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 11:35:24 ]
いえいえ、こちらこそよろしくお願いいたします。

405 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 11:41:33 ]
お構いもしませんで。

406 名前:デフォルトの名無しさん [2008/01/26(土) 12:03:22 ]
ありがとうございます。
親切にしていただいたおかげで背が3cmも伸びました!
本当にオススメです。

407 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:28:37 ]
ではお言葉に甘えさせていただきます

408 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:37:52 ]
>>403
WindowsUpdateする

409 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:21:39 ]
座標値を指定してもならないのです…
もうちょっとグーグル先生に相談してきます

410 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 18:02:14 ]
指定したURLのソースコードを読み込みたいのですが、HttpURLConnection.getInputStream()が重たいようであまり速度がでません
以下のプログラムより高速にソースコードを取得できる方法があったら教えてください
よろしくお願いします

HttpURLConnection huc = (HttpURLConnection)new URL("www.google.com/").openConnection();
InputStream is = huc.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String s;
while((s = br.readLine()) != null){
  source += s;
}




411 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 18:52:48 ]
ネット回線が遅いんじゃないのか

412 名前:デフォルトの名無しさん [2008/01/26(土) 18:56:25 ]
javacにパスが通っていれば、コンソールでjavacを実行するとヘルプみたいなのが
表示されるんですか?

413 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 18:57:44 ]
そう

414 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:20:10 ]
ありがとうございます。
それでしたら、僕はパスが通っていません。
XPでPathを更新したら、XPの再起動が必要なんでしょうか?

415 名前:デフォルトの名無しさん [2008/01/26(土) 19:35:25 ]
コマンドプロンプトの再起動は必要

416 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:53:23 ]
>>18
書籍Java Puzzlerにそんなクイズがあった気がするぞ

417 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 20:31:03 ]
>>415
そのとおりでした。ありがとうございました。

418 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 21:46:09 ]
appletviewerでアプレットを実行する時、実行するアプレットを引数で指定しますが
その拡張子がjavaであるのはなぜですか?

419 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 21:52:01 ]
>>410
getInputStream だと確定してるなら、何も言うことは無い。

・Stringの接合はメモリと時間が余分にかかる。Stringは可変バッファではない。
・データ取得を高速にするだけならStreamのまま。Readerにしない。

>>418
別にそんな決まりはない。
ttp://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/solaris/appletviewer.html

420 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:17:07 ]
Java Media APIsのスレ立てたんでこのスレの範疇を超える以下のAPIは

【JMF】Java Media APIs【JOGL】
ttp://pc11.2ch.net/test/read.cgi/tech/1201346803/l50

に誘導してください。

・Java Media Framework (JMF)
・Java Sound API
・Java 3D
・Java Binding for OpenGL(JOGL)
・Java Advanced Imaging(JAI)
・Java Image I/O
・Java 2D
・Java Speech API
・Java Telephony API(JTAPI)



421 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:21:58 ]
なんでわざわざ糞スレ立てんの?

422 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:37:39 ]
おまいみたいな奴のため

423 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:50:47 ]
おまいみたいな奴のため

と書こうとしたがすでにry

424 名前:デフォルトの名無しさん [2008/01/27(日) 00:50:40 ]
コンソールへの文字列出力について教えてください。
7-zipでファイルを圧縮、展開すると下記のようなメッセージが表示されます。

7-Zip 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06
Scanning
Updating archive test.zip
Compressing fveupdate.exe
Compressing HelpPane.exe
Compressing hh.exe
Compressing iis7.log
Compressing MEMORY.DMP 4%

このCompressing <ファイル名>ってのがゾロゾロ表示されて進捗を示すのですが
一番下ってか最新の行にだけ進捗のパーセンテージが表示されるんです。

これをパクりたいのですが、どうすれば良いのか分かりません
System.outを調べたのですが、一度表示した行を修正するなんて方法は書いてないですし
javaで同じ事をするにはどうすれば良いでしょうか。

425 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:06:43 ]
\r

426 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:11:34 ]
\b

427 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:16:26 ]
linux系だとエスケープでできるけどwinは無理

428 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:35:34 ]
>>427
ANSI.SYSだっけ、組み込んだらできないかな?
やってもないけど、昔コマンドラインでエスケープシーケンス動かそうと思ったら
そういう解決方法があったとおもうなぁ。

429 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:53:30 ]
以上、まぬけな二人組でした

430 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 04:00:20 ]
Windows95,98は標準で組み込まれてるけど2000,XPでは外されたってやつ?
それMS-DOSの方じゃなかったかな。



431 名前:デフォルトの名無しさん [2008/01/27(日) 06:34:40 ]
\r だろ、フツー。

432 名前:デフォルトの名無しさん [2008/01/27(日) 09:26:23 ]
Collection.sortでStringの並びをDBからORDER BYしたものと一致するようにしたいのですが
Comparatorでどう実装するでしょうか?

433 名前:デフォルトの名無しさん [2008/01/27(日) 10:47:08 ]
DBからORDER BYするときに使うカラムで比較すればいい

434 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 10:59:46 ]
各カラムを別々のコレクションに入れてるならちんぽ

435 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:00:47 ]
>>432
Stringは java.lang.Comparable を実装してるから Collections.sort(List) が使える。
また、TreeSet 等の実装でもそのまま使うことが出来る。

但し、StringではUnicodeで比較するので、他の文字セットの並び順にする場合は、
そのバイト配列を取得し、比較すること。

Stringを保持するRow を並び替えるときは、ComparatorでString.compareTo等を流用。

436 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:05:14 ]
取ってきたときの順序を何らかの方法で覚えておく(Listや順序付きMapに入れるなど)のが一番カタい。(と言うか、俺ならそうする)
そもそも order by してないとかだと、DBの比較アルゴリズムを調べてそれと同等なComparatorを自力で実装するしかない。

437 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 16:11:28 ]
クラスのprivateに関して質問があるのですが教えていただけないでしょうか?
内容は変数を外部からいじられたくないときにprivateをつけると書いているのですが概要がよくわからないでいます

例えば car.javaに
class Car {
private int weight;
}

// コンストラクタ//
Car(int weight) {
this.weight = weight;
}

void setWeight(int weight)
this.weight = weight;
}

setcar.javaに
Car vitz = new Car(100);
vitz.setWeight(200);

外部ファイルからのvitz.setWeightを実行しているのに値が変更できてしまう理由が分からないでいます
vitz.setWeight();はvitz内のメソッドとなっているので内部になっているのでしょうか?

438 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 16:15:38 ]
private メンバは外部クラスから vitz.weight = 100; とか直接やられないようにするもの。
setWeight() で間接的に変更するのは問題ない。メソッドにしておくことで後で内部構造や
動作に変更があっても Car クラス内で対処できる (ことが多い) から。

public void setWeight(int weight){
  this.weight = weight;
  recalculateWeightBarance();
}

439 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 16:18:15 ]
あれ、書き込みショートカット押してしまった orz

recalculateWeightBalance();

// 最適なウェイトバランスを再計算
private void recalculateWeightBalance(){
  // ...
}

440 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 16:32:32 ]
Carクラス生成後にweight変数をいじられたくない場合は、セッターメソッドをCarクラスに作らなければよい。
それはクラスを作る人間の自由。



441 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:49:39 ]
j2sdk1_3_1_21で動作するプログラムを
j2sdk1_4_2_16でプログラムを動作させるにはどうすれば良いですか?


442 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:51:56 ]
コンパイル

443 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:09:25 ]
コンパイルするとエラーがいっぱい出るんですけど…

444 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:13:25 ]
先生:エラーが出たらどうしますか?
ゆとり:2ちゃんにエラーがいっぱい出たとカキコします

445 名前:デフォルトの名無しさん [2008/01/27(日) 18:22:17 ]
2ちゃんに書いても解決しない

446 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:21:43 ]
せめてどんなエラーが出たとか書けよ。学生なんだろうけど。

447 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:32:27 ]
java使ってるプロジェクトって開発環境がぐちゃぐちゃなの多くてヤダな、なんでだろう。
開発環境さえキチンと整っていれば結構良い言語なのに
いままで何回もJAVA案件の仕事したことあるけど、たいていどこのチームもデバッグはSystem.outPrintで変数の中身みてたりする。
時代を逆行してどうすんだと毎回思う。
ぶっちゃけ.netの方が楽だわ。

448 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:33:30 ]
>>824
あ,この場合「棒」を弄っても「おいなりさん」を弄っても1としてカウントしてね^^


449 名前:448 mailto:sage [2008/01/27(日) 19:33:58 ]
すみません誤爆です><

450 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:42:46 ]
これは良い誤爆



451 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:48:02 ]
>>447
junit使わないの?

452 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:54:11 ]
>451
使わないよ


453 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:01:37 ]
個人的には.NET、というかMSが出すものの方が
時代に逆行しているように思えることが多いな
なんか、かれらは自動化とか全く考慮してくれないし

454 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:12:26 ]
ビルドの自動化とかやってるじゃないか
ExpressEditionばっかり使ってるからそんなこと言うんだよ
Team Systemを使いなさい

Javaはオープンだけど、その分、いろんなものが出てきて分かりづらくなる
.NETならMSのやり方に従うだけでいい
基本的なものは全部スイートに用意されている
逆に言えばMSのやり方に拘束される

まぁどっちがいいかは対象とするシステムと要員で決まってくるから、個人がどうこういってもね

455 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:25:42 ]
>>438 >>440
ありがとうございます
外部内部で考えるのではなく
直接的か間接的かで考えると分かりました

456 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:25:46 ]
Reporting Servicesとか、どうやってテストの自動化すりゃいいんだよ
教えてくれ

457 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:58:06 ]
いまどきタダでIDEとデバッガが使えるのに何言ってんだこいつは?

458 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:14:40 ]
Reporting Services知らない?

459 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:20:22 ]
まぁJavaスレだしね

460 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:34:11 ]
Team System使えばReSharper、NUnit、NUnitAspあたりは不必要になるんか?
なら検討したいけど、そうじゃないだろ?
結局MSオンリーじゃまともなIDEじゃないんだよ。
そこらへん含めて考えたら、Javaも.NETも大して変わらん。
>456が言うように、Reporting Serviceとかノンコーディングを謳ってるものは
確かにテストの自動化のやりようがないけどな。



461 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:45:22 ]
Team SystemはテストツールがIDEに組み込まれてるだろ
ここで意見が出るか出ないかで判断するより、製品を調査したほうが確実

462 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:47:53 ]
いや、テストツールが含まれてることは知ってるけど、
ReSharperとかの代わりになるようなものじゃないだろ。
ReSharperはテストだけじゃないし。
そういうのもひっくるめて考えると、
Team Systemだけあっても実際の開発には使えない、って話。

463 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:56:42 ]
あぁ、そういうことね
ReSharperが何者かしらないけど

464 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:08:05 ]
ReSharperは知っといたほうがいいよ。
ttp://blog.inomata.lolipop.jp/?eid=622557
とりあえず、Day 1とDay 5あたりが導入のきっかけになった。

465 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:08:52 ]
って、Javaスレでなにやってんだオレ・・・

466 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:30:30 ]
すいません、質問です。

JRE1.6ってJISX213:2004に対応している?ような事があったと思うんですが
WindowsJavaアプリ環境で環境依存文字をUnicodeで取得して
それをgetBytes()でSJIS?MS932?どちらかはわかりませんが
環境によって自動取得するときちんと文字が取れずに「?」という風になってしまいます。

JISX213の規格内にSJIS2004ってのもあるんですが、JRE1.6では、こちらには対応していないのでしょうか?

467 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:31:57 ]
誰か通訳を

468 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:50:31 ]
>>466
まずは冷静になってもう一度説明してごらん

469 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 03:19:29 ]
というかフォントのエンコードと文字セットのサポートは実装依存だろ。

470 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 03:19:55 ]
>>466
疑問自体は非常に興味深いのだが、内容を理解できないところが残念です。
とりあえず、疑問その1に参考資料を用意。

ttp://java.sun.com/javase/ja/6/docs/ja/index.html
機能リファレンスガイド > 基本ライブラリ > その他のパッケージ > 国際化 より。
サポートされているエンコーディング
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/intl/encoding.doc.html



471 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 04:36:09 ]
スレ違いな感じがするのですが…誘導でもどんなヒントでもいいのでお願いします
HPのプルダウンが変更されたらJAVASCRIPTを動かしたいのですが、可能でしょうか?

472 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 04:41:10 ]
<select onchange="alert('氏ね');">
  <option value="1">1回</option>
  <option value="2">2回</option>
  <option value="3">3回</option>
</select>

473 名前:471 mailto:sage [2008/01/28(月) 04:46:08 ]
>>472
即レスありがとうございます、本当に助かりました!
お手数をおかけして済みませんでした
1回、2回、3回は笑ってしまった…w

スレ汚し、失礼しました

474 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 08:00:45 ]
Javaが提供してる基本クラス数って合計するとどんくらいあるんですか?

475 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 08:53:21 ]
基本クラス?何それ?

476 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 12:20:43 ]
>>474
たぶんこれのことか?自分で数えてくれ
java.sun.com/javase/ja/6/docs/ja/api/allclasses-frame.html

477 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 12:51:29 ]
失礼します。初心者です。
ユーザーの入力する数値を年月日で区切って取得したいのですが、どのようにすればよろしいでしょうか?
宜しくお願いします。

public static int readBirdate(Scanner kb)
{
System.out.print("誕生日を入力してください(年 月 日:  ");
int ubir = kb.nextInt();
return ubir;
}

478 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 12:53:40 ]
DateFormat df = new SimpleDateFormat("yy'年'MM'月'dd'日'");
Date date = df.parse(ubir);

479 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:07:08 ]
>>478
ありがとう、ございます!

480 名前:477 mailto:sage [2008/01/28(月) 13:32:15 ]
すみません。良いヒントもらったので頑張ってみたけど、やっぱり無理でしたorz
実は宿題でして、ユーザーに今日の日付と誕生日を入力してもらって、年齢を割り出すというプログラムです。

>>477の式で、
今年: 2008(←入力)
誕生年: 1980(←入力)
(計算)
年齢: 28
といった感じで年だけの計算はできるのですが

今日(mmddyyyy): 1 28 2008
誕生日(mmddyyyy): 2 17 1980
といった一度に年月日全ての値を得るやりかたが、どうしても分かりません。

すみません、ご教授お願い致します。



481 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:38:12 ]
>>480
指示された入力形式は mmddyyyy、入力例が 1 28 2008、
一貫してないのでなんとも。全角半角もごっちゃだし。

スペース区切りならば mmddyyyy は [m]m [d]d yyyy とかすべきじゃね?
もしスペース区切りでないのなら、入力例は 01282008 みたいに
最初は0つけないとダメだし、スペースが間に入っちゃメでしょ。

482 名前:477 mailto:sage [2008/01/28(月) 13:54:09 ]
>>481
すみません。スペース区切りです。

//出力例

今日の日付を入力してください(mm dd yyyy): 1 28 2008 (←入力)
あなたの誕生日を入力してください(mm dd yyyy): 2 17 1980 (←入力)

貴方の年齢は 28才です。

//
支持されている出力例はこんな感じです。


483 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:09:50 ]
1980年生まれって誕生日くるまでは 27歳じゃね? 28表示していいのか?

484 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:11:20 ]
数え年なんじゃね?

485 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:12:55 ]
ちなみに、数え年だと29才のはず。

486 名前:477 mailto:sage [2008/01/28(月) 14:13:15 ]
無視してくださいorz

487 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:32:24 ]
>>477
文字列の取得自体はできるみたいなので、続きだけやるとこんな感じか?

//文字列をCalendarに変換
String now, birth; //"1 28 2008" と "2 17 1980" を入力させる。
DateFormat df = new SimpleDateFormat("M d yyyy");
Calendar today = Calendar.getInstance(); today.setTime(df.parse(now));
Calendar birthday = Calendar.getInstance(); birthday.setTime(df.parse(birth));

//Calendarから年齢計算
int age = today.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
birthday.set(Calendar.YEAR, today.get(Calendar.YEAR));
if (today.before(birthday)) age--;

488 名前:477 mailto:sage [2008/01/28(月) 14:35:29 ]
>>487
ありがとうございます!やってみますw

489 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:13:22 ]
JSPを読んでswing系の画面に出すような事は出来るのでしょうか?
とりあえずHTMLならJTextPane.setContentType()で表示できるようになるのですが、JSPのスクリプトレットは対応しておらず見る事が出来ません。
何か方法があったら教えてください。
よろしくお願いします。

490 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:19:09 ]
SWT 使え



491 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:44:36 ]
JSPってサーバ側で処理するもんでは?
それをクライアントで処理したいってこと?
自分で実装するのは大変そうだから、なんか適当なwebサーバ内蔵してループバックでhttpするのが楽かも

492 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 17:06:53 ]
そういう意味か。
Tomcat でもビルトインしないとできねぇから、JSP の代わりに
動的な XML + XSL で HTML 作って JTextPane にでも食わせろ。

493 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:49:44 ]
public static<T, A> void a(String s)
{
T data = A.suru(s);
}
ということをやりたいのですが、エラーが出て実行できません
こういうことは出来ないのでしょうか?

494 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:50:50 ]
できません

495 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:52:36 ]
>>494
出来ませんか…
ありがとうございました

496 名前:デフォルトの名無しさん [2008/01/29(火) 01:10:43 ]
なにをやりたいんだ?
public static T <T> a(String s) {
  return A.suru(s);
}
ならまだ意味が解るが・・・

497 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:04:02 ]
>>496
昨日ファンクタというものを知りまして…
それをやってみたかったのです

498 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:13:32 ]
それならジェネリクスじゃなくて手抜かずにインターフェース使ってヤレ。
ちなみに次のバージョンからクロージャーが入る。

499 名前:489 mailto:sage [2008/01/29(火) 09:04:22 ]
>>490-492
そちらの方向で色々試してみます。
ありがとうございました。

500 名前:デフォルトの名無しさん [2008/01/29(火) 09:47:26 ]
java言語の書き方(例:if やfor文の書き方)が全部書いてある
日本語のダウンロードできるドキュメントを教えてください



501 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 10:47:50 ]
java 言語仕様 でググレカス

502 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:04:04 ]
任意のTaskを前回のTaskが終了した時点から一定時間経過後に実行してくれる、
SingleThreadなExecutorServiceって存在しますか?

503 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:47:20 ]
>>502
Executors#newSingleThreadScheduledExecutor

504 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:56:54 ]
JTreeとJTextAreaを2カラム形式で配置し、
JTreeで異なるノードを選択した時に、JTextAreaの内容を切り替える
プログラムを作ろうとしているのですが、上手くいきません。

JTextAreaやJFrameを設定しているクラスと、JTreeを設定しているクラスを
別々に分けているせいか、mouseListenerが上手く動かなかったり、
変数のやり取りが上手くいかなかったりしています。

どういった手順で切り替えるよう組めばいいでしょうか。

505 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:03:25 ]
本にうっかりヨダレたらしてしまって
後日そのページがごわごわになってて萎えんfg9あぷ9j;:

506 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:17:28 ]
Excelを出力するのにjakarta poiを使おうと思うんですが
サーブレットから使っても大丈夫でしょうか?
スレッドセーフというかなんというか、同時に複数動いても
大丈夫なものでしょうか?

507 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:26:26 ]
>>503
それだとscheduleWithFixedDelayとかで、決まったTaskしか定期実行しかできませんが、
まとめてexecuteしたTaskを必ず一定間隔を空けて実行するような奴とかないでしょうか。

とりあえず自分で実装してしまったのですが、既存実装があったら悲しいなぁと思いまして。

508 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:55:49 ]
>>504
まず問題点を分けてみないと。

>mouseListenerが巧く動かない
実装が悪いんだろう。

classを分けてるってソース(なんとか.java)を分けてるって意味だよね?

>変数のやりとりが巧くいかない
>クラスを別々に分けているせいか
ひとつのソースで動くプログラムならソースを分けても動く道理。
classから違うソースのclassの呼び出し方が判らないとか変数が読めないとかなのか。
単純化したひとつのソースで試してみる。

509 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 14:24:09 ]
質問です。
「演算子+は引数の型double,Graphicsで未定義です。」
というエラーがでます。これを解決するにはどうすればよいでしょうか?

510 名前:デフォルトの名無しさん [2008/01/29(火) 14:30:54 ]
Date currentTime = calendar.getTime();
↑コンパイルエラーでした。シンボルを解釈処理できません。
何をimportしたらよいですか?
sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/Date.html
を見てimport java.util.Date.*;を書きましたがだめでした。
どうやって必要なimportを調べたらよいのですか?



511 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 14:32:56 ]
>509
double a = ???;
Graphics b = ???;
a + b;

こんなことは出来ないってことを言ってるんだよ。
とりあえず、プログラム見直せ。

>510
import java.util.Date;
でOK

512 名前:509 mailto:sage [2008/01/29(火) 14:39:11 ]
>>511
ありがとうございます。見直してみます

513 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 14:47:09 ]
>>511
コンパイルしたいです。
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class a {
 public static void main (String args[]) {
  Date d = calendar.getTime();
  SimpleDateFormat f = new SimpleDateFormat("EEE", Locale.JAPANESE);
  String s = f.format(d);
  System.out.println(s);
 }
}

514 名前:デフォルトの名無しさん [2008/01/29(火) 14:53:52 ]
>513
calendarってのが定義されてないからコンパイル出来ない。

515 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:47:28 ]
CSVを解析するプログラムを作っていて「java CSV」で検索したのですがあまりよいものがなく
「CSV 正規表現」で検索したらPerlのサイトが出てきて自分なりに作ってみたんですけど疑問がいくつかあるので質問させてください。
==========================================
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class CsvSplit {

 private static final String CSV_SPLIT_REGEX = "(\"(?:[^\"]|\"\")*\"|[^,]*)";
 private Pattern _pattern;
 /**
  * 実行用のメイン
  */
 public static void main(String[] args) {
  CsvSplit aaa = new CsvSplit();
  ArrayList csvArray = aaa.readCsvFile("C:\\zzzzzzzzzz.csv", "JISAutoDetect");
  Iterator ite = csvArray.iterator();
  while(ite.hasNext()) {
   String[] csvData = (String[])ite.next();
   for (int i = 0; i < csvData.length; i++) {
    System.out.println("-------------");
    System.out.println(csvData[i]);
    System.out.println("-------------");
   }
  }
 }


516 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:49:47 ]
 /**
  * コンストラクタ
  */
 public CsvSplit() {
  this._pattern = Pattern.compile(CSV_SPLIT_REGEX);
 }

 private ArrayList readCsvFile(String fileName, String charsetName) {

  try {
   // ファイルの取得
   BufferedReader br = new BufferedReader(
    new InputStreamReader(
     new FileInputStream(fileName), charsetName));

   ArrayList csvArray = new ArrayList();
   String columnValue = "";

   try {
    // ファイルから1行ずつ読み込む
    while (br.ready()) {
     String lineData = br.readLine();

     // ダブルコーテーション以外の文字をすべて削除しダブルコーテーションの数を数える。
     // ダブルコーテーションの数が奇数の場合は次の行も読み、再び奇数になるまで読み込む
     if (lineData.replaceAll("[^\"]", "").length() % 2 == 0 && columnValue.equals("") ||
     lineData.replaceAll("[^\"]", "").length() % 2 == 1 && !columnValue.equals("")) {

      columnValue += lineData;
      String[] splitData = splitCsvData(columnValue);
      columnValue = "";
      csvArray.add(splitData);

517 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:51:05 ]
     } else {
      columnValue += lineData + "\r\n";
     }
    }
    return csvArray;
   } finally {
    br.close();
   }
  } catch (Exception ex) {
   ex.printStackTrace();
   return null;
  }
 }

 /**
  * CSVデータの1行を分割して配列にして返却する。
  * 改行が含まれるデータの場合は必ず奇数となるので、奇数である限り取得処理を繰り返す。
  * ただし、CSVデータは以下の条件で保存されている場合に限る。
  * 1.基本的にコンマで区切った部分がスペースを含めて値である。
  * 2.値にコンマ、ダブルクウォート、改行が含まれる場合は、値全体をダブルクウォートで囲む
  *  (コンマやダブルクウォートがない場合に値全体がダブルクウォートで囲まれていても問題ない)
  * 3.値に含まれるダブルクウォートは "" となる。
  * @param csvLine
  * @return
  */
 private String[] splitCsvData(String csvLine) {

  ArrayList csvDataArray = new ArrayList(30);
  Matcher matcher = this._pattern.matcher(csvLine);
  boolean isDataSkip = false;
  String columnValue = "";

518 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:51:11 ]
このまま俺らにデバッグしろと言う気か

519 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:51:37 ]
  // 正規表現に従い取得する。
  while(matcher.find()) {
   // なぜか値が取得できた場合の次の値が空文字として取得できるのでスキップする
   if( isDataSkip ) {
    isDataSkip = false;
    continue;
   }
   String result = matcher.group();

   // 値が取得できたかどうか
   if( !result.equals("") ) {
    isDataSkip = true;
   }

   // データの前後がダブルクウォートで囲まれている場合は省く
   if(result.startsWith("\"") && result.endsWith("\"") ) {
    result = result.substring(1, result.length() - 1);
    // データにダブルクウォートがあれば1つに置換する
    result = result.replaceAll("\"\"", "\"");
   }
   // セット
   csvDataArray.add(result);
  }
  String[] splitData = new String[csvDataArray.size()];
  csvDataArray.toArray(splitData);

  return splitData;
 }
}
==========================================

520 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:01:23 ]
>>518
長くてすいません。。。
質問なんですけど、
1.readLineで1行ずつ取得していると改行データを含む行が分割されてしまうので本当はCRLFが
  正しいデータかわからずreadLine以外に効率よく確実に読み取る方法ってありますでしょうか?
2.perlのサイトだと正規表現でダブルコーテーションの数を直接数えてるんですけどjavaの正規表現だと
  どうやるのでしょうか?
3.正規表現で値を取得した場合次の値が空文字として取得できてしまうのですが
  正規表現がいまいちよくわからず・・・。パターンの悪いところや正しいパターンを教えていただけないでしょうか。
4.@ITでC#で「^(?:(?<1>"[^"]*"),?|(?<1>[^,]+),?|,)*」というの見つけたのですが動かず。。。C#とjavaってそこまで違うのですか?


長文駄文ですいません。お手数おかけしますが宜しくお願い致します。




521 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:10:20 ]
よくググレCSVライブラリあるぞ。

ところでThe Java Virtual Machine Specificationの和訳って本しかないかな?
本買おうか悩んでるんだけど。

522 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:15:29 ]
ネットにあってもどうせ広告すらクリックしないだろ乞食

523 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:34:01 ]
>>520
これをコピペしてコンパイルして自分で色々実験してみるがよろし。
あと、JavaのとPerlの正規表現はほぼ別物と考えた方がいい。

public class RegExp {
public static void main(String args[]){
String patStr = null;
String text = null;
if(args.length <= 0) {
try {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Pattern: ");
patStr = br.readLine();
System.out.print("Text : ");
text = br.readLine();
} catch(IOException e) {
e.printStackTrace();
}
} else {
patStr = args[0];
text = args[1];
}
Pattern pattern = Pattern.compile( patStr );
Matcher matcher = pattern.matcher( text );
if(matcher.matches()==true)
System.out.println("match");
else
System.out.println("not match");
}
}

524 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:51:24 ]
ある文章から指定した正規表現に一致するもののみを抽出したいのですが、そのものずばりな方法ってありませんかね?
一致するものをひとつずつ探して、それらを結合する、といった方法しか思いつかないのですが、もっとスマートな方法があったら教えてください。

525 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:58:20 ]
>>522
広告クリックしてもらえなかったのか。よしよし。

526 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:17:49 ]
>>524
それぐらいならスマートな方じゃないかなと。(というかスマートって何さ
貴方の理想が魔法のステッキなら話は別ですが…

便利な魔法のステッキも最終的にはどこかで地道な作業をやってるわけで。

527 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:00:31 ]
ありがとうございます、ひとつずつで実装することにします。
Lispから入った捻くれなので、リストは一括操作でないとどうにも落ち着かないのです。

528 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:22:21 ]
「Lispから入った捻くれなので、リストは一括操作でないとどうにも落ち着かないのです。」
今年に入って一番説得力のある発言を見た

529 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:28:15 ]
やっぱりLisp使いはJava厨とはわけが違うな

530 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:39:49 ]
以上、自作自演でした



531 名前:515 mailto:sage [2008/01/29(火) 22:35:42 ]
>>521
CSVTokenizerだと正規表現を使っておらず参考になりませんでした。
ほかにもそういったもので参考になるものがあれば教えていただけないでしょうか。

>>523
だいたい同じようなものを作ってようやく形になったのが上記のソースです。。。orz

532 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:43:18 ]
>>507
まとめてexecuteするときに間にsleepタスクを挟めばいいんじゃない

533 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:49:04 ]
16進数の文字列表現をintまたはIntegerに変換したいのですけど、
まさにこういった機能をもったAPIがあったら教えてください。

結構探し回ったんですけど見つかりませんでした。

534 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:53:35 ]
>>533
つ Integer.parseInt(String, int)
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/Integer.html

535 名前:デフォルトの名無しさん [2008/01/29(火) 23:55:52 ]
すいません、メモリ(ヒープ)サイズについて質問です。
java実行時に-XX:+PrintGCDetailsオプションを指定してgcのログを出しています。
そのログに記録される結果のヒープサイズと
psコマンド(ps alxなど)の結果(RSS)が一致しないんですが、

プロセスサイズ=ヒープサイズ+JVM自身が利用するメモリサイズ
ってことであってますか?

536 名前:533 mailto:sage [2008/01/29(火) 23:57:21 ]
>>534
parseIntは散々試してみましたけどだめでした。
なむふぉでまくりです。
decodeがまだだったので試してみます。

537 名前:533 mailto:sage [2008/01/30(水) 00:04:07 ]
うまくいきまんた

538 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:04:41 ]
>>524
あらかじめずばり抽出できる構造で文章を保持しておけばスマートじゃね?

539 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:10:28 ]
>>531
なんでそこまで正規表現を使いたがるのかな?
正規表現って便利だけど実行速度はすごく遅いよ。


540 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:16:53 ]
>>521
和訳は本しかない
VMの対応バージョンは1.3か1.4あたりだったかな
5.0でバイトコードのフォーマットが変わったから、買おうか悩む



541 名前:デフォルトの名無しさん [2008/01/30(水) 00:33:30 ]
伝わりにくいと思うんですが、文字列を相手に入力してもらう方法と、その入力してもらったいくつかの文字列をランダムに組み合わせるってできますかね?

542 名前:デフォルトの名無しさん [2008/01/30(水) 00:35:36 ]
>>541
文字列というのは日本語です。

543 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:39:59 ]
伝わりにくいね。
〜してもらう方法と、〜をランダムに組み合わせるってできますかね?
・・・日本語がおかしいから伝わりにくいんだろうね。

544 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:40:32 ]
List に突っ込んで Collection#suffle() して連結。

545 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:40:35 ]
×伝わりにくいと思うのですが
○伝わらないと思うのですが

546 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:42:38 ]
入力:いくつかの文字列
出力:入力をランダムに並べ替えたもの

もしくは

入力:いくつかの文字列
出力:入力のいくつかをランダムに並べ替えたもの

他にもいろいろ考えられるけど?

547 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:44:48 ]
入力:文字列
出力:入力の部分文字列をいくつか作り、それを並び替える
とかか。

548 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:53:58 ]
方法ってできますかね???
なんだかできないきがするんですががが

549 名前:507 mailto:sage [2008/01/30(水) 00:55:31 ]
>>532
なるほど、その手が・・・勉強になりました。

550 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:58:19 ]
時期的に学校の課題なんだろうけど、少しは自分の頭で考えないと勉強にならない、
とか言うのは野暮なのかねやっぱり。



551 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:13:34 ]
ここは将来の脅威の摘むためにバカを増やすスレですが。

552 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:24:19 ]
>>540
SE 7でもバイトコードのフォーマット変わるんだよね。
本の内容がどんどん古くなるから買おうか悩むんだよ。

553 名前:デフォルトの名無しさん [2008/01/30(水) 02:49:09 ]
(当方、本職プログラマーでなく初心者です)
すみません、アプリケーションスコープの使い方で迷ってます。

具体的に書くと、
ショップサイトにて商品ジャンルごとにアクセス数の集積を取りたい
と考えたのですが、データベースへのアクセス頻度を減らすためにも、
商品ジャンルのデータベースをそのままアプリケーションスコープに
入れてしまおうかと思っています。ただその場合には10000個数近くの
インスタンスを入れることになってしまうのですが、初心者なために
これが大丈夫なことなのかよくわかりません。

オブジェクトにはintとStringとが半々ずつ、合わせて10個のメンバ
変数があり、Stringには全部でだいたい64文字程度入ります。中身だけ
で計算するとサイズは160kbyte程度かと思うのですが、この程度ならば
全然気にしなくても大丈夫な感じでしょうか? その何万倍いっとけ、
とかそういったレベルならいいのですが、よくわからなくて……。

指針となるドキュメントを見つけられなかったのでこちらで質問させて
もらいましたが、皆さん、アプリケーションスコープに入れるデータ
サイズはどれくらいまでにしてますか?

サーバーのスペック如何なところではあると思うのですが、アドバイス
あればどうぞお願い致します。


554 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 03:00:24 ]
それは実際に商品ジャンルのアクセスがネックになってることが明らかで、これを
メモリ上にキャッシュすればどれくらいの改善が見込めるという見積もりができている
上で言ってるのか?

普通に考えればその程度のアクセスがネックになるようなら他の処理もウンコチンチンで
マシン選定間違えてるだろ。商品ジャンルにメンテ入っても反映されないし、整合性が
保障できないなら下手に SQL で結合もできやしない。

555 名前:デフォルトの名無しさん [2008/01/30(水) 03:14:09 ]
なるほど、それもそうですね。
ありがとうございました。

556 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 06:20:12 ]
Logging API の設定ファイルって、出力先のファイル分けるためにわざわざ
Handler クラス作らなきゃいかんのか? 何で出力先の指定が「クラス名」に
紐づいてるんだ? インスタンスだろjk

557 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:00:31 ]
慣例としてクラス名を使っているだけで、名前には何でも使用できたと思うが?

558 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 12:20:13 ]
>>535
>プロセスサイズ=ヒープサイズ+JVM自身が利用するメモリサイズ
>ってことであってますか?

ヒープもJVMが利用するメモリなわけだが・・・

ヒープは、Javaから見えるメモリ空間だけど
JVMは、実行用のスタックメモリを持っていてこれは
ヒープメモリに入ってこない。(ヒープじゃないし)
あと、Hotspot用とかあるし。
ヒープサイズを越えてどれくらいメモリを使うかは決まっていない。
(スタックとかはある程度判るが・・・)

559 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 12:58:03 ]
unicodeのソースでreplaceAllで"\\t"(TAB)が置換できない。どうやってやるの?

560 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:37:52 ]
>>559
ふつーにできるよ?
System.out.println("aaa\tbbb\tccc".replaceAll("\t", "[TAB]"));
結果: aaa[TAB]bbb[TAB]ccc




561 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:41:04 ]
>>559
分からないので、ひとつえsp
replace を始め、String系の変換で良くある間違い。(てか、今やって見て久々に…
Stringは不変オブジェクトです…
要は、インスタンスメソッドで値が変わってるかのように見えても、
単に新たなStringを生成して返してるだけ、という…

562 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:03:26 ]
>>557
# "handlers" specifies a comma separated list of log Handler
# classes. These handlers will be installed during VM startup.

Log4j のおっさんがアジ文章で 「JSR47の設定ファイルはハンドラクラスに
1 インスタンスしか指定できねーじゃんよ ファイル分けらんねーよ!!」 と
ブチ切れてるのも見つけた。
www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/critique.html

実際 JSR47 の仕様書読んでもクラス名だったアルヨ。Formatter にしても Log4j に
慣れてると 「この程度のもん用意しとけYO!」 と言いたくなるなぁ。

563 名前:559 mailto:sage [2008/01/30(水) 14:10:08 ]
わかりました。
正 s = s.replaceAll("\t", "");
誤 s.replaceAll("\t", "");
ありがとうございました。

564 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:32:00 ]
>>563
ここのクイズと同じところで引っかかってるね。
blogs.sun.com/javaev/date/20080120

565 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:49:40 ]
オブジェクトを直列化して受け渡しする際のImageIconの仕組みについて質問です。

java.awt.ImageクラスはSerializableインターフェースを実装していないため、swingのImageIconでラップして直列化しているのですが、なぜImageIconが画像を正しく直列化出来るのかが理解出来ません。

ソースをざっと見たのですが、画像を保持しているフィールドには、transient修飾子がついている上、他の部分でも特にこれという箇所は見つけられませんでした。

ImageIconがどのように画像を直列化しているのか、解説かヒントをいただけるとありがたいのです。
よろしくお願いします。

566 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:26:14 ]
>>565
private void writeObject(ObjectOutputStream) メソッドがあるだろう
そのメソッドがあると、直列化するときに呼ばれる

567 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:44:36 ]
beanshell classpathを使いたいのですが、一昨日からサイトが落ちたまま(ドメイン更新忘れ??)です。
beanshell classpathを持っている方、アップしていただけませんか。

www.beanshell.org/

568 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:13:31 ]
bugparade にバグ投稿すると確認メールか何か返ってくるもんかえ?
何日たってもまったく検索にヒットせんのう。

569 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:02:53 ]
>>568
俺のときは投稿直後(数分後とか)に自動確認メールが来たけど。

BugDatabaseに登録されたら、その時にもメールが来るはず。
登録されない時は自動確認メールの後、音沙汰がなくなったような。

570 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:27:25 ]
>>569
そーなのか、じゃどっかでロストしたな。
センキューベイベー



571 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:28 ]
ExecutorServiceって、一度shutdownすると再利用はできない?

572 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 02:26:07 ]
>>558

プロセスサイズ=ヒープサイズ+スタック+Hotspotってことすね。
thx

ってか今、遊びで作ってるプログラムなんだけど、
プロセスサイズが右肩上がりで肥えていく・・・
ヒープは正常(増減を繰り返す)っぽく見えるのよね・
もうよく分からん。javaは難しいな・・・


573 名前:デフォルトの名無しさん [2008/01/31(木) 02:36:01 ]
rt.jar変えずにString.toString()の挙動を
return this;

return "hoge" + this;
に変更したいんだけど、これって可能?
Javassistとかバイトコードいじる以外で。

574 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 02:43:48 ]
>>573
私は出来る方法を知らない。
が、何に使うのか。そこには興味がある。

575 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:46:16 ]
実行時のAOPで出来ないの?

576 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:59:22 ]
>>575
AOP…
私の知ってるAOPはバイトコードをいじるのですが、何か別の方法があるのでしょうか

577 名前:デフォルトの名無しさん [2008/01/31(木) 09:36:44 ]
ちょいと質問です。
TBNって個人のニュースサイトなんですが、
ttp://tbn2.blog50.fc2.com/

タブブラウザのJavaScript実行を切ってても
ページが表示されると勝手に実行に切り替わってしまいます。
というかoffにすることが出来ません。
これってどいゆう仕掛けなんでしょう?



578 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:40:44 ]
ここはJavaの質問・相談スレッドだと思う。

579 名前:デフォルトの名無しさん [2008/01/31(木) 09:55:17 ]
>>578
スマソ
どこの板に質問していいか分かんなかったんでココに書き込ませてもらった。
どーしてそうなっちゃうのが知りたいんだが、分かりますか?

580 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:58:06 ]
web板へ池



581 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:11:16 ]
ここにいる人は知ってるかもしてないけど、文字列解析の良いロジック思いついたから
晒しとくわ。
String word //解析したい文字列
for(int i=0; i<word.length(); i++){
if(word.startsWith("NGワード",i){
//処理したいロジック
}
else{
}
}
//else ifでNGワード追加していけばいくらでも設定できる
こんなんどうでしょ?
もしかしたら文字列の長さ1からカウントするかもしれないけど例外は出ないし
NGワードが最後にあるってことは少ないと思うのでモウマンタイで。

582 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:13:27 ]
!目から鱗w天才なんじゃね

583 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:17:31 ]
NGワードにJavaScriptを追加しろということですか?

584 名前:581 mailto:sage [2008/01/31(木) 10:19:07 ]
すまそjavadoc見たらlength()の長さは文字列内の16ビットUnicode文字の数に等しくなります。 だと
for(i=1; i<=word.length(); i++){
}
に修正

585 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:08:51 ]
>else ifでNGワード追加していけば

この時点ですごく残念な感じが漂っているような気が。

586 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:37:53 ]
・・・。
ヘボすぎてため息出ちゃうね。

587 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:42:10 ]
>NGワードが最後にあるってことは少ないと思うのでモウマンタイで。
大問題w

588 名前:森園くるみ [2008/01/31(木) 11:55:10 ]
森園くるみと申します。

★実装方法についてご教授いただきたくぞんじます。

内容:s2Maiでhtml形式のメールを送信したい
(Content-Typeにtext/htmlを設定したい)


589 名前:581 mailto:sage [2008/01/31(木) 12:01:05 ]
失礼、私もまだまだでしたね。
ロジックを思いついた勢いでへボソース晒してスマソ

590 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:19:39 ]
>>588
Seasarのスレに行った方が早いんじゃない。
あと、本物か知らないけど名前は書かないほうがいいよ。



591 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:31:14 ]
オープンアプリで、レコードストアとかデータフォルダの容量を
0にするまで一時ファイルを作るようなアプリって
作成可能ですか?

文字をレコードストアに保存するまでは分かったんですが、
でかい容量のファイルの作り方が見つからないので。
初心者なので、参考になりそうなサイトがあったら教えてください

592 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:32:52 ]
まず、自分のやりたいことと課題点を整理しなさい。話はそれからだ。

593 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:43:06 ]
コンストラクタでのthis漏洩ってどれぐらい気をつける/気にするもんでしょうか?
内部クラス経由の暗黙漏洩、thisキーワードでの明示的漏洩を問わず。
class Foo {
 Bar bar;
 public Foo() {
  bar = new Bar(this);
 }
}
みたいな時、new Bar(this)はthis参照を保存するだけで、それを使うことは無い、とわかってれば
安全なんでしょうが、Barのコンストラクタの実装が変わるとFooも危険になる。
Fooの安全性が、Barの実装に依存することになるのが、なんとなく気持ち悪いけど、割り切ればいいものなのかもしれない。
ってのがモヤモヤするところです。
潔癖にするなら、
class Foo {
 Bar bar null;
 public Foo() {
 }
 public void initialize() }
  bar = new Bar(this);
 }
}
みたいな2段階初期化なんでしょうけど。
Swingのソースとか見ると、this漏洩しまくりなんですけどね。

594 名前:591 mailto:sage [2008/01/31(木) 14:56:18 ]
>>592
簡単に言うと、データフォルダの容量を0byteに出来るようなアプリを作りたいんです。
ただ探してもなかなか見つからないので、
似たようなアプリ、または参考になりそうなサイトがあったら
教えて頂きたいのです

595 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 15:00:44 ]
今Jasminでバイトコードのアセンブルやろうと思ってるんだけど、
これって既存のclassファイルをJasminのコードに逆汗(?)してくれたりする?
いかんせん情報が少ないような

596 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 15:17:12 ]
>>593
何心配してるかさっぱり分かんねーんですけど、相手への依存性高めたくないなら
(相手が信頼置けないなら) アクセス修飾子きちんと付けたりインターフェース化したり
さらにアダプタや Wrapper で包んで渡せば良いじゃん。

597 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 15:22:59 ]
>>593
this漏洩が問題になるのは、主にマルチスレッド下だと思う
swingはEDTにバインドされているので、まあ、いいか、みたいな感じなのかも?

598 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 15:34:22 ]
検索したら IBM 様のサイトが見つかったけど、this 漏洩なんて御大層な名前
付けるほどでもない単なる非同期設計ミスじゃん。漏洩の使い方間違ってる。

599 名前:581 mailto:sage [2008/01/31(木) 15:51:10 ]
文字列の長さも0からカウントするのね・・・
嘘ブッコいてサーセン

600 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:06:55 ]
文字のマッチングは古典なのでアルゴリズムは腐るほどあるよ。

というか、未だに、>>581 のループの意味が分からない・・・・・
何かの謎かけか・・・・
何がしたいか全く不明だ・・・・・



601 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:09:59 ]
マジレスする生真面目バカがどんだけ居るか調査してんじゃね。

602 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:40:24 ]
>>581
まぁ、アルゴリズムを考えるのは悪くないが…
この程度なら、String.indexOf(String) 使おう
1.5 からは、String.contains(CharSequence) もあるし、
状況に応じて使い分ければなんとかなるもの。

もちろんソースでそのアルゴリズムを確認するのも勉強になることでしょう。

603 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:49:01 ]
>>594
なんかのウィルス作成以外の用途があるとは思えないんだが。
そうでないとしても、何したいのか知らないが、そんな力技で
しか実現できない時点で何か間違ってる気がする。

604 名前:591 mailto:sage [2008/01/31(木) 17:54:51 ]
わからないなら黙ってろよ

605 名前:デフォルトの名無しさん [2008/01/31(木) 17:58:57 ]
たいした事いえないなら黙ってろよ

606 名前:デフォルトの名無しさん [2008/01/31(木) 17:59:20 ]
とにかくだまってろよ

607 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:01:36 ]
RandomAccessFile#setLength()

608 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:04:47 ]
CLDCってRandomAccessFile使えたっけか?

609 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:10:31 ]
J2ME の話か。道理で聞きなれない用語使ってると思った。

610 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:10:49 ]
クラスあたりから理解できねぇ・・
本が悪いんだろうな本が悪いんだきっと



611 名前:581 mailto:sage [2008/01/31(木) 18:25:32 ]
>602 便利なメソッドがありますね。見落としてました。ありがとうございます。

612 名前:591 mailto:sage [2008/01/31(木) 18:42:45 ]
なんか僕の偽物が出てますがスルーで。
まぁここの方でも分からないようなので諦めます。失礼しました

613 名前:デフォルトの名無しさん [2008/01/31(木) 18:46:18 ]
マルチスレッドでアニメーションを作成しています。
ある図形を平行移動させて(四角形を描く感じで)最終的に元の位置に戻すにはどうすればいいですか?
毎回ランダムな場所を通したいんです。

switch文とRandomクラスでできそうですが、美しくない…

図形の座標計算は別クラスです。

説明下手ですみません。よろしくおねがいします

614 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:47:58 ]
>>612
いまさらだけど誘導
…てかテンプレに何もないのがアレなのか

CLDC+MIDP+携帯電話用Javaスレッド part 7
ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/

615 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:52:12 ]
次スレからDoJaやCLDCはスレ違いと書いておいた方がいいんでないか

616 名前:581 mailto:sage [2008/01/31(木) 18:53:49 ]
てか俺質問しに来たわけでは無いんですが・・・
俺のレス読んで;;;;

617 名前:デフォルトの名無しさん [2008/01/31(木) 19:02:02 ]
質問よろしくお願いします。

親子関係にあるAとBのクラスを作っています。
Aにはhoge()というメソッドがあります。
Bには複数のメソッドがあります。

Bのメソッドが呼び出される時、
必ず最初にAのhoge()を呼び出してから各処理をさせたいのですが
メソッドそれぞれでhoge()を呼ぶように記述する以外の方法で
hoge()を呼び出すことはできますか?

618 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:16:09 ]
1. B をインターフェース B1 とコンクリートクラス B2 に分ける。
2. ファクトリを作成しダイナミックプロキシをかました B1 インターフェースで返す。
3. ダイナミックプロキシのハンドラで B2 の任意のメソッドを呼ぶ前に必ず hoge() を呼び出す。

619 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:16:53 ]
Proxy

620 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:19:42 ]
AspectJとか、Javassistもあるね。



621 名前:とりあえず探してみた mailto:sage [2008/01/31(木) 19:20:19 ]
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java標準低速GUI 6 AWT/Swing
ttp://pc11.2ch.net/test/read.cgi/tech/1190807478/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part16
ttp://pc11.2ch.net/test/read.cgi/tech/1198816379/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 7
ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 64 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1196543694/l50

622 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:26:05 ]
■ それ以外
life9.2ch.net/mental/

623 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:32:08 ]
>>618-620
レスありがとうございます。
教えていただいた用語を基に調べて行くことにします。

ありがとうございました!

624 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:56:29 ]
>911-912 が本物と偽物思ってしまった・・・

625 名前:デフォルトの名無しさん [2008/01/31(木) 20:16:31 ]
axisをtomcat以外で使用するにはどうすればいいですか??

626 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:17:59 ]
>>597
マルチスレッドじゃなくても、コンストラクタ内でthisが漏れると、
コンストラクタが完了する前に、private finalなのに初期化前のフィールド値を
参照することになったり、
それを継承すると、super()の中から自分のメソッドを呼ばれて、
そのクラスのコードを1行も実行する前にフィールド参照が起こったりと、
しっちゃかめっちゃかになると思うんですが。

627 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:30:04 ]
単にそれ設計が糞なだけだろ。呼び出しと依存関係がスパゲティになってるような。
this とか関係ねーし。

628 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:53:23 ]
今実験しててjavaのバイトコード中に
12 : goto 42
:
42 : iadd
みたいなジャンプ後にいきなりスタックのオペランド使うようなコードが
入ってるともしかしてローダに怒られるようになってんの?なんかベリファイエラーでて
"Unable to pop operand off an empty stack"
とかって言われんだけど・・・

629 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:02:19 ]
スタックが空じゃん
取り出すオペランドが無いじゃん

630 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:35:38 ]
>>629実質スタックには実行時必ず何かしら乗るようにしたんだけど(動かせば問題ないはず)
VMがロードする時点で(実行しなくても)エラー吐いちゃうからさ・・・インタプリタ作ってんだけど



631 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:36:45 ]
>"Unable to pop operand off an empty stack"
javaにしては意味が分かりやすいエラーメッセージだな。

632 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:07:48 ]
Java VM Specificationのベリファイアの項を読めばいいんでないか

633 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:15:23 ]
今はソースコードもあるしな

634 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:49:51 ]
>>627
そのスパゲッティ化を起こさないための設計指針の一つがコンストラクタでthisを
外部に晒さない、なんだが理解できんのか。javaプログラマの質が知れるな。
糞コードが量産されるわけだ。

635 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:51:56 ]
>>632英語よくわかんないんだけど
For example, it checks that every instruction has a valid operation code;
が今の状況に当てはまってる・・・?

636 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:53:11 ]
いや、ごめん違うか・・・でも多分ダメなコードなんだろうな

637 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:15:07 ]
外部から最大ヒープサイズを知るような方法はあるでしょうか?

638 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:17:42 ]
>>635
そこはInstruction Setにのってないopcode使うなって話だと思うから、
スタックが空ってのとは違うと思うぞ。

639 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:25:53 ]
>>637
JMXで取れない?

640 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:30:59 ]
>>635
スタック云々だと、データフローアナライザ絡みじゃね?
4.9.2 The Bytecode Verifierの
Next, a data-flow analyzer is initialized. 〜 4.9.2の終わりまで全部。



641 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:47:08 ]
>>640でしょうな。まさかJVMがそこまでチェックしてるなんて知らなかった・・・
勉強になりますた。バイバイ

642 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:26:57 ]
ブラウザのリロードボタンや、アプレットビュアーの再読込クリックしなくても
エラーなどのイベントで全く最初からやり直す方法はありませんか?

643 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:38:09 ]
エラーって例外かね?

アプレット相手だと、未だにJDK1.1互換で考えなきゃいかんのか?
だとすると、Thread.UncaughtExceptionHandler とか使えないし、
EDT相手だとuncahughtExceptionをオーバーライドしたThreadGroup使って、
ってわけにもいかんだろうし。

644 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:58:28 ]
>>643
すみまません。書き方が悪かったですね。
具体的にはアプレットのウインドウのリサイズを感知したときに再読込から始めたいのです。
アプレットのウインドウサイズは変わらない前提で作ってあったので、
外部から動的に変更されてそのまま実行するとエラーになるのです。

もちろん全てのスレッドを止めてメモリも解放して、最初からやり直すように書けばいいだけなのですが
もっと簡単に再開できる方法が有ればと…(昔のBASICのRUNみたいに(^^;)

645 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:27:09 ]
>>644
現実行環境の破棄->再読み込み->再実行 とかを
一発でできる便利メソッドがあるか、って話?

ないはず。

646 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:56:35 ]
>>645
ありがとうございました。
手抜きは諦めます。

647 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:08:13 ]
>>639
ありがとうございます。-Dcom.sun.management.jmxremote 設定 + jconsole で
取得できる情報でまさに構わないのですが、起動引数が自由に弄らせて貰えない
状態でして…再起動は許されるかもしれません。

あるいは、上記のようなシステムプロパティを設定しなくてもできるもの
なのでしょうか?

648 名前:デフォルトの名無しさん [2008/02/01(金) 15:27:18 ]
って作ればいいじゃんメソッド

649 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:42:48 ]
>>634
this に関係なくそんなレース問題みたいなのは発生しうる、と言ってるのが
理解できんのかこのバカ。ゆとり読解力だと社会生活も支障あるだろ、マジ同情。

650 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:48:02 ]
>>646
LiveConnect で JavaScript 呼び出してページリロードでもさせれば?



651 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:07:05 ]
LiveConnect使うとIEじゃ動かないだろ。
ページリロードくらいjavascriptの範囲で出来ると思うが。

652 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:13:19 ]
IE だと何が動かないと?

653 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:14:05 ]
IEってLiveConnect使えなかったっけか?

654 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:21:40 ]
>>645
AppletContext#showDoculent(URL, String) で、
ターゲットに "_self" 使えば再読み込みできんじゃね?

655 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:25:06 ]
≫ doculent

656 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:17:51 ]
IEはActiveXScripting。NNはLiveConnect。

657 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:48:06 ]
ActiveXScripting て単なるスクリプティング環境で接続仕様じゃないんだけど。
Sun の Java Plug-in ドキュメントでも使い分けてないし、ベースが Netscape の
LiveConnectにあわせたインターフェースなんだから LiveConnect で良いじゃん。

658 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:55:51 ]
AWT で言うところの Canvas って Swing で JPanel 使えば良いんですかね?
コンポーネント配置するんじゃなくて自分で描画する奴。

659 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:28:02 ]
JPanelでもいいがJComponentでもいい
paintじゃなくてpaintComponentをオーバーライドすること

660 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:39:07 ]
>>657
一人でそう思っとけばいいだろ、いちいち騒ぐことでもない



661 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:40:09 ]
(´,_ゝ`)プッ

662 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:54:28 ]
言語仕様3版から導入されたコンストラクタ終了時のfinalフィールドの可視性の保証は、
this が漏洩されると保証されなくなるって聞いたけど、
コンストラクタがオーバライド可能なメソッドを呼び出すことについては、どう扱われているん?
おしえてエロイ人


663 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:01:06 ]
普通に未初期化の null とか 0 とかの値で参照してしまうだけじゃね。

664 名前:デフォルトの名無しさん [2008/02/02(土) 02:12:51 ]
JNDIについてわかりやすいサイトがあればおしえてくれませんか。
EJBの勉強で別サーバで動くEJBを動かしたいんですが、JNDIの設定
がわからなくてエラーがでます。

665 名前:デフォルトの名無しさん [2008/02/02(土) 02:47:54 ]
>>664
もうちょっとエラーの内容を細かく書いてみるべし。

666 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:10:02 ]
昔の Java からどう変わってきたかざっくり書いてある HP ないですか?

667 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:24:20 ]
>>666
こんなん? まぁキーワードから先は自分で調べれ
lab.moyo.biz/references/java/version.xsp
lab.moyo.biz/references/java/history.xsp

668 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:21:11 ]
質問なんですけど・・・アメーバビジョンとかの GOOD やら BAD を選ぶフォームあるじゃないですか?
あれで押しても動画の視聴が遮られないで反映するのって何で実装してるのですか?

669 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:23:59 ]
web板池

670 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:16:17 ]
そうします。失礼スマスタm (_ _) m



671 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:52:45 ]
iアプリスレから誘導されました
iアプリでTextBoxに入力する時には一度決定キーで文字入力状態にしますが、
KeyPressedでキーの数字を順次読み込ませてTextBoxに入力させたいのですが、
方法がいまいち分かりません。
public void KeyPressed(int key) {
text.setText(text.getText() + (key));
}
で良いのでしょうか?ご教示願います。

672 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:28:49 ]
固有のAPIはここに誘導してもどうしようもないと思うんだが。

673 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:40:39 ]
>>671
int key が数字ボタンに表示されてる数字(1とか2とか)ならそれで大丈夫。
iアプリのAPIについては良くわからないので別の問題なら私は無理。

というか、〇〇で大丈夫ですか? と聞くぐらいなら、試せばいいじゃないか、と。
「△△になるはずだったんだけど、□□と表示されてしまう」というなら、
解決法なり誘導なり、色々手伝えることがあるとは思うのだが…

674 名前:671 mailto:sage [2008/02/02(土) 16:16:25 ]
>>673
質問の仕方が悪く、大変申し訳ありませんでした。
上記のソースを使って編集不可に設定したTextBoxに
入力できるようにしているつもりなのですが、
TextBoxには数字が入力されません。
どうすればよいのでしょうか。

675 名前:デフォルトの名無しさん [2008/02/02(土) 16:34:08 ]
Javaアプリケーションを実行形式で配布する方法ってありますか?
どこかのスレで話し合われていたら、誘導お願いします。

なんか、過去ログにはあったんですが、
現行スレなさそうで・・・。

676 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:50:47 ]
>>675
ダブルクリッカブルでいいのかそれともネイティブな実行可能ファイルを吐きたいのかによる。
ダブルクリッカブルでいいならjar生成するときにマニフェストでMain-Class指定。
ネイティブならjava, exeなどで検索。

677 名前:デフォルトの名無しさん [2008/02/02(土) 17:22:24 ]
最近、ここ一年くらいJava使ってないんだが、
最近のJavaの近況ってどうよ?

SpringとかAjax周りとかO/Rマッピングとか、StrutsとかRoRのJava版とか
昔聞いた記憶があるんだが
そのほか新しいトピックがあるとしたら今は何よ?

678 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:29:28 ]
WicketいいよWicket

679 名前:デフォルトの名無しさん [2008/02/02(土) 17:31:28 ]
劇団四季のあの芝居か?

680 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:28:36 ]
ちょいとパッケージについて質問したいのだがコンパイラ時に
classファイルが1つしか出てこないのだが(5つのファイルで構成されている)
これは何故なのだろうか・・・。ちなみにコンパイルは通った。
packageの名前が違うというジョークは無い。
ちなみに参考書についていたパッケージのプログラム(4つのファイルで構成)
は普通に通って4つ分のclassファイルが出来たのだが。



681 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:41:53 ]
>>680
javac だと、コンパイルしたクラスが直接使用してない
無関係なクラスは自動的にはコンパイルされないけど、
そーゆー話じゃなくて?

682 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:59:55 ]
>>681
あ、もしかしたらそれかもしれない。回答thx。

683 名前:デフォルトの名無しさん [2008/02/02(土) 21:08:36 ]
例えば計算アルゴリズムを作ってランチャー形式で計算させるようなアプリケーションを作る場合
追加のアルゴリズムをモジュールのように取り込んで別々の計算をさせるようにするには全体をどんな構造にすれば
いいのか
何かコツみたいなものあります?

684 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:12:27 ]
ttp://www.raw-paradise.com/

685 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:41:23 ]
どうでもいいことで恐縮なんですが、java.util.CalendarのMonthって、なぜ0からなんでしょう?
年はおろか、日すら1から始まるのに、月だけ0-11にしたのかわかりません。
一通り調べたのですが、なかなか出てこなかったので、知っている方いらっしゃれば教えてください。

686 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:48:12 ]
>>685
月は数字じゃなくて、名前がついてるからじゃね?
曜日も0からだし。

687 名前:685 mailto:sage [2008/02/02(土) 23:49:24 ]
と、書いた矢先にそのものズバリの答えを見つけました。
スレ汚し失礼しました。

# 以下チラ裏
# 後続のために念のため見つけたURL書いときます
# JavaFAQ: Date / Calendar
# ttp://javafaq.jp/S100.html


688 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:50:29 ]
>>686
すいません、回答ありがとうございます。
その通りでした。

689 名前:デフォルトの名無しさん [2008/02/03(日) 01:40:07 ]
>>679
それはウィキッド

690 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 04:20:11 ]
わかりにくいボケにわざわざ突っ込んであげる>>689に全俺が感動。




691 名前:デフォルトの名無しさん [2008/02/03(日) 16:03:37 ]
664です。質問内容がが不明瞭でした。
EJBを使用する際に、
ObjHome objHome =
(ObjHome)context.lookup("java:comp/env/ejb/test.ObjHome");
でhomeを取得してくるのですが、
これってリモートでEJBをCALLするときにEJBが存在するサーバIPや
ポートの指定などしていないのですが、何故callできるんでしょうか。


692 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:30:23 ]
>>691
・InitialContext.lookup()の引数に環境情報を渡す
・jndi.propertiesにホスト情報を記述する
・APサーバのJNDIサービスにエイリアスを設定する
上記のどれか。
何もなければ同一ホストから検索される。


693 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:26:01 ]
質問させて下さい。

Object obj = new Object() { ... }

こういう文法が理解できません。
中括弧の中では、何をしているのでしょうか。
コンストラクタを定義するのと同時に、
インスタンスを作成している感じでしょうか?
メソッドに与えられるのは引数だけだと思っていたので、
それ以外の何かを同時にしているというのがよくわかりません。
この書き方の概念を教えてください。

出来れば言語仕様上で、こういう記法がどこに書いてあるかの
ポインタも合わせて教えていただけると嬉しいです。
(さらに言えば、日本語で)
こういう書き方をなんと呼ぶのかも知らないので、検索もできず……。

この書き方は、例えば ThreadLocal クラスの
API の 1.4 以降で、使い方の説明に出てきます。
sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/ThreadLocal.html

694 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:28:20 ]
>>693
匿名クラスでググれ

695 名前:693 mailto:sage [2008/02/03(日) 17:33:48 ]
>>694
ありがとうございます!
ぐぐって無事に正体がわかりました!

696 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:34:30 ]
>>676
ありがとうございます。

ダブルクリックで起動できればいいかなと思っていますので、
ちょっと試してみます。

.batファイルを作ったり、
ショートカットで作ったりしていましたが、
それって、環境変わったらだめくさいきがしまして・・・。

697 名前:868 mailto:sage [2008/02/03(日) 19:50:23 ]
>>869
回答ありがとうございます。
ProjectはBuild automatically clean にチェックが入っています。
しかし新しく作成したディレクトリがTomcatで表示されません。
webapp直下にjsp-xxxというフォルダを作ったのですが。


698 名前:868 mailto:sage [2008/02/03(日) 20:00:04 ]
誤爆しましたorz


699 名前:697 mailto:sage [2008/02/03(日) 20:16:20 ]
697の質問ってどこですればいいのでしょうか?orz

質問先でスレ違いといわれてしまいました。

700 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:32:45 ]
それだけで状況が解るエスパーを探しているのかい?



701 名前:697 mailto:sage [2008/02/03(日) 20:52:24 ]
>>700
回答ありがとうございます。
あと何を書いたらよいでしょうか?

702 名前:697 mailto:sage [2008/02/03(日) 21:38:08 ]
くだスレで聞いてみます。

703 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:56:30 ]
エスパー頼りならどこで聞いても同じだろ

704 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:25:39 ]
>>703

あとは何を書いたらいいのかわかりません。
何を書いたらよろしいでしょうか?

705 名前:デフォルトの名無しさん [2008/02/03(日) 23:52:19 ]
java.lang.Process#waitFor()で永久ブロックになってしまうことがあるので
タイムアウトを設定して回避したいのですが、
タイムアウト付のwaitFor代替の方法ってあるのでしょうか?
いちいちTimer設定して破棄するしかないのだろうか・・・


706 名前:デフォルトの名無しさん [2008/02/04(月) 00:22:23 ]
>>687
Java FAQも古いな。

Java5以降になってから解決した問題が未だに載っている。
Java5以降の開発では有用性が弱冠下がっている。
Java6以降の対応版Java FAQを作るべき時期に来ているのだろうか?
それとも、すでにそれに相当するサイトによって置き換えられてしまったか?

707 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:22:26 ]
final Process proc = Runtime.getRuntime().exec("/bin/shine");
Thread t = new Thread(){
public void run(){ try{ proc.waitFor(); } catch(InterruptedException ex){/* */}}
};
t.start();
t.join(5 * 1000);
if(t.isAlive()){ proc.destroy();}

708 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:24:31 ]
>>690
www.shiki.gr.jp/applause/wicked/

こいつよ

>>678はWicket
劇団四季でやってるのはWicked

スペルが一つ違い。


これは面白いミュージカルなんだろーか


>>678のおかげで見たくなってきた

709 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:27:08 ]
>>702
誤爆してるっていうから、レス番が>>898と未来へ飛んでるわけな?
今のところ、>>898のレスが無いから、
元の質問も今の君の質問からも、君が何をしたいのか
わからないんだ。情報を出してもらわないことには、質問には
答えられない。エスパーする以外では

710 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:29:17 ]
>>707
ありがとうございます。
結局waitForのタイムアウト指定版っていうのはないみたいですね…



711 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:36:30 ]
>>706
こういうまとめ系って Wiki とかじゃないと管理人がヘタったら終わりなんだよね。
他人が勝手にコピペして引き継ぐわけに行かないし。Wiki 立てるのって簡単なのかな?
サーバリソース余ってるからやっても良いんだけど。

712 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:52:55 ]
すみません。
>>709
アドバイスありがとうございます。そのとおりですね。

apache-tomcatとEclipseを使っています。
EclipseにSeaser2プラグインを入れました。
Churaプロジェクトを新規作成、
デフォルトのindex.jspがtomcatで表示されることを確認(localhost)

で、webapp直下にディレクトリを作成してファイルを置きました。
でコンテクスト定義の更新をかけたのですが、
作成したディレクトリが見えません。
ProjectはBuild automatically clean にチェックが入っています。

おそらくweb.xmlを直さないといけないのでしょうが
どこを直したらいいか見当がつきません。
ネットも探してみましたが分かりませんでした。
よろしくお願いいたします。

713 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:57:20 ]
Eclipseの外でディレクトリ作って、Eclipse側で更新かけてないというオチは俺は良くやる。

714 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:03:09 ]
このスレのWikiの更新具合も微妙

715 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:20:40 ]
>>713
回答ありがとうございます。
Eclipseの中でディレクトリを作っています。

716 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 03:36:48 ]
質問ですノ
リファレンスの本ってあったほうがいいでしょうか?
ワザあり!逆引き速引きリファレンスJavaってのがいいって聞いたのですが
どうなんでしょうか?

717 名前:デフォルトの名無しさん [2008/02/04(月) 10:11:33 ]
それくらい自分で考えろ。人に聞くことじゃない

718 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:30:47 ]
>>711
Wikihouseに立てるのは簡単だよ。

これ使う手もあり
ja.wikibooks.org/wiki/

719 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:32:20 ]
>>716
まず本屋でパラパラその本を捲ってみろ。

720 名前:デフォルトの名無しさん [2008/02/04(月) 19:44:11 ]
パラパラの本か
見た事無いなあ



721 名前:デフォルトの名無しさん [2008/02/04(月) 19:50:11 ]
>>692
サンクスです。
リモート呼び出しでも何の設定もしていなければ同一サーバ上のEJBを探しにいく
ということですね。

同一サーバ上で動かしていますが、
Context initial = new InitialContext();
Object objref = initial.lookup("NewSessionRemote");
で、lookupのところで
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

が出ます。何か設定しろということらしいのですが・・・

722 名前:デフォルトの名無しさん [2008/02/04(月) 21:05:25 ]
初めまして。Javaを最近になって勉強し始めた者です。
サンプルプログラムを探していて、このようなサイトにたどり着きました。
www.catch.jp/program/java/

ページ上部の「021: 10個の点が3-Dで移動する」のソースコードをコンパイルすると
classファイルが3つ出現しました。
使い方がわからなかったので、検索してみると「jar」コマンドで複数のclassファイルを結合できると知り、
試してみたのですがなかなかうまくいかないので、皆様のお力をお借りしたいです。
jarファイル作成についてはこのサイトを参考にさせていただきました。
www.tohoho-web.com/java/other.htm

このような場合にブラウザでアプレットとして動かすにはどうすればよいのでしょうか。
よろしくお願い致します。

723 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:05:25 ]
失礼します。

for(int i=0;i<numChips;i++){
mapChipImages[i]=createImage(chipSize,chipSize);
int x=i%numChipsInRow;
int y=i/numChipsInRow;
Graphics g=mapChipImages[i].getGraphics();
g.drawImage(mapChipImage,0,0,chipSize,chipSize,x*chipSize,y*chipSize,x*chipSize+chipSize,y*chipSize+chipSize,null);
}

numChips=64,chipSize=32,numChipsInRow=8です。
と、このようなものがあるのですがこちらの5行目(Graphics g=...)にて
Exception in thread "main" java.lang.NullPointerException
というエラーが発生してしまい困っております。
ttp://javagame.main.jp/index.php?FrontPage#rd9af24b
こちらのマップエディタの描画処理をrepaint();ではなく基礎-アクティブレンダリングで紹介されているものに
置き換えようとしたのですが上手く行かず困っています。
よろしくお願いします。

724 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:18:51 ]
マップエディタをアクティブレンダリングにして何の意味があるんだ?

725 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:25:43 ]
>>724
ごめんなさい。しっかりと書くべきでした。
ttp://javagame.main.jp/index.php?FrontPage#rd9af24b
で紹介されているマリオ風アクションゲームにてマップエディタを使い記録したものを
読み込ませるために使いたいのです。なので本来はマップエディタのマップを読み込み
描画するというところだけを抜き出せばよいハズなのですがどうも上手く動かなかったので
質問した次第です。ご迷惑をお掛け申し訳ありません。

726 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:27:21 ]
ついでに答えるか。
javaはパッシブレンダリングだからアクティブレンダリングするときは自分でバッファ管理しないとNPE出るけどそれじゃない?

ttp://homepage1.nifty.com/algafield/JavaGUIFaq19j.html#three4

727 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:30:29 ]
>>725
表示させるだけならアクティブレンダリングの意味ない

728 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:43:42 ]
>>726
まだ、私は日が浅いため理解するのに時間はかかりそうですが
頑張って理解してみようと思います。
>>727
そうなのですか。しかし、そうだとしても一枚のグラフィックを複数に分けて
使用するというのは今後も使いそうなのでできれば習得しておきたいと考えたのです。
実際、使う画像を一枚一枚分けて保存していては管理も大変だと思ったので。

729 名前:デフォルトの名無しさん [2008/02/05(火) 00:31:24 ]
解放したら自動的にnullになりますか?
これまでずっとCだったので、JAVAはよく分かりません。
www.asahi-net.or.jp/~ns9k-mr/csproject/jdbc_source/mvc.html

  }finally{
    try{
      if(rs != null) rs.close();
の部分です。
rsにnullを代入している記述は見つかりませんでした。
JAVAでは一般的に、*.close()すると、*はnullになるように
クラスが設計されているのでしょうか?

730 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:43:22 ]
>>729
> JAVAでは一般的に、*.close()すると、*はnullになるように
ならないよ。



731 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:47:27 ]
>>729
* がnullになる、という状態が上手く理解できていないので、Javaの方だけ説明します。

closeの内部で何をしているかについては実装しだいですが、
API の説明を見る限りでは、「JDBCリソース」を直ちに解放するようです。

try文の外、宣言部分で null 代入してます。
nullチェックをしているのは、値が入る前に例外が発生した時を想定しています。
ヒープからの解放は、GCにお任せなので、制御できません。

732 名前:デフォルトの名無しさん [2008/02/05(火) 01:13:45 ]
>>730>>731
それならfinallyで
      if(rs != null) rs.close();
こんなことが書いてあるということは、処理がうまくいった場合は
rs.close();が実行されて、その後にtryを抜けるところで
finallyによってもう一度rs.close();が実行されようとする悪いソースなのでしょうか?

733 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:26:31 ]
close() は 2 回以上呼んでも問題ないという Connection の仕様だから問題ない。
ただそのサイトのソースの書き方

}finally{
try{
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();
}catch(SQLException se){
se.printStackTrace();
}
}

とか文字列連結で SQL パラメータ追加したりとかウンコすぎ。

734 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:29:19 ]
>>733
>}finally{
>try{
>if(rs != null) rs.close();
>if(stmt != null) stmt.close();
>if(con != null) con.close();
>}catch(SQLException se){
>se.printStackTrace();
>}
>}

なにがいけないの?
一個目で例外が出ると全部コケる所?

735 名前:デフォルトの名無しさん [2008/02/05(火) 02:04:48 ]
>>733
Cでよくあるclose()のように、そのclose()も2回呼んでもエラーにならないと
想像してはいましたが、Cやってる人なら普通はclose()したらその直後にNULL入れるから
そういうソース見るとウンコかと。
でもJAVA知らないのでclose()の内部でnullする処理があるのか気になりました。

736 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:15:09 ]
> Cやってる人なら普通はclose()したらその直後にNULL入れる
そんなことしたことない。

737 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:22:06 ]
文字列を返すというクラスbを作りました。
bは引数が1つあって、引数に与えられた文字の手前に"f"を挿入した文字を返します。
結果は"fh"となることを期待しました。
期待通りになるように修正していただけませんか?

public class a {
 public static void main (String args[]) {
  String g = b("h");
  System.out.println("Hello World!!");
 }
}
public class b {
 b(String c){
  d(c);
 }
 private String d(String c) {
  String e = new String("f" + c);
  return e;
 }
}

738 名前:デフォルトの名無しさん [2008/02/05(火) 02:25:07 ]
>>735
それぞれの変数に値入れる前に例外発生してfinallyブロックに行く可能性があるからそういうコードになる。


739 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:25:30 ]
Javaの人でも close 直後に null を入れて大丈夫です。
但し、最終的な解放は GC 任せですので、あしからず。

Javaの場合は、裏でOSネイティブなリソースを使ってる場合があって、
明示的に解放してあげないと、何時までも占有する可能性がある。
特に、close はそういうことに関係してるかと。

740 名前:デフォルトの名無しさん [2008/02/05(火) 02:27:28 ]
>>737
まずコンパイル通せよ。
まぁそのままだと実行しても"Hello World!"としか表示されないだろうが。



741 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:30:15 ]
ローカル変数なら、nullを入れてもあまり意味がない。
フィールドや、外部に晒した変数なら、nullを入れるのもいいかもしれない。

742 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:32:36 ]
>>734
その通り。トランザクションの不整合などで rs.close() が例外になるとステートメントや
コネクションがクローズされない。

>>735
大きな try-finally 節の中で何度もオープン/クローズを繰り返すような時はクローズ後に
null を代入して、finally 節の close() は例外発生時の大域的な保障と位置づけることも
あるが、そのソースのように最後に 1 度だけやれば良いようなときは最後の finally に
任せてわざわざ try 節内ではクローズしない。一回目の close() で失敗したときの予備
としてもう一度試行する意図かもしれないが、DB の問題はもう一度やってうまく行くという
ものでもないし。つーかそのページの趣旨は JDBC コーディングどうあるべきかじゃない
んだからそんなお作法的なところは適当に読め。

743 名前:デフォルトの名無しさん [2008/02/05(火) 02:36:15 ]
>>738
それはエラーが発生した場合ですよね。
正常な場合にclose()を2回実行しようとするのはウンコだと思います。

>>739
JAVAは解放をGCがやってくれるらしいですが、Cと違って
やってくれるのはnewに対する解放のみなんでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:39:57 ]
>>743
スタックには参照しか置けねーよ アホ

745 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:42:28 ]
>>740
コンパイルしましたがまだ分かりません。
↓a.java
public class a {
 public static void main (String args[]) {
 String g = new String("");
// g = b("h"); コメントアウトしたらコンパイルできました。
  System.out.println(g);
 }
}
↓b.java
public class b {
 b(String c){
  d(c);
 }
 private String d(String c) {
  String e = new String("f" + c);
  return e;
 }
}

746 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:43:43 ]
そのソース、シャットダウンシーケンス入ると最悪だなw

747 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:45:03 ]
>>734

748 名前:デフォルトの名無しさん [2008/02/05(火) 02:45:47 ]
>>744
文章が簡素で短い。頭に思い浮かべている内容に自信がないみたいだね。
とりあえず744はアホのままでいいから744がスタックについて理解を
深めるのを阻止するためにスタックの話題はスルー。

749 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:50:58 ]
>>748
ハァ?

ヒント: C はクラスのインスタンスをスタックに置ける

750 名前:デフォルトの名無しさん [2008/02/05(火) 02:59:14 ]
>>743
java からJNIなどを使ってネイティブなコードから確保したメモリはGCの対象にはならない。
ネイティブじゃなくても、オブジェクト作成時にJavaやアプリケーションサーバなどで内部的に管理されるようなリソースもGCの対象にならない
(トランザクションとか。アプリ側から参照を外してもJavaVMやAPServerが参照を持っちゃってるからGCの対象にならない)。
こういうのは明示的にcloseを実行することによって管理側から参照が外されてようやくGCの対象になる。
それ以外はアプリ側から参照を無くすだけでGCの対象になる。



751 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:07:05 ]
close() が必要なのは大抵ファイナライザで呼び出すよう実装されてるけどな
(しなくて良いという意味ではなくて)。

752 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:16:11 ]
↓a.java
public class a {
 public static void main (String args[]) {
  if(true){//できる。
   b b_ = new b("h");
   String g = b_.d("h");
  }else{//本当はこっっちでやりたい。
   String g = new b("h");
  }
  System.out.println(g);
 }
}
↓b.java
public class b {
 b(String c){
  d(c);
 }
 public String d(String c) {
  String e = new String("f" + c);
  return e;
 }
}

753 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:19:34 ]
public class a{
  public static void main(String[] args){
    System.out.println(b.d("h");
  }
}
public class b{
  public static String d(String c){
    return "f" + c;
  }
}

754 名前:デフォルトの名無しさん [2008/02/05(火) 03:26:40 ]
>>752
> //本当はこっっちでやりたい。
> String g = new b("h");

これはbをどう変更してもできない。仕様的に。


755 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:27:55 ]
>>752
String型を返すコンストラクタはString以外には存在しない。

文字列の結合が目的ではないと思うが、
あまりにも簡単なことをこなす為に、拘る内容があまりにも初歩的。

・クラスの継承、型と代入について
・コンストラクタの仕組み、メソッドとの違いについて

756 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:32:32 ]
>>754
コンストラクタは自分のクラス型しか返せないということですね。
>>753
できました。ありがとうございます。メソッドをstaticにしないとうまくいきませんね。
 public String d(String c){
  static String s = new String("f" + c);
  return s;
 }
これだとコンパイルエラーでした。

757 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:43:05 ]
コンストラクタは何も返さない
newオペレータが指定されたクラスのインスタンスを構築してその参照を返す
その構築の際にコンストラクタが使用される

758 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:54:53 ]
>>757
Javaではnewは演算子扱いではなくてクラスインスタンス生成式や配列生成式を示すだけのキーワード扱いじゃなかったかな。

759 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 04:01:42 ]
あ、いや、すまん。演算子扱いだったのかもしれない。気にしたことないのであやふやだ。
JLS見てみる。

760 名前:デフォルトの名無しさん [2008/02/05(火) 04:53:50 ]
Stringの質問です。前者は後者の記述の略として解釈され、
前者と後者の振る舞いは等しいものでしょうか?
String s = "1";
String s = new String("1");



761 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 04:55:06 ]
ちがいます

762 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:12:42 ]
カノニカライゼーション
www.nextindex.net/java/class/String.html

763 名前:デフォルトの名無しさん [2008/02/05(火) 05:26:33 ]
>>762
ありがとうございます。
普通は
String s = new String("1");
s = "6";
だと思いますが、
String s = new String("1");
s = new String("6");
こうしてもよいのでしょうか?

764 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:28:52 ]
すみません
jarファイルをダブルクリックするとラプラスが起動して解凍してしまいます
拡張子を何に関連づけすれば解決するでしょうか

765 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:53:29 ]
javaw

766 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:12:02 ]
通常は new String("")は使用しない。

767 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:04:47 ]
new String(".....") は使わないように。
Stringは不変オブジェクトだから、無駄なインスタンスができるだけ。
"...." だけでよい。

768 名前:デフォルトの名無しさん [2008/02/05(火) 12:08:00 ]
SimpleDateFormat のスレッドセーフ化されたものとして
FastDateFormat(format() のみ) がありますが、
parse() に関しては jakarta の DateUtils.parseDate() を
使用すればスレッドセーフになるんでしょうか?


769 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:39:48 ]
Stringは参照先で弄っても元が破壊されないけど、StringBufferは壊れるからちょっとややこしい。

770 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:43:51 ]
>768
メソッド内でSimpleDateFormatのインスタンスを生成してparseすれば済む話だろ



771 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:54:08 ]
>>769
それは設計の問題で StringBuffer の問題ではないと思う。
一応、StringBuffer は同期化されてるので、「壊れる」ことはない。
意図しない結果をもたらす事はあるとしても。

772 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:58:37 ]
>>770
SimpleDateFormatって複数インスタンス作っても
内部で同一オブジェクトを使いまわすのでスレッドセーフじゃないって話だったような。

773 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:59:09 ]
new String()は文字コード変換ぐらいしか利用価値が無いと思え

774 名前:デフォルトの名無しさん [2008/02/05(火) 13:02:10 ]
>> 770
www.geocities.co.jp/Playtown/1245/java/unsafe_simple_date_format.html
この辺みてるんですけど、それで解決する問題なのかどうかが
イマイチよくわからないんですよ、、、


775 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:07:49 ]
SimpleDateFormatってスレッドセーフじゃないの?
Servletで使いまくってるけどやばい?

776 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:31:40 ]
>>775
参照を他のスレッドに晒さなければ大丈夫。
staticで持ってたりしたら危ない。

777 名前:デフォルトの名無しさん [2008/02/05(火) 13:40:50 ]
>> 776

つまり、
>> 774 にある
>SunのBug Paradeを、"+SimpleDateFormat +thread"で検索してもらうと
>すぐわかるように、SimpleDateFormatクラスは、
>複数のインスタンスで同じオブジェクトを共有して持っており、
>スレッドセーフではありません。

という記述が間違いなんでしょうか?
複数インスタンスと言ってる時点で static では無いと思うんですが。


778 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:45:10 ]
SimpleDateFormatが内部でstaticなデータを保持してんだろ?
それくらいわかれカス

779 名前:775 mailto:sage [2008/02/05(火) 13:52:22 ]
ということはやばいということですね。
どうしよう

780 名前:775 mailto:sage [2008/02/05(火) 13:55:30 ]
どなたかスレッドセーフな
SimpleDateFormat
を作ってくれませんか?



781 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:57:01 ]
synchronized使えカス

782 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:59:43 ]
synchronized (SimpleDateFormat.class) {
  // SimpleDateFormatを使うコード
}

こうすれば中でstaticなデータ持ってようと、
同時に読み書きされることはない・・・はず。

マルチスレッドよぅわからん。

783 名前:775 mailto:sage [2008/02/05(火) 14:09:24 ]
FastDateFormatに置き換えようかと思いますが

FastDateFormat hms = FastDateFormat.getInstance("HH:mm:ss");
FastDateFormat ymd = FastDateFormat.getInstance("yyyy/MM/dd");

hms.format(....
ymd.format(....

こういうコードだとどっちみちダメなのでしょうか



784 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:14:16 ]
なにがどうダメなんだ?

785 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:16:05 ]
つうかローカル変数で使うのに何か具体的な不具合でも出てるわけ?
マルチスレッドで使わなきゃ良いだけじゃん。

786 名前:775 mailto:sage [2008/02/05(火) 14:16:35 ]
getInstanceでもnewのようにまったく別のインスタンスを作って
くれるのでしょうか?


787 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:18:03 ]
とりあえず、マルチスレッドの勉強を一からやり直せ。
ttp://www.amazon.co.jp/dp/4797337206

788 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:21:42 ]
>>785
ローカル変数かどうかは問題じゃない。
インスタンスへのアクセスが閉じているかどうかだ。
>>783
おまえはスレッドセーフの意味が分かってなさそうだから。
まずはシングルスレッドで頑張れ。

789 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:23:38 ]
つうかちょっとまて。ソース見たが SimpleDateFormat に関してはスレッドセーフでないことと
内部で static なオブジェクト使ってることとは関係ない。複数インスタンスで共有してるのは
ロケールごとの静的なリソースだ。だから >>777 で引用部分の表現は明らかにおかしい。

790 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:25:11 ]
>>788
ローカル変数ってのは表現間違えたがマルチスレッドで意味ぐらい汲めよ。



791 名前:775 mailto:sage [2008/02/05(火) 14:26:55 ]
ではサーブレットでSimpleDateFormatをローカル変数で
都度newしているなら問題ないってことですね?

792 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:29:51 ]
>>791
そのローカル変数が他スレッドに漏れてなければ、ね

793 名前:775 mailto:sage [2008/02/05(火) 14:31:44 ]
>>792
それは大丈夫です。漏れていません。

794 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:32:53 ]
>>791
そういうこと。スレッドごとに別インスタンスで使っていれば問題ない。
でなければ JSTL の日付フォーマットも使えない。
「処理中で不整合」 の内部状態を持つのは DocumentBuilder、Transformer、XPath、Matcher なんかも同じ。

795 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:44:42 ]
>>794
そこで ThreadLocal の出番だな

796 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:57:04 ]
また来ますた。お世話になっておりますw

数字を入力してください: 120←入力

と入力された数字を "1" "2" "0" と分けて取り出す方法を教えてください。
宜しくお願いしますm(_ _)m

797 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:05:38 ]
toCharArrayでもcharAtでも好きなほうをどうぞ。

798 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:08:17 ]
メソッド呼び出しについて勉強しているのですが
行き詰ってしまってしましました。

メソッド名:getProfile
引数: String name , int age
処理:「○○さんは△歳です」という文字列を返す
戻り値:String

このソースの書き方を教えてください。
よろしくお願い致します。

799 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:08:55 ]
宿題スレに池

800 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:10:24 ]
return String.format("%sさんは%d歳です", name, age);



801 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:10:29 ]
>>797
ありがとうございますw
もう一つすみません。
入力された数字intで取り出したいのですが、charAtでもintを取り出せるのでしょうか?

802 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:12:18 ]
変換くらい自分でやれ。
Characterクラスのjavadocをみるよろし。

803 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:19:10 ]
そういえば String#format() のフォーマットに対する、解析済みで再利用可能な
クラスがないようなのが気になってたんだけど、これって毎度 String.format()
しなきゃいけないのかな?

804 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:27:31 ]
>>802
あ、そうか変換すれば良いんですね。
ありがとうございます。

805 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:27:56 ]
>>803
ちょっと何言ってるかわからない。
解析済みで再利用可能って・・・戻り値のStringを保持しとけばいいじゃん、
とかそういうことじゃなくて?

806 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:32:03 ]
>>803
String.format の内部は、return new Formatter().format(String, Object...).toString()
Formatter 内部でキャッシュできそうな部分もあるが、private クラスの配列になってるし。
まぁ強いてキャッシュにするなら、Formatter のインスタンス辺りかな

807 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:34:25 ]
>>803
java.util.regex.Pattern みたいなものを期待してるなら、ないね。

java.util.Formatter は出力先を持ってるだけで、
書式文字列を固定で持ってるわけじゃないし。

808 名前:806 mailto:sage [2008/02/05(火) 15:41:29 ]
自己レス。自分で書いておいてなんだが、
Formatterの生成時には出力先を用意するだけなので、キャッシュの意味なし。
しかも、toString時に出力先をクリアするわけでもないので、再利用自体も不可に近い。

809 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:51:38 ]
やっぱりそうか、俺の勘違いとかでないならまぁいいや。
Logging API の Formatter とか膨大な呼び出しされそうなところで使われそうなものだから
なんかもったいないなぁと思っただけで。

810 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:54:55 ]
Jakarta Lucene って Perl が必要っぽいけど、これって Pure Java じゃないの?
それとも日本語用分かち書きの sen とか言うのが使ってるの?



811 名前:デフォルトの名無しさん [2008/02/05(火) 15:57:19 ]
3日前から初めてプログラミング、JAVAの勉強を始めた者です。
今読んでいる「やさしいJava 第3版」って本の練習問題なのですが
16進数を使って、6、20、13を画面に出力しろという問題があります。

答えを見ると

public static void main (String args[])
{
System.out.println(0x6);
System.out.println(0x14); ←
System.out.println(0xD);
}

と書いてありました。

←をつけた行の、(0x14)を(0xE)として間違ったのですが、
なぜ16進数でA〜Fで表される数の14がEでは
間違い・エラーになってしまうのかわからないです。

試しにFなどを入れて出力などしましたが、Eだけエラーになってしまいます。

わかる方教えてください。。

812 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:59:35 ]
セミコロンがないとか、そういうオチ?
とりあえず、どんなエラーが出るんだ?

813 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:01:30 ]
>>811
0x14は0xが頭についてるので、10進数じゃなくて16進数として解釈される。
16進数の0x14を10進数になおすと20になる。

10進数の14が必要なら0xを頭につけちゃだめ。

814 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:05:20 ]
>>811
0x14 を 0xE と間違えた後、14 にして、さらに E としたところでエラーが出たに1票。

815 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:10:40 ]
14は16進数でE、20は16進数で14・・・
なるほど、814が正解かもしれない。
なんか16進数自体わかってなさそうだ。

816 名前:811 mailto:sage [2008/02/05(火) 16:12:27 ]
ありがとうございます。
(0xE)ではじめに書いたら

Exception in thread "main" java lang.NoClassDefFoundError

といった表示が出てしまいました
>>811に書いたようなテキストの答えを見て
0x14にしたらちゃんと表示されます。

まだ頭がごっちゃでわかってません。。すみません。


817 名前:811 mailto:sage [2008/02/05(火) 16:14:24 ]
あ、わかりましたorz

ありがとうございますorz

818 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:18:20 ]
で、理由はなんだったんだ?
エラーを見るに、何か他のクラスを実行しようとしたみたいだけど。

819 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:26:26 ]
NoClassDefFoundErrorなら typoかなんかでしょ。たぶん。

820 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:40:13 ]
また、やさしいjavaか



821 名前:デフォルトの名無しさん [2008/02/05(火) 19:04:58 ]
最初に読む本でずいぶん変ってくるよね
実践的な本で勉強した方が後々いいと思うんだけど

822 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:32:02 ]
仕事で使うのか趣味なのかでも違ってくるしね
趣味なら
自分だけのメーラー作成を通して学ぶ
EclipseによるJava

とかを打ち込みながら実行してWebで分からない所を調べる
とかだと面白く学べる。

仕事だとフレームワークが絡んでくるから個々のフレームワーク・言語の入門本がいいかと思う。

823 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:41:03 ]
1.4.2のjavaにJDK6のAPIを追加してみた。
動かないんだけどそれだけじゃ意味ない?

824 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:58:34 ]
初級本ならHeadFirstがおすすめ。
超初心者ならわかりずらいかもしれんがまともなこと書いてある。
SJC-Pとかうけるのにもこの本読んどくとかなり試験勉強の助けになる。

825 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:12:06 ]
でも本の厚さと値段で尻込みしちゃうのが初心者

826 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:30:42 ]
あの厚さは普通だと思うが、分厚いのはオライリーのSwing本あたりだろ。

827 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:37:11 ]
分厚いのは割れてかなわん

828 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:46:30 ]
また宣伝厨かよ

829 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:48:40 ]
>>823
何がしたいんだ?
target が 1.6 のクラスファイルは、どう頑張っても1.4のJVMじゃ動かんよ。

830 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:26:01 ]
up2.viploader.net/upphp/src/vlphp134279.jpg



831 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:28:57 ]
かわいいこ多いな

832 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:32:12 ]
>>829
じゃあ無理みたいだorz
無視でよろしこ

833 名前:デフォルトの名無しさん [2008/02/06(水) 01:52:01 ]
デスクトップにあるフォルダaをカレンとにしてMS-DOSプロンプトを起動しました。
aの中に*.classがあります。
jarを作りたいです。
>jar cv
エラーでした。
jar.exeの使い方を教えてください。
普通のアーカイバでzip圧縮して拡張子変更したものではだめですか?

834 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:04:32 ]
>>833
JDKのドキュメントに「ツールとユーティリティ」の項目があり、
そこにjarのマニュアルもある。
というか、jar cvでヘルプが出て使用例も表示されるだろ?

835 名前:デフォルトの名無しさん [2008/02/06(水) 02:16:08 ]
>>834
jar でヘルプが出るけどヘルプが糞だ。
例文が2つほど出るけど例文は少なとも30ぐらいは出してくれないと理解不能。
たぶん834もjar使えないんじゃねーの?ヘルプが糞だから。

836 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:20:50 ]
くそくそうるさいなw
ドキュメントの場所を教えてるんだから分からなければそっちを読め
ってか普通はオプションの意味さえとれれば使用例は要らない

837 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:38:15 ]
>>836
無理しないでえらい人の回答を待てよ。
少なくとも漏れよりえらい人以外にはレスしてほしくない。
あえて書くなら漏れも知らないのでえらい人教えてください、だろ。

838 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:39:06 ]
アニョハセヨ

839 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:44:05 ]
スーゴハセヨ

840 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:54:43 ]
グッテンターク



841 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 03:21:13 ]
漏れとか…何時振りだろう、見たの

842 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:58:49 ]
journal.mycom.co.jp/series/webtool/007/index.html
>かつての電化製品がそうだったように、日本人の作るサービスはデザインやユーザビリティの面で優れていると感じている。

Nationalのオーブンレンジを触ったことがないんだろうか。
最低3つの操作手順を踏まないと、食パン1枚焼けない。余計な機能詰め込みすぎ。

「(多くの)日本人(のみ)にとって使いやすい」だけであり、それを「優れている」とは言わない。
Vista使いにくいだろ? 要は日本の家電メーカーはアレをやってる。
ご当地の人には使いやすいんだろうけどな。
それをJEITAの連中は「日本の消費者は先進的」といまだに勘違いしてる。だから国際競争で負ける。
異なるだけであって感性に「先進」とか「後進」はない。家が小さい日本は「後進的」か? 違うだろ。

日本の家電(PC含む)は既に世界からそっぽを向かれている。
車やカメラは熱いけどな(ただし、カメラも同じようにそっぽを向かれるのは時間の問題)。
日本発のWebアプリが普及しないのは二番煎じばかりだからだろ。

むしろそういうデザインとか下らないところに注力しているから、いつまでたっても独創性が開けない。
ふぅーなんか朝から熱くなっちまったぜ。

843 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:47:47 ]
日本人にとっての使いやすさと
アメリカはじめ他国の人間にとっての使いやすさが違うだけ。

国内で高い評価を得ても世界ではそれほどでもない。

逆に使いやすさの面で国際競争力を付けようと思ったら
日本ではあまり高く評価されないかもね。



844 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:18:54 ]
今のオーブンレンジって一発で閉まらないんだよな
でもあれ日本製なのかよくわからん

845 名前:たらちゃん [2008/02/06(水) 12:52:02 ]
System.err.println("エラー")を変数に代入する事って出来ますか?もし出来るのであればやり方教えてください。
宜しくお願いします。


846 名前:デフォルトの名無しさん [2008/02/06(水) 12:53:16 ]
javacのコンパイルが遅いと思うんですが
常駐するタイプありませんかね?
メモリ食うけど何回もコンパイルするなら速いよ!みたいな

847 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:55:03 ]
>>845
意味がよくわからんが、代入してどうしたいんだ?
何をしたいのか書くといいかもしんない

>>846
eclipseみたいなIDEは嫌かね?

848 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:01:59 ]
>847
使ってみましたけど、ちょい重かったです。
コンパイルするたびにjavac.exeを読み込むのが
無駄だよなぁって思ってたんですが。

新しいマシン買えよ、ってことなんでしょうけど
キャッシュが沢山載ってるやつ買えばいいのかな。


849 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:09:34 ]
phpからjavaへの乗り換えを検討しているのですが
javaでphpのsymfonyに一番近めなフレームワークってどれでしょう?


850 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:31:46 ]
Method println = System.err.getClass().getMethod(...);



851 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:12:16 ]
>>848
…javac.exe を読み込むのが遅いならRAMディスクは如何でしょう。
可能性のある要因は幾つも挙げられますが、何れにしろ、
ハードウェアかOSの問題で、Javaだから、という問題では無いように思えます。

852 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:51:33 ]
10万も出せばDualCoreでメモリ2Gのマシン、ディスプレイ付で買えるだろうよ
Eclipseが重いってのは何時の話だ

853 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:29:37 ]
ちょっと自作PC板に来てもらおうか・・・

854 名前:846 mailto:sage [2008/02/06(水) 21:21:44 ]
自己解決しました。
空きメモリを仮想ドライブにするソフトなんかあるのね、今は。
いや、ほんとに
「RAMディスクなんて言葉聞いたの98note以来だぜ、
確かに滅茶っ速だったけどなァァァァ」
とか思いましたけど、皆さんありがとうございました。

855 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:04:34 ]
それ、自己解決か・・・?

856 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:24:16 ]
JDKの環境変数設定などの後はOSの再起動をすると本で読んだのですが、
どうも環境変数の設定をした時は
そのままで反映されている時とOS再起動しないと反映されない時があるみたいです。
OSの再起動以外に何か関係するものがあるんでしょうか

857 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:36:18 ]
>>856
そんな糞本捨ててしまえ。環境変数は基本的に親プロセスから引き継がれるので、環境変数を設定したプロセスから起動すれば即座に反映されるが、読み直しはしないので既に動いている他のプロセスには影響しない。
Windowsの場合なら、
・コマンドプロンプト/バッチファイルで環境変数を設定してそこからプログラムを起動した場合→即時反映
・システムのプロパティから環境変数を設定→設定後に起動したプロセスにのみ変更が反映。例えば設定前から動いているコマンドプロンプトからJavaプログラムを起動しても変更は反映されない。


858 名前:856 mailto:sage [2008/02/06(水) 23:50:23 ]
>>857
なるほど〜すごく分かりやすい説明ありがとうございます!
こういうズバリな説明聞くとwindowsに浸ってないでUNIXの勉強するべきなのかなぁって思いますね…


859 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:01:42 ]
PC のピの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

860 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:04:13 ]
Windows9x時代のautoexec.bat編集して再起動
みたいな記述がそのまま残ってるだけじゃないかと。



861 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:13:27 ]
PCに"ピ"の字はどこにも無いと思うんだが

862 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:17:43 ]
サイトに snoop アプレット仕込んでクライアントの JVM バージョン統計取ってみたんだが見る?

863 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:29:25 ]
ピーシーのピの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

864 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:35:14 ]
やるおかよ

865 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 03:41:13 ]
java.util.regex.Pattern の lookingAt() って find(0) と同じという理解で良いのかな?

866 名前:デフォルトの名無しさん [2008/02/07(木) 03:51:41 ]
PCのパの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

867 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 03:57:20 ]
PCに"パ"の字はどこにも無いと思うんだが

868 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 04:01:54 ]
パトカーのパの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

869 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 04:04:43 ]
パトカーに"パ"の字はあると思うんだが






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef