5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

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

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

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

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

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

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

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

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


5 :987,993:2008/01/13(日) 01:12:58
>2つめの質問について。
>(5)です。
>http://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:2008/01/13(日) 01:18:51
それと書き忘れましたがsuperからの継承かどうかも関係あるのかも・・・
というのもわかってません(^^;


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

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


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

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

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

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

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

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

12 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/13(日) 09:47:44
>>13
仕事してません><

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

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

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

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

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

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

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

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


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

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

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


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


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

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

29 :デフォルトの名無しさん:2008/01/13(日) 19:05:30
http://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 :デフォルトの名無しさん:2008/01/13(日) 19:41:46
>>30
1. 文末にセミコロンが入っているかチェック。
2. str に正しい値が入っているかをチェック。
3. a を正しく使用しているかチェック。

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

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

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


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

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


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

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

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

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

43 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/14(月) 01:28:52
間違ってます。
バッファサイズを何だと思ってるの?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

72 :デフォルトの名無しさん: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 :てきとう: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 :てきとう: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/14(月) 18:26:56
javaのとっかかりで
GUIを作りながら勉強できるサイトとかありますか?

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



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

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

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

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

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


88 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/14(月) 21:14:05
前のバージョンをアンインストールして再インストールする方をクリーンインストール。
たぶん、ごみが残るからごみは手動で消す。

92 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/14(月) 22:04:27
java_home設定しといた方が良いよ。

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


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

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

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


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

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

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

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

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

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

105 :デフォルトの名無しさん:2008/01/15(火) 10:35:26
http://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 :デフォルトの名無しさん:2008/01/15(火) 12:56:55
エラーメッセージは?

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

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

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



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

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

114 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/15(火) 16:10:54
actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して
終了ボタンなら終了動作をすれ

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

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

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

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

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

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

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

123 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/15(火) 17:04:21
なんか最近質問も回答もひどいな。

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

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


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

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

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

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

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

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

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


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

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

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



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


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

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

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


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

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

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

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

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

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


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

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






142 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/15(火) 21:32:51
ひどいコードだな。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

156 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/16(水) 15:15:37
loopの中をsynchronized(process)で、
addの中をsynchronized(hoge)で
くくる?
http://www.nextindex.net/java/thread/syncblock.html

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

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

161 :157: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/16(水) 20:20:23
<fmt:bundle> と <fmt:setBundle> って機能まとめて一つで良いよなぁという独り言。

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

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

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

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

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

173 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/17(木) 16:48:59
創るJava って第2版がでるんだな。(2008/1/23)

175 :デフォルトの名無しさん: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:2008/01/17(木) 17:15:07
>>175
どうもありがとうございます。BufferedReader のソースを見たところ、
close() の内部で、BufferedReader のコンストラクタで受け取った Reader の close() を呼んでいました。

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

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

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

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

179 :173: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 :デフォルトの名無しさん:2008/01/17(木) 19:44:24
初心者です、何を始めたらいいですか?

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

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

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


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

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

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

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

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

190 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/17(木) 23:58:16
その実装クラスを作るときに ServletFilter インターフェイス使ってんじゃん。

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

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

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

197 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/18(金) 14:01:12
>>199
おい!

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

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

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

http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/18(金) 15:19:23
明快Javaってどうなの?

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

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

206 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/18(金) 17:49:30
>-Xlint:unchecked オプションを指定して再コンパイルしてください。

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

212 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/18(金) 18:10:07
>>208
Generics でぐぐるといいかもしんない

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


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

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

220 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/18(金) 20:38:03
>>222即レスあざす。・・・マジすか
まぁ、妥協できないとこじゃないんで別の実装考えますね。

224 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/18(金) 21:03:11
ファイルから数値を読み込んでそれの合計とか平均とかだしたいんですけど
どうすればいいですか

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

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

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

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

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

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

233 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/20(日) 22:54:53
Borderですか。
そっちでやってみます。
ありがとうございます。できるかな。。

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

http://mori.eco.to/

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

238 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/21(月) 17:38:56
CPad for Java2 SDK

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

246 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/21(月) 18:48:30
ホットスポットがネイティブコードにコンパイルされるのって単純に実行回数?
それともバイトコード分析して?

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

249 :デフォルトの名無しさん: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
http://www.moriwaki.net/wiki/index.php?%5B%5BCommunicationsAPI%5D%5D

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

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

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

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

252 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/21(月) 23:43:10
└→HDDが一杯で入りません。

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

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

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

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

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

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

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

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

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

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

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

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

264 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/22(火) 10:36:43
はい

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

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

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

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

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

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

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

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

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

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

275 :デフォルトの名無しさん: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:2008/01/22(火) 16:57:47
ごり押しですがべき集合を再帰的に呼び出すことで解決しました.
ありがとうございました.

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

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

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

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

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

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

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

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

296 :291:2008/01/22(火) 22:03:46
ややこしいな>>289

297 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/22(火) 22:52:27
>>302
フルパスで書け。"C:\\cygwin\\bin\\bash.exe"

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

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

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

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

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

してないならお勉強。

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

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

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

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

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

313 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/23(水) 01:40:15
>>318
317でここまで具体的にヒントが書いてあるんだから、あとは自分で書き
なさいな。


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

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


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

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

325 :304: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 :デフォルトの名無しさん:2008/01/23(水) 11:24:38
>>326
%%

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

329 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/23(水) 20:58:30
>>334
クラス変数

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

337 :デフォルトの名無しさん:2008/01/23(水) 21:42:31
前回はご回答ありがとうございました。
無事RS232Cのプログラムを作る事ができましたが
エラーが起こって困っています。
どうか、知恵を貸してください。
:作りたいもの:
Rs232Cを用いたシリアル通信を行なうプログラム
:参考サイト:
http://www.ais-com.co.jp/jikken/java232c.html
http://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 :デフォルトの名無しさん:2008/01/23(水) 21:58:34
分割して書きこむ暇があったら適当なうpろだに上げろ。

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

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

344 :デフォルトの名無しさん:2008/01/23(水) 22:41:12
>>341
データをアップしました。
http://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 :デフォルトの名無しさん:2008/01/24(木) 11:16:48
>>346
javadocみれば一発!正解が全部書いてあるよ!

はい、次の人どうぞ

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

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


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

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

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

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

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

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

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

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

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

355 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/24(木) 14:26:21
>>356
スペルミスの可能性70%

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

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

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

361 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/24(木) 15:26:56
>>362
なんで MouseListenerをインポートしてないのに
implements MouseListenerでエラーが出てないんだ?

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

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

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

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

368 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/24(木) 17:28:55
java.lang.ArrayIndexOutOfBoundsException

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

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

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

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

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

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

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

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

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

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

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

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

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

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

389 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/25(金) 21:16:55
無いということがわかるだろw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HttpURLConnection huc = (HttpURLConnection)new URL("http://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 :デフォルトの名無しさん:2008/01/26(土) 18:52:48
ネット回線が遅いんじゃないのか

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

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

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

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

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

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

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

419 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/26(土) 22:21:58
なんでわざわざ糞スレ立てんの?

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

423 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/27(日) 01:06:43
\r

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

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

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

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

430 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/27(日) 10:59:46
各カラムを別々のコレクションに入れてるならちんぽ

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

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

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

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

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

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

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

recalculateWeightBalance();

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

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

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


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

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

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

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

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

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

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


449 :448:2008/01/27(日) 19:33:58
すみません誤爆です><

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

472 :デフォルトの名無しさん: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:2008/01/28(月) 04:46:08
>>472
即レスありがとうございます、本当に助かりました!
お手数をおかけして済みませんでした
1回、2回、3回は笑ってしまった…w

スレ汚し、失礼しました

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//出力例

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

貴方の年齢は 28才です。

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


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

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

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

486 :477:2008/01/28(月) 14:13:15
無視してくださいorz

487 :デフォルトの名無しさん: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:2008/01/28(月) 14:35:29
>>487
ありがとうございます!やってみますw

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

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

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

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

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

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

495 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/29(火) 02:04:02
>>496
昨日ファンクタというものを知りまして…
それをやってみたかったのです

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>510
import java.util.Date;
でOK

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

513 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/29(火) 16:51:11
このまま俺らにデバッグしろと言う気か

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

534 :デフォルトの名無しさん: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:2008/01/29(火) 23:57:21
>>534
parseIntは散々試してみましたけどだめでした。
なむふぉでまくりです。
decodeがまだだったので試してみます。

537 :533:2008/01/30(水) 00:04:07
うまくいきまんた

538 :デフォルトの名無しさん:2008/01/30(水) 00:04:41
>>524
あらかじめずばり抽出できる構造で文章を保持しておけばスマートじゃね?

539 :デフォルトの名無しさん:2008/01/30(水) 00:10:28
>>531
なんでそこまで正規表現を使いたがるのかな?
正規表現って便利だけど実行速度はすごく遅いよ。


540 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/30(水) 00:39:59
伝わりにくいね。
〜してもらう方法と、〜をランダムに組み合わせるってできますかね?
・・・日本語がおかしいから伝わりにくいんだろうね。

544 :デフォルトの名無しさん:2008/01/30(水) 00:40:32
List に突っ込んで Collection#suffle() して連結。

545 :デフォルトの名無しさん:2008/01/30(水) 00:40:35
×伝わりにくいと思うのですが
○伝わらないと思うのですが

546 :デフォルトの名無しさん:2008/01/30(水) 00:42:38
入力:いくつかの文字列
出力:入力をランダムに並べ替えたもの

もしくは

入力:いくつかの文字列
出力:入力のいくつかをランダムに並べ替えたもの

他にもいろいろ考えられるけど?

547 :デフォルトの名無しさん:2008/01/30(水) 00:44:48
入力:文字列
出力:入力の部分文字列をいくつか作り、それを並び替える
とかか。

548 :デフォルトの名無しさん:2008/01/30(水) 00:53:58
方法ってできますかね???
なんだかできないきがするんですががが

549 :507:2008/01/30(水) 00:55:31
>>532
なるほど、その手が・・・勉強になりました。

550 :デフォルトの名無しさん:2008/01/30(水) 00:58:19
時期的に学校の課題なんだろうけど、少しは自分の頭で考えないと勉強にならない、
とか言うのは野暮なのかねやっぱり。

551 :デフォルトの名無しさん:2008/01/30(水) 01:13:34
ここは将来の脅威の摘むためにバカを増やすスレですが。

552 :デフォルトの名無しさん:2008/01/30(水) 01:24:19
>>540
SE 7でもバイトコードのフォーマット変わるんだよね。
本の内容がどんどん古くなるから買おうか悩むんだよ。

553 :デフォルトの名無しさん:2008/01/30(水) 02:49:09
(当方、本職プログラマーでなく初心者です)
すみません、アプリケーションスコープの使い方で迷ってます。

具体的に書くと、
ショップサイトにて商品ジャンルごとにアクセス数の集積を取りたい
と考えたのですが、データベースへのアクセス頻度を減らすためにも、
商品ジャンルのデータベースをそのままアプリケーションスコープに
入れてしまおうかと思っています。ただその場合には10000個数近くの
インスタンスを入れることになってしまうのですが、初心者なために
これが大丈夫なことなのかよくわかりません。

オブジェクトにはintとStringとが半々ずつ、合わせて10個のメンバ
変数があり、Stringには全部でだいたい64文字程度入ります。中身だけ
で計算するとサイズは160kbyte程度かと思うのですが、この程度ならば
全然気にしなくても大丈夫な感じでしょうか? その何万倍いっとけ、
とかそういったレベルならいいのですが、よくわからなくて……。

指針となるドキュメントを見つけられなかったのでこちらで質問させて
もらいましたが、皆さん、アプリケーションスコープに入れるデータ
サイズはどれくらいまでにしてますか?

サーバーのスペック如何なところではあると思うのですが、アドバイス
あればどうぞお願い致します。


554 :デフォルトの名無しさん:2008/01/30(水) 03:00:24
それは実際に商品ジャンルのアクセスがネックになってることが明らかで、これを
メモリ上にキャッシュすればどれくらいの改善が見込めるという見積もりができている
上で言ってるのか?

普通に考えればその程度のアクセスがネックになるようなら他の処理もウンコチンチンで
マシン選定間違えてるだろ。商品ジャンルにメンテ入っても反映されないし、整合性が
保障できないなら下手に SQL で結合もできやしない。

555 :デフォルトの名無しさん:2008/01/30(水) 03:14:09
なるほど、それもそうですね。
ありがとうございました。

556 :デフォルトの名無しさん:2008/01/30(水) 06:20:12
Logging API の設定ファイルって、出力先のファイル分けるためにわざわざ
Handler クラス作らなきゃいかんのか? 何で出力先の指定が「クラス名」に
紐づいてるんだ? インスタンスだろjk

557 :デフォルトの名無しさん:2008/01/30(水) 09:00:31
慣例としてクラス名を使っているだけで、名前には何でも使用できたと思うが?

558 :デフォルトの名無しさん:2008/01/30(水) 12:20:13
>>535
>プロセスサイズ=ヒープサイズ+JVM自身が利用するメモリサイズ
>ってことであってますか?

ヒープもJVMが利用するメモリなわけだが・・・

ヒープは、Javaから見えるメモリ空間だけど
JVMは、実行用のスタックメモリを持っていてこれは
ヒープメモリに入ってこない。(ヒープじゃないし)
あと、Hotspot用とかあるし。
ヒープサイズを越えてどれくらいメモリを使うかは決まっていない。
(スタックとかはある程度判るが・・・)

559 :デフォルトの名無しさん:2008/01/30(水) 12:58:03
unicodeのソースでreplaceAllで"\\t"(TAB)が置換できない。どうやってやるの?

560 :デフォルトの名無しさん:2008/01/30(水) 13:37:52
>>559
ふつーにできるよ?
System.out.println("aaa\tbbb\tccc".replaceAll("\t", "[TAB]"));
結果: aaa[TAB]bbb[TAB]ccc


561 :デフォルトの名無しさん:2008/01/30(水) 13:41:04
>>559
分からないので、ひとつえsp
replace を始め、String系の変換で良くある間違い。(てか、今やって見て久々に…
Stringは不変オブジェクトです…
要は、インスタンスメソッドで値が変わってるかのように見えても、
単に新たなStringを生成して返してるだけ、という…

562 :デフォルトの名無しさん: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 インスタンスしか指定できねーじゃんよ ファイル分けらんねーよ!!」 と
ブチ切れてるのも見つけた。
http://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/critique.html

実際 JSR47 の仕様書読んでもクラス名だったアルヨ。Formatter にしても Log4j に
慣れてると 「この程度のもん用意しとけYO!」 と言いたくなるなぁ。

563 :559:2008/01/30(水) 14:10:08
わかりました。
正 s = s.replaceAll("\t", "");
誤 s.replaceAll("\t", "");
ありがとうございました。

564 :デフォルトの名無しさん:2008/01/30(水) 14:32:00
>>563
ここのクイズと同じところで引っかかってるね。
http://blogs.sun.com/javaev/date/20080120

565 :デフォルトの名無しさん:2008/01/30(水) 18:49:40
オブジェクトを直列化して受け渡しする際のImageIconの仕組みについて質問です。

java.awt.ImageクラスはSerializableインターフェースを実装していないため、swingのImageIconでラップして直列化しているのですが、なぜImageIconが画像を正しく直列化出来るのかが理解出来ません。

ソースをざっと見たのですが、画像を保持しているフィールドには、transient修飾子がついている上、他の部分でも特にこれという箇所は見つけられませんでした。

ImageIconがどのように画像を直列化しているのか、解説かヒントをいただけるとありがたいのです。
よろしくお願いします。

566 :デフォルトの名無しさん:2008/01/30(水) 19:26:14
>>565
private void writeObject(ObjectOutputStream) メソッドがあるだろう
そのメソッドがあると、直列化するときに呼ばれる

567 :デフォルトの名無しさん:2008/01/30(水) 20:44:36
beanshell classpathを使いたいのですが、一昨日からサイトが落ちたまま(ドメイン更新忘れ??)です。
beanshell classpathを持っている方、アップしていただけませんか。

www.beanshell.org/

568 :デフォルトの名無しさん:2008/01/30(水) 21:13:31
bugparade にバグ投稿すると確認メールか何か返ってくるもんかえ?
何日たってもまったく検索にヒットせんのう。

569 :デフォルトの名無しさん:2008/01/30(水) 22:02:53
>>568
俺のときは投稿直後(数分後とか)に自動確認メールが来たけど。

BugDatabaseに登録されたら、その時にもメールが来るはず。
登録されない時は自動確認メールの後、音沙汰がなくなったような。

570 :デフォルトの名無しさん:2008/01/30(水) 22:27:25
>>569
そーなのか、じゃどっかでロストしたな。
センキューベイベー

571 :デフォルトの名無しさん:2008/01/30(水) 23:52:28
ExecutorServiceって、一度shutdownすると再利用はできない?

572 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/31(木) 02:43:48
>>573
私は出来る方法を知らない。
が、何に使うのか。そこには興味がある。

575 :デフォルトの名無しさん:2008/01/31(木) 07:46:16
実行時のAOPで出来ないの?

576 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/31(木) 09:40:44
ここはJavaの質問・相談スレッドだと思う。

579 :デフォルトの名無しさん:2008/01/31(木) 09:55:17
>>578
スマソ
どこの板に質問していいか分かんなかったんでココに書き込ませてもらった。
どーしてそうなっちゃうのが知りたいんだが、分かりますか?

580 :デフォルトの名無しさん:2008/01/31(木) 09:58:06
web板へ池

581 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/31(木) 10:13:27
!目から鱗w天才なんじゃね

583 :デフォルトの名無しさん:2008/01/31(木) 10:17:31
NGワードにJavaScriptを追加しろということですか?

584 :581:2008/01/31(木) 10:19:07
すまそjavadoc見たらlength()の長さは文字列内の16ビットUnicode文字の数に等しくなります。 だと
for(i=1; i<=word.length(); i++){
}
に修正

585 :デフォルトの名無しさん:2008/01/31(木) 11:08:51
>else ifでNGワード追加していけば

この時点ですごく残念な感じが漂っているような気が。

586 :デフォルトの名無しさん:2008/01/31(木) 11:37:53
・・・。
ヘボすぎてため息出ちゃうね。

587 :デフォルトの名無しさん:2008/01/31(木) 11:42:10
>NGワードが最後にあるってことは少ないと思うのでモウマンタイで。
大問題w

588 :森園くるみ:2008/01/31(木) 11:55:10
森園くるみと申します。

★実装方法についてご教授いただきたくぞんじます。

内容:s2Maiでhtml形式のメールを送信したい
(Content-Typeにtext/htmlを設定したい)


589 :581:2008/01/31(木) 12:01:05
失礼、私もまだまだでしたね。
ロジックを思いついた勢いでへボソース晒してスマソ

590 :デフォルトの名無しさん:2008/01/31(木) 13:19:39
>>588
Seasarのスレに行った方が早いんじゃない。
あと、本物か知らないけど名前は書かないほうがいいよ。

591 :デフォルトの名無しさん:2008/01/31(木) 13:31:14
オープンアプリで、レコードストアとかデータフォルダの容量を
0にするまで一時ファイルを作るようなアプリって
作成可能ですか?

文字をレコードストアに保存するまでは分かったんですが、
でかい容量のファイルの作り方が見つからないので。
初心者なので、参考になりそうなサイトがあったら教えてください

592 :デフォルトの名無しさん:2008/01/31(木) 13:32:52
まず、自分のやりたいことと課題点を整理しなさい。話はそれからだ。

593 :デフォルトの名無しさん: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:2008/01/31(木) 14:56:18
>>592
簡単に言うと、データフォルダの容量を0byteに出来るようなアプリを作りたいんです。
ただ探してもなかなか見つからないので、
似たようなアプリ、または参考になりそうなサイトがあったら
教えて頂きたいのです

595 :デフォルトの名無しさん:2008/01/31(木) 15:00:44
今Jasminでバイトコードのアセンブルやろうと思ってるんだけど、
これって既存のclassファイルをJasminのコードに逆汗(?)してくれたりする?
いかんせん情報が少ないような

596 :デフォルトの名無しさん:2008/01/31(木) 15:17:12
>>593
何心配してるかさっぱり分かんねーんですけど、相手への依存性高めたくないなら
(相手が信頼置けないなら) アクセス修飾子きちんと付けたりインターフェース化したり
さらにアダプタや Wrapper で包んで渡せば良いじゃん。

597 :デフォルトの名無しさん:2008/01/31(木) 15:22:59
>>593
this漏洩が問題になるのは、主にマルチスレッド下だと思う
swingはEDTにバインドされているので、まあ、いいか、みたいな感じなのかも?

598 :デフォルトの名無しさん:2008/01/31(木) 15:34:22
検索したら IBM 様のサイトが見つかったけど、this 漏洩なんて御大層な名前
付けるほどでもない単なる非同期設計ミスじゃん。漏洩の使い方間違ってる。

599 :581:2008/01/31(木) 15:51:10
文字列の長さも0からカウントするのね・・・
嘘ブッコいてサーセン

600 :デフォルトの名無しさん:2008/01/31(木) 17:06:55
文字のマッチングは古典なのでアルゴリズムは腐るほどあるよ。

というか、未だに、>>581 のループの意味が分からない・・・・・
何かの謎かけか・・・・
何がしたいか全く不明だ・・・・・

601 :デフォルトの名無しさん:2008/01/31(木) 17:09:59
マジレスする生真面目バカがどんだけ居るか調査してんじゃね。

602 :デフォルトの名無しさん:2008/01/31(木) 17:40:24
>>581
まぁ、アルゴリズムを考えるのは悪くないが…
この程度なら、String.indexOf(String) 使おう
1.5 からは、String.contains(CharSequence) もあるし、
状況に応じて使い分ければなんとかなるもの。

もちろんソースでそのアルゴリズムを確認するのも勉強になることでしょう。

603 :デフォルトの名無しさん:2008/01/31(木) 17:49:01
>>594
なんかのウィルス作成以外の用途があるとは思えないんだが。
そうでないとしても、何したいのか知らないが、そんな力技で
しか実現できない時点で何か間違ってる気がする。

604 :591:2008/01/31(木) 17:54:51
わからないなら黙ってろよ

605 :デフォルトの名無しさん:2008/01/31(木) 17:58:57
たいした事いえないなら黙ってろよ

606 :デフォルトの名無しさん:2008/01/31(木) 17:59:20
とにかくだまってろよ

607 :デフォルトの名無しさん:2008/01/31(木) 18:01:36
RandomAccessFile#setLength()

608 :デフォルトの名無しさん:2008/01/31(木) 18:04:47
CLDCってRandomAccessFile使えたっけか?

609 :デフォルトの名無しさん:2008/01/31(木) 18:10:31
J2ME の話か。道理で聞きなれない用語使ってると思った。

610 :デフォルトの名無しさん:2008/01/31(木) 18:10:49
クラスあたりから理解できねぇ・・
本が悪いんだろうな本が悪いんだきっと

611 :581:2008/01/31(木) 18:25:32
>602 便利なメソッドがありますね。見落としてました。ありがとうございます。

612 :591:2008/01/31(木) 18:42:45
なんか僕の偽物が出てますがスルーで。
まぁここの方でも分からないようなので諦めます。失礼しました

613 :デフォルトの名無しさん:2008/01/31(木) 18:46:18
マルチスレッドでアニメーションを作成しています。
ある図形を平行移動させて(四角形を描く感じで)最終的に元の位置に戻すにはどうすればいいですか?
毎回ランダムな場所を通したいんです。

switch文とRandomクラスでできそうですが、美しくない…

図形の座標計算は別クラスです。

説明下手ですみません。よろしくおねがいします

614 :デフォルトの名無しさん:2008/01/31(木) 18:47:58
>>612
いまさらだけど誘導
…てかテンプレに何もないのがアレなのか

CLDC+MIDP+携帯電話用Javaスレッド part 7
ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/

615 :デフォルトの名無しさん:2008/01/31(木) 18:52:12
次スレからDoJaやCLDCはスレ違いと書いておいた方がいいんでないか

616 :581:2008/01/31(木) 18:53:49
てか俺質問しに来たわけでは無いんですが・・・
俺のレス読んで;;;;

617 :デフォルトの名無しさん:2008/01/31(木) 19:02:02
質問よろしくお願いします。

親子関係にあるAとBのクラスを作っています。
Aにはhoge()というメソッドがあります。
Bには複数のメソッドがあります。

Bのメソッドが呼び出される時、
必ず最初にAのhoge()を呼び出してから各処理をさせたいのですが
メソッドそれぞれでhoge()を呼ぶように記述する以外の方法で
hoge()を呼び出すことはできますか?

618 :デフォルトの名無しさん:2008/01/31(木) 19:16:09
1. B をインターフェース B1 とコンクリートクラス B2 に分ける。
2. ファクトリを作成しダイナミックプロキシをかました B1 インターフェースで返す。
3. ダイナミックプロキシのハンドラで B2 の任意のメソッドを呼ぶ前に必ず hoge() を呼び出す。

619 :デフォルトの名無しさん:2008/01/31(木) 19:16:53
Proxy

620 :デフォルトの名無しさん:2008/01/31(木) 19:19:42
AspectJとか、Javassistもあるね。

621 :とりあえず探してみた: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 :デフォルトの名無しさん:2008/01/31(木) 19:26:05
■ それ以外
http://life9.2ch.net/mental/

623 :デフォルトの名無しさん:2008/01/31(木) 19:32:08
>>618-620
レスありがとうございます。
教えていただいた用語を基に調べて行くことにします。

ありがとうございました!

624 :デフォルトの名無しさん:2008/01/31(木) 19:56:29
>911-912 が本物と偽物思ってしまった・・・

625 :デフォルトの名無しさん:2008/01/31(木) 20:16:31
axisをtomcat以外で使用するにはどうすればいいですか??

626 :デフォルトの名無しさん:2008/01/31(木) 22:17:59
>>597
マルチスレッドじゃなくても、コンストラクタ内でthisが漏れると、
コンストラクタが完了する前に、private finalなのに初期化前のフィールド値を
参照することになったり、
それを継承すると、super()の中から自分のメソッドを呼ばれて、
そのクラスのコードを1行も実行する前にフィールド参照が起こったりと、
しっちゃかめっちゃかになると思うんですが。

627 :デフォルトの名無しさん:2008/01/31(木) 22:30:04
単にそれ設計が糞なだけだろ。呼び出しと依存関係がスパゲティになってるような。
this とか関係ねーし。

628 :デフォルトの名無しさん:2008/01/31(木) 22:53:23
今実験しててjavaのバイトコード中に
12 : goto 42
:
42 : iadd
みたいなジャンプ後にいきなりスタックのオペランド使うようなコードが
入ってるともしかしてローダに怒られるようになってんの?なんかベリファイエラーでて
"Unable to pop operand off an empty stack"
とかって言われんだけど・・・

629 :デフォルトの名無しさん:2008/01/31(木) 23:02:19
スタックが空じゃん
取り出すオペランドが無いじゃん

630 :デフォルトの名無しさん:2008/02/01(金) 00:35:38
>>629実質スタックには実行時必ず何かしら乗るようにしたんだけど(動かせば問題ないはず)
VMがロードする時点で(実行しなくても)エラー吐いちゃうからさ・・・インタプリタ作ってんだけど

631 :デフォルトの名無しさん:2008/02/01(金) 00:36:45
>"Unable to pop operand off an empty stack"
javaにしては意味が分かりやすいエラーメッセージだな。

632 :デフォルトの名無しさん:2008/02/01(金) 01:07:48
Java VM Specificationのベリファイアの項を読めばいいんでないか

633 :デフォルトの名無しさん:2008/02/01(金) 01:15:23
今はソースコードもあるしな

634 :デフォルトの名無しさん:2008/02/01(金) 10:49:51
>>627
そのスパゲッティ化を起こさないための設計指針の一つがコンストラクタでthisを
外部に晒さない、なんだが理解できんのか。javaプログラマの質が知れるな。
糞コードが量産されるわけだ。

635 :デフォルトの名無しさん:2008/02/01(金) 10:51:56
>>632英語よくわかんないんだけど
For example, it checks that every instruction has a valid operation code;
が今の状況に当てはまってる・・・?

636 :デフォルトの名無しさん:2008/02/01(金) 10:53:11
いや、ごめん違うか・・・でも多分ダメなコードなんだろうな

637 :デフォルトの名無しさん:2008/02/01(金) 11:15:07
外部から最大ヒープサイズを知るような方法はあるでしょうか?

638 :デフォルトの名無しさん:2008/02/01(金) 11:17:42
>>635
そこはInstruction Setにのってないopcode使うなって話だと思うから、
スタックが空ってのとは違うと思うぞ。

639 :デフォルトの名無しさん:2008/02/01(金) 11:25:53
>>637
JMXで取れない?

640 :デフォルトの名無しさん:2008/02/01(金) 11:30:59
>>635
スタック云々だと、データフローアナライザ絡みじゃね?
4.9.2 The Bytecode Verifierの
Next, a data-flow analyzer is initialized. 〜 4.9.2の終わりまで全部。

641 :デフォルトの名無しさん:2008/02/01(金) 11:47:08
>>640でしょうな。まさかJVMがそこまでチェックしてるなんて知らなかった・・・
勉強になりますた。バイバイ

642 :デフォルトの名無しさん:2008/02/01(金) 13:26:57
ブラウザのリロードボタンや、アプレットビュアーの再読込クリックしなくても
エラーなどのイベントで全く最初からやり直す方法はありませんか?

643 :デフォルトの名無しさん:2008/02/01(金) 13:38:09
エラーって例外かね?

アプレット相手だと、未だにJDK1.1互換で考えなきゃいかんのか?
だとすると、Thread.UncaughtExceptionHandler とか使えないし、
EDT相手だとuncahughtExceptionをオーバーライドしたThreadGroup使って、
ってわけにもいかんだろうし。

644 :デフォルトの名無しさん:2008/02/01(金) 13:58:28
>>643
すみまません。書き方が悪かったですね。
具体的にはアプレットのウインドウのリサイズを感知したときに再読込から始めたいのです。
アプレットのウインドウサイズは変わらない前提で作ってあったので、
外部から動的に変更されてそのまま実行するとエラーになるのです。

もちろん全てのスレッドを止めてメモリも解放して、最初からやり直すように書けばいいだけなのですが
もっと簡単に再開できる方法が有ればと…(昔のBASICのRUNみたいに(^^;)

645 :デフォルトの名無しさん:2008/02/01(金) 14:27:09
>>644
現実行環境の破棄->再読み込み->再実行 とかを
一発でできる便利メソッドがあるか、って話?

ないはず。

646 :デフォルトの名無しさん:2008/02/01(金) 14:56:35
>>645
ありがとうございました。
手抜きは諦めます。

647 :デフォルトの名無しさん:2008/02/01(金) 15:08:13
>>639
ありがとうございます。-Dcom.sun.management.jmxremote 設定 + jconsole で
取得できる情報でまさに構わないのですが、起動引数が自由に弄らせて貰えない
状態でして…再起動は許されるかもしれません。

あるいは、上記のようなシステムプロパティを設定しなくてもできるもの
なのでしょうか?

648 :デフォルトの名無しさん:2008/02/01(金) 15:27:18
って作ればいいじゃんメソッド

649 :デフォルトの名無しさん:2008/02/01(金) 15:42:48
>>634
this に関係なくそんなレース問題みたいなのは発生しうる、と言ってるのが
理解できんのかこのバカ。ゆとり読解力だと社会生活も支障あるだろ、マジ同情。

650 :デフォルトの名無しさん:2008/02/01(金) 15:48:02
>>646
LiveConnect で JavaScript 呼び出してページリロードでもさせれば?

651 :デフォルトの名無しさん:2008/02/01(金) 16:07:05
LiveConnect使うとIEじゃ動かないだろ。
ページリロードくらいjavascriptの範囲で出来ると思うが。

652 :デフォルトの名無しさん:2008/02/01(金) 16:13:19
IE だと何が動かないと?

653 :デフォルトの名無しさん:2008/02/01(金) 16:14:05
IEってLiveConnect使えなかったっけか?

654 :デフォルトの名無しさん:2008/02/01(金) 16:21:40
>>645
AppletContext#showDoculent(URL, String) で、
ターゲットに "_self" 使えば再読み込みできんじゃね?

655 :デフォルトの名無しさん:2008/02/01(金) 16:25:06
≫ doculent

656 :デフォルトの名無しさん:2008/02/01(金) 18:17:51
IEはActiveXScripting。NNはLiveConnect。

657 :デフォルトの名無しさん:2008/02/01(金) 18:48:06
ActiveXScripting て単なるスクリプティング環境で接続仕様じゃないんだけど。
Sun の Java Plug-in ドキュメントでも使い分けてないし、ベースが Netscape の
LiveConnectにあわせたインターフェースなんだから LiveConnect で良いじゃん。

658 :デフォルトの名無しさん:2008/02/01(金) 18:55:51
AWT で言うところの Canvas って Swing で JPanel 使えば良いんですかね?
コンポーネント配置するんじゃなくて自分で描画する奴。

659 :デフォルトの名無しさん:2008/02/01(金) 19:28:02
JPanelでもいいがJComponentでもいい
paintじゃなくてpaintComponentをオーバーライドすること

660 :デフォルトの名無しさん:2008/02/01(金) 19:39:07
>>657
一人でそう思っとけばいいだろ、いちいち騒ぐことでもない

661 :デフォルトの名無しさん:2008/02/01(金) 19:40:09
(´,_ゝ`)プッ

662 :デフォルトの名無しさん:2008/02/01(金) 19:54:28
言語仕様3版から導入されたコンストラクタ終了時のfinalフィールドの可視性の保証は、
this が漏洩されると保証されなくなるって聞いたけど、
コンストラクタがオーバライド可能なメソッドを呼び出すことについては、どう扱われているん?
おしえてエロイ人


663 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/02(土) 04:10:02
昔の Java からどう変わってきたかざっくり書いてある HP ないですか?

667 :デフォルトの名無しさん:2008/02/02(土) 04:24:20
>>666
こんなん? まぁキーワードから先は自分で調べれ
http://lab.moyo.biz/references/java/version.xsp
http://lab.moyo.biz/references/java/history.xsp

668 :デフォルトの名無しさん:2008/02/02(土) 11:21:11
質問なんですけど・・・アメーバビジョンとかの GOOD やら BAD を選ぶフォームあるじゃないですか?
あれで押しても動画の視聴が遮られないで反映するのって何で実装してるのですか?

669 :デフォルトの名無しさん:2008/02/02(土) 11:23:59
web板池

670 :デフォルトの名無しさん:2008/02/02(土) 12:16:17
そうします。失礼スマスタm (_ _) m

671 :デフォルトの名無しさん:2008/02/02(土) 13:52:45
iアプリスレから誘導されました
iアプリでTextBoxに入力する時には一度決定キーで文字入力状態にしますが、
KeyPressedでキーの数字を順次読み込ませてTextBoxに入力させたいのですが、
方法がいまいち分かりません。
public void KeyPressed(int key) {
text.setText(text.getText() + (key));
}
で良いのでしょうか?ご教示願います。

672 :デフォルトの名無しさん:2008/02/02(土) 14:28:49
固有のAPIはここに誘導してもどうしようもないと思うんだが。

673 :デフォルトの名無しさん:2008/02/02(土) 14:40:39
>>671
int key が数字ボタンに表示されてる数字(1とか2とか)ならそれで大丈夫。
iアプリのAPIについては良くわからないので別の問題なら私は無理。

というか、〇〇で大丈夫ですか? と聞くぐらいなら、試せばいいじゃないか、と。
「△△になるはずだったんだけど、□□と表示されてしまう」というなら、
解決法なり誘導なり、色々手伝えることがあるとは思うのだが…

674 :671:2008/02/02(土) 16:16:25
>>673
質問の仕方が悪く、大変申し訳ありませんでした。
上記のソースを使って編集不可に設定したTextBoxに
入力できるようにしているつもりなのですが、
TextBoxには数字が入力されません。
どうすればよいのでしょうか。

675 :デフォルトの名無しさん:2008/02/02(土) 16:34:08
Javaアプリケーションを実行形式で配布する方法ってありますか?
どこかのスレで話し合われていたら、誘導お願いします。

なんか、過去ログにはあったんですが、
現行スレなさそうで・・・。

676 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/02(土) 17:29:28
WicketいいよWicket

679 :デフォルトの名無しさん:2008/02/02(土) 17:31:28
劇団四季のあの芝居か?

680 :デフォルトの名無しさん:2008/02/02(土) 19:28:36
ちょいとパッケージについて質問したいのだがコンパイラ時に
classファイルが1つしか出てこないのだが(5つのファイルで構成されている)
これは何故なのだろうか・・・。ちなみにコンパイルは通った。
packageの名前が違うというジョークは無い。
ちなみに参考書についていたパッケージのプログラム(4つのファイルで構成)
は普通に通って4つ分のclassファイルが出来たのだが。

681 :デフォルトの名無しさん:2008/02/02(土) 19:41:53
>>680
javac だと、コンパイルしたクラスが直接使用してない
無関係なクラスは自動的にはコンパイルされないけど、
そーゆー話じゃなくて?

682 :デフォルトの名無しさん:2008/02/02(土) 19:59:55
>>681
あ、もしかしたらそれかもしれない。回答thx。

683 :デフォルトの名無しさん:2008/02/02(土) 21:08:36
例えば計算アルゴリズムを作ってランチャー形式で計算させるようなアプリケーションを作る場合
追加のアルゴリズムをモジュールのように取り込んで別々の計算をさせるようにするには全体をどんな構造にすれば
いいのか
何かコツみたいなものあります?

684 :デフォルトの名無しさん:2008/02/02(土) 21:12:27
ttp://www.raw-paradise.com/

685 :デフォルトの名無しさん:2008/02/02(土) 23:41:23
どうでもいいことで恐縮なんですが、java.util.CalendarのMonthって、なぜ0からなんでしょう?
年はおろか、日すら1から始まるのに、月だけ0-11にしたのかわかりません。
一通り調べたのですが、なかなか出てこなかったので、知っている方いらっしゃれば教えてください。

686 :デフォルトの名無しさん:2008/02/02(土) 23:48:12
>>685
月は数字じゃなくて、名前がついてるからじゃね?
曜日も0からだし。

687 :685:2008/02/02(土) 23:49:24
と、書いた矢先にそのものズバリの答えを見つけました。
スレ汚し失礼しました。

# 以下チラ裏
# 後続のために念のため見つけたURL書いときます
# JavaFAQ: Date / Calendar
# ttp://javafaq.jp/S100.html


688 :デフォルトの名無しさん:2008/02/02(土) 23:50:29
>>686
すいません、回答ありがとうございます。
その通りでした。

689 :デフォルトの名無しさん:2008/02/03(日) 01:40:07
>>679
それはウィキッド

690 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/03(日) 16:30:23
>>691
・InitialContext.lookup()の引数に環境情報を渡す
・jndi.propertiesにホスト情報を記述する
・APサーバのJNDIサービスにエイリアスを設定する
上記のどれか。
何もなければ同一ホストから検索される。


693 :デフォルトの名無しさん:2008/02/03(日) 17:26:01
質問させて下さい。

Object obj = new Object() { ... }

こういう文法が理解できません。
中括弧の中では、何をしているのでしょうか。
コンストラクタを定義するのと同時に、
インスタンスを作成している感じでしょうか?
メソッドに与えられるのは引数だけだと思っていたので、
それ以外の何かを同時にしているというのがよくわかりません。
この書き方の概念を教えてください。

出来れば言語仕様上で、こういう記法がどこに書いてあるかの
ポインタも合わせて教えていただけると嬉しいです。
(さらに言えば、日本語で)
こういう書き方をなんと呼ぶのかも知らないので、検索もできず……。

この書き方は、例えば ThreadLocal クラスの
API の 1.4 以降で、使い方の説明に出てきます。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/ThreadLocal.html

694 :デフォルトの名無しさん:2008/02/03(日) 17:28:20
>>693
匿名クラスでググれ

695 :693:2008/02/03(日) 17:33:48
>>694
ありがとうございます!
ぐぐって無事に正体がわかりました!

696 :デフォルトの名無しさん:2008/02/03(日) 18:34:30
>>676
ありがとうございます。

ダブルクリックで起動できればいいかなと思っていますので、
ちょっと試してみます。

.batファイルを作ったり、
ショートカットで作ったりしていましたが、
それって、環境変わったらだめくさいきがしまして・・・。

697 :868:2008/02/03(日) 19:50:23
>>869
回答ありがとうございます。
ProjectはBuild automatically clean にチェックが入っています。
しかし新しく作成したディレクトリがTomcatで表示されません。
webapp直下にjsp-xxxというフォルダを作ったのですが。


698 :868:2008/02/03(日) 20:00:04
誤爆しましたorz


699 :697:2008/02/03(日) 20:16:20
697の質問ってどこですればいいのでしょうか?orz

質問先でスレ違いといわれてしまいました。

700 :デフォルトの名無しさん:2008/02/03(日) 20:32:45
それだけで状況が解るエスパーを探しているのかい?

701 :697:2008/02/03(日) 20:52:24
>>700
回答ありがとうございます。
あと何を書いたらよいでしょうか?

702 :697:2008/02/03(日) 21:38:08
くだスレで聞いてみます。

703 :デフォルトの名無しさん:2008/02/03(日) 21:56:30
エスパー頼りならどこで聞いても同じだろ

704 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/04(月) 00:24:31
>>690
http://www.shiki.gr.jp/applause/wicked/

こいつよ

>>678はWicket
劇団四季でやってるのはWicked

スペルが一つ違い。


これは面白いミュージカルなんだろーか


>>678のおかげで見たくなってきた

709 :デフォルトの名無しさん:2008/02/04(月) 00:27:08
>>702
誤爆してるっていうから、レス番が>>898と未来へ飛んでるわけな?
今のところ、>>898のレスが無いから、
元の質問も今の君の質問からも、君が何をしたいのか
わからないんだ。情報を出してもらわないことには、質問には
答えられない。エスパーする以外では

710 :デフォルトの名無しさん:2008/02/04(月) 00:29:17
>>707
ありがとうございます。
結局waitForのタイムアウト指定版っていうのはないみたいですね…

711 :デフォルトの名無しさん:2008/02/04(月) 00:36:30
>>706
こういうまとめ系って Wiki とかじゃないと管理人がヘタったら終わりなんだよね。
他人が勝手にコピペして引き継ぐわけに行かないし。Wiki 立てるのって簡単なのかな?
サーバリソース余ってるからやっても良いんだけど。

712 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/04(月) 00:57:20
Eclipseの外でディレクトリ作って、Eclipse側で更新かけてないというオチは俺は良くやる。

714 :デフォルトの名無しさん:2008/02/04(月) 01:03:09
このスレのWikiの更新具合も微妙

715 :デフォルトの名無しさん:2008/02/04(月) 01:20:40
>>713
回答ありがとうございます。
Eclipseの中でディレクトリを作っています。

716 :デフォルトの名無しさん:2008/02/04(月) 03:36:48
質問ですノ
リファレンスの本ってあったほうがいいでしょうか?
ワザあり!逆引き速引きリファレンスJavaってのがいいって聞いたのですが
どうなんでしょうか?

717 :デフォルトの名無しさん:2008/02/04(月) 10:11:33
それくらい自分で考えろ。人に聞くことじゃない

718 :デフォルトの名無しさん:2008/02/04(月) 14:30:47
>>711
Wikihouseに立てるのは簡単だよ。

これ使う手もあり
http://ja.wikibooks.org/wiki/

719 :デフォルトの名無しさん: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を最近になって勉強し始めた者です。
サンプルプログラムを探していて、このようなサイトにたどり着きました。
http://www.catch.jp/program/java/

ページ上部の「021: 10個の点が3-Dで移動する」のソースコードをコンパイルすると
classファイルが3つ出現しました。
使い方がわからなかったので、検索してみると「jar」コマンドで複数のclassファイルを結合できると知り、
試してみたのですがなかなかうまくいかないので、皆様のお力をお借りしたいです。
jarファイル作成についてはこのサイトを参考にさせていただきました。
http://www.tohoho-web.com/java/other.htm

このような場合にブラウザでアプレットとして動かすにはどうすればよいのでしょうか。
よろしくお願い致します。

723 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/04(月) 21:18:51
マップエディタをアクティブレンダリングにして何の意味があるんだ?

725 :デフォルトの名無しさん:2008/02/04(月) 21:25:43
>>724
ごめんなさい。しっかりと書くべきでした。
ttp://javagame.main.jp/index.php?FrontPage#rd9af24b
で紹介されているマリオ風アクションゲームにてマップエディタを使い記録したものを
読み込ませるために使いたいのです。なので本来はマップエディタのマップを読み込み
描画するというところだけを抜き出せばよいハズなのですがどうも上手く動かなかったので
質問した次第です。ご迷惑をお掛け申し訳ありません。

726 :デフォルトの名無しさん:2008/02/04(月) 21:27:21
ついでに答えるか。
javaはパッシブレンダリングだからアクティブレンダリングするときは自分でバッファ管理しないとNPE出るけどそれじゃない?

ttp://homepage1.nifty.com/algafield/JavaGUIFaq19j.html#three4

727 :デフォルトの名無しさん:2008/02/04(月) 21:30:29
>>725
表示させるだけならアクティブレンダリングの意味ない

728 :デフォルトの名無しさん:2008/02/04(月) 21:43:42
>>726
まだ、私は日が浅いため理解するのに時間はかかりそうですが
頑張って理解してみようと思います。
>>727
そうなのですか。しかし、そうだとしても一枚のグラフィックを複数に分けて
使用するというのは今後も使いそうなのでできれば習得しておきたいと考えたのです。
実際、使う画像を一枚一枚分けて保存していては管理も大変だと思ったので。

729 :デフォルトの名無しさん:2008/02/05(火) 00:31:24
解放したら自動的にnullになりますか?
これまでずっとCだったので、JAVAはよく分かりません。
http://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 :デフォルトの名無しさん:2008/02/05(火) 00:43:22
>>729
> JAVAでは一般的に、*.close()すると、*はnullになるように
ならないよ。

731 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 02:15:09
> Cやってる人なら普通はclose()したらその直後にNULL入れる
そんなことしたことない。

737 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 02:25:30
Javaの人でも close 直後に null を入れて大丈夫です。
但し、最終的な解放は GC 任せですので、あしからず。

Javaの場合は、裏でOSネイティブなリソースを使ってる場合があって、
明示的に解放してあげないと、何時までも占有する可能性がある。
特に、close はそういうことに関係してるかと。

740 :デフォルトの名無しさん:2008/02/05(火) 02:27:28
>>737
まずコンパイル通せよ。
まぁそのままだと実行しても"Hello World!"としか表示されないだろうが。

741 :デフォルトの名無しさん:2008/02/05(火) 02:30:15
ローカル変数なら、nullを入れてもあまり意味がない。
フィールドや、外部に晒した変数なら、nullを入れるのもいいかもしれない。

742 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 02:39:57
>>743
スタックには参照しか置けねーよ アホ

745 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 02:43:43
そのソース、シャットダウンシーケンス入ると最悪だなw

747 :デフォルトの名無しさん:2008/02/05(火) 02:45:03
>>734

748 :デフォルトの名無しさん:2008/02/05(火) 02:45:47
>>744
文章が簡素で短い。頭に思い浮かべている内容に自信がないみたいだね。
とりあえず744はアホのままでいいから744がスタックについて理解を
深めるのを阻止するためにスタックの話題はスルー。

749 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 03:07:05
close() が必要なのは大抵ファイナライザで呼び出すよう実装されてるけどな
(しなくて良いという意味ではなくて)。

752 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 03:27:55
>>752
String型を返すコンストラクタはString以外には存在しない。

文字列の結合が目的ではないと思うが、
あまりにも簡単なことをこなす為に、拘る内容があまりにも初歩的。

・クラスの継承、型と代入について
・コンストラクタの仕組み、メソッドとの違いについて

756 :デフォルトの名無しさん:2008/02/05(火) 03:32:32
>>754
コンストラクタは自分のクラス型しか返せないということですね。
>>753
できました。ありがとうございます。メソッドをstaticにしないとうまくいきませんね。
 public String d(String c){
  static String s = new String("f" + c);
  return s;
 }
これだとコンパイルエラーでした。

757 :デフォルトの名無しさん:2008/02/05(火) 03:43:05
コンストラクタは何も返さない
newオペレータが指定されたクラスのインスタンスを構築してその参照を返す
その構築の際にコンストラクタが使用される

758 :デフォルトの名無しさん:2008/02/05(火) 03:54:53
>>757
Javaではnewは演算子扱いではなくてクラスインスタンス生成式や配列生成式を示すだけのキーワード扱いじゃなかったかな。

759 :デフォルトの名無しさん:2008/02/05(火) 04:01:42
あ、いや、すまん。演算子扱いだったのかもしれない。気にしたことないのであやふやだ。
JLS見てみる。

760 :デフォルトの名無しさん:2008/02/05(火) 04:53:50
Stringの質問です。前者は後者の記述の略として解釈され、
前者と後者の振る舞いは等しいものでしょうか?
String s = "1";
String s = new String("1");

761 :デフォルトの名無しさん:2008/02/05(火) 04:55:06
ちがいます

762 :デフォルトの名無しさん:2008/02/05(火) 05:12:42
カノニカライゼーション
http://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 :デフォルトの名無しさん:2008/02/05(火) 05:28:52
すみません
jarファイルをダブルクリックするとラプラスが起動して解凍してしまいます
拡張子を何に関連づけすれば解決するでしょうか

765 :デフォルトの名無しさん:2008/02/05(火) 05:53:29
javaw

766 :デフォルトの名無しさん:2008/02/05(火) 08:12:02
通常は new String("")は使用しない。

767 :デフォルトの名無しさん:2008/02/05(火) 12:04:47
new String(".....") は使わないように。
Stringは不変オブジェクトだから、無駄なインスタンスができるだけ。
"...." だけでよい。

768 :デフォルトの名無しさん:2008/02/05(火) 12:08:00
SimpleDateFormat のスレッドセーフ化されたものとして
FastDateFormat(format() のみ) がありますが、
parse() に関しては jakarta の DateUtils.parseDate() を
使用すればスレッドセーフになるんでしょうか?


769 :デフォルトの名無しさん:2008/02/05(火) 12:39:48
Stringは参照先で弄っても元が破壊されないけど、StringBufferは壊れるからちょっとややこしい。

770 :デフォルトの名無しさん:2008/02/05(火) 12:43:51
>768
メソッド内でSimpleDateFormatのインスタンスを生成してparseすれば済む話だろ

771 :デフォルトの名無しさん:2008/02/05(火) 12:54:08
>>769
それは設計の問題で StringBuffer の問題ではないと思う。
一応、StringBuffer は同期化されてるので、「壊れる」ことはない。
意図しない結果をもたらす事はあるとしても。

772 :デフォルトの名無しさん:2008/02/05(火) 12:58:37
>>770
SimpleDateFormatって複数インスタンス作っても
内部で同一オブジェクトを使いまわすのでスレッドセーフじゃないって話だったような。

773 :デフォルトの名無しさん:2008/02/05(火) 12:59:09
new String()は文字コード変換ぐらいしか利用価値が無いと思え

774 :デフォルトの名無しさん:2008/02/05(火) 13:02:10
>> 770
http://www.geocities.co.jp/Playtown/1245/java/unsafe_simple_date_format.html
この辺みてるんですけど、それで解決する問題なのかどうかが
イマイチよくわからないんですよ、、、


775 :デフォルトの名無しさん:2008/02/05(火) 13:07:49
SimpleDateFormatってスレッドセーフじゃないの?
Servletで使いまくってるけどやばい?

776 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 13:45:10
SimpleDateFormatが内部でstaticなデータを保持してんだろ?
それくらいわかれカス

779 :775:2008/02/05(火) 13:52:22
ということはやばいということですね。
どうしよう

780 :775:2008/02/05(火) 13:55:30
どなたかスレッドセーフな
SimpleDateFormat
を作ってくれませんか?

781 :デフォルトの名無しさん:2008/02/05(火) 13:57:01
synchronized使えカス

782 :デフォルトの名無しさん:2008/02/05(火) 13:59:43
synchronized (SimpleDateFormat.class) {
  // SimpleDateFormatを使うコード
}

こうすれば中でstaticなデータ持ってようと、
同時に読み書きされることはない・・・はず。

マルチスレッドよぅわからん。

783 :775: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 :デフォルトの名無しさん:2008/02/05(火) 14:14:16
なにがどうダメなんだ?

785 :デフォルトの名無しさん:2008/02/05(火) 14:16:05
つうかローカル変数で使うのに何か具体的な不具合でも出てるわけ?
マルチスレッドで使わなきゃ良いだけじゃん。

786 :775:2008/02/05(火) 14:16:35
getInstanceでもnewのようにまったく別のインスタンスを作って
くれるのでしょうか?


787 :デフォルトの名無しさん:2008/02/05(火) 14:18:03
とりあえず、マルチスレッドの勉強を一からやり直せ。
ttp://www.amazon.co.jp/dp/4797337206

788 :デフォルトの名無しさん:2008/02/05(火) 14:21:42
>>785
ローカル変数かどうかは問題じゃない。
インスタンスへのアクセスが閉じているかどうかだ。
>>783
おまえはスレッドセーフの意味が分かってなさそうだから。
まずはシングルスレッドで頑張れ。

789 :デフォルトの名無しさん:2008/02/05(火) 14:23:38
つうかちょっとまて。ソース見たが SimpleDateFormat に関してはスレッドセーフでないことと
内部で static なオブジェクト使ってることとは関係ない。複数インスタンスで共有してるのは
ロケールごとの静的なリソースだ。だから >>777 で引用部分の表現は明らかにおかしい。

790 :デフォルトの名無しさん:2008/02/05(火) 14:25:11
>>788
ローカル変数ってのは表現間違えたがマルチスレッドで意味ぐらい汲めよ。

791 :775:2008/02/05(火) 14:26:55
ではサーブレットでSimpleDateFormatをローカル変数で
都度newしているなら問題ないってことですね?

792 :デフォルトの名無しさん:2008/02/05(火) 14:29:51
>>791
そのローカル変数が他スレッドに漏れてなければ、ね

793 :775:2008/02/05(火) 14:31:44
>>792
それは大丈夫です。漏れていません。

794 :デフォルトの名無しさん:2008/02/05(火) 14:32:53
>>791
そういうこと。スレッドごとに別インスタンスで使っていれば問題ない。
でなければ JSTL の日付フォーマットも使えない。
「処理中で不整合」 の内部状態を持つのは DocumentBuilder、Transformer、XPath、Matcher なんかも同じ。

795 :デフォルトの名無しさん:2008/02/05(火) 14:44:42
>>794
そこで ThreadLocal の出番だな

796 :デフォルトの名無しさん:2008/02/05(火) 14:57:04
また来ますた。お世話になっておりますw

数字を入力してください: 120←入力

と入力された数字を "1" "2" "0" と分けて取り出す方法を教えてください。
宜しくお願いしますm(_ _)m

797 :デフォルトの名無しさん:2008/02/05(火) 15:05:38
toCharArrayでもcharAtでも好きなほうをどうぞ。

798 :デフォルトの名無しさん:2008/02/05(火) 15:08:17
メソッド呼び出しについて勉強しているのですが
行き詰ってしまってしましました。

メソッド名:getProfile
引数: String name , int age
処理:「○○さんは△歳です」という文字列を返す
戻り値:String

このソースの書き方を教えてください。
よろしくお願い致します。

799 :デフォルトの名無しさん:2008/02/05(火) 15:08:55
宿題スレに池

800 :デフォルトの名無しさん:2008/02/05(火) 15:10:24
return String.format("%sさんは%d歳です", name, age);

801 :デフォルトの名無しさん:2008/02/05(火) 15:10:29
>>797
ありがとうございますw
もう一つすみません。
入力された数字intで取り出したいのですが、charAtでもintを取り出せるのでしょうか?

802 :デフォルトの名無しさん:2008/02/05(火) 15:12:18
変換くらい自分でやれ。
Characterクラスのjavadocをみるよろし。

803 :デフォルトの名無しさん:2008/02/05(火) 15:19:10
そういえば String#format() のフォーマットに対する、解析済みで再利用可能な
クラスがないようなのが気になってたんだけど、これって毎度 String.format()
しなきゃいけないのかな?

804 :デフォルトの名無しさん:2008/02/05(火) 15:27:31
>>802
あ、そうか変換すれば良いんですね。
ありがとうございます。

805 :デフォルトの名無しさん:2008/02/05(火) 15:27:56
>>803
ちょっと何言ってるかわからない。
解析済みで再利用可能って・・・戻り値のStringを保持しとけばいいじゃん、
とかそういうことじゃなくて?

806 :デフォルトの名無しさん:2008/02/05(火) 15:32:03
>>803
String.format の内部は、return new Formatter().format(String, Object...).toString()
Formatter 内部でキャッシュできそうな部分もあるが、private クラスの配列になってるし。
まぁ強いてキャッシュにするなら、Formatter のインスタンス辺りかな

807 :デフォルトの名無しさん:2008/02/05(火) 15:34:25
>>803
java.util.regex.Pattern みたいなものを期待してるなら、ないね。

java.util.Formatter は出力先を持ってるだけで、
書式文字列を固定で持ってるわけじゃないし。

808 :806:2008/02/05(火) 15:41:29
自己レス。自分で書いておいてなんだが、
Formatterの生成時には出力先を用意するだけなので、キャッシュの意味なし。
しかも、toString時に出力先をクリアするわけでもないので、再利用自体も不可に近い。

809 :デフォルトの名無しさん:2008/02/05(火) 15:51:38
やっぱりそうか、俺の勘違いとかでないならまぁいいや。
Logging API の Formatter とか膨大な呼び出しされそうなところで使われそうなものだから
なんかもったいないなぁと思っただけで。

810 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/05(火) 15:59:35
セミコロンがないとか、そういうオチ?
とりあえず、どんなエラーが出るんだ?

813 :デフォルトの名無しさん:2008/02/05(火) 16:01:30
>>811
0x14は0xが頭についてるので、10進数じゃなくて16進数として解釈される。
16進数の0x14を10進数になおすと20になる。

10進数の14が必要なら0xを頭につけちゃだめ。

814 :デフォルトの名無しさん:2008/02/05(火) 16:05:20
>>811
0x14 を 0xE と間違えた後、14 にして、さらに E としたところでエラーが出たに1票。

815 :デフォルトの名無しさん:2008/02/05(火) 16:10:40
14は16進数でE、20は16進数で14・・・
なるほど、814が正解かもしれない。
なんか16進数自体わかってなさそうだ。

816 :811:2008/02/05(火) 16:12:27
ありがとうございます。
(0xE)ではじめに書いたら

Exception in thread "main" java lang.NoClassDefFoundError

といった表示が出てしまいました
>>811に書いたようなテキストの答えを見て
0x14にしたらちゃんと表示されます。

まだ頭がごっちゃでわかってません。。すみません。


817 :811:2008/02/05(火) 16:14:24
あ、わかりましたorz

ありがとうございますorz

818 :デフォルトの名無しさん:2008/02/05(火) 16:18:20
で、理由はなんだったんだ?
エラーを見るに、何か他のクラスを実行しようとしたみたいだけど。

819 :デフォルトの名無しさん:2008/02/05(火) 16:26:26
NoClassDefFoundErrorなら typoかなんかでしょ。たぶん。

820 :デフォルトの名無しさん:2008/02/05(火) 17:40:13
また、やさしいjavaか

821 :デフォルトの名無しさん:2008/02/05(火) 19:04:58
最初に読む本でずいぶん変ってくるよね
実践的な本で勉強した方が後々いいと思うんだけど

822 :デフォルトの名無しさん:2008/02/05(火) 21:32:02
仕事で使うのか趣味なのかでも違ってくるしね
趣味なら
自分だけのメーラー作成を通して学ぶ
EclipseによるJava

とかを打ち込みながら実行してWebで分からない所を調べる
とかだと面白く学べる。

仕事だとフレームワークが絡んでくるから個々のフレームワーク・言語の入門本がいいかと思う。

823 :デフォルトの名無しさん:2008/02/05(火) 21:41:03
1.4.2のjavaにJDK6のAPIを追加してみた。
動かないんだけどそれだけじゃ意味ない?

824 :デフォルトの名無しさん:2008/02/05(火) 21:58:34
初級本ならHeadFirstがおすすめ。
超初心者ならわかりずらいかもしれんがまともなこと書いてある。
SJC-Pとかうけるのにもこの本読んどくとかなり試験勉強の助けになる。

825 :デフォルトの名無しさん:2008/02/05(火) 22:12:06
でも本の厚さと値段で尻込みしちゃうのが初心者

826 :デフォルトの名無しさん:2008/02/05(火) 22:30:42
あの厚さは普通だと思うが、分厚いのはオライリーのSwing本あたりだろ。

827 :デフォルトの名無しさん:2008/02/05(火) 22:37:11
分厚いのは割れてかなわん

828 :デフォルトの名無しさん:2008/02/05(火) 22:46:30
また宣伝厨かよ

829 :デフォルトの名無しさん:2008/02/05(火) 22:48:40
>>823
何がしたいんだ?
target が 1.6 のクラスファイルは、どう頑張っても1.4のJVMじゃ動かんよ。

830 :デフォルトの名無しさん:2008/02/05(火) 23:26:01
http://up2.viploader.net/upphp/src/vlphp134279.jpg

831 :デフォルトの名無しさん:2008/02/05(火) 23:28:57
かわいいこ多いな

832 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/06(水) 02:20:50
くそくそうるさいなw
ドキュメントの場所を教えてるんだから分からなければそっちを読め
ってか普通はオプションの意味さえとれれば使用例は要らない

837 :デフォルトの名無しさん:2008/02/06(水) 02:38:15
>>836
無理しないでえらい人の回答を待てよ。
少なくとも漏れよりえらい人以外にはレスしてほしくない。
あえて書くなら漏れも知らないのでえらい人教えてください、だろ。

838 :デフォルトの名無しさん:2008/02/06(水) 02:39:06
アニョハセヨ

839 :デフォルトの名無しさん:2008/02/06(水) 02:44:05
スーゴハセヨ

840 :デフォルトの名無しさん:2008/02/06(水) 02:54:43
グッテンターク

841 :デフォルトの名無しさん:2008/02/06(水) 03:21:13
漏れとか…何時振りだろう、見たの

842 :デフォルトの名無しさん:2008/02/06(水) 08:58:49
http://journal.mycom.co.jp/series/webtool/007/index.html
>かつての電化製品がそうだったように、日本人の作るサービスはデザインやユーザビリティの面で優れていると感じている。

Nationalのオーブンレンジを触ったことがないんだろうか。
最低3つの操作手順を踏まないと、食パン1枚焼けない。余計な機能詰め込みすぎ。

「(多くの)日本人(のみ)にとって使いやすい」だけであり、それを「優れている」とは言わない。
Vista使いにくいだろ? 要は日本の家電メーカーはアレをやってる。
ご当地の人には使いやすいんだろうけどな。
それをJEITAの連中は「日本の消費者は先進的」といまだに勘違いしてる。だから国際競争で負ける。
異なるだけであって感性に「先進」とか「後進」はない。家が小さい日本は「後進的」か? 違うだろ。

日本の家電(PC含む)は既に世界からそっぽを向かれている。
車やカメラは熱いけどな(ただし、カメラも同じようにそっぽを向かれるのは時間の問題)。
日本発のWebアプリが普及しないのは二番煎じばかりだからだろ。

むしろそういうデザインとか下らないところに注力しているから、いつまでたっても独創性が開けない。
ふぅーなんか朝から熱くなっちまったぜ。

843 :デフォルトの名無しさん:2008/02/06(水) 09:47:47
日本人にとっての使いやすさと
アメリカはじめ他国の人間にとっての使いやすさが違うだけ。

国内で高い評価を得ても世界ではそれほどでもない。

逆に使いやすさの面で国際競争力を付けようと思ったら
日本ではあまり高く評価されないかもね。



844 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/06(水) 12:55:03
>>845
意味がよくわからんが、代入してどうしたいんだ?
何をしたいのか書くといいかもしんない

>>846
eclipseみたいなIDEは嫌かね?

848 :デフォルトの名無しさん:2008/02/06(水) 13:01:59
>847
使ってみましたけど、ちょい重かったです。
コンパイルするたびにjavac.exeを読み込むのが
無駄だよなぁって思ってたんですが。

新しいマシン買えよ、ってことなんでしょうけど
キャッシュが沢山載ってるやつ買えばいいのかな。


849 :デフォルトの名無しさん:2008/02/06(水) 13:09:34
phpからjavaへの乗り換えを検討しているのですが
javaでphpのsymfonyに一番近めなフレームワークってどれでしょう?


850 :デフォルトの名無しさん:2008/02/06(水) 13:31:46
Method println = System.err.getClass().getMethod(...);

851 :デフォルトの名無しさん:2008/02/06(水) 19:12:16
>>848
…javac.exe を読み込むのが遅いならRAMディスクは如何でしょう。
可能性のある要因は幾つも挙げられますが、何れにしろ、
ハードウェアかOSの問題で、Javaだから、という問題では無いように思えます。

852 :デフォルトの名無しさん:2008/02/06(水) 19:51:33
10万も出せばDualCoreでメモリ2Gのマシン、ディスプレイ付で買えるだろうよ
Eclipseが重いってのは何時の話だ

853 :デフォルトの名無しさん:2008/02/06(水) 20:29:37
ちょっと自作PC板に来てもらおうか・・・

854 :846:2008/02/06(水) 21:21:44
自己解決しました。
空きメモリを仮想ドライブにするソフトなんかあるのね、今は。
いや、ほんとに
「RAMディスクなんて言葉聞いたの98note以来だぜ、
確かに滅茶っ速だったけどなァァァァ」
とか思いましたけど、皆さんありがとうございました。

855 :デフォルトの名無しさん:2008/02/06(水) 23:04:34
それ、自己解決か・・・?

856 :デフォルトの名無しさん:2008/02/06(水) 23:24:16
JDKの環境変数設定などの後はOSの再起動をすると本で読んだのですが、
どうも環境変数の設定をした時は
そのままで反映されている時とOS再起動しないと反映されない時があるみたいです。
OSの再起動以外に何か関係するものがあるんでしょうか

857 :デフォルトの名無しさん:2008/02/06(水) 23:36:18
>>856
そんな糞本捨ててしまえ。環境変数は基本的に親プロセスから引き継がれるので、環境変数を設定したプロセスから起動すれば即座に反映されるが、読み直しはしないので既に動いている他のプロセスには影響しない。
Windowsの場合なら、
・コマンドプロンプト/バッチファイルで環境変数を設定してそこからプログラムを起動した場合→即時反映
・システムのプロパティから環境変数を設定→設定後に起動したプロセスにのみ変更が反映。例えば設定前から動いているコマンドプロンプトからJavaプログラムを起動しても変更は反映されない。


858 :856:2008/02/06(水) 23:50:23
>>857
なるほど〜すごく分かりやすい説明ありがとうございます!
こういうズバリな説明聞くとwindowsに浸ってないでUNIXの勉強するべきなのかなぁって思いますね…


859 :デフォルトの名無しさん:2008/02/07(木) 00:01:42
PC のピの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

860 :デフォルトの名無しさん:2008/02/07(木) 00:04:13
Windows9x時代のautoexec.bat編集して再起動
みたいな記述がそのまま残ってるだけじゃないかと。

861 :デフォルトの名無しさん:2008/02/07(木) 00:13:27
PCに"ピ"の字はどこにも無いと思うんだが

862 :デフォルトの名無しさん:2008/02/07(木) 00:17:43
サイトに snoop アプレット仕込んでクライアントの JVM バージョン統計取ってみたんだが見る?

863 :デフォルトの名無しさん:2008/02/07(木) 00:29:25
ピーシーのピの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

864 :デフォルトの名無しさん:2008/02/07(木) 00:35:14
やるおかよ

865 :デフォルトの名無しさん:2008/02/07(木) 03:41:13
java.util.regex.Pattern の lookingAt() って find(0) と同じという理解で良いのかな?

866 :デフォルトの名無しさん:2008/02/07(木) 03:51:41
PCのパの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

867 :デフォルトの名無しさん:2008/02/07(木) 03:57:20
PCに"パ"の字はどこにも無いと思うんだが

868 :デフォルトの名無しさん:2008/02/07(木) 04:01:54
パトカーのパの字も分からん人間相手の本なら再起動は基本。
本売る人間から見たらおまいらみたいな目の肥えた奴相手にするより商売になるからな。

869 :デフォルトの名無しさん:2008/02/07(木) 04:04:43
パトカーに"パ"の字はあると思うんだが

870 :デフォルトの名無しさん:2008/02/07(木) 08:13:02
先週、就職合同説明会でjavaプログラマのプチ面接を受けたんだが
フローチャートできないということで落ちた
大学の授業では不要といわれていたんだけどなぁ

企業の求む新入社員のスペックはどれほど必要か誰か教えてください

871 :デフォルトの名無しさん:2008/02/07(木) 08:27:18
不要なのとできないのは違うよ

872 :デフォルトの名無しさん:2008/02/07(木) 08:35:15
不要とかいう前に、出来て当たり前だろw

873 :デフォルトの名無しさん:2008/02/07(木) 08:44:42
むしろフローチャートをサ変動詞で使ってるあたりで落とされたと予想。

874 :デフォルトの名無しさん:2008/02/07(木) 08:54:46
面接官:フローチャートしてください
870:できません

875 :デフォルトの名無しさん:2008/02/07(木) 10:54:45
Javaを最近やり始めた初心者です。
質問なのですが、メソッドというのはわかりました。
例えば一番初めに数値を入力してその数値によって条件が変わる場合どのようにかけばいいのでしょうか?
C言語で言う
int main(){
int i=0; int j=0;
printf("数値を入力してください");
scanf("%d",&i);
if(i==1){
//処理A
}
if(i==2){
printf("数値を入力してください");
scanf("%d",j);
if(j==3){
//処理B
}
if(i==4){
//処理C
}
}
}
という処理をJavaで書く場合どのようにかけばいいのでしょうか?
クラス宣言{
初期値宣言と数値入力処理
if(i==1){
メソッドA{
}
}
といった感じで入力してもOKなのでしょうか?

876 :デフォルトの名無しさん:2008/02/07(木) 11:00:11
質問なのですが、メソッドというのはわかりました。
質問なのですが、メソッドというのはわかりました。
質問なのですが、メソッドというのはわかりました。
質問なのですが、メソッドというのはわかりました。
質問なのですが、メソッドというのはわかりました。


・・・質問?

877 :デフォルトの名無しさん:2008/02/07(木) 11:01:51
というか、メソッドのことすら全然わかって無いし、
C言語でもそれならswitch使うだろ、とかいいたいことはたくさんあるけど、
まずはあれだな、なんか本買ってまじめに勉強しろ。

878 :デフォルトの名無しさん:2008/02/07(木) 11:04:09
JavaでHelloWorldが書けるかもあやしい

879 :デフォルトの名無しさん:2008/02/07(木) 11:07:41
C言語で関数が使えるのかすらもあやしい

880 :デフォルトの名無しさん:2008/02/07(木) 11:07:57
コンパイル出来るかも怪しいw

881 :デフォルトの名無しさん:2008/02/07(木) 11:17:21
もしかしてmain関数しか書いたこと無いのかな・・・?

882 :デフォルトの名無しさん:2008/02/07(木) 11:20:45
初心者大歓迎。初心者大歓迎。回答者も初心者大歓迎?

とはいえ、正直、875 にはどう答えていいものやら。
とりあえず scanf っぽいものを紹介してお茶を濁すとしましょう
ttp://www.javainthebox.net/laboratory/J2SE1.5/MiscAPI/CStyleFormat/scanf.html

883 :デフォルトの名無しさん:2008/02/07(木) 11:22:03
日本語が話せるのかもあやすぃ

884 :デフォルトの名無しさん:2008/02/07(木) 11:33:54
Javaではこうするのさ

import java.util.*;
import java.io.*;
interface Proc { void proc(); }
public class Main {
 private static Map<Integer, Proc> lookup = new HashMap<Integer, Proc>() {{
  put(1, new Proc() {
   public void proc() { System.out.println("処理A"); }
  });
  put(2, new Proc() {
   public void proc() { System.out.println("処理B"); }
  });
  put(3, new Proc() {
   public void proc() { System.out.println("処理C"); }
  });
 }};
 public static void proc(int i) {
  if (lookup.containsKey(i))
   lookup.get(i).proc();
 }
 public static void main(String...args) throws IOException {
  int input = System.in.read() - '0';
  proc(input);
 }
}

885 :デフォルトの名無しさん:2008/02/07(木) 11:43:58
Windows Meをターゲットマシンとしたプログラミングを考えています。
(開発はMac OSX10.3上)

Javaでやってみようかと思っているのですが、どういう環境(開発、
実行、フレームワークやライブラリ)が利用できるのかよくわかっていません。

NetBeansやらEclipseやらPureJavaやらJSFやらSWTやら初心者には
迷路のようです。

そこで、Javaの全体像、あるいは(上記のさまざな側面における)環境
が俯瞰できるような参考書はないでしょうか?

ちなみに、
Javaプログラミングの経験はありませんが、その他の言語( C、Smalltalk,
Objective-C)の経験は多少あります。Windows上でのプログラミングは
まったく経験がありません。実行マシンであるMeはメモリが最低限しか積んで
いないので、あまり大規模場な環境は構築できないはずです。開発は
Mac OSX10.3上となります。




886 :デフォルトの名無しさん:2008/02/07(木) 11:50:15
MeでJava?
・・・やめたほうがいい。

887 :デフォルトの名無しさん:2008/02/07(木) 11:56:42
Meなんてあり得ない選択

888 :デフォルトの名無しさん:2008/02/07(木) 12:08:13
なんでそこをターゲットしちゃうかな〜

889 :デフォルトの名無しさん:2008/02/07(木) 12:10:39

激しくスレ違いかもしれませんが、質問です。

PCゲームを多重起動しようと試みたのですがダメでした。
大抵のゲームはWindowsのアカウントを2つ作成し、別々のアカウントで起動すれば問題ありません。

現在、Vistaを使っているのでXPではどうなるかはわかりませんが(XPは右クリックから別ユーザーで起動が可能)、
Vistaでその手法をとる場合、runasコマンドを使用することになります。
しかしこのコマンドで別々に起動しても、後から起動したほうが無効になってしまいました。

で、ここからがわけわかめなのですが、同一のデスクトップからの起動はダメでも、
Windowメニュー→ユーザー切り替えをし、別々に起動すればうまくいきました。

この違いはいったいなんなのでしょうか?
 

890 :デフォルトの名無しさん:2008/02/07(木) 12:14:24
激しくスレ違いです

891 :デフォルトの名無しさん:2008/02/07(木) 12:15:21
ばっちりスレ違いだね!
そんなのは多重起動防止のロジックによって違うとしか。
あと、Vistaでもrunas使わなくてもShift+右クリックとかででなかったっけ?

892 :デフォルトの名無しさん:2008/02/07(木) 12:18:20
VMWare 使え

893 :デフォルトの名無しさん:2008/02/07(木) 12:19:48
Virtual PC or Virtual Server使え

894 :デフォルトの名無しさん:2008/02/07(木) 12:20:21
>>886
CUIベースで、viやemacsでコードを書いてコマンドラインツールができればいい、
みたいなものでも、Macだと選択外ですか。
GUIは必要ならあとで考えることにして。

>>887-888
事務所のマシンがMeだから仕方ないんですよ。。
GUI開発が無理ならキャラクタベースでもいいですけど。

895 :デフォルトの名無しさん:2008/02/07(木) 12:32:38
勉強する時間 < 外注するコスト なんかい?
Javaの講習会(NECとかでやっている5万程度のやつ)に参加させてもらえ、もしくは1ヶ月でも経験者を派遣で雇った方がいい

896 :デフォルトの名無しさん:2008/02/07(木) 12:33:02
javaでCUIは無理

897 :デフォルトの名無しさん:2008/02/07(木) 12:36:22
>>894
Macは全く問題ないよ。問題はMe

Webアプリにはできないの?




898 :デフォルトの名無しさん:2008/02/07(木) 12:49:46
うんこ

899 :デフォルトの名無しさん:2008/02/07(木) 12:50:14
学坊ばかり湧いてるな
氏ねよゆとり
 

900 :デフォルトの名無しさん:2008/02/07(木) 12:54:07
>>894
ニートだけどもしよかったら雇ってくれ。
CUIでもGUIでも作れるよ。

901 :デフォルトの名無しさん:2008/02/07(木) 13:09:22
>>895
プログラミングは趣味に近いから、「勉強コスト」は問題にならないんですよ。

それと、>>885で書き忘れってしまったのですが、
Meをターゲットしたプログラミングといっても、プロを雇うような
規模のものではないです。

ある種のDB(実はフラットファイル)から条件を読み取り、
それに応じて数種類の Latexソースを出力、platexを起動して
最終的にはPDFを(Disk上に)出力する、というごく小規模なものです。

それに職場で必須の案件ではまったくなくて、個人的にあったら少しは仕事
ラクになるな、ぐらいのレベルなので、人を雇うとか講習会に参加するとか
(仕事はパソコンとは直接関係ないし)は、選択肢にないです。



>>897
Webアプリですか。。

実はUSBメモリにデータと実行モジュールを入れて、家と職場で環境まるごと
共有できればいいな、と考えていたのですが、Web系の知識皆無なので
どこまでできるのだか見当がつかないです。。。

ただのプログラミング言語であれば初めての言語でもなんとかなると思うので
Javaがいいかな、と思ったわけです。(lispなどは除く)


902 :デフォルトの名無しさん:2008/02/07(木) 13:26:36
質問です。文字列を全角、半角区別せずにスペースで文字列を分離するプログラムを
作りたいのですが上手く動きません。ソース晒すので何かアドバイスあったら下さい。
public class StringSeparate {

private String word;
private String[] words;
public StringSeparate() {
word = "ヌル ポインター エクセプション";
}
public int getWordSegment() {
int count = 0;
for(int i=0; i<word.length(); i++) {
if(word.startsWith(" ",i)||word.startsWith(" ",i)) {
count++;
}
}
return count+1;
}
public void Separateword() {
words = new String[getWordSegment()];
int start = 0;
for(int i=0; i<words.length; i++) {
for(int end=0; end<word.length(); end++) {
if(word.startsWith(" ",end)||word.startsWith(" ",end)) {
words[i] = word.substring(start,end);
start = end;
}
}
}
}
}wordsのgetter略

903 :デフォルトの名無しさん:2008/02/07(木) 13:30:11
public class StringSeparate {
private String word;
private String[] words;
public void Separateword() {
words = word.split(" | ");
}
}

904 :デフォルトの名無しさん:2008/02/07(木) 13:35:06
\\sじゃだめだっけ?

905 :デフォルトの名無しさん:2008/02/07(木) 13:36:17
javadocでsplit()を調べたら良いメソッドが在るではありませんか!
>903殿 thx

906 :デフォルトの名無しさん:2008/02/07(木) 13:37:41
>>901
それぐらいならちょっと勉強すれば簡単にいけるだろ
素養はあるみたいだし、とりあえず本屋に行って独習Javaでも買ってきたら?

907 :デフォルトの名無しさん:2008/02/07(木) 13:46:02
>>902
words[i] = ほげほげの部分で i をfor文でまわしてる部分がおかしい。
解決法は 903 で楽々。

908 :デフォルトの名無しさん:2008/02/07(木) 14:05:15
>901
秀丸マクロで十分じゃん

909 :903:2008/02/07(木) 14:22:19
でもコレだと区切り文字が半角スペースに限定されるんですよね。
自分の力ではできそうもないのでコレで妥協することにします。ありがとうございました。

910 :903:2008/02/07(木) 14:31:12
失礼。解決させました。

911 :デフォルトの名無しさん:2008/02/07(木) 14:35:04
半角スペースに限定される?
何言ってんだ。つか、902じゃないの?

912 :902:2008/02/07(木) 14:47:45
>911 その通り。903さん失礼した。朝からずっと考えてて、猫に邪魔されたりしたから
ファビョってた。場合分けして解決させたんだけど、全角、半角の区別無いんだっけ?

913 :デフォルトの名無しさん:2008/02/07(木) 15:03:07
splitに半角スペースと全角スペース渡してるから場合分けも何も無いだろう。

914 :902:2008/02/07(木) 15:13:20
いや
for(int end=0; end<word.length(); end++) {
if(word.startsWith(" ",end)||word.startsWith(" ",end)) {
}
コレを利用すればできる。

915 :902:2008/02/07(木) 15:15:20
>>913 いやいやjavaでは半角と全角のスペース区別するよ。

916 :デフォルトの名無しさん:2008/02/07(木) 15:15:27
903のコードのままで全角スペースにも半角スペースにも対応してるんだけど?
何が言いたいのか全く分からない。

917 :デフォルトの名無しさん:2008/02/07(木) 15:18:52
普通に見たまま半角空白を | で結んだんだろ。

918 :デフォルトの名無しさん:2008/02/07(木) 15:22:59
なんか902がかなり恥ずかしいことになってるなw
902の書いたコードもかなり無理やりというかなんというか。
とりあえず、そんなものをクラスにするなよ、ってのと、
クラス名変だぞ、ってことと、メソッド名変だぞ、ってことと、
素直にコピペしろよ、ってことか。

919 :902:2008/02/07(木) 15:23:18
そうなのかー。無駄にスレ伸してすみませんでした。

920 :デフォルトの名無しさん:2008/02/07(木) 15:24:48
>>918
いやいや、一番大事なことを忘れてる
「API仕様読め」

921 :デフォルトの名無しさん:2008/02/07(木) 15:30:44
すみません、>>884の意味が分かりません。
どなたか教えてくださいませんか?

922 :デフォルトの名無しさん:2008/02/07(木) 15:51:21
何で、この板は平日の昼間なのにレスが多いの?

923 :902:2008/02/07(木) 15:53:38
申し訳ないStringの"k|k"の意味を教えてはくれないだろうか?
kもしくはkという意味は分かるんだけど、文字列の中にある|が初見で分けわからんです。
APIの説明でも良いので御願いします。


924 :デフォルトの名無しさん:2008/02/07(木) 15:57:48
>922 世話焼き好きのSEが職場で見てるんでしょう。

925 :デフォルトの名無しさん:2008/02/07(木) 16:02:44
正規表現だよ。
|ってのはJavaでも演算子あるでしょ。アレと同じ。

926 :デフォルトの名無しさん:2008/02/07(木) 16:03:03
>>921
意味、というのは全く何が行われてるか理解できないということか。
以下、私の解釈を垂れ流し。

主クラス名は Main (よって、ファイル名は Main.java)
同じファイルに proc メソッドを持った Interface Proc を定義。

Map<Integer, Proc> lookup で、数字(1-4)と手続きを対応付けし格納。
そのインスタンスは HashMap で生成し、その無名初期化ブロックを用いて、
無名クラスによって生成した Procインスタンスと数字とを対応付けして格納する。
対応付けの数字の部分で、autoboxing を利用。

Main クラスの static proc メソッドは、数字を引数にとる。
その引数が lookup内にある数字なら、対応する Procインスタンスを取り出して、
その procメソッドを実行する。

main メソッド。
System.in.read で入力待ち。戻り値は、最初の1byteの数値。
それから char '0' の数値を引くことで、 char '1'-'4' から 1-4 を取り出す。
// この変換部分は Character.digit(int, 10) でも可かな。
で、その取り出した値で proc を呼び出す。

927 :デフォルトの名無しさん:2008/02/07(木) 16:09:41
>>902
とりあえず、

System.out.println("http://www.google.co.jp/".split(".").length);

の結果を見て驚くといいよ。

928 :902:2008/02/07(木) 16:12:26
ありがとう。

929 :デフォルトの名無しさん:2008/02/07(木) 16:36:39
>>926
やっぱり何言っているのか分かりません。
JavaもCも、同じようなものだと思っていたのですが、全然違うようですね。
もっとまじめにJavaってみます。

930 :902:2008/02/07(木) 16:46:28
教えて貰った通りググって見たところjava Solutionという掲示板に行き着きました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32631&forum=12
私と似たような疑問を持つ方が質問していましたがその回答には
>これはString#splitの引数が単なる文字列ではなく
>正規表現であるために起こります。
とありました。ということはString中の"|"の使用は限られるのですか?
ちなみに正規表現という語句自体あまり理解していませんが(これから調べるのでググれw
とか言わないでね)

931 :デフォルトの名無しさん:2008/02/07(木) 16:49:06
いやいや、その文字列を正規表現として扱わなければ、
普通に"|"も使えるよ。
正規表現として扱うようなメソッド、
例えばsplitに渡すときに、"|"が使いたければ、
"\\|"とエスケープするか、Pattern.quote("|")とエスケープすればOK

932 :デフォルトの名無しさん:2008/02/07(木) 16:51:01
というか、>>927は実行してみたのか?
これはぐぐれといっているわけでは無いだろ。

933 :デフォルトの名無しさん:2008/02/07(木) 16:51:09
しばらくこれで遊んでろ。

http://lab.moyo.biz/tools/regexp/index.jsp

934 :デフォルトの名無しさん:2008/02/07(木) 16:53:27
>>922
ゆとりガキの溜まり場だから

935 :902:2008/02/07(木) 18:10:47
なるほど、正規表現が普通の文字列とは違うということは分かりました。
javadoc見るときはこの言葉に注意します。一つ知識が増えました。
アリガトウございます。

936 :902:2008/02/07(木) 18:34:17
連投失礼、正規表現とは物を検索するのに特化した記号。

937 :デフォルトの名無しさん:2008/02/07(木) 21:16:34
質問させてください。
プログラムから、あるホームページの情報を取得することは可能ですか?
ブラウザからのリクエストなどであればHttpServletRequestオブジェクトにアクセスすればいいのですが、
ただネット上に転がってるサイトに対してはどのようにアクセスすればいいのでしょうか?

938 :デフォルトの名無しさん:2008/02/07(木) 21:19:29
URLクラスのopenConnectionだかなんだかのメソッド使えばOK

939 :デフォルトの名無しさん:2008/02/07(木) 21:35:39
>>938
即レスありがとうございます!こんなクラスがあったんですね

940 :デフォルトの名無しさん:2008/02/07(木) 22:14:39
こんなクラスっていうか探さずとも見つかるだろ標準APIでよく使われてるんだから

941 :デフォルトの名無しさん:2008/02/08(金) 00:16:16
教えてください。
Serializable化したクラスが保持している文字列が、
元オブジェクトとファイルに保存後読みだしたオブジェクトで異なることがあります。
具体的には、'−'(全角ハイフン、文字コード0xFF0D)の文字が'?'になってしまいます。(例:"GT-R" → "GT?R")

再現性100%です。
なんで?他にもこんな文字あるのですか?

942 :デフォルトの名無しさん:2008/02/08(金) 00:27:49
MS932の0x2212だったとか

943 :デフォルトの名無しさん:2008/02/08(金) 00:29:29
>>941
文字列自体は変わってないはず。

エンコーディングの設定(System.getProperty("file.encoding")とか)が変わって、
バイト列に変換する際に '?' に置き換えられたり、
フォントが対応してないとかで表示できなくなってるだけ。

944 :デフォルトの名無しさん:2008/02/08(金) 00:30:44
書き忘れた。xmlでよく起こる事なんだけどMS932の0x2212を自力でUTF-8の0xFF0Dに変換してみたら?

945 :デフォルトの名無しさん:2008/02/08(金) 00:31:18
>>942
全角ハイフンがMS変換表、
マイナス記号がJIS変換表じゃなかったか?

946 :デフォルトの名無しさん:2008/02/08(金) 00:34:20
全角の波線「〜」も「?」になるっけ。

947 :デフォルトの名無しさん:2008/02/08(金) 00:34:53
今ぐぐってみました。全角ハイフンも入っているようです。
http://park3.wakwak.com/~ozashin/sw_tips/webapp_tips/sjis_charset.html

でも、全部自分のマシン内での処理なのですが、なんでこんなんがからんでくるのか全然わかりません。
String のコンストラクタにわたす引数の char[] に明示的に 0xFF0D を設定しても再現するので、もうちょっと調べてみます。
アドバイスありがとうございました。

948 :デフォルトの名無しさん:2008/02/08(金) 00:42:55
>>943
元String出力→ファイルに保存→読み出し→読み出し後String出力
以外になにも処理してないのですが、この処理の間のどこかで勝手にエンコーディングをいじられるのですか?
ファイルに保存するときってエンコ-ディングが決まっていて、それがプログラム実行時とは違うのですか?

JAVA内部のことだし、明示的にエンコーディングをいじってもないのでなので、両方Unicodeと思ってました。


949 :デフォルトの名無しさん:2008/02/08(金) 00:47:20
file.encodingプロパティはOSネイティブなエンコードに設定されてるから
シリアライズしたバイナリもそのエンコーディングに従ってるんじゃない?

950 :941=947=948:2008/02/08(金) 00:53:00
ありがとうございます。
シリアライズのときはそのエンコーディング、複号化のときはUnicodeってことでしょうか。
なんか道が見えてきた気がします。

そろそろ寝ないといけないので明日またチャレンジしてみます。どうもでした。

951 :デフォルトの名無しさん:2008/02/08(金) 00:56:40
>>949
シリアライズの時は、普通は似非UTF-8使うはずだが。

まぁ、readObject()やwriteObject()で明示的に
デフォルトエンコーディング使ってるのかも知らんけど。

952 :デフォルトの名無しさん:2008/02/08(金) 00:58:46
いやjava内部ではunicodeというかUTF-8で外部に出たらfile.encodingかプログラマが明示的に指定したエンコード。
シリアライズしたら外部に出るでしょ。
String型で持たずにbyte配列でやってみたら?

953 :デフォルトの名無しさん:2008/02/08(金) 01:00:07
readObject()とwriteObject()って対応してなかったのか

954 :デフォルトの名無しさん:2008/02/08(金) 01:03:55
>>952
Java内部はUTF-8じゃなくて、UTF-16(charの配列)だって。

955 :デフォルトの名無しさん:2008/02/08(金) 01:16:15
>UTF-8
ああ、素で間違えた。スルーしてくれ

956 :デフォルトの名無しさん:2008/02/08(金) 04:56:56
sがnullなのかの判定はif(s === null)にした方がよいですか?

String s = null;
if(s.equals(""))System.out.println("a");
if(s.equals(null))System.out.println("b");

957 :デフォルトの名無しさん:2008/02/08(金) 05:27:28
>>956
equals使ったらsがnullのとき実行時にぬるぽになるべ

958 :デフォルトの名無しさん:2008/02/08(金) 05:28:22
JavaCCの質問はここでよいですか?
2つのパーサプログラムで共通の字句規則を利用したいのですが、
字句規則と構文規則とでファイルを分けたふたつのjjファイルをコンパイルする方法はありますか?


959 :デフォルトの名無しさん:2008/02/08(金) 05:33:01
>>956
String s = null;
if("".equals(s))System.out.println("a");
if(s == null)System.out.println("b");

960 :デフォルトの名無しさん:2008/02/08(金) 05:51:29
>>957
なった。if(s.equals(null))は使えませんね。

>>959
イコールの3連はJAVAには無いんですね。

961 :デフォルトの名無しさん:2008/02/08(金) 06:49:30
XSL のテンプレートを集めたファイルがあるんですが、この中の任意のテンプレートを
任意のパラメータで Java から call-template するうまい方法ないですかね。結果は
ストリームに流す方法で。

今は include, call-template するだけの DOM を Java 内で動的に作成して Transformer
作成、これにダミーの文書 DOM を渡して結果を得ているのですが、これでは呼び出しの
たびに XSL ファイルの解析処理が必要になってしまいますよね。ファイルが大きく静的な
ため、できれば Templates 作って共有したいところなんですが。

962 :デフォルトの名無しさん:2008/02/08(金) 09:57:41
Ant でログの切り替えを行おうと思ったが、特定ディレクトリ以下の全てのファイル名に文字列
付けるのってどうやるんだ? for f in $files; do mv ... みたいなのが書けないようだが。

963 :デフォルトの名無しさん:2008/02/08(金) 11:28:07
http://ant-contrib.sourceforge.net/tasks/tasks/foreach.html

964 :デフォルトの名無しさん:2008/02/08(金) 11:28:31
>>962
ttp://ant.apache.org/manual/CoreTasks/move.html
これの「Append ".bak" to the names of all files in a directory.」
ってのが参考になるんじゃね?一番最後の奴。

965 :デフォルトの名無しさん:2008/02/08(金) 12:05:23
>>964
おおっこれで何とかできそうなふいんき。mv と同じかと思って属性だけ見て読み飛ばしておったわ。

966 :仕様書無しさん:2008/02/08(金) 13:28:55
つっこみどころをさがせwww

パブlic class Pab {
public static void masin(String args[]){

String ITO = "意図";
System.out.println("String型の" + ITO + "");
}
}


967 :デフォルトの名無しさん:2008/02/08(金) 13:37:27
痛い 966 が居ると聞いて(ry

968 :デフォルトの名無しさん:2008/02/08(金) 15:44:39
つっこむどころか引くわ

969 :デフォルトの名無しさん:2008/02/08(金) 16:55:03
V2Cを初めて使ってみたのですが、
最初のうちは使えるものの時間が経つと
chdir to launcher failed というerrorが出て起動出来なくなります。
アンインストールして再びインストールしても再現します。
これは何が原因なんでしょうか?

970 :デフォルトの名無しさん:2008/02/08(金) 16:58:44
>>969
Java+Swingによる2chブラウザ V2C_T9
http://pc11.2ch.net/test/read.cgi/software/1196864491/

971 :デフォルトの名無しさん:2008/02/08(金) 16:59:58
>>970
誘導ありがとうございます

972 :デフォルトの名無しさん:2008/02/08(金) 17:37:03
trueやfalse以外にnullをreturnしてもよいでしょうか?

public static Boolean chkstruser(String s){

973 :デフォルトの名無しさん:2008/02/08(金) 17:39:22
おまいが作っておまいが使うものなら好きにしろ。

974 :デフォルトの名無しさん:2008/02/08(金) 18:04:15
java言語のif文の規定みたいなのが載ってる
ダウンロードできるオンラインドキュメントみたいなファイルみたいなのありませんか?

975 :デフォルトの名無しさん:2008/02/08(金) 18:04:56
public static Integer chkstruser(String s){
なんでreturn 0;がコンパイルエラー?

976 :デフォルトの名無しさん:2008/02/08(金) 18:06:45
Integerって型じゃなくてクラスですか?

977 :デフォルトの名無しさん:2008/02/08(金) 18:16:10
>>974
http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html
>>976
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Integer.html

978 :デフォルトの名無しさん:2008/02/08(金) 18:17:57
型は型だろ

979 :デフォルトの名無しさん:2008/02/08(金) 18:21:56
>>978
977を見たら
   java.lang
     クラス Integer
って書いてあったから、Integerはクラスなんですね。

980 :デフォルトの名無しさん:2008/02/08(金) 18:35:09
>>975
コンパイラのバージョンは? autoboxing/unboxingが導入されたのは5.0以降なんだが。

981 :デフォルトの名無しさん:2008/02/08(金) 18:41:40
アスキーコードを調べようとしています。
System.out.println(s.charAt(0).hashCode());
char は間接参照できません。というコンパイルエラーでした。

982 :デフォルトの名無しさん:2008/02/08(金) 18:47:10
System.out.println((int)s.charAt(0));

983 :デフォルトの名無しさん:2008/02/08(金) 18:54:33
>>972
いいけどnullだとコンパイルエラー

984 :デフォルトの名無しさん:2008/02/08(金) 18:55:29
javaってオブジェクトとオブジェクトとの二項演算子を作るって事はできますか?

985 :デフォルトの名無しさん:2008/02/08(金) 19:00:02
無理

986 :デフォルトの名無しさん:2008/02/08(金) 19:01:23
>>982
バージョンはいくつか知らんがString#codePointAt(int)の方がよくないか

987 :デフォルトの名無しさん:2008/02/08(金) 19:04:18
>>979
クラスも型のうちの一つなのだが・・・

988 :デフォルトの名無しさん:2008/02/08(金) 19:06:11
>>986
ASCIIコードなら s.getBytes("ASCII") した方が

989 :デフォルトの名無しさん:2008/02/08(金) 19:19:33
サロゲートのコード使う局面なんてあんのか?

990 :デフォルトの名無しさん:2008/02/08(金) 19:47:08
とらいとぅすれたて

991 :デフォルトの名無しさん:2008/02/08(金) 19:54:43
次スレ。

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

992 :デフォルトの名無しさん:2008/02/08(金) 20:00:52
もう次スレか

993 :デフォルトの名無しさん:2008/02/08(金) 21:27:38
javaSEだけインストールしていてjavaEEはインストールしてないのに
サーブレット作って実行したら普通に実行出来てしまうんですが
javaEEが無くてもサーバサイドの開発も出来るんですか?
javaEEの中身って何なんでしょうか

994 :デフォルトの名無しさん:2008/02/08(金) 21:30:53
サーブレットを実行できる環境入れたなら Java EE がどっかに入るに決まっているだろ。

995 :デフォルトの名無しさん:2008/02/08(金) 21:32:32
サーブレット実行環境はtomcatですが、
tomcatの中にjavaEEのライブラリが最初から入ってるということですか?

996 :デフォルトの名無しさん:2008/02/08(金) 21:32:57
しかもパス通ってんじゃね?
パスの通ったフォルダ探してみれば?

997 :デフォルトの名無しさん:2008/02/08(金) 21:40:24
Tomcat使ってんならJavaEE実装の一部が入っているってことじゃんw

JavaEEって仕様のことだぞ?
JavaEEってソフトウェアなんて無いんだぞ?

わかってんのか?w

998 :デフォルトの名無しさん:2008/02/08(金) 21:40:36
ハンドルだけ買ってエンジンは買ってないのに
車動かしたら普通に運転できてしまうんですが
エンジンがなくてもドライブできるんですか?
エンジンの中身って何なんでしょうか

999 :デフォルトの名無しさん:2008/02/08(金) 22:17:07
うめ

1000 :1000:2008/02/08(金) 22:18:36
1000 ならゴスリンと結婚

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

260 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)