★★Java質問・相談スレッド136★★

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    ttp://pc11.2ch.net/hp/
Webプログラミング ttp://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド135★★
http://pc12.2ch.net/test/read.cgi/tech/1262525781/

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

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
ttp://www.wikiroom.com/java/
2デフォルトの名無しさん:2010/02/07(日) 20:10:27
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 9
http://pc12.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://pc12.2ch.net/test/read.cgi/tech/1164877399/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part20
http://pc12.2ch.net/test/read.cgi/tech/1253532993/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 68 ★★
http://pc12.2ch.net/test/read.cgi/tech/1248012902/

■ NetBeansに関する雑談は --
NetBeans Part5【Java/C++/Ruby/Python/PHP】
http://pc12.2ch.net/test/read.cgi/tech/1247926906/
■ Eclipseに関する雑談は --
Eclipse統合M28【Java/C++/Ruby/Python/Perl】
http://pc12.2ch.net/test/read.cgi/tech/1247051216/
3デフォルトの名無しさん:2010/02/07(日) 20:10:32
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja
4デフォルトの名無しさん:2010/02/07(日) 21:15:10
まさかリフレクション?
5デフォルトの名無しさん:2010/02/07(日) 21:21:17
CMあけました〜
6デフォルトの名無しさん:2010/02/07(日) 21:28:25
Class#newInstanceはリフレクションのコンストラクタオブジェクトからインスタンスを作ってるしな。
7デフォルトの名無しさん:2010/02/07(日) 22:03:09

 
                           _.  -─── -.、
                         _.イ  . : : : : : : : : : : : : \
                       / . : : : : : : : : : : : : : : : :  \
                      / ./ : : : /: : : : : : : : : : : : : : : : ヽ
                     /. : / . : : :/: :/: : : : : : : : : : : : : : : : :',
                    /. . :/.: : : : :/_..ム:l  . : :|: __|ヽ: : :| : : : ハ
                 / : : __.イ: : : : .:/: :ノ ヘ : : : :ト、: | ̄\!: : : : :.!
          __     レ´  /| : : : : :{_厶=ミ 人:. : :|_ィ=x、/|: : : : :.|
        _//  ヽ      | | : : : : イfて:::カ   \:| fて: カヽ|: : : : :.|
      /´| (_/l }      | |: :{\{ 弋z_ソ      弋_zノ  !/): :,'
.     /´| ! |二二|ト、       | l /vヘ」         ,        /ノ: : :/
    〈  | {_ソ ̄f⌒ー}     \{   ヘ、    _ _     /:/|/
     ヽ ヽ_)    \丿             个:: 、      _. イ〃      >>1乙です
     |〈\ノ   ー‐r'    ___    .>┤>- < レ'´
   /|:::\__ィ:::|  _/ ̄Y:::::::::`ー ´::::::ノ       ├-- .、
  /  ヽ:::::`ー─ ´:!∨    Y::::::::::::::::::::::/|       \::::::::\__
. 〈     ー──< }       Y ::::::::::::: /:::|       /::::::::::::W   ヽ        ツモ
.  ________   ____________________     __
 │一│  │  │一│ |二│三│四|伍|六│七|八|九|九│九|  |七|
 │萬│  │  │萬│ |萬│萬│萬│萬|萬|萬|萬│萬|萬|萬|  |萬|
.   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄      ̄ ̄
8前スレ997:2010/02/07(日) 23:08:45
インスタンスの生成にClass.newInstanceやConstructor.newInstanceを使ったとしても、
コンストラクタが既に生成されたオブジェクト(割り当てられたメモリ)に対して初期化処理を行うことには変わらない。

あと、997は998と全く矛盾していないんだけど、一体何を主張したかったんだろうか。
「メモリの割り当てにnew演算子が必須」とはどこにも書いていないのに。
9デフォルトの名無しさん:2010/02/07(日) 23:39:36
そういう屁理屈はいいから。
10デフォルトの名無しさん:2010/02/08(月) 00:13:17
要するにnewしてんだろ?
11デフォルトの名無しさん:2010/02/08(月) 00:16:30
java入門初心者です。
javaで3Dゲームを作って、市場に投売りにしてやろうと思いjavaを勉強して、初心者用の本を一冊読みきりました。
本当に基本的なことしか学んでいませんが、java3Dに入っていくためにどこにこれから向かうべきでしょうか?
サイトを見ても、基本から抜け出した後は平原の様にどうしていいか分からず・・・
方向性を決めるためのアドバイスのようなものを、出来ればお願いします。
12デフォルトの名無しさん:2010/02/08(月) 00:17:40
まずは2Dでゲームを作ってみるべき
13デフォルトの名無しさん:2010/02/08(月) 00:35:47
北へ
14デフォルトの名無しさん:2010/02/08(月) 00:38:59
2Dゲームはサンプル感覚で作ってみました。
擬似3Dを表現することが出来て、必要な処理は出来ると思います(まだ試していませんが・・・)
javaを教科書一冊で進めているので、教科書を買うか、すぐにでもjava3Dをダウンロードしてコードを作るべきかどうかを考えています。
15デフォルトの名無しさん:2010/02/08(月) 00:53:51
そのまま東へ32歩
16デフォルトの名無しさん:2010/02/08(月) 01:01:39
あんたみたいなタイプは遠回りせずにいきなり3D始めたほうがいい。
必要な本は後から立ち読みでもしてから選べばいい。
17デフォルトの名無しさん:2010/02/08(月) 01:12:19
thisを全部につけるのって何かマズイことってある?

たとえば

class MyClass {
 int k=0;
 
 void setValue(int v) {
  this.k=v;
 }

 void print() {
  System.out.println("k="+this.k);
 }

 void addprint(int ad) {
  this.k+=ad;
  this.print();
 }
}

みたいな感じ
18デフォルトの名無しさん:2010/02/08(月) 01:16:01
setterにはthisを付けるようにしてる。
これはsetterのローカル変数と名前が被る時の予防になる。
例) this.field = field;

getterやメソッド呼び出しは特に拘らない。
19デフォルトの名無しさん:2010/02/08(月) 01:38:02
ごめん
東へ42歩だった
20デフォルトの名無しさん:2010/02/08(月) 02:00:54
レス有難うございます。<<11 です。
風呂の中で考えていました。
そしてjava3dをインストールする方法、自分でGraphicsクラスを立体用に改造する方法を考えていることに気がつきました。
もうちょっとだけGraphicsクラスを使用してみたら、java3Dに移ろうと思います。
<<12さん、<<16さん、レス有難うございました。
必ず、有効活用してみます。
21デフォルトの名無しさん:2010/02/08(月) 02:10:42
>>17
とくに問題はない。
>>18 にあるように付ける必要があるケースがあるので、
一貫性を持たせて常に付けると言うのは悪くない。
タイプ量が増えて面倒ではあるけど。
22デフォルトの名無しさん:2010/02/08(月) 02:25:05
>>19
落とし穴に落ちたぞ
23デフォルトの名無しさん:2010/02/08(月) 02:50:50
もしたどり着けたらそこで靴下を脱ぎます
24デフォルトの名無しさん:2010/02/08(月) 02:55:26
ふーん
25デフォルトの名無しさん:2010/02/08(月) 08:32:51
lim n→∞ (√2^2n - √2^2n-2^n)を試行回数を1000回で解を推定するプログラミングを作っていますが、

for(int x =0;x<=1000;x++)
{

double a1 = Math.pow(2,2*x);
double a = Math.sqrt(a1);

double b1 = Math.pow(2,x);
double b3 = a1-b1;
double b2 = Math.sqrt(b3);

double ans = a-b2;

if(x%100==0)System.out.println(x + "回目の試行の解は" + ans + "です。");

}

このfor文で書いても結果が

100回目の試行の解は0.0です。
200回目の試行の解は0.0です。
300回目の試行の解は0.0です。
400回目の試行の解は0.0です。
500回目の試行の解は0.0です。
600回目の試行の解はNaNです。
700回目の試行の解はNaNです。
800回目の試行の解はNaNです。
900回目の試行の解はNaNです。
1000回目の試行の解はNaNです。

としか出ず困っています。おかしい箇所を指摘していただけないでしょうか?
26デフォルトの名無しさん:2010/02/08(月) 08:59:55
>>25
doubleは有限の有効桁数しか持たない。
xが大きくなるとaやb2の大きさに比べて両者の差が相対的に小さくなり精度が悪化する。
精々x=50くらいで十分収束するからx=50までについて100ずつでなく1ずつ表示してみろ。
傾向を見るだけならx=10くらいまで出せば何に収束するかすぐ分かる。
数値計算は反復回数をむやみに増やせばいいってものではない。
使用している式の性質とコンピュータ内での表現を踏まえたうえで計算する必要がある。
27デフォルトの名無しさん:2010/02/08(月) 09:18:32
それと有効桁数が有限というだけでなくdoubleは絶対値として2^1000程度までしか表せないから、
Math.pow(2,2*x)をx=1000まで計算すればその結果は無限大になる。
28デフォルトの名無しさん:2010/02/08(月) 09:53:13
すまん、反復回数うんぬんはこの場合無関係だね。100回とかの「回」につられてしまった。
ついでに、x=500までが0でそれ以降がNaNになるのは、
xが100から500では有効桁が有限なのでaもb2も同じになってその差が0になり、
x=600以降は2^2xがdoubleの範囲を超えて無限大になるのでaもb2も無限大になりその差はNaNになるから。
29デフォルトの名無しさん:2010/02/08(月) 10:01:36
北に22歩進んでください
3025:2010/02/08(月) 10:20:22
>>26-28
doubleの桁の範囲を超えていたんですね・・・初歩的なミスでお恥ずかしい限りです

丁寧な解説までつけていただき本当にありがとうございましたm(_ _)m
31デフォルトの名無しさん:2010/02/08(月) 10:22:25
前スレ922です。

>>923
なるほど!port0指定でbindすればよかったのか・・・

>>929>>931
実際はクラスタリングされてるサーバで、LoaclIPとVirtualIP持ってます。
NICが6枚だか8枚刺さってるサーバです。
自系がパッケージActiveになった時、自動connectだとVIPを優先して取ってしまうので、
ActiveだろうとOfflineだろうとLocalIPで固定したかったんです。

そのテストに、開発PCでNIC2枚刺してIP(というかNIC)選べるようにしてました。

>>932
神!!
これがしたかったんです。
なるほど、connect()とbind()でInetSocketAddressを別にすればよかったのか・・・
見てみたらごく普通ですが、思いつきませんでした。

うまくいってます。
助かりました、ありがつおです!

32デフォルトの名無しさん:2010/02/08(月) 11:03:13
ServletのfilterでHttpServletRequestWrapperのgetMethodを以下のように変更して、
全てPOSTリクエストに強引に変えて、
tomcatではservletのdoPostが問題なく呼ばれたのは確認しました。

public String getMethod() {
return "POST";
}

分けあってServletにはPOSTで渡さないといけないという仕様があって、
こんなことをしております。
GETでPOSTにを呼び出す改修をしてもらえれば一番いいのですが、
政治的判断で止められています。
アプリが問題なく動作してますが、破たんするような落とし穴はあるでしょうか?
33デフォルトの名無しさん:2010/02/08(月) 11:36:54
南に23歩です
34デフォルトの名無しさん:2010/02/08(月) 11:45:12
>>32
問題ないよ
35デフォルトの名無しさん:2010/02/08(月) 13:24:36
>>32
問題あるよ
36デフォルトの名無しさん:2010/02/08(月) 13:27:56
>>35
その心は?
37デフォルトの名無しさん:2010/02/08(月) 13:32:12
>>34
これに一票!
問題あればfinalになってるはず。
なので言われる覚えはないってこと
38デフォルトの名無しさん:2010/02/08(月) 13:47:15
socket通信でコネクション成功→リスエスと送信→ソケット読み込みしているとき
リクエストが全く帰ってこなかった場合のタイムアウトってどうなるのでしょうか?

タイムアウトなんてなく永遠に待つ?
タイムアウトはある。その値はシステムによる?
39デフォルトの名無しさん:2010/02/08(月) 13:51:34
settimeoutしないかぎり永遠に末んじゃなにの?
40デフォルトの名無しさん:2010/02/08(月) 17:10:49
>>32
リクエストの Content-Type や Content-Length を見ている奴がいるかもしれない。
やるならちゃんと POST 仕様を満たすようにやれ。
41デフォルトの名無しさん:2010/02/08(月) 17:20:11
>>40
なんとなく知ってる単語を並べてみただけの人
42デフォルトの名無しさん:2010/02/08(月) 17:24:54
HTTP 仕様知ってるくらいでそう見えるって、いまどきどんだけ低レベルなんだよ…
43デフォルトの名無しさん:2010/02/08(月) 17:33:14
HTTP 仕様知ってるなんてずいぶんレベル高いスレだな
44デフォルトの名無しさん:2010/02/08(月) 17:35:01
仕様知ってるだけで高レベルになれるのなら、あなたもすぐに高レベルになれますよ
RFC読むだけで
45デフォルトの名無しさん:2010/02/08(月) 17:54:55
しようのないひとたちですね。
46デフォルトの名無しさん:2010/02/08(月) 18:02:39
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
で表示されるフォントにIPAフォントを追加するには、どのに設定すればよいのですか?
ちなみにwinodws環境です。
47デフォルトの名無しさん:2010/02/08(月) 18:14:34
>>287
CakePHPは便利だよ。
とりあえずプログラミングレスでCRUDはできる。
48287:2010/02/08(月) 18:15:28
誤爆した。
すいません。
49デフォルトの名無しさん:2010/02/08(月) 18:36:49
まずは落ち着こう
50デフォルトの名無しさん:2010/02/08(月) 18:38:33
次にパンツを脱ごう
51デフォルトの名無しさん:2010/02/08(月) 19:37:56
jspiderとかoss系のアプリにxdocsと言う形式のドキュメントが同梱されているのですが
これはどうやって見るんですか?
52デフォルトの名無しさん:2010/02/08(月) 21:48:30
ここのスレッドであっているのか分らないのですが
javaと質問で検索した所、このスレが引っかかりましたので質問させてください
当方XPのESETスマートセキュリティでJAVA6のバージョン18なのですが一部のペイントチャットに入ろうとすると
そのまま接続されずにページが見つかりません、と表示されます
他の方は入室できているのでサーバーが立っていないというのは無いと思うのですが
何か原因や対処法についてアドバイスがいただけたら幸いです
スレ違いでしたら申し訳ありません、スルーしてください
53デフォルトの名無しさん:2010/02/08(月) 21:53:27
板違い
54デフォルトの名無しさん:2010/02/08(月) 22:03:43
javaで簡単な電卓を作ろうと思っています。
参考までに、
http://msyk.net/keio/JavaBook/ch12.html
このサイトのサンプルプログラムを

コンパイルしてみました。
しかしコンパイルはできるのですが、実行ができません。
何が原因なのでしょうか。

無知で申し訳ありません。解決法をよろしくおねがいします
55デフォルトの名無しさん:2010/02/08(月) 22:20:57
>>54
どうやって実行しようとしたのかと、
その時出力されたエラーメッセージなどは?
56デフォルトの名無しさん:2010/02/08(月) 22:29:37
マルチだめ。ぜったい。
57デフォルトの名無しさん:2010/02/08(月) 22:32:49
>>53
すみませんでした、もう一度捜しなおしてみます
5817:2010/02/08(月) 22:34:47
>>18,21
回答ありがとうございます
59デフォルトの名無しさん:2010/02/08(月) 22:39:12
>>55
コマンドプロンプトで
java DentakuFrame
と入力したところ、なんかいっぱいエラー出ました…
今実行できる環境じゃないんでその時のエラーは書き出せないです…
60デフォルトの名無しさん:2010/02/08(月) 22:42:24
>>54
>package dentaku;
>public class DentakuFrame extends JFrame {
ここを自分の環境に合わせたか?

61デフォルトの名無しさん:2010/02/08(月) 22:43:14
>>5
上のpackage Dentaku;
を消したところ、
Exception in thread "main" java.lang.NoClassDefFoundError
が出たような気がします…
62デフォルトの名無しさん:2010/02/08(月) 22:46:08
>>60
すみませんpackageがそもそも分からないです…
自分の環境に合わせるとは?
63デフォルトの名無しさん:2010/02/08(月) 22:58:56
>>62
パッケージってのは簡単に言うとフォルダの事だよ
>package dentaku;
このクラスは、dentakuってフォルダに属していますよ〜って宣言してる

1.IDEでプロジェクトを作る(名前はなんでもいい。例:HogeHoge)
2.パッケージを作る(パッケージの名前は「dentaku」)
3.クラスを作る(クラスの名前は「DentakuFrame」)
4.コピペする
64デフォルトの名無しさん:2010/02/08(月) 23:12:53
JAVA勉強中級?者です。あるファイルにスレッドで書き込みしながら、そのファイルを別スレッドで読み出していく。
そういう事JAVAでできるでしょうか?VCだとメモリマップドファイルというのがあるのですが、
JAVAはどうでしょうか?解決方法をご教授願います。
65デフォルトの名無しさん:2010/02/08(月) 23:18:02
>>63
つまり、リンク先で図示されていることをやればいいのでしょうか?
packageを使わずに作ることは可能でしょうか…?
66デフォルトの名無しさん:2010/02/08(月) 23:23:15
>>65
に追加で
例えばこのサンプルだと
http://www.geocities.jp/s2412502/layoutsample.html
packageを使わずに済みますが、
Exception in thread "main" java.lang.NoClassDefFoundError:
が出てしまいます。
このエラーを解消するにはどうしたらよいでしょう?
67デフォルトの名無しさん:2010/02/08(月) 23:37:07
>>65
>java.lang.NoClassDefFoundError (クラスパスに必要な設定が無い場合のエラー)
IDEをインストールした時に環境変数の設定をしないとダメなんだけど、
その設定をした?(俺は自動でやってくれるlinuxを使ってるから、やったことないけど)

コピペをして動かすことも重要だけど、ある程度文法を知らないと挫折するよ
68デフォルトの名無しさん:2010/02/09(火) 01:58:45
longからbyte[]に変換する方法を教えてください。
69デフォルトの名無しさん:2010/02/09(火) 02:03:22
卵はどっちからで?
70デフォルトの名無しさん:2010/02/09(火) 02:21:04
>>68
long x = 0x0123456789abcdefL;
byte[] y = new byte[8];
java.nio.ByteBuffer.wrap(y).putLong(x);
for (byte b : y) System.out.printf("%02x ", b);
バイトオーダーを変えたいならorderで変更
71デフォルトの名無しさん:2010/02/09(火) 03:07:55
SJC-Pを取得したので、基本情報JAVAに手を出したけど
メンバ変数が多くて読めない
みんなどうやって読んでるのか不思議
72デフォルトの名無しさん:2010/02/09(火) 10:53:09
>>64
なぜメモリマップドファイル?
ファイルである必要がなければPipedOutputStream/PipedInputStream
どうしてもメモリマップドファイルがいいならMappedByteBuffer
73デフォルトの名無しさん:2010/02/09(火) 10:55:21
>>64
ソケット通信がいいよ
74デフォルトの名無しさん:2010/02/09(火) 11:29:24
>>70
nioいらんだろ
75デフォルトの名無しさん:2010/02/09(火) 11:32:43
toByteArrayは?
eclipse(ver3.5)で、mainメソッドがあるのにメイン型がないというエラーメッセージ。

 初めまして、JAVAを勉強中で今現在は例外処理あたりを学習中です。
 JAVAと並行してeclipseも学ぼうとして、インストール→日本語化までは無事に完了し、
早速↓を参考に[hello world]の文字列を出力するプログラムを作ろうとしました。
http://www.atmarkit.co.jp/fjava/rensai3/eclipsejava02/eclipse02_2.html
 しかしバージョンが違うためかメニューが変わっており、代わりにver3.5で近い選択肢の
実行→実行→Javaアプリケーションを試してみたのですが、
[エディターにはメイン型が含まれていません]
とメッセージが出力され、コンパイルできません。
 しかしeclipseのエディター上にはちゃんとmainメソッドもあり、DOS画面からのjavacなら
ちゃんとコンパイルされました。
 eclipseでコンパイルするためには他にどのようなことをすればいいのか、どうかご教示を
お願いします。
>>76
訂正
一行目に[質問内容]という一文を追加
78デフォルトの名無しさん:2010/02/09(火) 14:42:26
うちは日本語化してないから英語ですまんけれど
Project Explorer で .java ファイルを右クリック → Run As → Java Application
でどうかな
7978:2010/02/09(火) 14:44:39
× Project Explorer
○ Package Explorer
でした
どっちでもいいけど
>>78
アドバイスありがとうございます。
おそらく同じ手順の
パッケージエクスプローラーでjavaファイルを右クリック→実行→JAVAアプリケーション
で試してみました。残念ながらダメでした。
またアイコン○に右向き△のクリックも同様にダメです。
81デフォルトの名無しさん:2010/02/09(火) 14:56:36
staticが抜けてるとか
82デフォルトの名無しさん:2010/02/09(火) 14:56:40
問題ビューに何かメッセージが表示されていない?
83デフォルトの名無しさん:2010/02/09(火) 15:03:10
>>76
main が無いだけでコンパイルできないってありえないので、
信用できないんだよなぁ
「実行」のことを「コンパイル」とか名前つけて呼んでるんじゃないのかなぁ
アドバイスありがとうございます。
以下にコメントを除いたソースを貼り付けます。
-----------------------------------------------------------
public class Print {
public static void main(String[] args) {
System.out.println("hello world");
}
}
-----------------------------------------------------------
>>81
誤字もありません。入ってます。

>>82
空欄でした。
>>83
御指摘ありがとうございます。
eclipseでコンパイルと実行は別物なのでしょうか?
コンパイルというメニューがないので、てっきり実行=コンパイル→実行をするものだと
考えていました。
とりあえずワークスペースフォルダにDosのjavacでつくった.classのほうをばら撒いて
実行してみましたが、やはりダメでした。
当面、色々といじくったり検索してみてもダメだったら、再インストールしてみようと思います。
87デフォルトの名無しさん:2010/02/09(火) 15:24:24
正常なら .java ファイルを保存した時点で自動的にコンパイルされ .class ファイルが生成される
(Package Explorer 上では非表示なので他の手段で確認してください)
何らかの理由でコンパイル出来てないとか .class ファイルが生成されてないとか・・・
Java プロジェクトじゃないとか、デフォルトパッケージ以外のところに .java ファイルを置いてるとか、
.class ファイルが出力されるはずのフォルダが書き込み禁止に・・・なってるわけないとは思うけど
88デフォルトの名無しさん:2010/02/09(火) 16:42:12
この糞コテって人間だったのか
89デフォルトの名無しさん:2010/02/09(火) 19:15:16
レス飛びまくり
糞壁でも来てんのか
90デフォルトの名無しさん:2010/02/09(火) 22:43:57
文法の質問です。

DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
こんな一文を見つけたのですが、インタフェースであるSourceDataLineに.classがついているというのはどういう文法なのでしょうか

DataLine.Infoのコンストラクタはドキュメントによると
DataLine.Info(Class<?> lineClass, AudioFormat format)
こうなっています
91デフォルトの名無しさん:2010/02/09(火) 22:52:28
クラスもインターフェースもそのメタタイプを示すのは Class クラス。
<クラス/インターフェース名>.class というのはそのクラス/インター
フェースの Class オブジェクトを示す。
9290:2010/02/09(火) 22:56:02
なるほど。。
回答ありがとうございます
9390:2010/02/09(火) 23:21:17
もう一つ質問します。

SoundSample1.class.getResourceAsStream("voice.wav")
こんな一部分で、これはClassクラスのgetResourceAsStreamメソッドを使っているようなのですが、
「クラス名.メソッド」というのは文法がおかしいのではないかと思っていて混乱しています
staticならそれもありだと記憶しているのですがstaticでもないようです

回答よろしくお願いします
94デフォルトの名無しさん:2010/02/09(火) 23:26:14
SoundSample1.class というのは Class クラスのオブジェクトだから、Class クラスのメソッドが呼べる
95デフォルトの名無しさん:2010/02/10(水) 00:10:28

ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060508/237029/
で解説されているような、「非ブロックモード」の通信をしたい場合には
SocketChannelクラスしか選択肢がありませんか?
(Socketクラスでは非ブロックモードの通信できませんか?)
96デフォルトの名無しさん:2010/02/10(水) 00:19:00
>>95
非ブロックではないけどスレッドを延々と入力待ち状態にしたくないだけなら
Socket#setSoTimeout() でタイムアウトを設定。
97デフォルトの名無しさん:2010/02/10(水) 00:21:44
>>93
Class<?> clazz = SoundSamle1.class;
InputStream in = clazz.getResourceAsStream("voice.wav");

分解すればこれと同じ。<クラス名>.class ってのは Class.forName("SoundSample1");
の省略表記のようなものだから。
98デフォルトの名無しさん:2010/02/10(水) 00:24:25

>>96 早速どうも。明日検討してみます。
99デフォルトの名無しさん:2010/02/10(水) 00:40:23
iReportでバーコード付のレポートを出力したいのですが、
linux上で出力するとバーコード画像の縞々の下についている文字が消えてしまいます。
何か設定が必要なのでしょうか?
ちなみにBarbece、Barcode4jどちらでも起こるようです。
100デフォルトの名無しさん:2010/02/10(水) 00:53:36
>>94
嘘をおしえるな。
getResourceAsStreamはインスタンスメソッドだ。
クラスリテラルはそのクラスのClassインスタンスを返す。
だからSoundSample1.classの戻り値の型はClass<? extends SoundSample1>になる。
Class<? extends SoundSample1>インスタンスなのでClassクラスのインスタンスメソッドを使える。

関連してgetClass()はそのClassクラスのインスタンスを返すが実体はイレイジャ(ジェネリックのパラメタが消去されたObject型)なのでコンパイラにはObject型とみなされる。

SoundSample1.class.getResourceAsStream("voice.wav")はSoundSample1.classをロードしたクラスローダーの権限でgetResourceAsStream()を呼ぶ。
だから場合によっては特権コードで実行する必要がある。
101デフォルトの名無しさん:2010/02/10(水) 01:10:22
ジャバ試験のために頑張って勉強したんですよ〜
102デフォルトの名無しさん:2010/02/10(水) 01:11:04
この話のどこにイレイジャや特権が関係してんだ? 勘違いの独り言か?
103デフォルトの名無しさん:2010/02/10(水) 01:19:45
くやしいのうwwww
10490:2010/02/10(水) 01:31:41
>>94>>97>>100
回答ありがとうございます

>>100
とても参考になりました。混乱の原因はクラスリテラルというものを知らなかったことでした
classメソッドがあるのかとか、クラスは変数に入れられるのかとかずっと考えていました
助かりました。
105デフォルトの名無しさん:2010/02/10(水) 01:45:09
>>104
余談だが、プリミティブにもクラスリテラルがあったりする。
int.class とか void.class とかも正しい式だったり。
106デフォルトの名無しさん:2010/02/10(水) 03:27:42
>>100 って >>94 に蛇足説明加えてるだけなんだが
何でそんなことで得意げになってんだか分からない。
107デフォルトの名無しさん:2010/02/10(水) 03:39:51
>>106
論破されちゃうのってそんなに悔しの?(笑)
108 [―{}@{}@{}-] 76:2010/02/10(水) 12:55:47
・結果
無事、コンパイルできるようになりました。ご意見を下さった皆様、本当にありがとうございます。

自分が誰かと勘違いされているようなので、先にそちらを。
おそらく名前欄にある『[―{}@{}@{}-]』がコテと思われたのだと思いますが、これを書き込んだ時は
名前欄は空欄で書き込んでいます。確証はありませんが、自分がp2から書き込んでいることが起因で
起きている現象だと思います。

・結果までの経緯
最初のeclipseを削除し、再度解凍。今度は日本語化せずそのまま。されど同症状。
次にエクリプス日本語化のサイトにある日本語セットをダウンロード、解凍。されど同症状。
ここまでが先日。今日はなんとなく今まで同じワークスペース、ファイル(Print)を使っていることが
悪いのではないかと思い立ち、削除。新規に↑とは別のプロジェクト、クラスを作成。無事コンパイル。
エラーになっていた最初のPrintクラスも何故か(当然?)コンパイル。
原因は不明ですが、>87様が仰っていたようにファイル/フォルダから何らかの理由が起きていたようです。
109デフォルトの名無しさん:2010/02/10(水) 13:08:03
すれちがい
110デフォルトの名無しさん:2010/02/10(水) 13:10:55
―{}@{}@{}-をコテと勘違いしたアホがいたと聞いて
111デフォルトの名無しさん:2010/02/10(水) 13:15:14
JSPとServletだけで作ったらすげー気持ちいい
112デフォルトの名無しさん:2010/02/10(水) 14:15:51
javascriptが嫌なんだろ?
html5担いでjavascript駆逐しようぜ

【sockets】HTML5を使って作る高度なウェブアプリ【3D】
http://pc12.2ch.net/test/read.cgi/tech/1264815216/l50

【WHATWG】HTML5 Part2【W3C HTML WG】
http://pc11.2ch.net/test/read.cgi/hp/1254235548/l50

【Flash】AdobeのCTOがFlash擁護 「HTML5があればFlashは不要」論に反論(10/02 /03)
http://pc11.2ch.net/test/read.cgi/pcnews/1265197079/l50
113デフォルトの名無しさん:2010/02/10(水) 14:24:47
初歩的な質問ですみません
String s[]を初期化するときは、
String s[] = null;
で大丈夫ですかね?
114デフォルトの名無しさん:2010/02/10(水) 14:33:39
>>112
HTML5 が従来の HTML と違うのは、定義を DOM でやっているところ。
Java や Javascript など、プログラミング言語にべったりです。
115デフォルトの名無しさん:2010/02/10(水) 14:43:06
グーグル中毒乙
116デフォルトの名無しさん:2010/02/10(水) 14:43:45
>>113
それはnullで初期化している。
String s[] = new String[5];
でも初期化
String s[] = {"い", "ろ", "は"};
でも初期化

あと
String s[]

String[] s
と書くことをお勧めする
117デフォルトの名無しさん:2010/02/10(水) 15:26:16
なんで?
118113:2010/02/10(水) 15:33:05
最初に何を格納しといても大丈夫ということですね
ありがとうございます。
119デフォルトの名無しさん:2010/02/10(水) 15:39:09
String str;
String型の変数strを宣言
String[] s;
配列型(String)の変数sを宣言

型 変数名
という規則にのっとると、
こっちの方が統一感があるから。

120デフォルトの名無しさん:2010/02/10(水) 16:00:17
String s[];
はC/C++から来た人向けの代替手段で非推奨
121デフォルトの名無しさん:2010/02/10(水) 16:02:13
tomcatを使用していますが、
web.xmlの設定だけで、*.vbsを404のNotFoundにさせることはできるでしょうか?
122デフォルトの名無しさん:2010/02/10(水) 16:27:42
>>112
えっ
javascript+html5 vs. flash
じゃないの?
123デフォルトの名無しさん:2010/02/10(水) 16:48:27
jdkのソースでも普通にString s[];とかしてるけど?
ま、社会のカスには難しすぎる問題なのかもね。
124デフォルトの名無しさん:2010/02/10(水) 17:30:49
参照先を固める必要が無ければ、nullによる初期化でも変数名の宣言だけでも同じだ
125デフォルトの名無しさん:2010/02/10(水) 17:51:50
>>124
同じじゃない。

String str;
System.out.println(str);

だとコンパイラではじかれる。
クラスのプロパティは暗黙的に初期化してくれてるだけ。
126デフォルトの名無しさん:2010/02/10(水) 18:13:48
>>121
/*.vbs を存在しないサーブレットに割り当てる (500 になるかも知れんが)。
127デフォルトの名無しさん:2010/02/11(木) 18:49:06
import java.swing.*;

インポートで*を使うデメリットは何かありますか?
128デフォルトの名無しさん:2010/02/11(木) 18:59:05
名前が重複する場合に困る
java.util.Timerを使いたくても単にTimerと書いたらjavax.swing.Timerになってしまうので
いちいちjava.util.Timerと書かなければならない
129デフォルトの名無しさん:2010/02/11(木) 19:07:21
>>128
サンクス

ということは、まとめてインポートしても、コンパイルが遅くなると言った事にはならないのですか?
130デフォルトの名無しさん:2010/02/11(木) 19:10:56
ArrayList<Integer> receive = new ArrayList<Integer>();
BufferedReader in;
String str;

     public void run(){
      try{
        while(true){
          while( !( (str=in.readLine).equals("END") ) )//"END"を確認するまで受信し続ける
              receive.add(Integer.parseInt(str)); //受信した文字列をint型に変えて可変長配列に追加

          if( receive.get(0)==100){//初めに受信した数をチェック
              操作1; System.out.println("debug:received 100");
}else{
操作2; System.out.println("debug:received other");
}

}
}catch(IOException e){}
}

スレッドにデータを受信させて、一番初めに受けとったデータ内容をチェックして
処理を行うというプログラムを作ろうとしています。
プログラムを実行してみるとデータの受信はできているのですがなぜか
debugプリントが表示されずif文を実行してくれません。
どうしたらif文を実行してくれるようになりますか。どなたかわかる方お願いします。
131デフォルトの名無しさん:2010/02/11(木) 19:12:21
* でインポートすると実行時解決になるからクラスロードが少し遅れるんじゃないのか?
JVM 仕様の詳細は知らんがクラスファイル覗いててそう動くように思ったが。
132デフォルトの名無しさん:2010/02/11(木) 19:17:10
少しってどれほど?
133デフォルトの名無しさん:2010/02/11(木) 19:17:55
>>130
"END"が来てないんじゃないの?

>>131
それはない。
134デフォルトの名無しさん:2010/02/11(木) 19:30:10
JDK 1.2 頃のクラスファイルの先頭近くには java.util.* みたいなリテラルがあったんだけどな。
6でコンパイルしたの見てもねぇや。
135デフォルトの名無しさん:2010/02/11(木) 19:37:39
>>130
ArrayListに入れるためにIntegerにボクシングするのは無駄だよ
ApacheのArrayIntListを使え

>while(true) { while( !( (str=in.readLine).equals("END") ) )
普通に考えて、while(true)はいらないと思うんだけど
>while((str = in.readLine) != null && str.equals("END"))
の方が安全じゃないですかね

本当に受信しているのか?
>receive.add(Integer.parseInt(str)); //受信した文字列をint型に変えて可変長配列に追加
ここの次あたりに、System.out.println(str);といれみたのか?
136デフォルトの名無しさん:2010/02/11(木) 19:37:53
>>134
ない。昔からコンパイル時に解決しとるよ。
137デフォルトの名無しさん:2010/02/11(木) 19:55:09
>>133 >>135 ありがとうござます。

>>133 もう片方のプログラムも確認してみてたのですがちゃんと送れていました。

>>135 135さんのおっしゃるとおりwhile文を変えてdebugしてみたところ
    受信はしているようでした。ただやはり次のif文に処理が移動して
    くれませんでした。
 >ArrayListに入れるためにIntegerにボクシングするのは無駄だよ
 ApacheのArrayIntListを使え
ということなのですが、ググッてみてもよくわかりませんでした。
よかったらご教授願えますかm(__)m
138デフォルトの名無しさん:2010/02/11(木) 20:00:24
ただのボクシング・アレルギーなだけで外部ライブラリ入れれってのが無駄。
パフォーマンス的に問題がないなら無視してよし。
139デフォルトの名無しさん:2010/02/11(木) 21:10:06
>>137
【Commons紹介】ArrayIntListの速度
ttp://blog.mwsoft.jp/article/30817623.html

ひとまず、test.txtみたいなのを作ってテストしてみては

http://codepad.org/
ここにでもソースをさらしてみたら
140デフォルトの名無しさん:2010/02/11(木) 21:12:39
>>138 ArrayListについては別のプログラムでテストしてみたところ問題
   ありませんでした。

あと、
while((str = in.readLine()) != null && str.equals("END"))//"END"を確認するまで受信し続ける
receive.add(Integer.parseInt(str));
System.out.println(str);
だとstrが表示されるのですが、

while((str = in.readLine()) != null && str.equals("END")){
receive.add(Integer.parseInt(str));
System.out.println(str);
}
のようにwhile文を{}でくくって受信するたびに文字列を表示しようとすると
なにも表示されません。

また、このwhile文以降のif文にも処理が移行しません。
どうしたら解決するでしょうか。
141デフォルトの名無しさん:2010/02/11(木) 21:17:39
>>140
考えれば解決しますよ。
142デフォルトの名無しさん:2010/02/11(木) 21:19:50
>while((str = in.readLine()) != null && str.equals("END"))//"END"を確認するまで受信し続ける
>receive.add(Integer.parseInt(str));
>System.out.println(str);

上はこうのように解釈されます
while((str = in.readLine()) != null && str.equals("END")) {
    receive.add(Integer.parseInt(str));
}
System.out.println(str);
143デフォルトの名無しさん:2010/02/11(木) 21:27:00
>>140 すみません馬鹿なもんで3日以上考えてもわかりませんでした・・・

>>141 はい、それはわかるのですが、なぜwhile文の外に出すと表示されて
while文の中に入れると何も表示されないのでしょうか。
144デフォルトの名無しさん:2010/02/11(木) 21:27:29
>>140
客観的に説明できる理由はないな。勘違いか何かそういったあんたしか知り得ない事だろう。
145デフォルトの名無しさん:2010/02/11(木) 21:27:55
>>139
200万ループもさせてどちらも1秒未満のコストであることには変わりなく、
パフォーマンスもたった3倍ほどしか違わないのか。
146デフォルトの名無しさん:2010/02/11(木) 21:32:56
>while((str = in.readLine()) != null && str.equals("END"))
while((str = in.readLine()) != null && !str.equals("END"))
147デフォルトの名無しさん:2010/02/11(木) 21:37:27
>>146 できました!すみませんこんな簡単なミスで(T_T)

答えてくださったみなさんありがとうございました!!!!
148デフォルトの名無しさん:2010/02/11(木) 21:38:27
>>135 のバグじゃねぇか…
149デフォルトの名無しさん:2010/02/11(木) 23:57:21
>>139
テストの仕方が悪いな。
テスト対象のリストが使われてないことがVMにばれたら
実行時の最適化で何もしないことになる。

最適化が効かないようなごく短い時間でのアプリケーションの動作が必要ならば、
外部ライブラリを使っているなら
そのクラスロードにかかる時間も考慮に入れなきゃだめだろ。

ボクシングについては、ある程度の小さいな値なら
新しいオブジェクトは生成しないことが言語仕様で決まっていたはず。
(これはこれで間抜けなのだが)
150デフォルトの名無しさん:2010/02/12(金) 00:08:25
 request.setCharacterEncoding("Windows-31J");

 response.setCharacterEncoding("Windows-31J");

この2つの違いはなんでしょうか
151デフォルトの名無しさん:2010/02/12(金) 00:12:21
上がデコードで外の何の文字セットを内部文字セット(Unicode)に変換するか。
下がエンコードで外に対して何の文字セットで出力するか。だと思う。
152デフォルトの名無しさん:2010/02/12(金) 00:31:25
requestが外へのリクエストを表していて何の文字セットで要求を投げるかで、
それに対して返ってきた応答がresponseで何の文字セットを使っているかかもしれんぞ。
153デフォルトの名無しさん:2010/02/12(金) 03:17:16
>>127
可読性。
154デフォルトの名無しさん:2010/02/12(金) 08:42:33
先頭に何十行も import 行書かれる方が可読性が悪い。
155デフォルトの名無しさん:2010/02/12(金) 08:55:39
どうせ折りたたみ機能あるエディタかIDE使うんだから
156デフォルトの名無しさん:2010/02/12(金) 09:30:19
ならなおさら可読性は関係ないな。
157デフォルトの名無しさん:2010/02/12(金) 11:19:46
テキストエディタ使ってんだろうから許してやれよ
158デフォルトの名無しさん:2010/02/12(金) 11:37:28
JavaじゃなくてMathmaticaに関しての質問なんですが(板がないので)

In[1] := Epidemic[n_, p_] :=
Module[{choices = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}},
reject, pickAndChoose, select, newpers},
reject = {};
pickAndChoose :=
(select = #[[2, Random[Integer, {1, Length[#[[2]]]}]]];
If[Random[] <= p,
newPers =
Complement[Union[Map[Function[y, y + select],
choices], #[[2]]],
{select}, #[[1]], reject];
{Join[#[[1]], {select}], newPers},
reject = Join[reject, {select}];
{#[[1]], Comple, ent[#[[2]], {select}]}]) &;
FixedPoint[pickAndChoose, {{{0, 0}}, choices}, n,
SameTest -> (#2[[2]] == {} ||
Length[#2[[1]]] == n &)][[1]]
]

上を実行すると

SetDelayed::write : In[1]のタグInはProtectedです.

と、エラーが出るんですけど、どうしたら解決しますか?
初心者でヘルプを見てもよくわからなくて・・・わかる方いましたら教えてください。
159デフォルトの名無しさん:2010/02/12(金) 11:43:19
Mathematicaプログラミング 質問箱 その1
http://pc12.2ch.net/test/read.cgi/tech/1100761346/
160デフォルトの名無しさん:2010/02/12(金) 11:44:51
ありましたね・・・自分がスペルミスしていたため引っかかりませんでした
そちらで再度質問してみます。

わざわざありがとうございました
161デフォルトの名無しさん:2010/02/12(金) 14:15:16
RMIで400KB程のxmlデータのDocumentオブジェクトを返却する際、
以下のようにオーバーフローでエラーになります。
回避する方法はあるのでしょうか?

java.lang.StackOverflowError
at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readInt(Unknown Source)
at java.io.ObjectInputStream.readHandle(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
以下100スタック程あります。

JREのバグっすか?
要領制限ありましたっけ?
162デフォルトの名無しさん:2010/02/12(金) 15:48:05
>>154
場合による
163デフォルトの名無しさん:2010/02/12(金) 15:49:18
>>161
データとコード晒せ
164デフォルトの名無しさん:2010/02/12(金) 16:58:53
>>163
あんた何様っすか?
165デフォルトの名無しさん:2010/02/12(金) 17:00:21
>>164
あんたも何様っすか?
166デフォルトの名無しさん:2010/02/12(金) 17:00:58
俺様
167デフォルトの名無しさん:2010/02/12(金) 17:05:49
神様
168デフォルトの名無しさん:2010/02/12(金) 17:20:01
仕様
169デフォルトの名無しさん:2010/02/12(金) 17:29:10
>>161
おーい、茶々入れんでくれ〜

で、なんとなくわかったことは、単純にシリアライズの問題っぽい。

DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbfactory.newDocumentBuilder();
doc = builder.parse(in);

docをシリアライズすると、↓辺の間で再起してる。
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
データ階層は深くないけど、エントリがいっぱいあって、
次のエントリに行くときにたぶん再起しているっぽい。
xmlだからそうしてんだろうけどあんまりだよ!
170デフォルトの名無しさん:2010/02/12(金) 17:35:03
>>165
回答者だけど?
171デフォルトの名無しさん:2010/02/12(金) 17:37:47
172デフォルトの名無しさん:2010/02/12(金) 17:39:02
>>169
RMI関係なくて、シリアライズしただけで問題起きるってこと?
173デフォルトの名無しさん:2010/02/12(金) 17:41:30
xmlだったらxmlのまま渡すかDigesterみたいなのでBeansにマッピングして渡すのが
一般的じゃないのかな?
174デフォルトの名無しさん:2010/02/12(金) 18:34:32
>>161
スタック増やせば?
175デフォルトの名無しさん:2010/02/12(金) 20:16:02
だいたい DOM がシリアライズ可能なんて保証はどこにもない。
176デフォルトの名無しさん:2010/02/12(金) 20:17:49
>>170
ぜんぜん回答になってねぇなw
一言居士カコイイ! 的中学生か
177デフォルトの名無しさん:2010/02/12(金) 20:24:01
>>175 書きかけ
だいたい DOM がシリアライズ可能なんて保証はどこにもない。
出来たとしても (経験上大概大丈夫だが) 相手側の XML 実装系が変わったらもうだめぽ。
やるなら DOM じゃなくて文字列で送れ (シリアライズの64k文字制限ってまだあるんだっけ?)。
178デフォルトの名無しさん:2010/02/12(金) 22:15:58
Swing でイベントディスパッチループってできねぇの?
ファイルの読み込みに少し時間が掛かる程度で別スレッドにしたりロード中の
コンポーネント状態管理するの面倒なんだが。
179デフォルトの名無しさん:2010/02/12(金) 22:38:08
面倒だな
180デフォルトの名無しさん:2010/02/12(金) 22:44:54
DoEventsみたいのは無理でしょ。SwingWorkerあたりが限界。
181デフォルトの名無しさん:2010/02/12(金) 23:09:18
>>176
状況分からないのに回答出来ないじゃん。
182デフォルトの名無しさん:2010/02/12(金) 23:10:59
>>178
イベントディスパッチループってどういうのをイメージしてるの?
別スレッドにしたくなければEDTで処理すれば良いと思うけど。
183デフォルトの名無しさん:2010/02/13(土) 00:09:51
>>178
どうなの?
184デフォルトの名無しさん:2010/02/13(土) 04:17:46
IBM JDK って単体で手には入らんの?
昔 Sun に何とか言われてバンドルでしか配布してなかったと思うけど、あれもう関係ないでしょ。
185デフォルトの名無しさん:2010/02/13(土) 09:42:05
http://www.ibm.com/developerworks/java/jdk/
ここのIBM DevelopmentPackage_for_Eclipse_Win32のibm_sdk60に含まれてなかったっけ?
メモに残してたんだけど確かじゃない。
186デフォルトの名無しさん:2010/02/13(土) 09:52:10
>>177
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/serialization/relnotes.html
に64K を超える文字列を直列化できる (1.3 以降)って書いてあるので問題ないんじゃなかろうか
187デフォルトの名無しさん:2010/02/13(土) 21:46:56
文字列中の'\'をエスケープシーケンスとして扱うにはどうすればいいでしょうか?
例えば、
String str = "あいうえお\\nかきくけこ"; を
"あいうえお\nかきくけこ" に変換したいです。
188デフォルトの名無しさん:2010/02/13(土) 21:59:08
課題について質問するのはちょっとどうかなと思ったんですけど、手付かずなんでアドバイスでも思って質問させていただきました。
javaを用いたホームページをつくれという抽象的な課題でとりあえず簡単にできそうなの実装してみたいと思ってるのですが、何をしていいのかわからないのですぐできそうなものがありましたら教えてください。
今は時計を表示させただけです。
189デフォルトの名無しさん:2010/02/13(土) 22:01:09
>>187
str = str.replaceAll("\\n", "\n");
190デフォルトの名無しさん:2010/02/13(土) 22:02:58
>>187
str = str.replace("\\\\", "\\");
191デフォルトの名無しさん:2010/02/13(土) 22:04:40
おっ間違えた。\は重なってないのか。
str = str.replace("\\n", "\n");
192デフォルトの名無しさん:2010/02/13(土) 22:07:14
>>188
トリップ解析
193デフォルトの名無しさん:2010/02/13(土) 22:09:20
>>188
宿題スレにでも行けよ。
JDKにJavaDBってのが付いてくるから、
それで掲示板でもつくってみろ。
194デフォルトの名無しさん:2010/02/13(土) 22:17:01
>>191
だせえ
195デフォルトの名無しさん:2010/02/13(土) 22:23:25
ソースレベルで置換するなら合ってる
196デフォルトの名無しさん:2010/02/13(土) 22:23:50
>>192-193
さんくす
宿題スレいってくる
197デフォルトの名無しさん:2010/02/13(土) 23:44:04
テキストボックスの中身をString型strに格納して
未入力、半角スペースのみ、全角スペースのみなら処理が走らない
とやりたいのですが下記の文法で全角スペースだけうまく認識してくれません
if ( str.matches("|[] +|[ ]+") ){
return;
}
うまく全角スペースも弾いてくれる書き方をご教授願います
198デフォルトの名無しさん:2010/02/13(土) 23:47:56
str.matches("[  ]*");

改行やタブまで含めるなら "[¥¥s ]*"
199デフォルトの名無しさん:2010/02/13(土) 23:58:06
>>194
これ以上の最適解は無い
あるなら出すべき、無理だろうけど
200デフォルトの名無しさん:2010/02/14(日) 00:00:12
\\\\nって文字列が入力されたらエスケープにならんくね?
201デフォルトの名無しさん:2010/02/14(日) 00:19:51
自社サービスをJavaサーブレットで動かしてる会社に転職しました。
環境を聞いたらJava1.4でした…。
この先バージョン上げるつもりも無いらしい。
自分としてはせめて1.5以降のJavaで開発したかったんですが、
今でも1.4以前のバージョン使ってるサービスはよくあることなんですか?
202デフォルトの名無しさん:2010/02/14(日) 00:20:44
会社の方針に従うのがサラリーマンというものだ
203デフォルトの名無しさん:2010/02/14(日) 00:23:09
iアプリは最近1.5に
204デフォルトの名無しさん:2010/02/14(日) 00:29:58
>>201
転職したら?
自社コードをJUnitでテストしてたら以降テストも余裕だろ。
205デフォルトの名無しさん:2010/02/14(日) 00:30:49
おまえみたいに改善の提案も出せないような立場はサラリーマンとは言わん。
おまえは正規雇用のパートだ。

2006 年くらいまでの開発は 1.4 でやってるところもあったから、システムの減価償却期間
考えたらまだ 1.4 で動いているところはあるだろう。
206デフォルトの名無しさん:2010/02/14(日) 00:34:57
改善の提案は出すだろ
でもそれを採用してくれなかったら従うしかないだろ
それがサラリーマンだろ
207デフォルトの名無しさん:2010/02/14(日) 00:37:48
納得させられるプレゼンができなかったのなら、それはおまえが無能なだけだ。
208デフォルトの名無しさん:2010/02/14(日) 00:37:53
去年の案件が1.2だったな。
1.4なんて全然珍しくないだろ。
バージョンアップする理由が無いなら余計な仕事を増やす必要も無い。
209デフォルトの名無しさん:2010/02/14(日) 00:39:01
いえ、まだ転職できるレベルに達していないのです。
やっぱりレベル上げは強い敵を倒したほうが良いですね。
210デフォルトの名無しさん:2010/02/14(日) 00:39:19
つJava SE for Business
211デフォルトの名無しさん:2010/02/14(日) 00:41:54
( ^ω^)エサおいしいお
212デフォルトの名無しさん:2010/02/14(日) 00:42:29
うちはJava0.9だよ
213デフォルトの名無しさん:2010/02/14(日) 00:45:47
じゃあうちはJava0.1で
214デフォルトの名無しさん:2010/02/14(日) 00:47:48
おこちゃまが居るな
215デフォルトの名無しさん:2010/02/14(日) 00:49:00
釣られるおじちゃまが居るな
216デフォルトの名無しさん:2010/02/14(日) 04:08:10
パッケージabcに所属するクラスYxzを
クラスOpqにインポートした場合
import abc.Yxz;

public class Opq {

クラスOpqではYxzの全てを利用出来るというでしょうか?
217デフォルトの名無しさん:2010/02/14(日) 04:11:13
全てと言っても private や protected なものは参照出来ないぞ。
218デフォルトの名無しさん:2010/02/14(日) 04:12:42
>所属するクラスYxz

>Yxzの全て


何が言いたいかわからん
219デフォルトの名無しさん:2010/02/14(日) 04:15:14
>>217
ありがとうございます
220デフォルトの名無しさん:2010/02/14(日) 05:27:32
>>219
うむ。
221デフォルトの名無しさん:2010/02/14(日) 08:39:41
>>220
勝手に返事するなw
222デフォルトの名無しさん:2010/02/14(日) 18:19:37
javaで9×9(3×3が9個)の数独を作ってるんだが、重複判定が組めん・・・
だれか・・・
223デフォルトの名無しさん:2010/02/14(日) 18:23:25
ンなアホな
224デフォルトの名無しさん:2010/02/14(日) 18:31:50
フォントの汚さはなんとかならないのですか?
225デフォルトの名無しさん:2010/02/14(日) 19:23:37
>>222
重複しちゃイカンという領域のデータを順に読んで、チェック変数のそれに対応
したビットを立てて行くことで、重複した数字をチェック。
・・・宿題だったら宿題スレ行け。かもしれん。
226デフォルトの名無しさん:2010/02/14(日) 20:05:21
せやな
227デフォルトの名無しさん:2010/02/15(月) 06:01:21
Javaってウィンドウやボタンを表示させること出キルン?
内部処理だけ?
228デフォルトの名無しさん:2010/02/15(月) 06:08:20
意味が分からん。既製品のウィンドウもボタンも表示できるし、何なら自力でゴリゴリ
書けば好きなデザインと挙動で作る事も出来る。

ただ半透明ウィンドウだとか丸形ウィンドウを出したいというのはお茶濁し程度の事
しかできないが。
229デフォルトの名無しさん:2010/02/15(月) 06:27:34
ですね。
230デフォルトの名無しさん:2010/02/15(月) 07:10:50
これがJava製ということを知っておくといい
http://v2c.s50.xrea.com/
231デフォルトの名無しさん:2010/02/15(月) 07:23:28
AWTUtilities.setWindowOpaqueで出来ることってお茶濁し程度なん?
232デフォルトの名無しさん:2010/02/15(月) 07:26:29
V2C ってデフォルトのアイコンや行間調整、フォントサイズあたりの UI 設計がダサ過ぎ。
業務アプリ臭が強すぎて使う気失せたわ。
233デフォルトの名無しさん:2010/02/15(月) 07:32:29
2chブラウザはrep2一択だからね
234デフォルトの名無しさん:2010/02/15(月) 07:36:33
マカー用を使っている俺は化石。
235デフォルトの名無しさん:2010/02/15(月) 15:19:29
>>231
濁し程度ではないがまともに使える環境が少ない。
236デフォルトの名無しさん:2010/02/15(月) 17:24:35
javaでのweb開発って何が標準なんでしょう?
ちょっと前までstrutsかと思っていたら、.netの失敗プロジェクトから
開放されてjavaに戻ってきたら、strutsもlog4jもほとんど更新されてない・・・。
一体このT、2年で何が起きた??
237デフォルトの名無しさん:2010/02/15(月) 17:29:22
こんにちは。質問させてください

MIDIファイルを再生しながら、鳴っている音を再生と同時に「ドレミ」と表示させるようなものを作ろうと思っています。
MIDIを再生させるまではできていて、こんな感じになっています↓

Sequencer-Transmitter------Receiver-Synthesizer
      /
Sequence (in Stream)

・SequenceはMIDIファイルのストリームを持っている
・SequencerはSynthesizerにMIDIメッセージを送っている
・Synthesizerは音を鳴らしている

多分こんな仕組みなのだと思っていて、SequencerーSynthesizer間に流れているMIDIメッセージを見ることができれば完成すると思うのです。
SequencerにはaddXxxEventListenerが二つあるのですが、コントロールイベントとメタイベントしか取得できないようです。。
何か方法はないでしょうか。
238デフォルトの名無しさん:2010/02/15(月) 17:40:27
自作のReceiver実装を作成し、TransmitterとReceiverの間に挟めばいいんじゃない
239デフォルトの名無しさん:2010/02/15(月) 18:12:54
>>236
何も起きなかった。
240デフォルトの名無しさん:2010/02/15(月) 18:36:49
>>238
Receiverのsendメソッドをオーバーライドして、MidiEventを見れる様に手を加えた物をSynthesizerに持たせる感じでしょうか。
なんかできそうな気がしてきました。回答ありがとうございます
241デフォルトの名無しさん:2010/02/15(月) 18:47:58
>>236
strutsは知らないけど、log4jは開発終了、確か開発者だか設計者が抜けたんだっけ?
Logbackとslf4jあたりに移行しましょう。
242デフォルトの名無しさん:2010/02/15(月) 19:10:18
PHPとかRailsに押されてどこも開発者の気力が無くなってる気がする
243デフォルトの名無しさん:2010/02/15(月) 23:07:46
自分のサイトで Java 年表なんて作ってんだけどマジでここ 3-4 年は新しい話題がない。
直近で一番でかいのが Oracle の買収だよ。

log4j は、まぁログ機能なんてあれより進化は必要ないだろ。せいぜい誰が使うか分からない
Appender の種類増やす程度じゃないの。まぁ可変引数使った String.format() 書式くらい
対応しろよとは思うが。標準 Logging API の件でブチ切れたメインのおっさんが抜けて
事実上 1.2 で開発中止状態 (1.3 はポシャった)。

Struts も息長いなー。フレームワークである以上おいそれと設計替えられないのは分かるけど
ベースは JDK 1.1 時代の設計だろ。あんなバグだらけで素人がでっち上げたような設計
すぐ置き換わるかと思って見てたが、糞でも何でもデファクト取れば後付で MVC だ何だと
後付で囃してくれるもんなんだと感心したよ。

Logging API の件も Struts の件も、モノ作りって何なんだろうなと考えさせられた
おっさんでした。
244デフォルトの名無しさん:2010/02/15(月) 23:18:54
つい5年前はJava全盛期だったのに
ITの世界って恐ろしい
245デフォルトの名無しさん:2010/02/16(火) 01:27:12
せやな
246デフォルトの名無しさん:2010/02/16(火) 01:53:33
今はなにが主流なの?
247デフォルトの名無しさん:2010/02/16(火) 01:55:33
>>246
>>242 + flash
248デフォルトの名無しさん:2010/02/16(火) 04:05:14
>>247
大規模なWebをPHPやらRubyやらで作るのか?
主流というか棲み分けがはっきりし出したんじゃね。
掲示板をJavaで作る必要ないよねと。
249デフォルトの名無しさん:2010/02/16(火) 04:36:57
今からjava始めようと思っています。質問させて下さい。

cのプログラミングでは、visualC使ってました。これは特に理由もなく、とっつきやすそうだったからというだけの理由です。(特に不自由を感じているというわけでもありませんが。)
そこでjavaを始めるにあたり、まず開発環境の構築から考えたいと思いました。

調べれば色々でてきますが、皆さんはどのようにされてますでしょうか?
250デフォルトの名無しさん:2010/02/16(火) 04:43:59
Eclipse + SVN サーバ
251デフォルトの名無しさん:2010/02/16(火) 05:18:01
http://www.db.is.kyushu-u.ac.jp/rinkou/javaintro/javac.html
みてJDKダウンロード

http://www.db.is.kyushu-u.ac.jp/rinkou/javaintro/eclipse.html
みてeclipseダウンロード

SVNはとりあえずはいらん。
252デフォルトの名無しさん:2010/02/16(火) 06:49:30
>>251
eclipseならjdkもいらないんじゃなかったっけ。
253デフォルトの名無しさん:2010/02/16(火) 07:10:31
>>243
その期間だとまさにjavafxだと思うんだが、英語読めないだろ?
英語読めないと日本だとどこにも情報はないよ。
日本のIT記事ってのはほとんど素の翻訳か英語記事の偏見的な解説だし。
254デフォルトの名無しさん:2010/02/16(火) 07:16:02
うんうんそうだね



で、偏見の具体例は?
255デフォルトの名無しさん:2010/02/16(火) 07:26:01
>>253
うんうんそうだね。
で、君はどこのシステムで Java FX 開発したんだい?
256デフォルトの名無しさん:2010/02/16(火) 07:30:27
日本語で読めるjavafxの情報源ってないよね。
英語だとjdk1.6 desktop+scriptingの目玉なんだけどね…オリンピックのサイトとかもjavafxだけどそれを知ってる日本人開発者は少ない。
257デフォルトの名無しさん:2010/02/16(火) 07:31:19
まー、確かに日本語圏だとあまり紹介されてない技術はけっこうたくさんある。
258デフォルトの名無しさん:2010/02/16(火) 07:31:39
何で英語に飛躍するんだ??? そんなに欧米コンプレックス?
259デフォルトの名無しさん:2010/02/16(火) 07:38:18
必要ないものは紹介しなくていい
260デフォルトの名無しさん:2010/02/16(火) 07:41:42
>>259
すっぱい葡萄ですね、分かります
261デフォルトの名無しさん:2010/02/16(火) 07:45:13
俺の知ってる範囲だと、OSGiとか、最初の仕様策定から既に10年も経ってるのに、
未だにまともな日本語の文献ないよな。Eclipseの基幹技術でもあるのにね。
262デフォルトの名無しさん:2010/02/16(火) 07:49:47
情報キーワードだけ追っかけてる人間はどうか知らんけど、
現場から見りゃ単に仕掛けたけど流行りませんでしたという代物。
263デフォルトの名無しさん:2010/02/16(火) 07:50:32
オジサン口臭い〜
264デフォルトの名無しさん:2010/02/16(火) 07:54:47
現場(キリリッ
265デフォルトの名無しさん:2010/02/16(火) 07:55:57
266デフォルトの名無しさん:2010/02/16(火) 07:59:23
最近始めた人は J2EE, XML あたりの大バブル時代を知らないから JavaFX 程度でも印象に
残ってんじゃないの。ぶっちゃけ ○dobe あたりで見たようなという印象しかなかった。

>>263-264 はそんな氷河期世代かw
267デフォルトの名無しさん:2010/02/16(火) 08:03:51
>>265
Mac OS X で Chrome だと実行不能 (The application uses Java, but Java is not supported
by your system. Use a computer with another operating system to view this applicaiton.)
FireFox だと「アクセスを要求しています」の警告ダイアログが出て固まった。

やる気ねーなー。
268デフォルトの名無しさん:2010/02/16(火) 08:10:48
うわぁぁぁ英語だ〜
269デフォルトの名無しさん:2010/02/16(火) 08:12:02
>>266
(日本語圏で)バズってるかどうかだけが判断基準とか、ずいぶんと浅薄な技術観をお持ちですね^^;;;
270デフォルトの名無しさん:2010/02/16(火) 08:15:33
>>267
自分のPCのショボさを責任転嫁ですか?
とりあえず英語の警告文になんて書いてあるか読んでみ。
271デフォルトの名無しさん:2010/02/16(火) 08:17:21
>>269
だからおまえがどこの開発で携わったか出してみ?
英語のサイトで調べて実際に手動かしてこれは流行らんと思ったって話。
おまえは記事読んだところでお花畑になって終わっただけだろ。
272デフォルトの名無しさん:2010/02/16(火) 08:24:33
Mac OS X で Chromeってのはブラウザシェアをどれほど持ってるわけ?(システムの開発コスト的に)
273デフォルトの名無しさん:2010/02/16(火) 08:26:37
JavaでH.264を扱えないか調べたら、ちょうど今年の1月にコーデックが出来たみたいだということがわかった。
274デフォルトの名無しさん:2010/02/16(火) 08:28:00
グ〜グルでもbuzzってのを出してますがバズってなんですか?
最近そういうバズワ〜ドって流行ってるんですか?
275デフォルトの名無しさん:2010/02/16(火) 08:30:26
>>271
えっ?!asahi.co.jpですよ?
当然現場現場してますし〜
276デフォルトの名無しさん:2010/02/16(火) 08:30:55
おやかた、空から女の子が降ってきた!
277デフォルトの名無しさん:2010/02/16(火) 08:32:04
>>275
おまえ Eclipse スレで暴れてるバカだろ
278デフォルトの名無しさん:2010/02/16(火) 08:39:26
そのスレってさ、いい年こいた「ネトウヨおやじ」が暴れてるんだろ?
黄色い昭和臭がプンプンして臭うんだよね(><)
279デフォルトの名無しさん:2010/02/16(火) 08:43:59
F
280デフォルトの名無しさん:2010/02/16(火) 08:44:36
フォルトの名無しさん [] :2010/02/14(日) 07:35:49
>>911
お前はテレビや新聞が偏向報道をしている事実もしらんのか?
客観的に記事内容を把握できる点だ。
アカヒ新聞とか毎日変態新聞とか日刊ヒュンダイとかしか読んでない奴は
ずっとそういったメディアに騙され続けて民主党や社民党や共産党や公明党に
投票しちゃうわけだ。
そして既存メディア自体が、広告主からおもったほど広告の効果が得られないとして撤退されて痛い目にあっているという事実。
ネットの影響で広告収入も減ってしまったという事実。
そんな調子だからやつらは必死なわけだ。
281デフォルトの名無しさん:2010/02/16(火) 08:47:20
うわぁぁっぁぁぁぁぁぁ英語だ〜
282デフォルトの名無しさん:2010/02/16(火) 09:30:53
>>239
>>241
他、>>236の回答ありがと〜!
何も起きなかったから、すたれたのか・・・。
それにしても、業務系のWebアプリをクラスタしたり、ダウンタイムなしでとか言われたら
Java以外って選択肢になるの?

この1、2年のブランクでJava仕事できなくなってるかも・・・困ったな。
283デフォルトの名無しさん:2010/02/16(火) 09:35:40
英語すら出来ない人、三単元のsすら面倒な人は諦めてマイクロソフトを使ってください。
284デフォルトの名無しさん:2010/02/16(火) 09:37:56
三単元って久しぶりに聞いた。どこの受験生さん?
285デフォルトの名無しさん:2010/02/16(火) 09:38:04
>>277

小泉純一郎の経済政策は正しかったのだが。
あのグローバル資本主義を否定している輩は
社会主義者とか共産主義者とか

  赤 い 旗 を 振 り 回 し て い る 連 中 だ
286デフォルトの名無しさん:2010/02/16(火) 10:08:28
おまえらvipでやれ
287デフォルトの名無しさん:2010/02/16(火) 10:08:58
>>282
金額、納期とかにもよるだろ。
そもそもクラスタってどのレベルだ?
セッションごとクラスタしたいのか、
ただの負荷分散でいいのか。
裏っかわの業務ロジックの量にもよるし。

ふつーのECサイト程度なら、
PHPでもRubyでもいいんじゃね?
オンライントレードとか重たい処理が絡むなら、
Javaにしとけばいいんじゃね?
288デフォルトの名無しさん:2010/02/16(火) 10:24:09
>>287
金融系多かったので、Java以外って選択肢が思い浮かばないです。
今だとPHPとかRubyも金融系で使われてるのかな?
浦島太郎になった気分。

少ない経験だけど、どとねと使って負荷高い仕事受けるのは自殺行為
だというのだけはわかったから、Javaでちゃんと設計から製造までしたいです。
289デフォルトの名無しさん:2010/02/16(火) 10:45:19
>>288
じゃあJavaでやればいいと思うよ。
少なくとも日本じゃPHPやRubyで金融系なんてめったにないだろ。

別にJavaがすたれたわけじゃなく、
わざわざJavaで作らなくてもよかったのをJavaで作らなくなっただけ。

PHP、Rubyのスペシャリストたくさん抱えてますとか、
他に要因なければJavaでやって誰も文句言わないだろ。
290デフォルトの名無しさん:2010/02/16(火) 10:51:40
え?.netだめなの?.net最高だけど
291デフォルトの名無しさん:2010/02/16(火) 10:52:47
こんなところで聞いてるようじゃただの脳内ネタかカス野郎だろ相手にするな
292デフォルトの名無しさん:2010/02/16(火) 11:16:36
monoみたいな環境がもっと普及すれば.netもねぇ。
293デフォルトの名無しさん:2010/02/16(火) 12:27:55
>>277
小泉純一郎(笑)
294デフォルトの名無しさん:2010/02/16(火) 12:29:18
>>292
といってもMSとしては.netがLinuxで動いていいこと、
一つもないからなー。

エクセルやらワードやらがLinuxで動きますってなった時に、
OSのシェアどれだけ食われるか恐れてるんじゃないか?
295デフォルトの名無しさん:2010/02/16(火) 12:36:49
linuxで動けば.netでもいいという感性がよくわからない
296デフォルトの名無しさん:2010/02/16(火) 12:54:43
MS にとっちゃ Linux でも動いてもらった方が良いに決まってるじゃん。
SQLServer や IIS (名前変わってたっけ?) で営業切り込めるんだし。
ただ単価やっすい Linux 客取れる程度じゃ開発費の割に合わんというだけ。
297デフォルトの名無しさん:2010/02/16(火) 13:00:50
>>296
逆だ逆。

MSににしてみたらWindowsServerを売るための、
SQLServerであり.netだと。
298デフォルトの名無しさん:2010/02/16(火) 13:05:28
linuxで.netが動いてもなんか不安
やはり純正がいい。だからlinuxで動く必要なんて無い。
299デフォルトの名無しさん:2010/02/16(火) 13:07:02
>>289
金融系っていったらJava!だと思ってたので、Strutsやらlog4jやら更新されてないのが
気になっただけです。
PHPでもRubyでも.netでもお客がそれでやれって言われたらやるしかないし。

けど、1、2年前の感覚だとPHPやRubyでクリティカルな業務やっていいの?っていう漠と
した不安があっただけです。

にしても、.netだけは日本のわがままなお客さん相手では使えないと思うけどなぁ・・・。
機能どうこうと言うより、お客さんの要求を満たそうとすると.netの便利機能を使わないように
設計しないと・・・と思った。
.netが完全に使い物にならないならまだいいんだけど、やろうと思えばやれちゃうからね〜・・・。
300デフォルトの名無しさん:2010/02/16(火) 13:11:23
えっ?.netの便利機能使ってたの?
それはダメだわ。あほすぎる。
301デフォルトの名無しさん:2010/02/16(火) 13:12:38
>>297
だから「Web は Linux でも .NET が動きますのでバックエンドはぜひ WinServer で」 という
提案ができるじゃん。そういう段階侵食できる基盤がないから囲い込みしか手がないんだよ。
302デフォルトの名無しさん:2010/02/16(火) 13:14:51
ここってさ、「ジャヴァ」スレなんだけど.netの便利機能ってなに?
303デフォルトの名無しさん:2010/02/16(火) 13:19:02
金融系でRubyが駄目な理由なんて別に無いんだけどね。
保守的なお客さん都合でJavaが採用されるだけ。
少し前までは考えられなかった食べログのようなマンモスサイトでも普通にRailsが使われるようになったし
そのうち金融系にも動的言語が入ってくると思うよ。
304デフォルトの名無しさん:2010/02/16(火) 13:21:17
Javaだってメジャーになって15年くらい経ってるから
Rubyはこれからだな
305デフォルトの名無しさん:2010/02/16(火) 13:23:25
金融系のシステムってのは関連子会社や地銀、信金、サラ金なんかへ
何十年も延々と下取りに出され、そのあいだずっと保守するんだよ。
食べログみたいな一代で終わるところとは考え方が違って当然。
306デフォルトの名無しさん:2010/02/16(火) 13:26:44
でもRuby良すぎだよね。Ruby初めて三日目だけど。
307デフォルトの名無しさん:2010/02/16(火) 13:28:10
昔は金融系システムの開発っていうと優秀なエンジニアが担当するイメージだった。
今じゃ誰もやりたくない糞溜だけど。
308デフォルトの名無しさん:2010/02/16(火) 13:30:25
ちなみに金融系ってどんなの?
309デフォルトの名無しさん:2010/02/16(火) 13:38:06
Javaで金額を扱うのはBigInteger?
310デフォルトの名無しさん:2010/02/16(火) 13:41:10
金融系っつても基幹系ガチガチのからWeb系お祭りサイトまで色々だろ
311デフォルトの名無しさん:2010/02/16(火) 13:43:17
金融系の優秀なエンジニアが野糞を開発したと聞いて
312デフォルトの名無しさん:2010/02/16(火) 13:51:17
Javaもいい意味でCOBOL化してきたよな。
でも、COBOL→JavaほどJava→Rubyに差がないから、
Rubyに乗り換えることに魅力を感じない。
言うと大規模システムをRubyで作るメリットがない。

あと、eclipseが強力すぎる。
Rubyにもeclipseくらい便利なものが出てくればあるいは。
313デフォルトの名無しさん:2010/02/16(火) 13:54:12
radrailsはeclipse以上の開発効率だと思うけど。
まぁ自分はrubyを生で使うからdebianでvimだけど
314デフォルトの名無しさん:2010/02/16(火) 13:59:26
>>313
eclipseについては、
生産性というより保守性かもしれん。
リファクタ機能やら参照検索やら。

他人が作ったソースでもeclipseがあれば、
なんとなく追えるし。
315デフォルトの名無しさん:2010/02/16(火) 14:35:43
金融系の優秀なエンジニア達が野糞をしていると聞いて
316デフォルトの名無しさん:2010/02/16(火) 14:42:53
入力支援が人間の思考、入力速度についてこれるくらいには、
レスポンスが高速でないと話にならんよな>生産性

2,3文字入力&補完、程度のことはコンマ何秒でできて欲しい
317デフォルトの名無しさん:2010/02/16(火) 14:47:40
ですね
318デフォルトの名無しさん:2010/02/16(火) 14:48:14
エラい小手先で生産性評価されてんだな。バイトか?
319デフォルトの名無しさん:2010/02/16(火) 14:52:07
バイトですかね?
320デフォルトの名無しさん:2010/02/16(火) 15:13:14
たぶん金融系の方でしょう
321デフォルトの名無しさん:2010/02/16(火) 17:56:58
でしょうね
322デフォルトの名無しさん:2010/02/16(火) 18:03:37
antでjavacしてビルドエラーがあると、自分の環境ではエラーメッセージが出ません
失敗したこと自体、気付けません
クラスパスの設定ミスとかがあった時、どのクラスが見つからないのか判別できません
これは何かの設定でかえれるのでしょうか?
Eclipseからbuild.xmlを右クリックして実行しています
323デフォルトの名無しさん:2010/02/16(火) 18:05:48
金融系の優秀なエンジニアが糞溜で泳いでると聞いて
324デフォルトの名無しさん:2010/02/16(火) 18:36:31
>>322
eclipseのコンソールにantの実行結果が出ないってこと?
なんで失敗したってわかるの?
コマンドプロンプトから実行したらどうなるの?
325322:2010/02/16(火) 18:47:12
>>324
javacタスクのコンパイル結果をcompiledと言うディレクトリに入れているのですが、
build.xmlの最初でこのディレクトリは毎回削除するようにしているので、
ビルドが成功しているなら*.classファイル群がコンパイル結果として入り、失敗していれば空なわけです

具体的には今回新しいライブラリを追加したのですが、
クラスパスの設定が間違っているのかコンパイル結果が出てきません。
新しいライブラリが不要な以前のコードに戻すとコンパイル結果が入ります。

eclipseのコンソールには、
[javac] Compiling 3 source files to DIRECTORY_PATH
と言う一行が最後の出力となって出ています。
それ以外は
Buildfile:
などの通常のantの出力です。

要するに、javacタスクの内部で発生したエラーについて報告が無いんですよね
antスクリプトとしてのエラーなら、例えばcopyタスクで指定したファイルが存在しなかったりするとかはちゃんとエラーが出るのですが。
326デフォルトの名無しさん:2010/02/16(火) 19:33:08
最近リフレクションを勉強しているのですが、解らないので質問させて下さい

サブクラスから元のスーパークラスを知る事は簡単ですが、
スーパークラスからサブクラスを知る事はできるのでしょうか?
327デフォルトの名無しさん:2010/02/16(火) 19:38:48
>>325
ふつーにやればふつーに出力されるはず

http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/CoreTasks/javac.html
みてオプション追加してみたら?
verboseとかfailonerrorとか

あとは、antの実行時の引数に
-vオプション(verbose)渡してみるとか。
328デフォルトの名無しさん:2010/02/16(火) 19:38:56
railsからjavaへの移行案件とか見てると、無茶しやがってと思うけどなw
phpとかrubyで作ったのはいいが、冗長か出来ずに糞高いロードバランサ機材に金つぎ込む羽目に成るだけじゃ?
329デフォルトの名無しさん:2010/02/16(火) 19:45:57
>>326
もうちょっと具体的に何がしたいのか。
A extends B
のときに、
BでAという名前が取得したいとか、
BでAのメソッドを使いたいとか。
330デフォルトの名無しさん:2010/02/16(火) 19:53:52
Javaだと

[DMZ]webサーバ(apache)→[内部]APサーバ(weblogic)→[内部]DBサーバ(oracle)

ってやるけど、
RubyやらPHPってどうしてんの?

weblogicのところがapacheになって、
そこにアプリケーションおくの?
331デフォルトの名無しさん:2010/02/16(火) 20:08:35
>>329
BでAという名前を取得したいのです
名前さえ解ればforNameとかで結構どうとでもできるので
332デフォルトの名無しさん:2010/02/16(火) 20:17:47
>>331
よくわからん。
これじゃだめなのか?

public class Test2 {
  public static void main(String[] args) {
    new A().print();
  }
}
class A extends B {
}
class B {
  public void print() {
    System.out.println(this.getClass().getName());
  }
}
333デフォルトの名無しさん:2010/02/16(火) 20:21:36
>>332
何がしたいんだw
334326:2010/02/16(火) 20:28:01
>>332
ごめんなさい、そういう意味ではないです

特定のクラスのみサブクラスを取得できるのではなく、
すべてのクラスでサブクラスを取得出来るような方法が知りたいのです
例えばAbstractListからArrayListやVectorなど、既存クラスにも適用したいと考えています
335デフォルトの名無しさん:2010/02/16(火) 20:32:44
クラス名を取得して呼び出すようにするのはだめなの?
336デフォルトの名無しさん:2010/02/16(火) 20:37:30
>>334
jarファイルの中を覗いていけば、Class.forNameとか使いまくってやれん事もない。たぶん。
しかし、ここらへんはクラスローダの制約ってのもあるので、厳密に網羅するのは無理やね。
337デフォルトの名無しさん:2010/02/16(火) 21:00:01
>>334
ぱっと調べてこんなんあった。
http://yajiblog.blog101.fc2.com/blog-entry-30.html

これClassのリストにしてるから、
そっからsuperクラスを手繰って整理すればいけるんじゃない?

ただ、クラスローダは実装依存だから
>>336の言うとおり厳密にとれるかは知らん。
338デフォルトの名無しさん:2010/02/16(火) 21:00:20
サブクラスを取得する目的が分からん
設計がおかしいんじゃないの
339デフォルトの名無しさん:2010/02/16(火) 21:01:55
JavaEEなら最近は普通の試みではある。
340デフォルトの名無しさん:2010/02/16(火) 21:07:47
コードチェッカみたいなんを作ってるのかもしれん。
341デフォルトの名無しさん:2010/02/16(火) 21:52:42
かもしれんね。
342デフォルトの名無しさん:2010/02/16(火) 22:02:16
金融系の優秀なエンジニアが糞だったと聞いて
343187:2010/02/16(火) 22:23:11
>>189
>>190

だいぶ遅れてしまいましたが、ありがとうございます。

それだと、
\n の他にも \rなど全ての特殊文字を置換しないといけなくて、
それをどうにか一括でできないかなと思ったのですが、
上手い方法はなさそうですね。
344デフォルトの名無しさん:2010/02/17(水) 01:02:19
javadoc 6の日本語版って公式からダウンロード出来なくなってませんか?
345デフォルトの名無しさん:2010/02/17(水) 01:22:38
しらない
346デフォルトの名無しさん:2010/02/17(水) 01:27:47
点プレ入れれば?

>>344 ほれ

533 名前: デフォルトの名無しさん [sage] 投稿日: 2010/01/24(日) 17:52:46
>>528
u18で翻訳完了してないみたいだね。
直リンでもうしわけないが↓からu10ベースの日本語訳が落とせると思う
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u10-docs-oth-JPR@CDS-CDS_Developer
347デフォルトの名無しさん:2010/02/17(水) 01:54:29
>>346
ありがとうございます
5のドキュメント使ってました^^;
348デフォルトの名無しさん:2010/02/17(水) 04:41:09
すいません。質問なのですが、テキストフィールドから入力した値を
取得してint型の変数aにいれたいのですが、どうも上手くいきません。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class test extends Applet{
int a;
TextField tf;

public void init(){
setBackground(Color.white);
tf = new TextField("1",3);
a = Integer.valueOf(tf.getText()).intValue();
}
public void paint(Graphics g){
//このクラスでaを使う
}
}

コンパイルはできるのですが、テキストフィールドが表示されませんでした。
まだjavaは始めたばかりで調べながら切り貼りで作ってるのでおかしなとこがあると思いますが、よろしくお願いします。
349デフォルトの名無しさん:2010/02/17(水) 05:32:36
とりあえず、ここに無い表示部分のコードを出せ
350デフォルトの名無しさん:2010/02/17(水) 05:43:21
マカってホント情報弱者だなw
351デフォルトの名無しさん:2010/02/17(水) 07:25:16
>>349
前述した部分だけがポイントですので問題ありません。
あまりたくさん貼ってもスレ汚しだと思いますので。
352デフォルトの名無しさん:2010/02/17(水) 07:28:39
Appletにtfをaddしていない
353デフォルトの名無しさん:2010/02/17(水) 07:35:16
>>349
まだjavaは始めたばかりで........
354デフォルトの名無しさん:2010/02/17(水) 08:00:34
表示部分のコードを出せ
355デフォルトの名無しさん:2010/02/17(水) 08:46:23
( ;^ω^)ハズカシイ.....
356348:2010/02/17(水) 09:09:39
アドバイスありがとうございます。
以下のように修正してテキストフィールドの値を変更してエンターを押してaの値を変えたいのですが、イベント処理の使い方が間違ってるらしく反映されません。

public class test extends Applet implements ActionListener{
int a;
TextField tf;

public void init(){
setBackground(Color.white);
tf = new TextField("1",3);
tf.addActionListener(this);
add(tf);
}
public void actionPerformed(ActionEvent e) {
a = Integer.valueOf(tf.getText()).intValue();
}
public void paint(Graphics g){
//ここでaを使う
}
}

また、表示部分のコードとはどの部分のことでしょうか?
357デフォルトの名無しさん:2010/02/17(水) 09:25:39
それすらも分からないとは!
358デフォルトの名無しさん:2010/02/17(水) 09:55:51
ソースをどっかにうp
359デフォルトの名無しさん:2010/02/17(水) 10:05:01
>>356
actionPerformedで
repaint() を呼ぶ。
詳しくは
http://java.sun.com/products/jfc/tsc/articles/painting/index.html
360デフォルトの名無しさん:2010/02/17(水) 10:23:58
Map map = req.getParameterMap();
Set<Entry> entries = map.entrySet();

out.print("<br>すべてのパラメータ");
for(Entry entry : entries){
out.print("<br>");
out.print(entry.getKey());
out.print(":");
out.print(entry.getValue());
}

出力がおかしくなるんですが、なぜなんでしょうか。
361デフォルトの名無しさん:2010/02/17(水) 10:53:24
順番が思ってるのと違う、ってことなら
HashMap使ってるんじゃないの?
362デフォルトの名無しさん:2010/02/17(水) 11:46:05
全部printで1行に出力されてるとかじゃね?
だったら一番下をprintlnに
363デフォルトの名無しさん:2010/02/17(水) 11:46:46
とおもったが、コンソールじゃないのかスマソ
364326:2010/02/17(水) 11:52:26
遅れてしまいましたが、皆様ありがとうございました。
これから色々試してみたいとおもいます。
365デフォルトの名無しさん:2010/02/17(水) 12:01:46
すべてのパラメータ
checkbox:[Ljava.lang.String;@12c4768
text2:[Ljava.lang.String;@4298e
text1:[Ljava.lang.String;@1443800


出力結果は上のようになります。
ここで、
out.print((String)entry.getKey());
out.print((String)entry.getValue());
というようにStringに明示的にキャストしてみると、今度は、ClassCastExceptionが出てしまいます。
366デフォルトの名無しさん:2010/02/17(水) 12:02:43
>>364
Eclipse で該当クラス選択して F4 押せ。

独自でやるならクラスパスから JAR やクラスファイルを検索して、そのクラスファイル名から
クラス名を作って forName()。確実ではないが、インストールされているドライバクラスなど
を一覧表示するためとかにやってみた事はある。

まぁ結論を言うとリフレクションでは出来ない。JVM のクラスロード機構自体そういうことが
できる設計になっていないし。
367デフォルトの名無しさん:2010/02/17(水) 12:04:08
>>365
out.print(Arrays.toString((String[])entry.getKey()));

回答側の質落ちてんな…
368デフォルトの名無しさん:2010/02/17(水) 12:13:59
×getKey()
○getValue()
オレモナー
369デフォルトの名無しさん:2010/02/17(水) 12:17:17
>>367

ありがとうございました。
これからなお一層Javaの学習に励みます。
370デフォルトの名無しさん:2010/02/17(水) 12:19:23
360に対して361はまっとうな回答だと思うけど。
371360:2010/02/17(水) 12:26:33
>>361

ありがとうございました。
372デフォルトの名無しさん:2010/02/17(水) 12:28:41
373デフォルトの名無しさん:2010/02/17(水) 12:36:32
374デフォルトの名無しさん:2010/02/17(水) 15:34:58
>>327
-d つけたらできましたありがとう
375デフォルトの名無しさん:2010/02/17(水) 15:39:11
ソースコードを同梱しないバージョンの、バイナリー配布物に
テストコードとかjunitのjarファイルとか含める必要ってなにかあるんですか?
OSSアプリでそういうのがあったんですが
376デフォルトの名無しさん:2010/02/17(水) 16:06:22
そのバイナリーが本当に正しく動作するのかどうか自分の目で確かめなくては不安でたまらないという人のために
377デフォルトの名無しさん:2010/02/17(水) 16:12:32
Q: こういう場合どう動きますか?
A: テストコード読めカス
378デフォルトの名無しさん:2010/02/17(水) 16:46:41
Eclipseで複数のJavaプロジェクトを開発しているのですが、
複数のプロジェクトで共有したいクラスがある場合、どうやるのが良いですか?
別プロジェクトからパスを通すか、
シンボリックリンクを使って各プロジェクトに置くか。
379デフォルトの名無しさん:2010/02/17(水) 16:54:55
レベルの低い質問だとは思うんですが、、答えてくれるとありがたいです。

インターフェーイスは名前や型のみで中身がないものだと習いました。
JAVAのAPIにあるインターフェイスが中身のある(機能が書いてある)メソッドを持っているのはどういうことなのでしょうか?
380348:2010/02/17(水) 16:55:25
>>359
ありがとうございます。
repaint()で呼び出すと上手く実装することができました。
381デフォルトの名無しさん:2010/02/17(水) 17:02:05
ウチは共通機能だけでプロジェクトを独立させてるかな。

まあテストコードもプロジェクト単位で置いてるからだけど。
382デフォルトの名無しさん:2010/02/17(水) 17:04:53
>>379
インターフェイスは機能の振る舞いを定義するものだぞ。
抽象クラスとかと勘違いしてね?
JavaのAPIって、標準API?どれ?
383デフォルトの名無しさん:2010/02/17(水) 17:07:04
>>379
中身は無いよ
このインタフェースはこれこれこういう機能を提供するという約束にするのでこのインタフェースを実装するクラスはこれに従って書いてくださいね、っていうお願い
384デフォルトの名無しさん:2010/02/17(水) 17:08:12
APIドキュメントのメソッドの定義を見て実装と勘違いしてるんじゃない?
385デフォルトの名無しさん:2010/02/17(水) 17:11:45
>>384 p(´⌒`q) 何この人
386デフォルトの名無しさん:2010/02/17(水) 17:14:08
interfaceってキーワードが書かれてたら中身なんて書けないよ
これは純粋仮想クラスだから
仮想メンバと具象メンバ両方持ってたらそれはinterfaceじゃなくただの仮想クラス(非純粋)
387デフォルトの名無しさん:2010/02/17(水) 17:16:59
>>381
共通機能プロジェクトでjarファイル生成して他プロジェクトに持たせるなりパス通すなりとかですか?
388デフォルトの名無しさん:2010/02/17(水) 17:19:24
ボクには難しすぎます><
389デフォルトの名無しさん:2010/02/17(水) 17:26:52
>>387
プロジョクトとしてビルドパス通せ
390デフォルトの名無しさん:2010/02/17(水) 17:27:46
>>378
共通プロジェクト作っておいて、そこの build.xml を実行すると JAR 作って
参照先のプロジェクトにコピー。

めんどくさい場合や共通クラスの方も同時に開発中で更新が多い場合は単にプロジェクト参照。
391379:2010/02/17(水) 17:48:55
>>382,383
インターフェースに中身が無いことはわかりました。
今Mixerクラスでこんなメソッドを使っているんですが

Line getLine(Line.Info info)
使用可能で、かつ指定された Line.Info オブジェクトの記述に一致するラインを取得します。

このLineというのはインターフェースなんですけど、このgetLineで取得したLineインターフェースはインスタンスとなって中身を持ち、メソッドにある機能を使うことができるということなんですか?
元々は中身ないけど、あるクラスのget○○を使えば書いてあるメソッドを使うことができますってことであってます?
392デフォルトの名無しさん:2010/02/17(水) 17:57:55
>>391
Lineがインスタンスになるんじゃない
Lineを実装した何らかの別のクラスのインスタンスを返すのよ
例えば
class ConcreteLine implements Line {
 // Lineの実装をつらつらと書く
}
class ConcreteMixer implements Mixer {
 Line getLine(Line.Info info) {
  return new ConcreteLine( ......... );
 }
}
みたいな感じになってると思ってください
Lineインタフェースには中身は無いが、実際に返されるのはConcreteLineクラスで、それには中身がある
393デフォルトの名無しさん:2010/02/17(水) 18:18:23
appletでOutOfMemoryが発生すると、発生段階まで更新した内容で画面が描画されます。
それはいいのですが、なぜかその後画面操作ができてしまうのですが、
OutOfMemoryなのに、なぜその段階でアプリケーションが終了しないのでしょうか?
394デフォルトの名無しさん:2010/02/17(水) 18:20:41
>>393
新たなオブジェクトをnew出来ないだけでは。
395デフォルトの名無しさん:2010/02/17(水) 18:23:19
例外が投げられてもキャッチされれば別に終了したりしない
キャッチされるまでメソッドを脱出するぶんメモリが空くし
396デフォルトの名無しさん:2010/02/17(水) 18:29:35
>>391
長文ウザイ
オブジェクト指向の本で勉強しろ
397379:2010/02/17(水) 18:30:03
>>392
すいません、言い忘れていましたが標準APIのやつです。javax.sound.sampledインタフェース Line
Lineインターフェースには機能が書いてあるメソッドが9個あるんですが、それらの中身が無いことまではわかりました。
Lineインターフェースのメソッドの機能のコードを書くというのは自分には無理です・・
>>391は間違っていますか?
398デフォルトの名無しさん:2010/02/17(水) 18:30:26
>>389
それだとantで配布バージョンへビルドするときに、ビルドスクリプトに外部プロジェクトのパス通したりしないといけないのがどうなのかなと思って
でもjarファイルにして持たせるとバージョンアップのたびにjarファイルを置き直さないといけないしそれも面倒なんですよね
399デフォルトの名無しさん:2010/02/17(水) 18:31:12
>>390
をおおおお
ありがとうございました。
すっきりしました。
400デフォルトの名無しさん:2010/02/17(水) 18:41:44
>>397
なぜ自分で書く必要がある?
それはMixerの中の人がやる仕事であって、あなたはすでに誰かが書いたMixerを使うだけでしょ?
401デフォルトの名無しさん:2010/02/17(水) 19:14:26
コーディングする前にJavaの勉強からだな
402デフォルトの名無しさん:2010/02/17(水) 19:19:53
なんかスレが活発でなによりだな。中身がなくてすまん。
403デフォルトの名無しさん:2010/02/17(水) 19:34:12
レイヤードの依存性を徹底する意味でプロジェクトを分けることも多いな。
最近のお手軽開発志向とはずれるんだろうけど。

開発時点では即時性が失われるのでjar使わない。
404デフォルトの名無しさん:2010/02/17(水) 21:09:08
>>402
許してやる
405デフォルトの名無しさん:2010/02/17(水) 21:27:22
VB.NETの方が簡単だお^^
>>393
まずはじめに。
あなたの実行しているプログラム上ではいくつかのスレッドが走っていますが、
そのうちどれかひとつでも終了すればプログラムが終了する、というわけではありません。
また、Cのようにメインスレッドが終了すれば(main関数を抜ければ)プログラムも終了する、というわけでもありません。これについては以下の項目と項目からのリンクが参考になると思います。
http://javafaq.jp/S065.html#S065-37


次に、今回の事象について。
おそらくOutOfMemoryが発生したのはイベントディスパッチスレッド(EDT)上だと思います。
EDTとは、上のリンク先ページ[S065 Q-14]にもありますが、例えばユーザがボタンを押したときに実行される
actionPerformedメソッドなんかが走るスレッドだと思って下さい。
EDTで発生した例外をキャッチし対処しなかった場合、EDTは終了します。
しかし、EDTは終了しても新しいEDTが自動的に起動されます。
従って(スレッドローカルなデータでなければ)無くなりはしないので、
気にせず継続できてしまう場合も多いです。
ただし(当たり前ですが)例外を送出したところから処理が再開されるわけではなく、あくまで
イベントディスパッチスレッドの再起動なので、意図しない状態になっていることも十分あり得るでしょう。


EDTが終了することによって、例えば以下のような問題が発生します。
ttp://www.noids.tv/2009/01/java-joglopengl.html
JOGLは詳しくないのですが、これはJOGLがスレッドローカルな状態を持っているために発生しているのだと思います。
407デフォルトの名無しさん:2010/02/17(水) 22:18:24
受信したMIDIデータを任意の時間(ミリ秒)遅らせて送信するプログラムを作ってます。

受信したMIDIデータをそのまま送信するところは以下のサイトの(2)のコードを元に作りました。

ttp://fry.no.coocan.jp/MISC/ToyBox/MIDI/MidiKeyboard.html

このコードに対し任意の時間(ミリ秒)遅らせる処理を追加するにはどのように書けばよいでしょうか。
408デフォルトの名無しさん:2010/02/17(水) 22:19:12
質問です。
Eclipse VisualEditor でAWTのみ使っています。
実行すると最初からflameを2つ表示させるにはどうすればいいでしょうか?
409デフォルトの名無しさん:2010/02/17(水) 22:28:41
EDT終了ってホントかよ。
これってバグって言うよりもAWTの中の人じゃないと無理。
ドキュメントとかどこかにソースあるの?
410デフォルトの名無しさん:2010/02/17(水) 22:51:05
411デフォルトの名無しさん:2010/02/17(水) 23:02:08
AWTの中の人の叫び声が聞こえたような…気がした……
412デフォルトの名無しさん:2010/02/17(水) 23:03:23
>>410
産休。
ホントかよw。
413デフォルトの名無しさん:2010/02/17(水) 23:05:47
ハゲチャビン
414デフォルトの名無しさん:2010/02/18(木) 08:48:44
現在就活中で、Javaを用いたWebシステムに特化した企業に興味があるんですが、
将来性とかどうなんでしょうか。
社員の9割以上がJavaを使用してるらしいんですが。
415デフォルトの名無しさん:2010/02/18(木) 09:04:28
>>414
そのうちマイクロソフトを買収するんじゃないかな?
416デフォルトの名無しさん:2010/02/18(木) 09:46:29
完全に下降線だけど将来性が無くなるってほどでもない
Javaが最適解になり続ける分野は残るはず
417デフォルトの名無しさん:2010/02/18(木) 10:46:00
5分ほど前から勉強を始めた初心者です。
配列変数なのですが、
  int[] a;
と宣言。
後から初期値を設定することは出来ないのでしょうか?
やってみたのは
  int[] a;
  a = new int[]{1,2};
なのですがエラー。
418デフォルトの名無しさん:2010/02/18(木) 11:24:37
public class Test {
public static void main(String[] args) {
int[] a;
a = new int[]{1,2};
}
}
問題なく動いたよ? 空白が全角だからじゃね?
419デフォルトの名無しさん:2010/02/18(木) 11:39:17
エラーの時は何がエラーなのかを書かないとエスパーの出番だぞ。

コンパイルエラーなのか、実行時エラーなのか。
420デフォルトの名無しさん:2010/02/18(木) 11:51:36
>>416
c,c++,php,c#とやってきて今javaやってるとjava圧勝だろと思うんだが
C#はまあ対抗になるかもしれんけど
javaって下降線なの?
421デフォルトの名無しさん:2010/02/18(木) 11:59:49
うわぁ、世間が全く見えてないなw
422デフォルトの名無しさん:2010/02/18(木) 12:27:26
List<String>[] list = new List<String>[2];

でエラーになるんだけど総称型の配列って出来ないんだっけ? どう書くのが正しいの
423デフォルトの名無しさん:2010/02/18(木) 12:29:28
一言煽りは最近ここに常駐してるニートなので無視してよし
424デフォルトの名無しさん:2010/02/18(木) 12:40:08
>>422
List<?>[] list = new List<?>[2];

<?>以外の配列は作れない仕様
425デフォルトの名無しさん:2010/02/18(木) 12:41:47
Swingの勉強をしているのですが、
KeyListenerの、keyReleasedが処理されずなぜ処理されないのか悩んでます。
keyPressedと、keyTypedは、正常に感知し処理してくれます。
どなたかアドバイスいただけませんでしょうか?

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KeyEventTest02 extends JFrame{
public static void main(String[] args) {
KeyEventTest02 w = new KeyEventTest02("KeyEventTest02");
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
w.setSize(300, 120);
w.setVisible(true);
}
426デフォルトの名無しさん:2010/02/18(木) 12:41:55
public KeyEventTest02(String title) {
super(title);
JPanel panel = (JPanel)getContentPane();
JTextField tf = new JTextField();
tf.addKeyListener(new KeyCheck());
panel.add(tf, BorderLayout.NORTH);
}
class KeyCheck implements KeyListener {
public void keyPressed(KeyEvent e) {
System.out.println("キーが押されました");
}
public void keyTyped(KeyEvent e) {
System.out.println("キーがタイプされました");
}
public void keyReleased(KeyEvent e) {
System.out.println("キーが離されました");

}
}
}
427デフォルトの名無しさん:2010/02/18(木) 12:44:23
>>424
マジ? 超意味ねー。@SuppressWarnings で逃げるか…
428デフォルトの名無しさん:2010/02/18(木) 12:49:46
>>427
作ることはできないけど@SuppressWarnings使うなら無理矢理キャストすることができないこともない

@SuppressWarnings("unchecked")
List<String>[] list = (List<String>[]) new List<?>[2];

たぶん一番正しいのは List<List<String>> だと思うけど・・・
429デフォルトの名無しさん:2010/02/18(木) 13:20:03
もう面倒だからオラクルなんかやめてマイクロソフトにするわw
430デフォルトの名無しさん:2010/02/18(木) 13:37:45
>>429
煽りは辞めて下さい
431デフォルトの名無しさん:2010/02/18(木) 16:07:16
ファイルの内容をバイナリレベルで比較したい場合って JNI 使わない限り
最終的に 1 バイト単位で比較して行くような方法がないですかね?
432デフォルトの名無しさん:2010/02/18(木) 16:46:05
えっ
433デフォルトの名無しさん:2010/02/18(木) 17:00:45
java.nio.MappedByteBuffer#equals()
とエスパー回答しとく
434デフォルトの名無しさん:2010/02/18(木) 17:33:31
インターフェイスは実装クラスでnewしろよ……
435デフォルトの名無しさん:2010/02/18(木) 17:34:32
勘違い
436デフォルトの名無しさん:2010/02/18(木) 18:00:13
クラスAがBをもって
クラスBもAをもつ

と言う設計はおかしいですか?
クラスCを作ってAとBを並列に持つべきでしょうか
437デフォルトの名無しさん:2010/02/18(木) 18:02:54
えっ
438デフォルトの名無しさん:2010/02/18(木) 18:11:12
>>436
おかしい?
目立つと叩かれるので、周りに合わせたいのですか?
自分が正しいと思った道を進みましょう
439デフォルトの名無しさん:2010/02/18(木) 18:17:36
相互参照なんて別に珍しい事じゃない。
持つべきじゃないケースとしては「設計上で依存性を排除するため参照させない」とかだな。
440デフォルトの名無しさん:2010/02/18(木) 18:26:00
くぅ〜。はらへったぁ〜。
441デフォルトの名無しさん:2010/02/18(木) 18:51:35
マイクロソフトじゃなくてさアップルの方が未来あるお^^;
442デフォルトの名無しさん:2010/02/18(木) 21:40:46
>>436
おk
VBAとかの低次元言語じゃないからな
443デフォルトの名無しさん:2010/02/18(木) 21:53:35
未来がある会社はあんな糞デスクトップは押し付けない
444デフォルトの名無しさん:2010/02/18(木) 21:58:27
グーグルに未来があるとは思えないけどな
445デフォルトの名無しさん:2010/02/18(木) 22:02:21
というか独占だけはやめてほしい
446デフォルトの名無しさん:2010/02/18(木) 22:23:52
MouseAdapterとかのアダプタークラスはアダプターパターンと違うようなんですが
どういう経緯でAdapterというようになったんですか?
447デフォルトの名無しさん:2010/02/18(木) 22:44:32
<servlet>
<servlet-name>Test1</servlet-name>
<servlet-class>Test1</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Test2</servlet-name>
<servlet-class>Test2</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test2</servlet-name>
<url-pattern>/Test2</url-pattern>
</servlet-mapping>


/Test2にアクセスした場合、Test2のみが使われ、Test1が使われません。
一体どうなってんでしょうか。
448デフォルトの名無しさん:2010/02/18(木) 22:44:49
ゴスリンのセンス
449デフォルトの名無しさん:2010/02/18(木) 22:55:29
middlegenでモデルクラスを自動生成すると、複数形の変換を間違えるんだけどどうすればいい?
bagsテーブルからbagクラスを作るのはいいけど、
boxesテーブルからboxeクラスを作るんですけど。
450デフォルトの名無しさん:2010/02/18(木) 23:19:26
アダプタークラスはゴズリンが名づけたんですか。
一見アダプターパタンと違うようですけど何か深い洞察があったのでしょう。
ところでMouseAdapterですけどこういうListenerをただ実装しいる(空でも)だけのクラスは、Adapter以外ならどういう名前が良かったのでしょうか。
451デフォルトの名無しさん:2010/02/18(木) 23:30:44
>>425-426 なのですが、スレ違いですか?
452デフォルトの名無しさん:2010/02/18(木) 23:34:55
別にアダプタとして使うんだから間違った名前とは思わないけど。

ふさわしい名前が思いつかないときは
抽象クラスなら「Abstractほげほげ」
ただの実装なら「ほげほげImpl」
DIコンテナ全盛期はこんなクラスで溢れかえってたプロジェクトも多いはず。
453デフォルトの名無しさん:2010/02/18(木) 23:39:30
>>451
ソースはっつけて実行してみたよ。

キーが押されました
キーがタイプされました
キーが離されました
キーが押されました
キーがタイプされました
キーが離されました

動いてるぽいが?
454デフォルトの名無しさん:2010/02/18(木) 23:54:31
>>451
内部クラスを使うならインターフェイスを使うじゃなくて、
KeyAdapterを継承したほうがスッキリと書けると思うよ
455デフォルトの名無しさん:2010/02/19(金) 00:02:46
>>447
いや、サーブレットはどれか1つしか呼ばれないから。
ttp://www.javadrive.jp/servlet/webxml/index9.html
456デフォルトの名無しさん:2010/02/19(金) 00:26:18
>>453
ありがとうございました。
どうやら、プラットホームの違いで動作に違いが出るようでして、
Windowsでは正常動作を確認しました。
ありがとうございます。

>>454
普段はアダプタークラス使うんですが、
3つのメソッドすべてオーバーライドするんで、
リスターの方を継承してみました^^
457デフォルトの名無しさん:2010/02/19(金) 01:49:21
java.net.Authenticator#setDefault(Authenticator) がセキュリティマネージャーに禁止された状態で、
BASIC 認証のあるサイトにアクセスするにはどうすりゃいいんだ?
458デフォルトの名無しさん:2010/02/19(金) 05:02:32
>>456
しょうもない突っ込みだけど、リスターじゃなくてリスナーっすw
459デフォルトの名無しさん:2010/02/19(金) 09:44:07
>>457
自分で Authorization ヘッダ送れば?
460デフォルトの名無しさん:2010/02/19(金) 10:05:55
>>458
またでたか常駐ニート
461デフォルトの名無しさん:2010/02/19(金) 11:06:36
寝ているスレッドを強制的に起こすことはできないでしょうか?
特定の条件を満たした際に強制的にスレッドを継続実施したいのですが。
462デフォルトの名無しさん:2010/02/19(金) 11:07:57
Object#wait()
Object#notifyAll()
463デフォルトの名無しさん:2010/02/19(金) 12:02:33
>>462
出来れば説明お願いします。
464デフォルトの名無しさん:2010/02/19(金) 12:03:47
すみません、waitではなくsleepしているのです。
465デフォルトの名無しさん:2010/02/19(金) 12:19:40
public class Foo{
  private final Object signal = new Object();
  public void run(){
    …
    // Thread.sleep(60 * 1000);
    synchronized(signal){
      signal.wait(60 * 1000);
    }
    …
  }
  public void wakeup(){
    synchronized(signal){
      signal.notify();
    }
  }
}
466デフォルトの名無しさん:2010/02/19(金) 12:24:07
説明してあげなよ(笑)
467デフォルトの名無しさん:2010/02/19(金) 12:28:43
あ、言っておくけど寝ているスレッドを起こすには別のスレッドから起こしてやらないと行けないから。
468デフォルトの名無しさん:2010/02/19(金) 12:34:29
ニートが目覚めるとアップルになってしうので強制的に起こすようなことは出来ません。
469デフォルトの名無しさん:2010/02/19(金) 13:04:57
画面系なんですが、ユーザーの指定によってある処理の

起動登録→保留(wait、実際の起動もユーザー操作による(notify、notifyAll))
指定時間経過で起動登録→保留(sleep)

こんなのがありまして、特定条件時にsleepをたたき起こしたかったのです。
レスを参考に検討してみます。
470デフォルトの名無しさん:2010/02/19(金) 13:17:19
Javaってどうして終わっちゃったのですか?
471デフォルトの名無しさん:2010/02/19(金) 13:59:17
あれ?本や解説HPではコンポーネントをコンテンツペインに登録しないといけないとあるけど、
直接トップコンテナに登録してもエラーも出ず動いてるけど・・・
別にコンテンツペインに登録しなくて直接登録してもよいの?
import javax.swing.*;
import java.awt.*;
public class MyTest {
public static void main(String[] args) {
JFrame w = new JFrame("直接登録のテスト");
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton("気が済むまで押せばいい");
w.add(b);
w.setSize(350, 250);
w.setVisible(true);
} }
472デフォルトの名無しさん:2010/02/19(金) 14:12:47
>>471
想像だが、リサイズされたときの再描画や、
ボタンを押したときのイベント通知がひょっとしたら動いてないのかも。

とりあえず画面に出て、ボタンクリックできてるだけで。
473デフォルトの名無しさん:2010/02/19(金) 14:50:20
>>471
1.4まではエラーだった
5.0以降、直接トップコンテナに登録しようとすると、自動的にコンテントペインに転送されることになった
474デフォルトの名無しさん:2010/02/19(金) 14:50:52
うん、何か気付いたらいつの間にか JFrame に直接 add() しても怒られなくなってたんだよねー。
気にはなっていたがちょっと調べてみたら、Java 6 の API リファレンスにこう書いてあった。

> 便宜上、add とその派生メソッド、remove および setLayout は、必要に応じて contentPane
> に転送されるようにオーバーライドされています。つまり、次のように記述できます。
> frame.add(child);
> 子は contentPane に追加されます。
475デフォルトの名無しさん:2010/02/19(金) 17:57:17
>>459
やっぱそうするしかないか。
何か便利なメソッドがあるかと期待したんだけど。
476デフォルトの名無しさん:2010/02/19(金) 18:08:38
ないない
477デフォルトの名無しさん:2010/02/19(金) 20:24:56
今発見したんだけどjavaで
double d=0;
d1=d1*-1;
とすると d1=0.0 ではなく d1=-0.0 という値になりますね。
478デフォルトの名無しさん:2010/02/19(金) 20:34:16
IEEE 規格の倍精度浮動小数点には富豪ビットがあるので C/C++ でも何でも -0.0 はある。
http://ja.wikipedia.org/wiki/浮動小数点数
479471:2010/02/19(金) 20:53:37
>>472-474
レスありがとうございました。
直接登録して良いんですね〜
5.0より以前のjavacでコンパイルする事ないんで、
ガンガン直登録していきます
ありがとうございました。
480デフォルトの名無しさん:2010/02/19(金) 21:06:54
Windowのサイズを変えたり、最小化するなどしないと
テキストボックスが表示されません。
プログラム起動と同時にテキストボックスを表示するにはどうしたらいいでしょうか?

public class test4 extends JFrame{
public static moji north_fild;
public static void main(String[] args) {
new test4("テスト");
}
public test4(String title){
//WIONDOW設定
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
         //テキストボックス
north_fild = new moji();
getContentPane().add(north_fild, BorderLayout.NORTH);
this.repaint();
}
}

public class moji extends JPanel{
JTextField area2;
moji(){
area2 = new JTextField ("",10);
area2.setText("ewtewqt");
area2.setDragEnabled(true);
this.add(area2);
}
}
481デフォルトの名無しさん:2010/02/19(金) 21:12:40
>>478
そのビット、俺にも立てて。
482デフォルトの名無しさん:2010/02/19(金) 21:24:12
マイナスになっちゃうよw
483デフォルトの名無しさん:2010/02/19(金) 21:49:50
>>480
× this.repaint();
○ getRootPane().revalidate();
484デフォルトの名無しさん:2010/02/19(金) 21:53:22
>>481
お断りする。
485デフォルトの名無しさん:2010/02/19(金) 21:58:50
>>483
表示できました。 ありがとう
486デフォルトの名無しさん:2010/02/20(土) 21:35:34
質問
引数にint[]を持つような関数↓
void func1(int[] ints){}
これに、new int[]{}しないで動的に値をぶち込みたいんですけど、方法はありますでしょうか。
487デフォルトの名無しさん:2010/02/20(土) 21:42:43
動的に作った int 配列を渡せば良いじゃん。
488デフォルトの名無しさん:2010/02/20(土) 22:09:25
動的に値をぶち込みたいってのが良くわからんのだが…
489デフォルトの名無しさん:2010/02/20(土) 22:17:42
動的にnew int[]{}すればいんじゃないか?
490デフォルトの名無しさん:2010/02/20(土) 22:34:28
>>486
va_list みたいにってこと?
491デフォルトの名無しさん:2010/02/21(日) 01:57:44
いや、ただnew使いたくないだけ。
void func1(int[] ints){}を呼ぶときに、値(1,2,3)を渡すとして、普通なら
func1(new int[]{1,2,3}); って書かなきゃいけないところをなんとかしてnewを外す方法を知りたかった。
newってされてるといつガベコレ走るか分からんし、
ただの配列宣言なんだからint[]で宣言したやつらは関数スコープ終了したら消えて欲しいし。

それはそうと、継承先のコンストラクタでたとえば基底クラスのコンストラクタが
public class base{

public base(element[] elements,element first,element last){
this.elements=elements;
this.first=first;
this.last=last;

}
private elements[] elements;
private element first,last;
}
こんな感じのときに、継承先のコンストラクタで
public class ex extends base{
public ex(){
element[] elemens=new elemet[100]();//基底コンストラクタの前にステートメントがあるのでコンパイルが通らない
super(elements,elements[0],elements[99]);
}}
みたいなまねをしたい(無駄なnewを減らしたい)んだけど、なんかいい方法は無いかな?
492デフォルトの名無しさん:2010/02/21(日) 02:43:20
自演乙
493デフォルトの名無しさん:2010/02/21(日) 05:06:11
>>491
そんなにnewを減らすことに神経質にならなくてもよいよ。
メモリとかの問題ならこんなとこよりも、他を考えたほうがいい。

あえて書くなら
void func1(int... ints) {}
だけど。
まー、コンパイラでは配列をnewしてそうだが。

public class base {

// >>491と同じ

public base(element[] elements) {
this(elements, elements[0], elements[99]);
}
}

public class ex extends base {
public ex() {
super(new element[100]);
}
}

ってやる。
つか、なんだ?このelementsは。
どう使うんだ?

あと、Javaではクラス名の先頭は大文字で。
eclipseとかIDEつかってないのか?
494デフォルトの名無しさん:2010/02/21(日) 05:21:58
よほど高度なプログラムを書いているのでなければ、
下手にメモリを節約したコードを書くと
かえって性能が悪くなるという話を聞いたことがある。
コンパイラやJITコンパイラの最適化に
まかせたほうがいいってことかな。
事実かどうかは知らない。

あと、コンストラクタの代わりに
static base createXXX()
みたいなメソッドを使うという手もある。
495デフォルトの名無しさん:2010/02/21(日) 11:05:48
キーボードから整数を読み込む命令に「ScannerクラスのnextInt」というのがありますが
なんでnextという名前がついてるん?
496デフォルトの名無しさん:2010/02/21(日) 12:17:08
いまいち質問の意図が掴めんが…
getIntだとそもそもintしか来るはずがないというニュアンスになるし、
.NetみたいなTryGetIntみたいなのも文化としてないからじゃね。
あとこういうのは伝統的にnextで読むという習慣だし。
497デフォルトの名無しさん:2010/02/21(日) 13:07:05
>>495
キーボードからの入力がためてあって、
そっから次の整数、次の整数ってひとつずつ読み込むわけだから、
nextでいいんじゃない?

JavaDocみたらわかるけど
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Scanner.html
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
こーゆー使い方だってできるんだし。
498デフォルトの名無しさん:2010/02/21(日) 14:00:01
そうですかふ〜ん
499デフォルトの名無しさん:2010/02/21(日) 14:25:09
Buttanをいくつか作成し、ループ内で、これらのButtonにactionListenerをつけたいのですが、できません。
どのボタンも最後にあるボタンと同じ処理になってしまいます。解決方法を教えていただけませんか?
説明下手ですいません。
500デフォルトの名無しさん:2010/02/21(日) 15:11:51
下手な説明するくらいならコードを貼れ
501デフォルトの名無しさん:2010/02/21(日) 15:30:12
コードを貼れっていってんだろ
502デフォルトの名無しさん:2010/02/21(日) 16:22:46
ProgressMonitor って別スレッドで行ってる処理の進捗表示を目的としてるくせに
setNote() や setProgress() の中は SwingUtilities.invokeLater() 対応してないのな。
503デフォルトの名無しさん:2010/02/21(日) 17:16:08
しかもこれモーダルに出来ないのか。
中途半端なもん作りやがって…
504デフォルトの名無しさん:2010/02/21(日) 17:33:03
>>503
For similar behavior use a JProgressBar with a JOptionPane, or JDialog.
505デフォルトの名無しさん:2010/02/21(日) 17:42:20
>>504
Now, I'm creating such dialog. Thank you.
506デフォルトの名無しさん:2010/02/21(日) 17:52:41
そんなクラスあったの初めて知った…導入されたの1.5みたいですけど、
それにしては確かにイマイチですね。
なんかQuickTime APIの進捗ダイアログみたいに気持ち悪い。
Sunのチュートリアルにあるデモもなんか描画おかしくない?
507デフォルトの名無しさん:2010/02/21(日) 17:54:55
おっとprogress_displayの悪口は許しませんよ
508デフォルトの名無しさん:2010/02/21(日) 18:17:27
おかしくない
509デフォルトの名無しさん:2010/02/21(日) 18:22:05
>>508
メインダイアログをフォアグランドに持ってくると、バックグランドの描画がフォアグランドに行われる。
うちの環境では。
510デフォルトの名無しさん:2010/02/22(月) 03:28:44
if(null == platform.get(p)){
platform.add(p, new Channel [] {c});
} else {
platform.get(p).add(c); ←これがエラー
}

・Vector platformです
・2次元配列にしたい
・無名配列で挿入したい
・無名配列に要素を入れた形で挿入したい こういうこと→new Channel [] {c}
・無名配列に要素を動的に追加したいので、普通の配列は駄目。Vectorなどでないと駄目。
・Channelは、自作クラス


Vector(Collection c)を使えばよさそうだが、
こののコレクションがよくわからない。
イメージ的に、
platform.add(p, new Channel [] {c});
ここは本来→
platform.add(p, new Vector(c));
ってな感じでやりたいのですが、もちろんエラー

コレクションはインターフェイスで、Vectorはそれを実装している。
話が元に戻ってしまうわけで。
511デフォルトの名無しさん:2010/02/22(月) 03:37:45
List<List<Channel>> platform = new ArrayList<List<Channel>>();

List<Channel> elem = platform.get(p);
if(elem == null){
  elem = new ArrayList<Channel>();
  platform.add(elem);
}
elem.add(c);
512デフォルトの名無しさん:2010/02/22(月) 03:39:06
× platform.add(elem);
○ platform.set(p, elem);
513デフォルトの名無しさん:2010/02/22(月) 09:22:44
署名付きアプレットのなかでcsvファイルを出力する機能があり、
XP+IE7ではうまく動いていましたが、別XP+IE8ではCSVファイルが出力できませんでした。

IEの設定によって、署名付きでも出力できないような現象はおこるのでしょうか?
514デフォルトの名無しさん:2010/02/22(月) 12:09:08
うちの環境ではおこらない。
515デフォルトの名無しさん:2010/02/22(月) 13:05:44
ポリシーファイルうp
516デフォルトの名無しさん:2010/02/22(月) 20:24:46
WindowsでJavaを動かすにはJREが必要だそうですが、
これは標準でインストールされているものなのでしょうか?
517デフォルトの名無しさん:2010/02/22(月) 20:29:30
いいえ
>>3 あたりを参照してみてください
518デフォルトの名無しさん:2010/02/22(月) 20:32:25
519デフォルトの名無しさん:2010/02/22(月) 20:45:50
メーカー PC によっちゃ購入時点でバンドルされている。
ま JRE ごと配布するという手もあるが。

クライアントやスタンドアロン Java の実行環境としては
JRE も JAR バンドルアプリも標準対応してる Mac OS X が
一番優秀だな。
520デフォルトの名無しさん:2010/02/22(月) 20:52:01
Java環境としては、な
それ以外は終わってるが
521デフォルトの名無しさん:2010/02/22(月) 20:55:35
522デフォルトの名無しさん:2010/02/22(月) 22:24:11
ご存知の方、教えてください。

Tomcatは、マイクロソフトのアクセスで作られた
拡張子mdbのデータベースはサポートしないのでしょうか?

Tomcatがからまず、Javaとmdbのデータベースだけなら
正常にアクセス結果が得られるのですが、
Tomcatをからませると、General errorが出て、
mdbを参照してくれないようなんです。

Tomcatでmdbなんて使っちゃいけないんですかね。。。。。
523デフォルトの名無しさん:2010/02/22(月) 22:30:26
JDBC-ODBC ブリッジドライバで普通に接続できるだろ。
全くお勧めはしないが。
524デフォルトの名無しさん:2010/02/22(月) 22:38:52
>>522
エラーをはれと。
どこでGeneral errorが出るんだ。
誰がGeneral errorって言ってるんだ。
525デフォルトの名無しさん:2010/02/22(月) 23:09:59
tomcat general error で検索したら一発で出るじゃん。
http://www.javaroad.jp/bbs/answer.jsp?q_id=2007043023113652
526デフォルトの名無しさん:2010/02/22(月) 23:45:08
aaa
527522:2010/02/23(火) 00:30:46
エラーです。
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at mybeans.KenDBBean.readDB(KenDBBean.java:23)
at mybeans.Kensaku.doGet(Kensaku.java:18)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
528522:2010/02/23(火) 00:34:33
>>525 「システムDSN」でそれやったけど、直らなかった。。。。。これがソースです。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Kensaku extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
try{
String tmp = request.getParameter("str");
String syouhinname = new String(tmp.getBytes("8859_1"),"JISAutoDetect");
ServletContext sc = getServletContext();
KenDBBean kb = new KenDBBean();
kb.readDB();
kb.setSyouhinname(syouhinname);
sc.setAttribute("kb", kb);
if(syouhinname.length() !=0){
sc.getRequestDispatcher("/Kensaku_chk.jsp").forward(request,response);
}
else{
sc.getRequestDispatcher("/error.html").forward(request,response);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
529522:2010/02/23(火) 00:44:43
import java.io.*;
import java.util.*;
import java.sql.*;
public class KenDBBean implements Serializable
{
private Vector colname;
private Vector data;
private String syouhinname;
private String syouhindata;
public void readDB()
{
syouhinname = null;
syouhindata = null;
try{
// ドライバクラスをロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// データベースへ接続
Connection con = DriverManager.getConnection("jdbc:odbc:syouhinkanri");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();

// 全ての行を検索するSQL文を作成
String sql = "SELECT syouhinname FROM syouhinkanri";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
//列数の取得
ResultSetMetaData rm = rs.getMetaData();
int cnum = rm.getColumnCount();
colname = new Vector(cnum);

   //続く
530522:2010/02/23(火) 00:45:38
//列名の取得
for(int i=1; i<=cnum; i++){
colname.addElement(rm.getColumnName(i).toString());
}
//行の取得
data = new Vector();
while(rs.next()){
Vector rowdata = new Vector();
for(int i=1; i<=cnum; i++){
rowdata.addElement(rs.getObject(i).toString());
}
data.addElement(rowdata);
}
// データベースから切断
rs.close();
stmt.close();
con.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
// (以下略 )
}
531522:2010/02/23(火) 00:51:11
Tomcatを使わずJavaだけだったらJDBC-ODBCでアクセスできます。
でもTomcatを使うと、sun.jdbc.odbc.JdbcOdbcDriverでは接続できません。

Tomcatでは、MS-Accessのmdbは使えないということでしょうか。
下記のブログの人は、MySQLに変えたらうまくいったみたいだし。
http://ozacoffee.asablo.jp/blog/2008/03/10/2722178

MS-Accessのmdbなんかやめて、そうしなさいってことですかね...。
532デフォルトの名無しさん:2010/02/23(火) 00:52:43
この「syouhinkanri」データソースにエクセルからはつながる?
533522:2010/02/23(火) 01:11:07
TomcatをはずしてJavaだけの世界ならつながります。

import java.io.*;
import java.util.*;
import java.sql.*;
public class KenDBtest implements Serializable
{
private static Vector colname;
private static Vector data;
private static String syouhinname;
private static String syouhindata;

public static void main(String[] args)
{
syouhinname = null;
syouhindata = null;
try{
// ドライバクラスをロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// データベースへ接続
Connection con = DriverManager.getConnection("jdbc:odbc:syouhinkanri");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();

// 全ての行を検索するSQL文を作成
String sql = "SELECT syouhinname FROM syouhinkanri";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
//列数の取得
ResultSetMetaData rm = rs.getMetaData();
int cnum = rm.getColumnCount();
colname = new Vector(cnum);
534522:2010/02/23(火) 01:12:52
//列名の取得
for(int i=1; i<=cnum; i++){
colname.addElement(rm.getColumnName(i).toString());
}
//行の取得
data = new Vector();
while(rs.next()){
Vector rowdata = new Vector();
for(int i=1; i<=cnum; i++){
rowdata.addElement(rs.getObject(i).toString());
}
data.addElement(rowdata);
}

System.out.println("data");
System.out.println(data);
System.out.println("colname");
System.out.println(colname);
// データベースから切断
rs.close();
stmt.close();
con.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}

エクセルからは試していませんが。
535デフォルトの名無しさん:2010/02/23(火) 01:19:36
分からん。クラスローダーが違ったりすると何か問題あんだっけ。
536デフォルトの名無しさん:2010/02/23(火) 01:21:06
>>511

ありがとうございます。

'(' または '[' がありません。
List<List<Channel>> platform = new ArrayList<List<Channel>>();
             ^← これは<Listの < の下についてました。

よくわからんとです。
537デフォルトの名無しさん:2010/02/23(火) 01:22:40
補足

 ^← これは<Listの < の下についてました。


 ^← これは new ArrayList<Listの < の下についてました。
538デフォルトの名無しさん:2010/02/23(火) 01:27:22
最新版の Java を入れろ。
539デフォルトの名無しさん:2010/02/23(火) 01:40:06
>>538

アイアイサー

以下DLします
Java SE Development Kit 5.0u22 
540デフォルトの名無しさん:2010/02/23(火) 01:54:45
VB.NET/C#と.NET系の開発をWin/Webと今までやってきて、そろそろJavaなどにも手をつけてみようかと
思うのですが、何かおすすめの参考書などはありますか?
541539:2010/02/23(火) 02:03:16
>>538

ありがとうございます。
問題なくいけました。

ジェネリック勉強になりました。
(匿名クラスがジェネリックでいけるということなのかはよくわからんが)
542デフォルトの名無しさん:2010/02/23(火) 03:38:33
>>540

>>1
のwikiに入門者向け推薦図書あるよ
543デフォルトの名無しさん:2010/02/23(火) 03:43:20
>>522
tomcat mdb
でぐぐるとふつーにできてるみたいだが。

ぐぐって一番上に出てきたサイトと同じやり方でやるとどうなる?
544デフォルトの名無しさん:2010/02/23(火) 20:21:20
ソースをスレに張り付けるな
545デフォルトの名無しさん:2010/02/23(火) 20:57:03
貼れといったり貼るなと言ったり

貼れな!
546デフォルトの名無しさん:2010/02/23(火) 21:33:04
【!緊急アンケート!】

あなたは、スレにソースを貼っても・・・
良い派?悪い派?

良いと思う人は、 ○←をクリック
悪いと思う人は、 ●←をクリック
547デフォルトの名無しさん:2010/02/23(火) 21:41:20
その他 ( ソースの抜粋で5行以内なら )
548デフォルトの名無しさん:2010/02/23(火) 21:44:12
モリタポ
549デフォルトの名無しさん:2010/02/23(火) 21:53:47
ソースをカレーにかけるな
550デフォルトの名無しさん:2010/02/23(火) 22:55:41
カレーにソースかけるのは許せない
551デフォルトの名無しさん:2010/02/23(火) 22:56:36
そーっすね
552デフォルトの名無しさん:2010/02/23(火) 23:19:43
ソースにカレーをかけるのは許せそう
553デフォルトの名無しさん:2010/02/23(火) 23:28:17
加齢くさいソース?
554デフォルトの名無しさん:2010/02/23(火) 23:40:15
ソースがカレーにアウンダ
555デフォルトの名無しさん:2010/02/23(火) 23:49:06
カレーにソースかけるやつは、
アルミホイルを奥歯で噛んで、あぁぁぁぁあああッ〜〜!ってなって死ね
556デフォルトの名無しさん:2010/02/23(火) 23:52:39
ソースはカレー作ってるときに入れるだろ
557デフォルトの名無しさん:2010/02/23(火) 23:57:33

Selector#select(0)で無限待ちしているのに、
select(0)がすぐリターンして、しかも戻り値が0の現象が発生しています。
(SelectorでOP_CONNECT、OP_READ、OP_WRITEを監視しています)

ttp://java.sun.com/javase/ja/6/docs/ja/api/java/nio/channels/Selector.html#select%28long%29
を読む限り、select(0)の戻り値が0になることは
ありえないように理解しているのですが、間違えてますか?
558デフォルトの名無しさん:2010/02/24(水) 00:16:36
>>557
>>557
>を読む限り、select(0)の戻り値が0になることは
>ありえないように理解しているのですが、間違えてますか?

ちょwwww
本当に読んだんか?

>戻り値:
> 更新された実行可能操作セットを持つキーの数。ゼロの場合もある

クラスの説明が長いのに幻惑されてメソッドの仕様を確認するのを忘れてるんじゃね?
559デフォルトの名無しさん:2010/02/24(水) 00:26:02
>>557
無期限待ちの select(0) が 0 を返すケースは次の二つだけどこれは大丈夫なの?
・このセレクタの wakeup メソッドが呼び出された場合
・現在のスレッドに対して割り込みが発生した場合

select(0) の前にスレッドが割り込まれているか確認してみたら?
if(Thread.interrupted()){
  throw new IllegalStateException("割り込まれてます");
}
int c = selector.select(0);
560510:2010/02/24(水) 00:43:26
1 synchronized void platform_order(int p, final Channel c) {
2
3  List<List<Channel>> platform = new ArrayList<List<Channel>>();
4
5
6 if(platform.get(p) == null){
7
8 platform.add(p, new ArrayList<Channel>(){{add(c);}});
9 } else {
0 platform.get(p).add(c);
}


最終こんな風にしてみました。

8行目 匿名クラス & 初期化ブロックを使いました。
0行目 入れ子の配列に追加するのでこうなる。platform.add(p, c)と錯覚していた


エラー : 8行目 ローカル変数 c は内部クラスからアクセスされます。final で宣言される必要があります

んで、1行目のcにfinalをつけました。エラーがなくなりました。
適当な処置なのかはよくわからんが。アドバイスあったらお願いします。
561デフォルトの名無しさん:2010/02/24(水) 00:47:37
どこで覚えたその書き方?
その発想は無かったわ。
562デフォルトの名無しさん:2010/02/24(水) 00:54:45
・内部クラスから外のローカル変数を参照するには final 宣言が必要。
・{add(c);} の部分は無名クラスのコンストラクタに相当する。つまり内部クラスから
 外のローカル変数 c を参照しているので final が必要。
563デフォルトの名無しさん:2010/02/24(水) 01:29:06
>>561

http://d.hatena.ne.jp/t_yano/20080622/1214087678


探していたらここでみつかりましたよ
564560:2010/02/24(水) 01:30:53
ひょっとして

javaでは

try でやるのがスタンダードなのでしょうか。

そもそも、要素があるなしを判定する
platform.get(p) == null

適当なのでしょうか
565デフォルトの名無しさん:2010/02/24(水) 01:34:25
>>562

なるほど

では、内部クラスから外のローカル変数を参照するのに、
それが定数でない場合、

参照する適切な方法はあるのでしょうか?
566デフォルトの名無しさん:2010/02/24(水) 01:46:46
>>510
java.lang.IndexOutOfBoundsException起こして何がしたいんだ?
567デフォルトの名無しさん:2010/02/24(水) 01:50:27
>>566

そうなんです。
そのエラーがでます。
ですが、プログラムは止まらず動いてくれるようです。

だから、>>564の疑問となりました。
568デフォルトの名無しさん:2010/02/24(水) 02:01:52
platform_orderの呼び出し元(か更に上)でcatchしてるんじゃないの。
業務エラーを例外として実装するのは好ましくない。
この場合はp(のInteger)をkeyとするMapで表現するといいのでは?

Map<Integer, List<Channel>> platform ...

さらに、List<Channel>を匿名クラスとインスタンス初期化子で
生成するのもトリッキー過ぎると思う。
platform.add(p, new ArrayList<Channel>(){{add(c);}});は
platform.put(p, new ArrayList<Channel>(Arrays.asList(c));
か、そもそもArrayList<Channel>をやめて独自クラスを定義して、
Channel可変引数を受け取るコンストラクタを定義するべき。
569567:2010/02/24(水) 02:20:22
>>568

java.lang.IndexOutOfBoundsExceptionが発生するのは、
想定内です。

要素がなければ、追加する」
をやるとして、
if文を使うか、
tryでやるように処理するのが適当なのか、
「そもそもの部分」 がおかしいのか

どうなんだろうかと。

ちなみに
platform.put(p, new ArrayList<Channel>(Arrays.asList(c));
Arraysは、
どっかでnewしたオブジェクトなんですよね。
570デフォルトの名無しさん:2010/02/24(水) 02:33:06
プログラムが業務上起こりうる状態でExceptionを投げるのは
(一般に)正しい実装ではありません。

そもそも「(あるindexの)要素がなければ追加する」処理を実現するために、
ArrayListを使うのは適切ではありません。

匿名クラスを使った場合でも、結局オブジェクトが
newされていることに変わりはありません。
571567:2010/02/24(水) 02:33:13
失礼。

プログラムは動いていた。

が、該当スレッドはおちていたぽい。
572デフォルトの名無しさん:2010/02/24(水) 02:36:06
>Arraysは、
>どっかでnewしたオブジェクトなんですよね。
これはArrays.asListが返すオブジェクトのことではなく、
Arrays自身のことを言っているのかな?

であればasListはクラスメソッドなので呼び出しの為に
Arraysクラスのインスタンスが生成されることはありません。
573567:2010/02/24(水) 02:36:11
>>570

はい。

Arrays.asList(c)
のやり方が一番適当な感じはしています。

これは、newせず使えるStringみたいのでしょうか。
574デフォルトの名無しさん:2010/02/24(水) 02:39:55
例外機構のオーバーヘッドが無駄なので普通は try-catch ではやらない。
p が platform.size() 以下かどうかを判断しる。というかその API 設計じゃ
p が任意でシーケンシャルアクセスする保証がならもっと防衛的コーディングしる。

while(p>=platform.size()){
  platform.add(new ArrayList<Channel>());
}
platform.get(p).add(c);
575557:2010/02/24(水) 06:57:30

>>558-559 ちゃんと読めてませんでしたorz 割り込み確認してみます
576デフォルトの名無しさん:2010/02/24(水) 11:15:38
>>570
>プログラムが業務上起こりうる状態でExceptionを投げるのは
>(一般に)正しい実装ではありません。

2重更新とかどうしてる?
Aさんの更新作業中にBさんがすでに更新してたみたいなの。
RuntimeException継承したクラス作って、
一気に上まで放り投げない?
577デフォルトの名無しさん:2010/02/24(水) 17:56:54
>>557
OP_WRITEの監視は書き込むデータが本当に存在してる時だけにしろ
書き込みは通常はいつでもできるんだからselectは当然すぐに返ってくる
書き込めるデータができてからOP_WRITEを加えて書き込みが終わったらOP_WRITEを外す
578デフォルトの名無しさん:2010/02/24(水) 19:36:17
>>576
単なる便利なlong jump機構として例外を使うなって言われないか?
二重更新が起こらないようにシステムを作っているにも関わらずそうなってしまったとか、
例外はあくまでも普通起こっちゃいかんだろって状態の検出に利用されるべきかと。
579デフォルトの名無しさん:2010/02/24(水) 20:12:55
下のコードは、300x300のウィンドウに30x30の四角を縦横10個ずつ表示するプログラムです。
ウィンドウの左上(タイトルバーの下)から右下まで、100の四角がぴったり収まるのを期待しましたが、
かなりずれてしまいます。なぜですか??
ちなみに、ズレの大きさはWindowsとLinuxでちょっと異なります….。

import java.awt.*;
import javax.swing.*;

class Test extends JFrame

public static void main(String[] args) {
Test f = new Test();
f.setBounds(0, 0, 300, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);


public void paint(Graphics g) {
g.setColor(new Color(255, 255, 255));
g.fillRect(0, 0, 300, 300);
g.setColor(new Color(0, 0, 0));
for(int y = 0; y < 10; y++) {
for(int x = 0; x < 10; x++) {
g.drawRect(x * 30, y * 30, 30, 30);





初心者なので、いろいろとおかしな書き方をしているかもしれません。
何か問題があれば、ぜひご教示ください!
580デフォルトの名無しさん:2010/02/24(水) 20:21:45
>>579
全角とかキチガイかよ
581デフォルトの名無しさん:2010/02/24(水) 20:22:56
>>579
JFrameのpaintメソッドをオーバーライドして何かをかかせることは普通はやらない
JComponentやJPanelのpaintComponentメソッドをオーバーライドしたサブクラスを作って
それをJFrameのContentPaneに加えるかContentPaneそのものとして設定するかする
582デフォルトの名無しさん:2010/02/24(水) 20:26:54
>>579
JFrame#setBoundsに指定している300,300というのはタイトルバーや枠も含んだ大きさだから
583デフォルトの名無しさん:2010/02/24(水) 20:49:08
>>578
おまいの例外に関する認識はおかしい。
例外は元々スタック巻き戻しつつ long jump するもの。
584579:2010/02/24(水) 20:54:53
>>580
すみません。規制で書き込めないので携帯で入力したら、文字が小さくて全角に気づきませんでした。

>>581
paintメソッドをオーバーライドしたサンプルが多数載っていたので、普通はやらない方法だと知りませんでした。
勉強になります。これ↓でいいでしょうか。

import java.awt.*;
import javax.swing.*;

class Test {{
public static void main(String[] args) {
JFrame f = new JFrame();
f.getContentPane().add(new Component());
f.setBounds(0, 0, 300, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}

class Component extends JComponent {
public void paintComponent(Graphics g) {
g.setColor(new Color(255, 255, 255));
g.fillRect(0, 0, 300, 300);
g.setColor(new Color(0, 0, 0));
for(int y = 0; y < 10; y++) {
for(int x = 0; x < 10; x++) {
g.drawRect(x * 30, y * 30, 30, 30);
}
}
}
}
585579:2010/02/24(水) 20:56:43
>>582
なるほど、そうだったんですね。
タイトルバー等を含めない指定方法はないのでしょうか。
あるいは、タイトルバーや枠の高さ・幅を取得する方法があれば、何とかなるのですが…。
586579:2010/02/24(水) 21:00:31
Testクラスの括弧の数を間違えました。

class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
f.getContentPane().add(new Component());
f.setBounds(0, 0, 300, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
587デフォルトの名無しさん:2010/02/24(水) 21:55:57
JavaServletでsessionの勉強に思ったことなんですが
session.setAttribute("MESSAGE" , "Hello World")
とするとセッションの変数名MESSAGE に Hello Worldを文字列として格納になりますが
なぜ変数名MESSAGEは””ダブルコーテーションで囲んでいるのでしょうか?
変数名ではなく文字列のように見えてしまい不思議に思ったので教えて下さい。
588デフォルトの名無しさん:2010/02/24(水) 22:01:59
>>587
変数名ではなく文字列で正しい。Map<String, Object>と同じだと思えばいい。
HttpSession#setAttribute()の第一引数を変数名と説明するのは便宜的なもの。
589デフォルトの名無しさん:2010/02/24(水) 22:06:38
>>583
だから単なる便利なlong jump機構として例外を使うなってことだよ。使い方を問題にしてる。
二重更新なんてそれを防止しない造りなら「業務上起こりうる状態」なんだから、
例外機構でもって放り投げるもんじゃないということだ。
異常状態を放り投げるのに例外機構を使うことに異議はない。
590デフォルトの名無しさん:2010/02/24(水) 22:12:27
設計上起こりうる状態に例外使わないとか、なんか 2000 年頃のコーディング規約
でも盲進してんのか?
591デフォルトの名無しさん:2010/02/24(水) 22:15:19
>>589
それは RuntimeException と Exception の使い分けでやること。
業務上発生し得ない状況でしか例外出さないなんて趣味は、呼び出しスタック
3 層程度の小規模アプリでしか通用しない。
592デフォルトの名無しさん:2010/02/24(水) 22:16:17
うちの会社の新人がテキストボックスの値を検査すんのに、
tryでintにキャストしてたりしてた訳だが、それが正しいとでも言うつもりか?
593デフォルトの名無しさん:2010/02/24(水) 22:18:28
>>590
うんにゃ。
俺自身はそんな主義で設計も実装もしない。
どちらかというと使いまくり感があるな。
594デフォルトの名無しさん:2010/02/24(水) 22:18:48
最近ジャバスレで暴れてるネトウヨだろ
でっかいウンコなんだから触るな
595デフォルトの名無しさん:2010/02/24(水) 22:19:45
>>592
誰もそんな話しはしてないと思うよ。
596デフォルトの名無しさん:2010/02/24(水) 22:26:20
>>584-585
中身をかくためのコンポーネントをContentPaneに加えるやり方なら外枠とかを気にしなくてすむ
このやり方だとコンポーネント自体の座標系で中身をかけるので
どうしてもJFrameの外枠サイズが必要ならgetInsetsというメソッドで取ることができる
> paintメソッドをオーバーライドしたサンプルが多数載っていた
AWTのアプレットの例とかじゃないか
Swingの枠組ではpaintメソッドをオーバーライドするサンプルは稀
597デフォルトの名無しさん:2010/02/24(水) 22:38:58
でっかいウンコの強烈なニオイだけは勘弁して〜
598デフォルトの名無しさん:2010/02/24(水) 22:49:26
>>583はC畑かどっかの人間なの?
599579:2010/02/24(水) 23:08:29
>>596
> 中身をかくためのコンポーネントをContentPaneに加えるやり方なら外枠とかを気にしなくてすむ

その方法でやってみます!

> AWTのアプレットの例とかじゃないか

そうかもしれません。
まだAWTとSwingの境界がイメージできていない状態です・・・。
600デフォルトの名無しさん:2010/02/25(木) 00:08:27
業務上起こりうる状態で例外云々の言いだしっぺです。

そもそも2重更新が発生することが業務的に想定外ならば例外でいいと思う。
それは設計上のミスであるか、ロジックの不具合だから。
逆に、想定されるケースにもかかわらずにチェックをサボって
例外投げてたらビジネスロジックの品質が残念ってことでしょ。

話がごっちゃになってるようだけど、
上記は「ビジネスユースケース」単位の実装をしたロジックレイヤーで見た場合の話ね。
個別の機能で見れば、例えば永続層は2重登録されそうになれば例外を投げるのは当然。
呼び出の際に「事前条件」「事後条件」「不変条件」が破られれば、
即座に例外状態を表明するのは各コンポーネントの義務だから。
コンポーネントの粒度(呼び出し階層の位置と条件による契約)によって、
「ある状態」が意味するところが変わるだけ。
この原則はアプリケーションの規模が呼び出し3層だろうがなかろうが基本的に変わらん。

大事なことなんでもう一度
プログラムが業務上起こりうる状態でExceptionを投げるのは
(一般に)正しい実装ではありません。
601デフォルトの名無しさん:2010/02/25(木) 00:17:04
荒らすなカス
602デフォルトの名無しさん:2010/02/25(木) 00:39:14
例外投げてる時点でチェックしてるじゃん。
バックエンドでテーブル舐めたら該当ユーザのレコードが無かったので
AuthException 投げました、フロント側でそれを拾って「ユーザIDまたは
パスワードが違います」と表示しました。
普通の設計だっての。
603デフォルトの名無しさん:2010/02/25(木) 00:54:28
「ユーザのレコードが存在する」という事前条件があり、
かつそれが破られたのだから例外でいいと思いますよ。

認証機能全体として見れば、テーブル舐めるコンポーネントが
例外投げる可能性を見越してexception handlingしてエラー情報を表示してるわけでしょ。
指定ユーザが未登録かもしれないという想定される状態に対して、
きちんと責任取ってると思いますし普通の設計です。
604デフォルトの名無しさん:2010/02/25(木) 01:08:55
まずおまえ「正常系」「異常系」でしか見てないだろ。業務アプリ設計ってのは
「想定内の正常系」「想定内の異常系」「想定外の異常系」の三つで考えるもんだよ。
想定内の異常系がおまえの頭の中では異常系に入ってるから「業務上起こりうる状態で
例外投げるのはNG」「でも認証失敗は前提が破られたからおk」と妙な話しが始まるわけ。

このへんの論議は前世紀の終わりに散々ここで出尽くしてるよ。
605デフォルトの名無しさん:2010/02/25(木) 01:12:33
>>604
なにその3つ?(笑)
606デフォルトの名無しさん:2010/02/25(木) 01:14:45
long jmpがうんたらからんたら言ってるレベルに理解しろってのも無理でしょ。
607デフォルトの名無しさん:2010/02/25(木) 01:15:11
正常系、準正常系、異常系の考え方は至極普通だと思うが。
608デフォルトの名無しさん:2010/02/25(木) 01:16:51
準異常系ってを追加しないでおk?
609デフォルトの名無しさん:2010/02/25(木) 01:17:19
>>600はコンポーネントの粒度で状態の意味が変わるって書いてる。
コールスタックの深いところで例外が起きても、
それを業務全体のレベルでは
*業務的に想定できる状態で起きた例外なのであれば*
例外のまま放置するなって意味だろ?


610デフォルトの名無しさん:2010/02/25(木) 01:20:56
荒らすなチンカス
611デフォルトの名無しさん:2010/02/25(木) 01:23:19
いいえ、設計上必要なリカバリ云々という話ではなく、準正常系でも例外投げるなと言っておられます。
612デフォルトの名無しさん:2010/02/25(木) 01:29:16
>>609
末端で起きた異常系の対処方法が設計されてなくて、勝手に中断して上へ投げるのは
(一般に) 正しい実装ではありません、とか、そんなレベルの低い話してたわけ?
613デフォルトの名無しさん:2010/02/25(木) 01:31:19
準正常系で例外投げないほうが良いだろ。
614デフォルトの名無しさん:2010/02/25(木) 01:33:29
違うだろ、準正常系で例外飛んじゃう時点でおかしいだろ。
615デフォルトの名無しさん:2010/02/25(木) 01:35:17
それは状況による。というか、そんなの中断するか続行するかしかないんだから
普通に設計してればどちらかに定まる。おまいの趣味思想は関係ない。
616デフォルトの名無しさん:2010/02/25(木) 01:35:43
なんとなく600に噛み付いてるのは
コンポーネントの役責が理解できてないと見た。
617デフォルトの名無しさん:2010/02/25(木) 01:35:57
>>604
ん〜なにその3つ?(笑
618デフォルトの名無しさん:2010/02/25(木) 01:36:50
テスター?
619デフォルトの名無しさん:2010/02/25(木) 01:37:33
Java自体もう廃れ言語なのに。負け組同士仲良くしようぜ
620デフォルトの名無しさん:2010/02/25(木) 01:38:25
業務の準正常系が起きた場合、
業務コンポーネントが例外投げてどうすんのよ。
プログラム終わっちゃうよ?w
621デフォルトの名無しさん:2010/02/25(木) 01:39:30
>>620
おまいの所の様にフレームワークもまともに組めてないところじゃそうかもな。
622デフォルトの名無しさん:2010/02/25(木) 01:49:47
<longjmp.h>ですから…
623デフォルトの名無しさん:2010/02/25(木) 01:50:56
準正常系のとき、業務処理としての例外は起きない。
準正常系のとき、個別のコンポーネントでは例外が起きるかもしれない。
ってことは読めた。
業務的に起こりえる状態 = 準正常系って意味だと読んだ。
624デフォルトの名無しさん:2010/02/25(木) 01:52:24
その、独り言言いながら補足してくの止めたら?
625デフォルトの名無しさん:2010/02/25(木) 01:53:29
すいません。興味深い話題だったんだけど、
微妙に論点がずれてて分かりづらかったので。
626デフォルトの名無しさん:2010/02/25(木) 02:01:17
>>624
なんで?
627デフォルトの名無しさん:2010/02/25(木) 02:02:08
荒らすな
628デフォルトの名無しさん:2010/02/25(木) 02:02:11
例外が適切かどうかなんてアプリの動作仕様によりけりじゃね?
個別のコンポーネントは機能に閉じてるから切り口としては次元が違う。
629デフォルトの名無しさん:2010/02/25(木) 02:08:27
例外を long jump に例えた時点で COBOL 言語屋あたりじゃね。
630デフォルトの名無しさん:2010/02/25(木) 02:09:47
準正常系って状態のときに、業務処理が例外を投げていいと言うのであれば、
その例外をフレームワークがキャッチした場合、例外が準正常か異常かフレームワークはどうやって判断すんの?
そんでもって準正常と判断できた場合にフレームワークはなにをしてあげるわけ?
個別の業務処理の中身が詳細に分からないと適切に処理できなくね?
631デフォルトの名無しさん:2010/02/25(木) 02:10:28
>>570
> そもそも「(あるindexの)要素がなければ追加する」処理を実現するために、
> ArrayListを使うのは適切ではありません。
なんで? 自動伸縮に ArrayList が適切かどうかなんてあんた関係なくね?
632デフォルトの名無しさん:2010/02/25(木) 02:13:08
>>630
おまえじゃ一生頑張ってもジャヴァは無理
633デフォルトの名無しさん:2010/02/25(木) 02:15:41
>>631
int pがシーケンシャルに呼ばれるか判断できなかったからだろ。
634デフォルトの名無しさん:2010/02/25(木) 02:21:51
ジャヴァってのはやったことないんで一生無理なんでしょうね。

例外と結果オブジェクト両方とプレゼンテーションのマッピングを
フレームワークが管理するなんて大変だなと個人的には思いました。
635デフォルトの名無しさん:2010/02/25(木) 02:23:50
>>630
フレームワークまで行ったら「エラーメッセージ付きで前画面に戻る」が一般的な動作だな。
ドメイン固有の制約等生かせばもう少しできるが。それ以上が必要なら上層の業務ロジックが
拾ってしてリカバリ。上層から見たら下層は「個別のコンポーネント」であって、これを
long jump と混同するのはそもそもコンポーネント設計が分かっていない。
もちろんその場でリカバリしなきゃならない場合は例外投げずに対処する。
636デフォルトの名無しさん:2010/02/25(木) 02:25:56
>>633
>>574 で良いじゃん? ArrayList がいけない理由は?
637デフォルトの名無しさん:2010/02/25(木) 02:30:58
使われないかもしれないArrayListのインスタンス生成をループで回す理由がないだろ。
pがランダムポート番号とかだったらそうとう無駄に回るだろ?
638デフォルトの名無しさん:2010/02/25(木) 02:30:58
そもそも最初の >>570 からしてかなりハズしてる。
639デフォルトの名無しさん:2010/02/25(木) 02:31:59
具体的にどこが外してんの?
640デフォルトの名無しさん:2010/02/25(木) 02:33:07
641デフォルトの名無しさん:2010/02/25(木) 02:33:16
質問には何一つ答えてないじゃん。
642デフォルトの名無しさん:2010/02/25(木) 02:34:44
>>637
その判断は前提を知ってる本人がすることであってお前がすることじゃないでしょw
643デフォルトの名無しさん:2010/02/25(木) 02:35:33
結局フレームワークが業務毎の然るべき遷移先を面倒みてるわけですよね。
しかも準正常系かそれ以外の例外であるかを選り分けてキャッチする形で。

ユーザ視点でみれば結局業務処理の結果が返ってるわけで、
例外の形を借りて結果オブジェクトを返してるように思えます。
644デフォルトの名無しさん:2010/02/25(木) 02:43:40
まあArrayListが相応しかったのかも知れないね。
個人的にはwhileループのコード書いてる同僚がいたら勘弁してもらいたいが。
645デフォルトの名無しさん:2010/02/25(木) 02:47:02
>>643
想定された中の動作だからそういう解釈でもかまわんよ。
これを long jump と混同したり、業務要件上の "中断" か何かと勘違いしている人が
混じってたみたいだが。
646デフォルトの名無しさん:2010/02/25(木) 02:47:57
>>643
例外は Output ですよ。
647デフォルトの名無しさん:2010/02/25(木) 03:34:40
ぶっちゃけJavaの利点て何なんでしょうか
ブラウザ上で動作すること?
スタンドアローンで動かすにはJRE要求したり、使いやすくはありませんよね
648デフォルトの名無しさん:2010/02/25(木) 03:46:52
・マルチプラットフォーム、設計のしやすさ、機能の多さ、無料の開発環境が充実。
・リソース管理やセキュリティ管理が楽。
・OSX なら JRE 標準で通常のアプリとまるっきり同じに実行可能。
・サーバから組み込みまで応用範囲が広い。
・VM もライブラリもそれなりに安定してる。
649デフォルトの名無しさん:2010/02/25(木) 03:55:12
>>647
オブジェクト指向言語として早めに出てきたから、
サーバサイド中、大規模開発のスタンダードになってる。
WindowsでもUnix系でも動く。
eclipseが便利。
650デフォルトの名無しさん:2010/02/25(木) 05:38:35
基本情報取得のため、本のサンプルコードをエディタに打ち込んでいるけど、どうもやり難い

本で書かれたコードをエディタに打ち込む時、プロは何か文具を利用しているの?
651デフォルトの名無しさん:2010/02/25(木) 07:33:05
eclipseつかっとけ
652デフォルトの名無しさん:2010/02/25(木) 08:42:05
HttpClient はなかまをよんだ!
HttpCore があらわれた!
HttpCore NIO があらわれた!
HttpMIME があらわれた!
Commons Logging があらわれた!

マドハンドかよ…
653デフォルトの名無しさん:2010/02/25(木) 10:32:35
>>650
算数の九九と同じで、反復練習だ。
手を動かして、指に構文、文法を叩き込む。
いまどきIDEが補完してくれるという意見もあるが、
それは鍛錬しない自分に対する言い訳。
電卓があれば九九は覚えなくて良い、というのはもっともに聞こえるが、
脳内で処理できるか、外部装置を使わざるを得ないかによって、思考のスピードと
幅に差がでて、結果としてそれが人間のパフォーマンスの差になる。
654デフォルトの名無しさん:2010/02/25(木) 10:35:55
unix用のjavaで、ロックをする時って内部でセマフォを使用しているのでしょうか?
655デフォルトの名無しさん:2010/02/25(木) 10:46:33
>>653
俺の先生とおなじこと言ってる。
656デフォルトの名無しさん:2010/02/25(木) 11:10:24
>>654
biased locking とかいう手法が使われているらしい
657デフォルトの名無しさん:2010/02/25(木) 11:40:02
>>648-649
なるほど、一般的なアプリケーションとして見たことがほとんどなかったのですが、
サーバ用とか組み込みとかでは活躍しているんですね
サーバってUnix系多いんでしたっけ

逆に言うとWindowsのデスクトップ向けのアプリ開発には向かないのでしょうか
658デフォルトの名無しさん:2010/02/25(木) 11:40:53
>>653
アナログ人間乙
659デフォルトの名無しさん:2010/02/25(木) 12:23:49
>>657
Windowsのデスクトップなら素直にC#使っとくべし。
660デフォルトの名無しさん:2010/02/25(木) 12:24:28
>>652
HttpClientに必要なのは
HttpCoreだけでしょ。
CommonsのLangやらLoggingやらはデフォルトで設定されてるレベル。
661デフォルトの名無しさん:2010/02/25(木) 12:27:08
>>660
Loggingは標準APIにも入っちゃったので微妙か。
それでもJakartaプロダクト群を利用するなら取り敢えず入れとけレベルではある。
662デフォルトの名無しさん:2010/02/25(木) 16:11:27
何度見てもlong jumpがひどすぎる
663デフォルトの名無しさん:2010/02/25(木) 17:15:42
くやしかったの?
664デフォルトの名無しさん:2010/02/25(木) 18:11:23
何自問自答してんの
665デフォルトの名無しさん:2010/02/25(木) 19:33:35
結局どっちがいいんだよ?
666デフォルトの名無しさん:2010/02/25(木) 19:44:55
>>653
パフォーマンス(笑)
667デフォルトの名無しさん:2010/02/25(木) 20:43:45
こいつら煽るしか能がないのか?
668デフォルトの名無しさん:2010/02/25(木) 21:19:22
ネトウヨ(笑)
669デフォルトの名無しさん:2010/02/25(木) 21:30:16
ネストクラスを使おうと思っているのですが、

http://codepad.org/Gy5XFYc4

ではうまくいきません。
どう書けばいいのでしょうか。
よろしくお願いいたします。
670デフォルトの名無しさん:2010/02/25(木) 21:35:10
Top t = new Top();
Top.Nested i = t.new Nested();
i.doNestedMethod();
671669:2010/02/25(木) 21:47:56
>>670
ありがとうございました。
672デフォルトの名無しさん:2010/02/25(木) 22:11:06
非常に初歩的な質問なのですが、classファイルからはコメントを参照できますでしょうか?
またコメントの書き換えでclassファイルに変更は生じますでしょうか?

よろしくお願いします
673デフォルトの名無しさん:2010/02/25(木) 22:27:40
コンパイルされた *.class ファイルにコメントは含まれていませんので物理的に無理です。
*.class ファイルには行番号情報などが含まれるのでコメントの変更でバイナリが異なる
可能性は大いにあります。
674デフォルトの名無しさん:2010/02/25(木) 22:28:55
>>673
丁寧な説明ありがとうございます
参考にさせていただきます
675672:2010/02/25(木) 22:30:46
>>674です、スレ汚し失礼しました
676デフォルトの名無しさん:2010/02/25(木) 23:07:54
気にいった。うちに来て俺をファックしていいぞ。
677デフォルトの名無しさん:2010/02/26(金) 00:33:47
ネトウヨ(笑)
678デフォルトの名無しさん:2010/02/26(金) 08:36:54
右翼の構成員のほとんどは日本国民じゃなかったりする現実w
在日乙www
679デフォルトの名無しさん:2010/02/26(金) 10:14:47
街宣右翼は朝鮮人だけどネトウヨは日本人
680デフォルトの名無しさん:2010/02/26(金) 11:44:44
スレタイ読めない連中は朝鮮人か?
681デフォルトの名無しさん:2010/02/27(土) 00:38:33
javac でデフォルト設定でコンパイルすると100個バグが見つかった
時点でコンパイルが終了します。
この個数を変更するオプションは無いのでしょうか?

javac -help でも詳しい説明が表示されないので困っています。
682デフォルトの名無しさん:2010/02/27(土) 00:41:34
と言うか、どんなコードですか、それ^^;
683デフォルトの名無しさん:2010/02/27(土) 00:51:14
>682
別言語からの移植作業の場合、
とりあえず、ざっと修正した後、
コンパイルしながら地道に修正するのですが、
コンパイル時全体のエラー数が分かれば
残り作業量がある程度わかるので、予定を立てやすい。
684デフォルトの名無しさん:2010/02/27(土) 01:19:35
構文系なら1ヶ所直したら100個のエラーが消える事もあるんだから何の指標にもなんねーw
そんなんで作業見積もり出してくる会社あったら切るわw
685デフォルトの名無しさん:2010/02/27(土) 02:10:19
>684
エラーの個数で計算するわけではありません。
内容も精査します。

ちなみに多少単純ミスはしてますが、構文はほぼ修正済みです。

C++からの移植で、ハードも別で、ライブラリも作成する必要があり。
ライブラリ周りのヘッダファイルはすべてあるが、ソースの一部がないので
ライブラリ関数の作成が必要です。
ヘッダにある関数をすべて作成するのは、かなりの重労働なので
使用しているライブラリ関数を作成する予定です。
エラーメッセージから作成しなければならない関数などもわかるので
聞いています。

Grepを使って調べる方法もあるのですが、
似たような名前があったりと面倒で困ってます。
a::work()
b::work()

686デフォルトの名無しさん:2010/02/27(土) 09:08:46
-Xmaxerrors オプションも試してみた?
687デフォルトの名無しさん:2010/02/27(土) 10:44:43
ライブラリを実装する場合に,呼び出し口の数でタスクの分量を推測するのは危険だな
688デフォルトの名無しさん:2010/02/27(土) 10:56:15
>686
バージョンの違いか駄目でした。
1.4.2を使用しています。

>687
個数だけでは判断しませんよ。
関数の仕様は分かっているので、関数ごとの大体の作業量は分かります。
689デフォルトの名無しさん:2010/02/27(土) 11:17:52
とりあえず、コンパイルしては
不足分の空の関数作ってリストを作ることにしました。
690デフォルトの名無しさん:2010/02/27(土) 13:58:12
くだらん自己解決で終わるならいちいち書き込むな。
自己紹介しかしてないだろおまえ。
あと全レスで上げるな。
691デフォルトの名無しさん:2010/02/27(土) 14:12:16
関数と読んでいるあたりに、底しれない危険性を感じるのだが…
692デフォルトの名無しさん:2010/02/27(土) 17:16:24
独習javaを読み終えました。
javaプログラマーをめざすには、次に
Effective javaとjava言語で学ぶデザインパターン入門
のどちらを先に読むべきですかね?
693デフォルトの名無しさん:2010/02/27(土) 17:22:05
Java and Object Orientation: An Introduction
694デフォルトの名無しさん:2010/02/27(土) 19:12:37
プログラミング言語Java
695デフォルトの名無しさん:2010/02/27(土) 21:15:45
読んでばっかいないで手を動かせ
696デフォルトの名無しさん:2010/02/27(土) 22:58:35
Effective Javaは独習Java上がりのなんちゃってPGが読む本じゃないよw
697デフォルトの名無しさん:2010/02/27(土) 23:13:24
まあでも、なんちゃってPGからレベルを上げようと思うなら、読んでおいて損はない。
698デフォルトの名無しさん:2010/02/28(日) 00:11:01
Effective Javaは出来る限り早い段階で読んだ方がいいと思うよ。
あれは内容濃いからおそらく誰も一度で全て理解できないし、「ふーん」程度で十分。
699デフォルトの名無しさん:2010/02/28(日) 01:14:06
自称中級者レベルから読み始めると、んなこと当然わかっとるわって所もあるからな。
700デフォルトの名無しさん:2010/02/28(日) 01:25:46
ふーん
701デフォルトの名無しさん:2010/02/28(日) 04:44:59
swingの質問なんですけど

JMenuBarでドロップダウンしてる最中にJTextFieldをクリックしてフォーカスを移すと
ドロップダウンしたままのバグがあるのですが。
JTextFieldのfocusGainイベントでJMenuBarのドロップダウンを閉じる事で解消したいと思います。
しかし閉じる方法が解りません教えて下さい。
702デフォルトの名無しさん:2010/02/28(日) 07:16:42
ふーん
703701:2010/02/28(日) 07:36:54
すみません自力で解決しました。
704デフォルトの名無しさん:2010/02/28(日) 11:10:11
Java(笑)
705デフォルトの名無しさん:2010/02/28(日) 11:12:31
JPEGImageReadParam と
JPEGImageWriteParam を使って

getQTables()
getDCHuffmanTables()
getACHuffmanTables()で数量化テーブルとハフマンテーブルをそのままコピーして

jpegファイルをread→別名でwriteするサンプルコードを教えてください。
706デフォルトの名無しさん:2010/02/28(日) 14:41:57
シリアライズが何のために必要なのか
わかりません。おしえてください。
707デフォルトの名無しさん:2010/02/28(日) 15:39:22
>>706
一番使うであろうので言えば、オブジェクトそのもののやりとりに必要
708デフォルトの名無しさん:2010/02/28(日) 16:18:30
ジャバwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
709デフォルトの名無しさん:2010/02/28(日) 16:21:19
SOAPでC#<=>Java間なんかでクラスを受け渡したり。
710デフォルトの名無しさん:2010/02/28(日) 16:51:22
FileInputStream/FileOutputStream でファイルをオープンしてから FileChannel で Lock を
獲得するまでの間ってどういう状態になるんですか? ロック獲得する前に別の処理から
0 バイトにされたりしないんですか?
711706:2010/02/28(日) 16:57:33
同じプロジェクト以外(ファイル、DB、ネットワーク経由の他のJAVAアプリ)
に対してオブジェクトを受け渡すためのもの、
ということですか?
712デフォルトの名無しさん:2010/02/28(日) 16:59:40
Core JavaとEffective Javaは一度くらい読んだ方がいい。
あと言語関係なしにcode completeとデザインパターン本何か。
713デフォルトの名無しさん:2010/02/28(日) 17:13:39
>>711
いや、java間の通信なんかにも使う
簡単に言えば、Oracleにオブジェクトつっこむイメージと同等
714706:2010/02/28(日) 17:20:33
>Oracleにオブジェクトつっこむイメージ
すいません、イメージできないです…
715デフォルトの名無しさん:2010/02/28(日) 17:28:28
>>705
多分ここの連中よりgoogle先生の方が優しい
716デフォルトの名無しさん:2010/02/28(日) 19:46:16
あるオブジェクトをファイルに保存して、あとで読み出せたら楽じゃん。
そのためにはメモリ上に存在するオブジェクトを、バイト表現に変換してファイルに書き出したいわけじゃん。
それを実現するのがSerializeだよ。
保存先はなんでもいいし、読み込む方もクラス定義を参照できてればOK。
717706:2010/02/28(日) 19:56:55
わかりやすいです。
シリアライズで保存するクラスの中身は
どんなものなんですか?
ファイルに保存したとして、
クラスの中の
int a = 10;
とかはファイルでどんな形で保存されるんですか?
あほな質問ですいません。
718デフォルトの名無しさん:2010/02/28(日) 19:58:49
Serializableで保存したオブジェクトは、プラットフォームに依存しないものなのでしょうか?
719デフォルトの名無しさん:2010/02/28(日) 20:20:16
依存しない。
720デフォルトの名無しさん:2010/02/28(日) 20:57:40
色々なクラスでSerializableは将来サポートされませんとかあったような気がするんですけど
あれは一体何でしょうか?
721デフォルトの名無しさん:2010/02/28(日) 21:10:44
>>720
例えば class A { int a; } が次のバージョンで class A { short a1, a2; }
に変わっただけで互換性なくなる。

クラス内部のインスタンスフィールドをファクタリングする余地を残しときたいので
互換性は一切保証しないよん、と宣言してるだけ。
722デフォルトの名無しさん:2010/02/28(日) 21:31:38
>>715
それが
これらのクラスはおそらくこのようにjpegファイルを編集するために用意されているはずなのに
全くサンプルが見つからないのです
723デフォルトの名無しさん:2010/02/28(日) 21:44:01
>>721
ふーん
724デフォルトの名無しさん:2010/02/28(日) 22:07:15
すみません
自己解決しました。
もういいです。ここの連中は役に立たない。
725デフォルトの名無しさん:2010/02/28(日) 22:15:53
そうですね
726デフォルトの名無しさん:2010/02/28(日) 22:22:55
早くもこのスレは終了ですね
727デフォルトの名無しさん:2010/02/28(日) 22:43:28
ジャバザハットってもしかしてjava the hot って書くんですか?
728デフォルトの名無しさん:2010/02/28(日) 23:10:58
あんさん、それジャバザホットやないかw
729デフォルトの名無しさん:2010/03/02(火) 22:35:45
jdbcでselect発行して取得した件数返す関数ってありますか?
フェッチでまわす前に取得したのですが。
フェッチでまわした後ならget
730729:2010/03/02(火) 22:37:22
3行目は無視してください
731デフォルトの名無しさん:2010/03/02(火) 23:00:31
一応聞くけど、select count(*) from xxxx じゃダメなの?
732デフォルトの名無しさん:2010/03/02(火) 23:09:13
キーイベントを登録してあるパネルにボタンを実装して、ボタンを押すと
今まで動いていたキーイベントが動かなくなるのですがなにか良い解決法
はないでしょうか。
733729:2010/03/02(火) 23:19:19
>>731
2回SQL発行してもいいのですが、パフォーマンスを検証しているので
なるべく無駄な作業をなくした状態にしたいです。

734デフォルトの名無しさん:2010/03/02(火) 23:53:17
>>733
じゃあ、結果セットの形式によっちゃうけど。
ダメモトでResultSetにlast()してgetRow()とか。

って、パフォーマンス検証ならそれこそ別途count()じゃね?
数えてたらパフォーマンス変わっちゃうと思うが。

>>732
ボタン.addKeyListner(パネル) でどうかな?
735デフォルトの名無しさん:2010/03/03(水) 00:50:47
>>733

Oracleなら、こんな方法があるらしい。
http://oraclesqlpuzzle.hp.infoseek.co.jp/4-6.html

selectと同時に件数が取れるらしい。
手元にOracle環境ないので試してない。
736デフォルトの名無しさん:2010/03/03(水) 01:08:35
大量にオブジェクトを生成してたらOutOfMemoryErrorになったんだが…
JavaのヒープなんてOSから見れば仮想メモリなはずなんだからスワップ領域とか使っていくらでも空間を広げられはずでは?
737デフォルトの名無しさん:2010/03/03(水) 01:49:06
>>736
ヒープ領域に関して。

Javaは起動時にこんだけメモリを使うよってOSに伝えて、
それ以上使おうとしない。

例えば64mと宣言。
Javaからすると64mがスワップ領域だろうが知ったこっちゃなく、
それ以上使おうとするとJavaがOutOfMemoryだよって落ちる。
738デフォルトの名無しさん:2010/03/03(水) 02:36:27
java6からOSのメモリの1/4か1Gbyteなんだがどんだけ富豪プログラミングやってんだ?
739デフォルトの名無しさん:2010/03/03(水) 02:44:44
メモリ上に展開すると1GBじゃ全然足りない事はいくらでもあるしなあ。
それをjavaでやるなというなら正論では有るが。
8GB積んでも2GBまでしか使えないしねえ。
740デフォルトの名無しさん:2010/03/03(水) 05:25:00
おまえは AS/400 がお似合いだ。
741デフォルトの名無しさん:2010/03/03(水) 11:36:12
asのjavaだとありったけ使えると言う仕様?
742デフォルトの名無しさん:2010/03/03(水) 12:26:57
class Test {
public void main(String args) {
B obj = new B();
obj.myWriter();
}
}

class A {
public void myWriter() { System.out.println("A"); }
}

class B extends A {
public void myWriter() { System.out.println("B"); }
}

上記の場合で・・・
インスタンスobjからmyWriterを呼び出すと、
クラスBのmyWriterメソッドが呼び出されるんですが、
これを、その親のクラスAのmyWriterメソッドを呼び出したい場合は、
どのようにすればいいでしょうか?
obj.super.myWriter()とか、なんとなく思いつく物は試してみたんですがダメでした
743デフォルトの名無しさん:2010/03/03(水) 12:32:21
>>742
オーバーライドしてんだから、無理だろ
お前はまず基礎がなってない
通常ClassAのコンストラクタも必要な場面では
ClassB#myWriterからsuper()呼び出せ
744デフォルトの名無しさん:2010/03/03(水) 12:52:31
>>743
やっぱ無理ですか・・・
設計上、クラスBからsuperで呼び出すと不具合が出てしまうのです・・・
設計から見直します
ありがとうございました
745デフォルトの名無しさん:2010/03/03(水) 12:55:00
>>741
IBMのJVMは昔からメモリあるだけ使ってたと思う。
746デフォルトの名無しさん:2010/03/03(水) 13:32:58
1G使い切るのが目に見えてるのにメモリに全部置くのが問題なんだろ。
747デフォルトの名無しさん:2010/03/03(水) 13:49:02
アプレットでメモリが足りなくなったので、javaコントロールパネルのjavaタブの
アプレットランタイムパラメータに「-Xmx512M」を追加してアプレットを起動したら
Runtimeをロードできませんのエラーが出て起動できませんでした。
アプレットでメモリを増やす方法はどうすればよいのでしょうか?
748デフォルトの名無しさん:2010/03/03(水) 15:20:24
>>747
ほう、そんな制約あるの知らなかった。

http://hondou.homedns.org/pukiwiki/pukiwiki.php?cmd=read&page=J2SE%20Applet%A4%C7%BB%C8%A4%A8%A4%EB%A5%E1%A5%E2%A5%EA#u2758d8f
には、WinXPだと512MB超えでエラーになるって書いてありますね。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6433218
の重複先バグを見ると6u10で解消されているみたいですけど、
バージョンあげてみるとどうですか?
私も気になるので結果教えてください。
749デフォルトの名無しさん:2010/03/03(水) 15:27:27
ん?実メモリの半分越えた指定でエラーになるのは仕様
って書いてある?
750デフォルトの名無しさん:2010/03/03(水) 16:16:29
アプリケーション画面の隅っこにプラグイン的な Applet 動かせる様にしたんだけど、
本体アプリと同じ権限で動いてしまうのが怖い。クラスローダー単位に権限設定とか
できない?
751デフォルトの名無しさん:2010/03/03(水) 16:54:49
Swing でイベント使わないで「今 CTRL キーが押されてるか」ってどうやって知ればいいの?
752デフォルトの名無しさん:2010/03/03(水) 21:12:17
>>751
コンピュータの心にたずねればいい
753デフォルトの名無しさん:2010/03/03(水) 21:28:51
慣れてくると「このくらいのタイミングで押すだろうなー」と思ったあたりでだいたいCTRLキーが押されてる
754デフォルトの名無しさん:2010/03/03(水) 21:49:48
>>747-748
バグなのかもしれないけど、アプレットだと本質的にそんなに大きい領
域を取れないんじゃないか?

一般的な2GBのユーザ空間のうち、ブラウザのコードとデータがすでにけっ
こうな場所を占めているわけで、連続領域はそんなに残ってなさそう。

755デフォルトの名無しさん:2010/03/03(水) 22:38:59
>>753
でもエンドユーザーもバカじゃない。
エンドユーザーも慣れてくると、
このタイミングでCtrl押すとは思わないだろうタイミングで押してくるから気を付けろ。
756デフォルトの名無しさん:2010/03/03(水) 22:59:38
いつからここはマインドシーカースレになった
757デフォルトの名無しさん:2010/03/03(水) 23:20:27
ユーザーが押すだろうっていう瞬間にリスナを登録するんですね
758デフォルトの名無しさん:2010/03/03(水) 23:42:22
javaでライブ放送ソフト作りたいんだが
JMFとJava Sound APIどっちがいいの?
759デフォルトの名無しさん:2010/03/03(水) 23:43:09
押される前に、すでに押している事にしておく。
これが親切。日本の心だろ?
760デフォルトの名無しさん:2010/03/04(木) 02:12:29
>>751
int option = JOptionPane.showConfirmDialog(null, "今 CTRL キーを押していますか?", "教えて", JOptionPane.YES_NO_OPTION);
761デフォルトの名無しさん:2010/03/04(木) 08:19:09
ユーザ:
あ…ありのままに今起こった事を話すぜ!
おれはCtrlを押そうと思ったら、既に押されていた!
(以下略)
762デフォルトの名無しさん:2010/03/04(木) 10:23:17
コンピュータは言いました:あなたが押そうとしたので先に処理しました。
763デフォルトの名無しさん:2010/03/04(木) 11:15:45
>>751
ウィンドウがアクティブじゃないときでもキーの入力状態を知りたいのであれば、無理。
JNAに確かサンプルでwin32用のそんなのあったと思うからそれ使って見るといいかも。
764デフォルトの名無しさん:2010/03/04(木) 20:46:53
皆さんIDEの使い方ってどうやって覚えてますか?
入門書は文法ばっかりで、IDEの使い方を教えてくれません。そんなもの自分で学べということなのでしょうか
765デフォルトの名無しさん:2010/03/04(木) 20:54:30
IDEラッキョ
766デフォルトの名無しさん:2010/03/04(木) 21:11:38
>>764
IDEの入門書なんて腐るほど出てるだろ
767デフォルトの名無しさん:2010/03/04(木) 21:27:38
java に限った話ではないのですが
UIと実行部分と、それからもうひとつなにか、計3つの部分にわけて
アプリを書く方法の名称はなんというんでしたでしょうか?

どこかで見た気がするのですが使いたいのに、思い出せずに困っています。
768デフォルトの名無しさん:2010/03/04(木) 21:36:18
>>767
MVC
769デフォルトの名無しさん:2010/03/04(木) 23:39:48
>>764
ノートパッドに解説書が必要とは思わなかった。
770デフォルトの名無しさん:2010/03/04(木) 23:45:34
ノートパットじゃねぇよ
イデだよイデ!
Model View Controller
772510:2010/03/05(金) 01:59:04
>>574

例外を出さないには、
どんな方法があるでしょうか?

while(p>=platform.size()){
  platform.add(new ArrayList<Channel>());
}
platform.get(p).add(c);



pは、ある整数ですが、1、100など飛び飛びの値をとります。((p>=platform.size()じゃ駄目)

arraylistのメソッド

・get() 例外あり→駄目

やりたいこと

アレイリストオブジェクト platformの、
p番目に、配列(Channnelオブジェクトを要素にもつ)が、
存在するかどうか

platformは2次元配列

773デフォルトの名無しさん:2010/03/05(金) 02:14:30
これはひどい
774迷えるうさぎ:2010/03/05(金) 02:25:30
あのjava始めたばっかなのですが、メモ帳だとインデントが自分でやらなければならないので
勝手にインデントとかしてくれるのってありますか?
775デフォルトの名無しさん:2010/03/05(金) 02:30:01
まともなIDEやプログラミング向けエディタなら、インデントは必ず自動で合わせてくれる。
IDEならNetBeansとかEclipseとか、好みにあったのを選ぶといいよ。
776迷えるうさぎ:2010/03/05(金) 02:33:12
どっちも一応落としたんですが、操作がいまいちわかりません。
メモ帳使ってコマンドプロンプトでするのは時代遅れでしょうか?

初歩すぎてごめんなさい><;
777デフォルトの名無しさん:2010/03/05(金) 02:37:46
>>776
時代遅れ
素直にeclipse使え
JavaはできますけどIDEは使えませんなんてのは通用しない
778迷えるうさぎ:2010/03/05(金) 02:39:47
はい^^
わかりました><

こんな小娘に付き合ってもらってありがとうございます><
助かりました
779デフォルトの名無しさん:2010/03/05(金) 02:42:48
IDE でしか Java 使えませんって方が通用しないと思うが。
780デフォルトの名無しさん:2010/03/05(金) 02:47:42
たしかに。
JavaはGUIアプリを作ることはほとんどない
781デフォルトの名無しさん:2010/03/05(金) 02:49:37
>>772
ArrayListに違う型のオブジェクトを突っ込まないほうがいい
どうしてもというならインタフェース作って2つのクラスが実装しろ
配列があるならクラス作って配列をそこに持たせろ
で、instance of使うなりして判断しろ

実際になにをしたいのかまったくわからん
もう一度問題を整理してくれ
多分、設計がずいぶんおかしい
782デフォルトの名無しさん:2010/03/05(金) 02:51:35
テキストエディタでJava書く機会なんてないだろ
783デフォルトの名無しさん:2010/03/05(金) 02:53:11
ちょっとコアライブラリの動作確認する程度ならコンソールから cat でやってますが何か。
784デフォルトの名無しさん:2010/03/05(金) 02:57:41
それは一般的な環境じゃないだろ
785デフォルトの名無しさん:2010/03/05(金) 02:58:12
俺の職場には
テキストエディタは嫌い
メモ帳が好きって奴がいる
786迷えるうさぎ:2010/03/05(金) 03:00:48
難しそう・・・
情報学科に迷いこんでしまった腐女子ですが、
まだ初心者すぎるので、やさしい環境でやってみます^^

みなさんありがとう><
感謝感謝です
787デフォルトの名無しさん:2010/03/05(金) 04:08:43
>>786

CPad for Java2 SDK


私はこれ使ってますよ

788デフォルトの名無しさん:2010/03/05(金) 04:22:08
TeraPad
789デフォルトの名無しさん:2010/03/05(金) 04:30:22
ChinkoPad
790デフォルトの名無しさん:2010/03/05(金) 06:08:28
真魚
791デフォルトの名無しさん:2010/03/05(金) 07:26:40
>>783
その目的だとScalaのインタラクティブシェル使ってるなぁ。
Groovyの方が良いかもしれんけど。
792デフォルトの名無しさん:2010/03/05(金) 07:34:27
まともにコード書く時にはIDE使うべき。
ただしIDEが裏で何やってんのか理解するためにもエディタとコンバイラで実行までもっていけるようになっておくべき。
793デフォルトの名無しさん:2010/03/05(金) 07:38:01
逆だろ
Helloworldなりをエディタ+javacで作って、
javaコマンド実行してからIDEだな
794デフォルトの名無しさん:2010/03/05(金) 08:28:00
コンパイラが裏で何をやっているのか理解するためにも
ソースからバイトコードを書いて実行までもっていけるようになっておくべき
795デフォルトの名無しさん:2010/03/05(金) 09:57:35
バイトコードをハンドアセンブルするのがいいんじゃない?

>>783
Rhinoにパスが通ってるんでインタラクティブモードでシェル起動してますが何か
796デフォルトの名無しさん:2010/03/05(金) 10:12:19
>>795
どうやってハンドアセンブルするんですか?
797デフォルトの名無しさん:2010/03/05(金) 11:28:27
女は黙ってemacs
798デフォルトの名無しさん:2010/03/05(金) 12:55:06
しゃぶれよ
799デフォルトの名無しさん:2010/03/05(金) 14:40:48
>772
たぶんVectorじゃなくてSortedMap<Integer,Collection>とかでやるべきなんじゃないの?
pをキーにする感じで。
800デフォルトの名無しさん:2010/03/05(金) 17:58:29
JFrame#setDefaultCloseOperation() を使わないで AWT のイベントスレッドを終了させるのって
System.exit() で終わるしかない?
801デフォルトの名無しさん:2010/03/05(金) 18:08:35
しかないかも
802デフォルトの名無しさん:2010/03/05(金) 18:10:12
>>800
フリーズ
803デフォルトの名無しさん:2010/03/05(金) 18:22:53
ClassAとClassAのサブクラスClassBがあったとき

ClassA a=new ClassB(); って出来るの?

ClassA a=(ClassA)new ClassB(); って出来る?

ClassB b=new ClassA(); って出来る?

804デフォルトの名無しさん:2010/03/05(金) 18:25:54
>>803
それくらい自分で試せば?
805デフォルトの名無しさん:2010/03/05(金) 18:26:34
分かった
806デフォルトの名無しさん:2010/03/05(金) 18:43:38
>>800 質問の意図が分かりかねるが。

しかない、というか、EXIT_ON_CLOSEだとSystem.exit(0)が呼ばれる。
けどこれってイベントスレッドの終了じゃないよね?

Thread#interrupt()すれば終了するみたい。
807デフォルトの名無しさん:2010/03/05(金) 20:53:13
>>800
Frame.getFrames() で取れる全てのフレームに対して dispose() を実行すれば EDT が終了するよう
1.4 で変更されている。
808デフォルトの名無しさん:2010/03/05(金) 21:55:38
>>803

>ClassA a=new ClassB();
できる。
ClassBにどのようなプロパティがあろうとも、ClassA型として突っ込んだ時点で、ClassAが持つプロパティしか保持しなくなるが。

>ClassA a=(ClassA)new ClassB();
できる。
が、意味の無いコード。

>ClassB b=new ClassA();
できん。
ClassBの情報はClassAだけでは埋められないため。
809デフォルトの名無しさん:2010/03/05(金) 21:58:05
誤解を招くから追記。

>ClassA a=new ClassB();
((ClassB)a).hoge()みたいな形でキャストすればClassBの情報も使えるけど。
810デフォルトの名無しさん:2010/03/05(金) 22:13:09
ふーん
811デフォルトの名無しさん:2010/03/06(土) 00:32:23
なるほど納得
812デフォルトの名無しさん:2010/03/06(土) 00:38:21
>>779
そんな事はない
底辺でよければ通用するする
813デフォルトの名無しさん:2010/03/06(土) 00:54:45
上級者はIDE禁止プレイで楽しみます
814デフォルトの名無しさん:2010/03/06(土) 01:05:17
>>808-809
解説サンクス
815デフォルトの名無しさん:2010/03/06(土) 02:30:35
IDE否定派って、たまに見るけど何なの?
まだ標準でコードフォルデイングも補完もリファクタ機能もないツールで頑張ってんの?
それともExcelVBA大好きな老害みたいに、
しょぼい言語で一部の機能を車輪の再発明して
「ほら、これを使えばIDEなんていらないんだ」とかほざいてんの?
816デフォルトの名無しさん:2010/03/06(土) 02:40:00
IDE否定派多いけど

import java.util.*;
import java.net.*;
import java.text.*;

こんなのばっかり書いてるよな
817デフォルトの名無しさん:2010/03/06(土) 02:44:00
学校の授業とかだと簡単な所まではメモ帳で仕組み教えるのも重要だと思うけどね。


それよりもコボルでDBファイル操作をごりごりと遣るのが好きな老害が、銀行とか生保とか自治体システム運用会社にたんまり残ってる。
ほーらこうやれば、RDBも最適化も不要で処理出来る。ってほざいてる。
818デフォルトの名無しさん:2010/03/06(土) 02:53:06
>>817
甘いぜ。
RDBMS持たせても予備1〜5までのカラムを持ったテーブルが出来るだけだ。
主キーを貼ると重複エラーで落ちるかもしれないからという理由で主キーなしとか。
集合演算とか理解できないから、カーソルで全行舐めとか平気でするし。

もうホント金融は勘弁してください…orz
819デフォルトの名無しさん:2010/03/06(土) 07:46:15
C言語をやってからJavaを勉強し始めたせいか違和感があるのですが、
配列を宣言する時にnewするのは何故でしょうか?
int array[] = new int[3]

よろしくおねがいします。
820デフォルトの名無しさん:2010/03/06(土) 08:55:17
C で new 無しの配列宣言はスタックに確保される。スタックはヒープに比べてだいぶ小さいので
配列の様な何 kB になるか分からないデータを置いているとすぐにスタックオーバーフローを起こす。
Java はそんな職人のカンが必要な要素をなるべく排除してはじめからスタックに配列を置けない
ようになってる。あと元々組み込みの様な貧弱メモリ環境で使うのに作られた言語だし。
821デフォルトの名無しさん:2010/03/06(土) 09:03:13
>>819
Javaでは、Cのようにスタックに配列を置くことができず、必ずヒープに配置される。
つまり、Cでいうと以下のような書き方しかできない。
int* array = NULL;
array = (int*)malloc(sizeof(int)*3);
822819:2010/03/06(土) 09:21:31
>>820,821
スタックに配置できない仕様なんですね。
よく分かりました。ありがとうございます。
823デフォルトの名無しさん:2010/03/06(土) 14:51:59
int array[]; とした場合、
Cでは array が int へのポインタなのに対し
Java では int 配列へのポインタなので
array を宣言した時点では、まだ配列は作成されていない。
だから new で配列を作る必要がある。
…というのが正しい説明に思える。
ヒープとかスタックとかは関係ないのでは。
>>819 が納得してるならいいけど。
824823:2010/03/06(土) 14:59:24
(追記)
でもまあ
「どうしてそんな言語仕様になっているのか」
という疑問に対する答えとしてなら
>>820>>821 は正しいか。
825デフォルトの名無しさん:2010/03/06(土) 15:05:37
「仕様です」が正しい説明
826デフォルトの名無しさん:2010/03/06(土) 15:18:21
>>823
一見正しいようで君の方が間違って覚えてるようだ
827デフォルトの名無しさん:2010/03/06(土) 15:20:01
「仕様です」は正しい説明
828デフォルトの名無しさん:2010/03/06(土) 15:47:50
>>826
kwsk
829デフォルトの名無しさん:2010/03/06(土) 16:24:17
C 言語で int array[]; って書けるようになってるのか?
ポインタで受けて配列アクセスはしていたが・・・C は十年以上やってないから
今どきのCの構文は疎くて正しいのかわかんねー。
830デフォルトの名無しさん:2010/03/06(土) 16:29:41
配列長を指定しない場合は初期化を伴わないとダメ。
int array[] = {1, 2, 3};
int array[] = (int*)malloc(100 * sizeof(int));

あと array[] とした場合はポインタとは呼ばない。
831823:2010/03/06(土) 16:35:02
>>829
書けない。
書けないのは分かってた。
「変数 array を int 配列として宣言したとき」ってことが言いたかったんだ。
すまんかった。
832デフォルトの名無しさん:2010/03/06(土) 16:50:45
>>830
じゃなんて呼ぶの?
833デフォルトの名無しさん:2010/03/06(土) 16:56:22
もしかして「ジャヴァ使いってCのことよく分かってねーんじゃねーの!?」って勘違いしてない?
834デフォルトの名無しさん:2010/03/06(土) 17:02:24
>>831
Cでint配列ってのが宣言できるのか?
どうせCやるならちゃんと覚えたほうがいいと思うよ。
835デフォルトの名無しさん:2010/03/06(土) 17:04:30
>>833
Javaできる人のうちけどCできる人は30%に満たない
836デフォルトの名無しさん:2010/03/06(土) 17:07:12
ジャヴァ使いはジャヴァしか出来ないかシーもかなりできるかのどちらかしかいない。
837デフォルトの名無しさん:2010/03/06(土) 17:14:33
>>830
int array[] = (int*)malloc(100 * sizeof(int));
うちのgccではコンパイルでけへんが?
838デフォルトの名無しさん:2010/03/06(土) 17:24:09
>>830
君、もう帰っていいよ
839デフォルトの名無しさん:2010/03/06(土) 17:52:12
Cならこれで通る
int *array = (int*)malloc(100 * sizeof(int));

array[]は配列、arrayはポインタ
array と &array[0]が等価
*array と array[0]が等価
840デフォルトの名無しさん:2010/03/06(土) 17:55:46
そこまで配列にこだわるなら普通はmallocを使わない。
841デフォルトの名無しさん:2010/03/06(土) 18:18:47
昔から配列大嫌いだった。使わなくてもなんとかなるようになって清々した。
842デフォルトの名無しさん:2010/03/06(土) 18:20:22
jdk1.7からはそうでもなくなる
詳しくは具具ってよ
843デフォルトの名無しさん:2010/03/06(土) 18:27:20
昔の古いコンパイラは配列でもポインタで初期化できるんだよ。
844デフォルトの名無しさん:2010/03/06(土) 18:35:28
>>823
> Cでは array が int へのポインタなのに対し
全然違う。ガセ流すなよ。C のメモリ配置の基礎からやり直してこい。
845デフォルトの名無しさん:2010/03/06(土) 18:47:33
>>843
C99もサポートしてないふるいのはもう捨てろ
846デフォルトの名無しさん:2010/03/06(土) 18:54:18
C99・・・。カルメン99か!!
847デフォルトの名無しさん:2010/03/06(土) 19:00:19
いいえ C99タケダ です
848デフォルトの名無しさん:2010/03/06(土) 21:50:15
まだANSI Cとかなんだろうなw

jniでcとの連携は強いからねえ。面倒ならcで実装してjavaから呼ぶ程度にしとけば?

http://pc12.2ch.net/test/read.cgi/tech/1033795664/
★お前らJavaはJNIで組もうぜ★
849デフォルトの名無しさん:2010/03/06(土) 22:05:51
Javaの話しろ
850デフォルトの名無しさん:2010/03/06(土) 22:14:47
JAVAティー
851デフォルトの名無しさん:2010/03/07(日) 00:42:24
classファイルの先頭をバイナリで読むと
852デフォルトの名無しさん:2010/03/07(日) 00:45:56
icedtea projects って結局なんですか?wiki読んでもいまいちなんですが
853デフォルトの名無しさん:2010/03/07(日) 02:58:41
Exception in thread "Thread-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 0

at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.set(ArrayList.java:337)
at ChatServer.platform_order(ChatServer.java:174)
at Channel.run(ChatServer.java:277)
該当箇所
174行目 platform.set(p, new ArrayList<Channel>(Arrays.asList(c)));

platformはarraylistオブジェクトです。

ArrayList() 初期容量 10 で空のリストを作成します。

とリファレンスに書いてあります。


・なぜindex3で10以下なのでに、エラーなのでしょうか
しかもsizeはゼロとなっています

アドバイスお願いします。

↓これをつかってみても駄目でした
(void ensureCapacity(int minCapacity)
必要に応じて、この ArrayList のインスタンスのサイズを拡大し、少なくとも最小サイズ引数で指定された数の要素を格納できるようにします

854デフォルトの名無しさん:2010/03/07(日) 06:17:16
あるディレクトリ内のファイル数を数える処理を書いてたんですが、
File[]型の変数f_arrayを宣言だけしておいて(事前に数が分からないので初期化のnewはせず)、

public void countNum(){
f_array = dir.listFiles();
System.out.println("今のファイル数:" + f_array.length);
}
と書いています。
このメソッドで最初にファイル数を確認して、
その後、途中の処理でファイルをいくつか削除させてから、
改めて上のメソッドをかけてみると、確かに削除した分だけ数は減っていて、
自分のやりたい挙動にはなってます。
ただ、配列はいったん確保サイズが決まったら、そのサイズは変えられないものだと思っていたので
同じ配列なのにサイズが小さくなった、っていうところが納得いかないんです。
なんでですか?解説をおねがいします。
855デフォルトの名無しさん:2010/03/07(日) 06:24:02
>>853
>set
> IndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())
>
>size
> リスト内にある要素の数を返します。

言わんとするところは、リストなので頭から詰めてゆかないとダメ。初期状態でnullとかが詰まっているわけではない。
856デフォルトの名無しさん:2010/03/07(日) 06:27:38
>>854
listFilesの結果を代入しなおした時点で、f_arrayは前の配列を指していない
857デフォルトの名無しさん:2010/03/07(日) 11:08:54
>>854
listFiles() を呼ぶたびに新しい配列が作られており、
それを f_array に代入しているのであって、
配列のサイズが変わっているわけではない。
858デフォルトの名無しさん:2010/03/07(日) 14:12:31
>853 サイズと容量の違い
859デフォルトの名無しさん:2010/03/07(日) 15:19:04
原文:
Each ArrayList instance has a capacity.
The capacity is the size of the array used to store the elements in the list.
It is always at least as large as the list size.
As elements are added to an ArrayList, its capacity grows automatically.

JavaSE6日本語版ドキュメント:
各 ArrayList のインスタンスには、「サイズ」があります。
それは、リストの要素を格納するために使用する配列のサイズで、常にリストのサイズ以上の大きさになります。
ArrayList に要素を追加すると、そのサイズは自動的に拡大します。

ひでえ訳だ。
サイズとキャパシティの違いが分からない人が生まれるのも無理はない。
860デフォルトの名無しさん:2010/03/07(日) 15:28:10
サイズ:
ArrayList が持っている要素の数。最初はゼロ。
add() で要素を追加するたびに1ずつ増える。
サイズより大きいインデックスを指定して get() とか set() とかを呼ぶと
IndexOutOfBoundsException になる。

キャパシティ(容量):
ArrayList が内部で使っている配列の大きさ。
パフォーマンスを最適化するために初期容量を変えたりすることもあるが、
普通はあまり容量を意識しなくていい。
861854:2010/03/07(日) 16:26:17
>>856, 857
ありがとうございます。
f_arrayは指してるだけで、その実体は新たにつくられてる
ってイメージで、納得しました。
862デフォルトの名無しさん:2010/03/07(日) 16:35:27
じゃbヴぁあああwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
863デフォルトの名無しさん:2010/03/07(日) 21:46:39
864853:2010/03/07(日) 23:32:46
>>855
>>859
>>860

ありがとうございます。


頭から詰めなくてもよい
サイズが動的な
配列はあるのでしょうか。

vectorならOKとか


(今回のコードで、例外を発生させたくないのです。)
865デフォルトの名無しさん:2010/03/07(日) 23:51:13
頭からつめたくない理由は?
後から頭に追加したいならaddの引数で位置を指定できるぞ。
866デフォルトの名無しさん:2010/03/08(月) 00:04:59
だから目的にあったAPIを使えよ。
ListじゃなくてMapの方が適してるんじゃねーの?
867デフォルトの名無しさん:2010/03/08(月) 00:13:21
LinkedListってのもある
868デフォルトの名無しさん:2010/03/08(月) 00:18:38
>>864
挿入する場所はどうやって決める?

単に数字に対して値を保持したいだけなら
Mapでキーをintにするだけでいいんでないの?
869デフォルトの名無しさん:2010/03/08(月) 08:50:13
プログラムの初歩の初歩を学習中で、将来的にしぃペインターのようなお絵描きアプレットを
作りたいと考えています。
サーブレットやGoogle.appにビーンズ? アプレットなど様々なJAVAの種類のうち、
上記のような物(もしどれも出来るなら、しぃペインターと同環境もしくは代替品)を作りたい場合、
どの方向性に進めばいいでしょうか?
870デフォルトの名無しさん:2010/03/08(月) 10:18:37
どの言語が何に適しているかを学ぶところから始めよう
871デフォルトの名無しさん:2010/03/08(月) 10:53:55
JFrameのタイトルバーでのマウスイベント(pressやrelease等)ってどうやったら
拾えるのでしょうか?

JFrameにてaddMouseListenerを設定してもタイトルバーでのマウスイベントが
拾えなかったのですが…
872デフォルトの名無しさん:2010/03/08(月) 11:35:28
>>871
イベントを拾って、なにがしたいの?
873デフォルトの名無しさん:2010/03/08(月) 11:52:59
エラい無意味な問いだな。
874デフォルトの名無しさん:2010/03/08(月) 12:18:19
タイトルバーは L&F 管理してるので触れないと思う。
875デフォルトの名無しさん:2010/03/08(月) 12:59:59
>>872
すみません、まだ勉強中なので何がしたいってわけではないのですが
試している時にタイトルバー上では拾えなかったので気になっただけなんです。

>>874
タイトルバーは管理しているところが違うので拾えないのですか。
勉強になりました。ありがとうございました。
876デフォルトの名無しさん:2010/03/10(水) 14:17:47
webアプリケーションでレスポンスにデータを書いてしまった後で想定外エラーが発生した場合、
エラーjspに遷移させる方法はないでしょうか?

無い場合、一番ユーザに優しい処理としては、何があげられるでしょうか?

アドバイスをお願いします。
877デフォルトの名無しさん:2010/03/10(水) 15:29:03
サーバーがクライアントにデータを吐く

クライアントでは結果を表示

サーバーがデータ吐いた後にエラーを起こした

クライアントの結果表示をエラー用JSPに遷移させたい

ってこと?
HTTP 1.1なら継続的接続で何かできないんだっけ?
878デフォルトの名無しさん:2010/03/10(水) 15:34:05
>>876
JavaScript 吐いて飛ばせ。
879デフォルトの名無しさん:2010/03/10(水) 15:34:16
>>877
その通りです。
HttpServletResponse#sendErrorには

レスポンスが既にコミットされている場合、 このメソッドはIllegalStateExceptionをスローします。 このメソッドを使った後は、レスポンスはコミットされたと考えるべきで、 レスポンスに書き込みを行なうべきではありません。

て書いてあるので、何か手を駆使してどうにかできないものかと苦慮してます。
880デフォルトの名無しさん:2010/03/10(水) 15:35:11
XPath の構文って java.util.Pattern みたいにコンパイルした状態で共有できる?
881デフォルトの名無しさん:2010/03/10(水) 17:52:54
客が買い物して家帰って寛いでるところに電話で
「買い物された後ですが店が火事になってしまったので買われた物は無効です。
申し訳ありませんが引き取らせてください」
とか言う感じ?
882デフォルトの名無しさん:2010/03/10(水) 17:55:40
その例えなら、店がunk

つまり、実装がunkなことにならないか?
883デフォルトの名無しさん:2010/03/10(水) 19:14:32
>>871
setUndecoratedをtrueにしてタイトルバーを消したJFrameか
もともとタイトルバーの無いJWindowに自前でタイトルバー描けばできると思う
884デフォルトの名無しさん:2010/03/10(水) 19:23:48
Eclipse使ってJavaアプレットの.classファイル作ったんだけど、
Eclipse上では動くんだけどhtmlから起動するとエラーが出る。
アプレットなんて興味ないよっていう人も多いかもしれないけど、
解決方法わかる人いたら教えて。
885デフォルトの名無しさん:2010/03/10(水) 19:33:03
エラーと言っても HTML の書き方から JDK のバージョンからアプレットのバグから
様々考えられる。どういうエラーなのか詳しく出さなければ答えようがない。
886884:2010/03/10(水) 19:39:14
>>885ありがと
とりあえずホームページ上には、
エラー。クリックした詳細を確認してください←というメッセージが出ている。

詳しいエラーメッセージは
java.lang.NoClassDefFoundError: sampleapplet (wrong name: sampleapplet/sampleapplet)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
例外: java.lang.NoClassDefFoundError: sampleapplet (wrong name: sampleapplet/sampleapplet)
887デフォルトの名無しさん:2010/03/10(水) 19:49:26
NoClassDefFoundErrorそのままやんけ。
888デフォルトの名無しさん:2010/03/10(水) 19:53:23
・HTML と同じディレクトリに sampleapplet.class を置く
・<applet> タグには code="sampleapplet.class" と書く
 (<object> タグの場合は <param name="code" value="sampleapplet.class">)
889884:2010/03/10(水) 20:04:56

htmlのコードは次の通り。ホームページビルダーを使って作成。
<p><applet code="sampleapplet.class" width="300" height="300"></applet></p>

html(javaappletrenshuu.html)と同じディレクトリにsampleapplet.classというファイルを置いてるんだけれど。
.classファイルが見つからないっていうエラーだということ?ファイルはあるはずなのに・・・
890デフォルトの名無しさん:2010/03/10(水) 20:10:48
>>889
そのクラスは何かのパッケージに属してる?
アプレットは全く使わないからはっきりとは言えないけど
コード内に「package sampleapplet;」って一文があると扱いが少々違うかもしれない。
もしあったらそれを消して再コンパイルすればいいと思う。
891884:2010/03/10(水) 20:17:49
>>890
確かにソースコードには
package sampleapplet;
という一文がある。

でもこれって削除するとEclipseでコンパイル(実行)できないみたい。
パッケージが原因という可能性もあるということだね。
892デフォルトの名無しさん:2010/03/10(水) 20:22:29
そりゃあ出来ないだろさ。デフォルトパッケージ直下に移動。
理由は分かるまで自分で調べること。packageの意味から。
893デフォルトの名無しさん:2010/03/10(水) 20:24:50
sampleapplet というパッケージ付きなら
・HTML のディレクトリに sampleapplet というサブディレクトリを作って sampleapplet.class をそっちへ移動
・src="sampleapplet/sampleapplet.class" に変更
894884:2010/03/10(水) 20:26:01
>>892
とりあえず、
packageはeclipseを操作するときに指定しなければいけないのであれば、
eclipseでjavaアプレットは作りにくいっていうことでいい?
895884:2010/03/10(水) 20:28:42
>>893
ありがと、とりあえずHtmlを修正してみる。
896デフォルトの名無しさん:2010/03/10(水) 20:29:39
×src=
○code=
897884:2010/03/10(水) 20:39:18
>>885〜896
ありがと!!
うまくアプレットがhtml起動できるようになった。
これでEclipseでJavaアプレットが作れるようになりそう!!
898デフォルトの名無しさん:2010/03/10(水) 21:06:32
パッケージの仕組みが分かってないからeclipse以前に勉強し直すしかない。
899デフォルトの名無しさん:2010/03/10(水) 21:24:30
そんなもん追々覚えればいい。
900デフォルトの名無しさん:2010/03/10(水) 22:33:46
Fileで2G以上のものを使いたい場合に、java.io.FileOutputStreamとかのwriteのoffsetがint型なんですが、2G以上を指定する場合にはどうするのですか?
901デフォルトの名無しさん:2010/03/10(水) 22:37:53
100 回でも 1000 回でも分けて随時書いて行けば良い。
902デフォルトの名無しさん:2010/03/10(水) 22:46:56
>>901
30Gぐらい書いて、4Gの位置の場所のデータを書き直すには、InputOutput両方開いて、読んで書いてって4G分繰り返して、書き直すしかない?
http://java.sun.com/javase/ja/6/docs/ja/api/java/io/FileOutputStream.html
をみると、書き込みで開いてしまうと、読み込みで開けなさそうだから、そういうプラットフォームだとメモリに一度置くか、別ファイルに書いてファイル名変更かな。
903デフォルトの名無しさん:2010/03/10(水) 22:49:50
RandomAccessFile か FileChannel 使え
904デフォルトの名無しさん:2010/03/10(水) 22:50:14
>>902
書き直すなら RandomAccessFile 使え。
http://java.sun.com/javase/ja/6/docs/ja/api/java/io/RandomAccessFile.html#seek(long)

java.nio.channels.FileChannel でもいいけど、メモリマップドファイルは 2Gまで。
905デフォルトの名無しさん:2010/03/10(水) 22:51:15
>>903-904
ありがとう。
あと、自分の間違い、offsetは渡したバッファのオフセットだった・・・
906デフォルトの名無しさん:2010/03/10(水) 23:04:38
BASIC認証
DIGEST認証
FORM認証
この3つはできたのにCLIENT-CERT認証だけはできませんが
どうしたらいいでしょうか?
907デフォルトの名無しさん:2010/03/10(水) 23:08:08
その質問の仕方で答えられるわけねーじゃねーか
どこまでやったとか
どこでつまづいたとか
こんなエラーが出るとか
どうしたら回答してもらえるかちょっとは考えろよ
908デフォルトの名無しさん:2010/03/10(水) 23:09:47
使わなければいいと思うよ。
909デフォルトの名無しさん:2010/03/11(木) 11:12:01
>>878
それしかないっすよね。
ありがとうございます。
910デフォルトの名無しさん:2010/03/12(金) 00:40:00
初歩的な質問なのですが、マルチスレッド環境でMap(具体的にはWeakHashMap)を同期化するときに、
synchronizedではなくReadWriteLockでも大丈夫でしょうか?
911デフォルトの名無しさん:2010/03/12(金) 00:45:56
別に良いけど Map の出し入れ程度の同期化でそんなにパフォーマンスが変わるわけじゃないぞ?
そんなのはとりあえず synchronized でやっておいて、後でプロファイラ計測で問題が確定して
からでかまわないだろ。public で Map 丸出しでもなければ設計が大きく変わるわけじゃないし。
912デフォルトの名無しさん:2010/03/12(金) 00:50:35
ふむむ、そういうものですか。
とりあえず、お勧めに従ってsynchronizedで実装してみます。
913デフォルトの名無しさん:2010/03/12(金) 00:58:03
ConcurrentHashMapはどうでがす?
914デフォルトの名無しさん:2010/03/12(金) 01:14:24
実のところ、状況としては以下の派生になります。
http://pc11.2ch.net/test/read.cgi/php/1267094290/67-70

つまり、
1. Readが圧倒的多数でWriteは数十分に一回
2. インスタンスで使えるメモリ量が不明なので弱参照でGC任せにしたい
と、要件としてはこんな感じになってます。

余談ですが、今試したところ、どうもGCがガシガシ走っているらしく、
なかなか前途多難な感じです。
915デフォルトの名無しさん:2010/03/12(金) 01:27:14
で、よく調べると、こういう用途はSoftReferenceじゃないと意味がないという記述が。。
お恥ずかしい。
916デフォルトの名無しさん:2010/03/12(金) 01:34:57
ありがちなミスだな。
更新すくない場合はConcurrentHashMapが良いよ。
917915:2010/03/12(金) 02:08:35
ググっていたら、Google先生がリリースしているgoogle-collectionsというライブラリのMapMakerが、
同期制御しながらSoft参照で。。みたいな要件のMapを作る機能を提供しているようです。
使い方がややこしいですが、色々試してみて後ほどご報告したいと思います。
918デフォルトの名無しさん:2010/03/12(金) 18:00:10
javaアプレットで通信対戦ゲーム作ろうと思ってるんだけど、
socket通信って難しそう。
socket使える人ってどこから覚え始めた?
919デフォルトの名無しさん:2010/03/12(金) 18:03:02
finger user protocol
920デフォルトの名無しさん:2010/03/12(金) 18:12:44
finger user protocol
Name/Fingerプロトコル(ネームフィンガープロトコル)および Finger ユーザー情報プロトコルは、ユーザー情報など人間に纏わるステータスを交換するための通信プロトコル。
なんだか業務用の技術みたい。素人には難しそうだ。
アプレットゲームで使うレベルのsocket通信の技術を覚えた人はどのあたりから覚えはじめた?
921デフォルトの名無しさん:2010/03/12(金) 19:13:07
>>918
ぐぐって簡単なサンプルでも作ってみた?
そんなに難しくないだろ。

つか、httpでやれよ
なんでわざわざソケット?
922デフォルトの名無しさん:2010/03/12(金) 19:17:11
>>921
とりあえず逆引きに載ってるサンプルプログラムを入力して実行したぐらい。
なんだかよくわからんかった。

httpでやるってどういうこと?JSPとかいう技術のこと?
923デフォルトの名無しさん:2010/03/12(金) 19:25:37
クライアントA ⇔ クライアントB
でやるつもりなん?
セキュリティ的に大変なんじゃない?

ふつー、通信対戦といったら
クライアントA ⇔ サーバ ⇔ クライアントB

サーバになんかプログラムが必要だぞ
924デフォルトの名無しさん:2010/03/12(金) 19:46:16
>>923
とりあえずレンタルサーバー借りてるんで、
サーバーは確保できてる。
ので923の言ってる
クライアントA ⇔ サーバ ⇔ クライアントB
で行こうと思ってる。

サーバーのプログラムはJAVA
クライアントのプログラムはJAVAアプレット
という風にすれば、プレイする人はプログラムをインストールしなくて済むのでいいかなと考えてる。

そこでなんとなくsocket使えばいいのかなーと思ったんだけど他にいい技術がある?
925デフォルトの名無しさん:2010/03/12(金) 19:57:48
HTTP で対戦系のゲームなんて作れないだろ。どこの業務屋だよ。
926デフォルトの名無しさん:2010/03/12(金) 20:00:12
だからサーバとクライアントの通信をhttpでやれと
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8920&forum=12

なんにせよhttp通信が一番しきいが低いよ
927デフォルトの名無しさん:2010/03/12(金) 20:06:26
どんなゲームを作りたいん?
カードゲームや、将棋あたりならhttpで十分
リアルタイム性のあるゲームならソケット
928デフォルトの名無しさん:2010/03/12(金) 20:17:04
とりあえずカードゲームや将棋とかも作りたいけど
その前に通信技術を覚えときたいので○×ゲーム
(縦横斜めに3つならべた人が勝つゲーム)
を作ってみようかなと思ってる。
(通信技術を使わない一人二役の○×ゲームアプレットはとりあえず作った)


対戦ゲームだからチャットも用意したほうがいいかなと思ったので
ソケットなら何でも対応できるかなと思ったんだけど。

httpってそんなにお勧め技術?解説本とかあるの?
929デフォルトの名無しさん:2010/03/12(金) 20:52:20
きみが2chを表示してるのも
書きこんでるのもhttp通信
http通信自体はものすごい一般的な技術

解説本なんて腐るほどある
ざっくり言うとサーブレットやらJSPは
Javaによるhttp通信のサーバ側の技術
クライアントのアプレット ⇔ サーバのサーブレット、JSP
こんな感じ

○×やらチャットなら
とりあえずhttpでやったほうがいいよ
930デフォルトの名無しさん:2010/03/12(金) 20:57:20
まずマスタリングtcp/ipを嫁
931デフォルトの名無しさん:2010/03/12(金) 21:01:25
httpってホームページのアドレスの先頭につく記号としてしかしか知らなかった。
http超お勧めっていうことだね。

929の言っている
クライアントのアプレット ⇔ サーバのサーブレット、JSP
ということなら、サーバをサーブレット、JSPで作る技術を覚えるのがいいってことだね。
JSPサーブレットはまだよくわかってないけど家に本が何冊かあるから、
ちょっと頑張って読んでみる。
932デフォルトの名無しさん:2010/03/12(金) 21:05:50
>>930「マスタリング tcp/ip」ってアマゾンで見たらすごいシリーズが多いよー。
全部は読めん(経済的にも、読解力的にも)
「マスタリング tcp/ip」の基本書1冊だけよんでみる価値はある?
933デフォルトの名無しさん:2010/03/12(金) 21:13:26
>>932
Javaでhttpやらソケットするなら必要ない
934デフォルトの名無しさん:2010/03/12(金) 21:20:17
「Java並行処理プログラミング」入手できるようになった?
935デフォルトの名無しさん:2010/03/12(金) 21:25:55
復刊直後に売り切れてたな。
今みたらAmazonに在庫あるみたいだね。
内容考えたら安すぎる。
936デフォルトの名無しさん:2010/03/12(金) 21:48:32
わからねぇわからねぇ言ってないでネットのサンプルコードでもまず書け。
ソケットも使えない奴が○×程度のネット対戦ゲームでも作れるわけないだろ。
あと対戦ゲームに HTTP とか言ってるアフォはチンカス業務コーダーだから無視して良し。
937デフォルトの名無しさん:2010/03/12(金) 22:03:35
>>936ソケット詳しい人登場?
逆引きから引用したんだけど
この状態でサーバー、クライアントの情報伝達はどうする?

サーバー側
package sample323;
import java.io.*;
import java.net.*;
public class Sample323 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
try{
ServerSocket svsock=new ServerSocket(2525);
Socket sock =svsock.accept( );
PrintWriter out =new PrintWriter(sock.getOutputStream(),true);
out.println("Hello Java!");
sock.close();
}catch(Exception e){
System.out.println("例外"+e+"が発生しました。");
}
}
}

938デフォルトの名無しさん:2010/03/12(金) 22:05:13
クライアント側
package sample324;
import java.net.*;
import java.io.*;
class Sample324 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
byte[] buff=new byte[1024];
try{
Socket sock=new Socket("127.0.0.1",2525);
InputStream in=sock.getInputStream();
int n=in.read(buff);
System.out.println("サーバーから");
System.out.write(buff,0,n);
System.out.println("を取得しました");
sock.close();
}catch (Exception e){
System.out.println("例外"+e+"が発生しました");
}
}
}
939デフォルトの名無しさん:2010/03/12(金) 22:07:03
何を答えろと言うのだ。まずは質問の仕方から勉強して出直してこい。
940デフォルトの名無しさん:2010/03/12(金) 22:10:00
申し訳ない。
逆引きが一番コードの短いサンプルが載ってたから引用したんだけど、
とりあえず、サーバーとクライアントの接続ができた→文字列の送信→ソケットを閉じる。
これを改造して、変数のやり取りをできるようになるとネット対戦ゲームができるのではないかと思うんだけど。
方向性は間違ってないかな?
941デフォルトの名無しさん:2010/03/12(金) 22:16:52
それで良い。Socket から参照した InputStream/OutputStream を使ってデータの送受信を行う。
送受信を交互に繰り返すならストリームのフラッシュを忘れない様に。
942デフォルトの名無しさん:2010/03/12(金) 22:17:45
別に間違ってないだろうけど、「変数のやり取り」っつーのを
どんなデータをどんな手順で送受信して実現するかってことを決めないとな。
その手順が、今回作るプログラムのプロトコルっつーことになる。
943デフォルトの名無しさん:2010/03/12(金) 22:18:07
方向性は間違っているってずっと言われてるのに…
944デフォルトの名無しさん:2010/03/12(金) 22:20:07
いちいち開けて閉じるならHTTPと一緒。
javaなんだからbufferdreaderで読み込めばどんなstreamでも
行ごとのオーダーでデータを読めるということを思い出したまへ。
945デフォルトの名無しさん:2010/03/12(金) 22:21:06
そんな単発プロトコルが対戦ゲーム向きなわけがないだろう。
946デフォルトの名無しさん:2010/03/12(金) 22:22:37
まあcometなんてのもあるからhttpとはいえ
開けたらすぐ閉じなきゃなんないわけでもないけどね。
947デフォルトの名無しさん:2010/03/12(金) 22:24:44
ネタがないから食いつきいいなw
948デフォルトの名無しさん:2010/03/12(金) 22:27:25
ブラウザに同時接続数上限がある以上 Comet なんて全く実用性ないよ。
途中にタイムアウト付きのプロキシが居たら終わりだし。
949デフォルトの名無しさん:2010/03/12(金) 22:27:36
具体的にいうと、送る側は
キー=値,キー=値\n
みたいな感じでストリームに書き込んで、
読む側は適宜readLine()とかすればいい感じ。
両方向通信するんだったら接続先1つにつきソケット1つづつ増やしちゃって問題ないぞ。

950937,938:2010/03/12(金) 22:28:17
とりあえず、
sock.close();
は削除しても動くみたいだから
つなぎっぱなしの状態にしておくこともできると考えていいかな?
その間に○×の座標や手番のデータをやり取りするコードを入れちゃえばもう少し対戦ゲーム
っぽくなるかな?
951デフォルトの名無しさん:2010/03/12(金) 22:32:02
いや、通信というかセッション終わったら閉じろよ。例外の中とかにclose()入れておけよ。
952950:2010/03/12(金) 22:44:13
みんないろいろありがとう。
とりあえず今わかるソケットのソースコードはのコードぐらい。
いろいろソケットについて書いてある本にソースコードはあるんだけど長すぎて今の段階では、理解不能。
とりあえずJAVAの逆引きもこれ以上詳しくは書いていないので、
コメントしてもらった
InputStream/OutputStream
readLine()
close();
について調べてみる。
953952:2010/03/12(金) 22:45:45
では今日はもう寝ます。おやすみなさい。
954デフォルトの名無しさん:2010/03/13(土) 00:59:48
なんでど素人にソケットのサーバ作らせるの?
サーバプログラム書いてソケット自前で管理してって

○×ゲーム&チャットくらいなら
httpでポーリングすればいいじゃん
955デフォルトの名無しさん:2010/03/13(土) 01:14:05
HTTP ポーリングを当然の様に勧める低脳は死んどけよ。
956デフォルトの名無しさん:2010/03/13(土) 01:21:46
わかりました
957デフォルトの名無しさん:2010/03/13(土) 01:24:51
当然のようには勧められない理由も書けないんですね
958デフォルトの名無しさん:2010/03/13(土) 01:28:50
ごめん、書けない
959デフォルトの名無しさん:2010/03/13(土) 01:32:16
わかりました
960デフォルトの名無しさん:2010/03/13(土) 01:33:53
まぁ落ち着けよ。カス共。
961デフォルトの名無しさん:2010/03/13(土) 01:58:19
理由を教えてもらわないといけないようなカスは死んどけよ。
962デフォルトの名無しさん:2010/03/13(土) 02:07:25
わからないんですね、わかります
963デフォルトの名無しさん:2010/03/13(土) 02:09:53
じゃあおまえは分かるのかよ。
964デフォルトの名無しさん:2010/03/13(土) 02:13:57
ごめんなさい、わかりません
965デフォルトの名無しさん:2010/03/13(土) 02:35:23
正直な話、http勧めるのはデフォルトで80開いていない家庭用ルータって
あんまりないからだろう。
966デフォルトの名無しさん:2010/03/13(土) 02:45:56
>>965
空いてねーよ。てか家庭用ルータに接続してどうすんだ。
そもそも>>924の構成だったらそんなの関係ないじゃん
967デフォルトの名無しさん:2010/03/13(土) 02:46:15
デフォルトで特定ポート規制するようなルーターがまずないわけだが。
968デフォルトの名無しさん:2010/03/13(土) 02:49:16
>>967
LAN側とWAN側どっちの話をしてるんだ
969デフォルトの名無しさん:2010/03/13(土) 02:56:21
おまえ >>967 か?
どっちの話してる気だと聞きたいのはこっちだっつーの。
970デフォルトの名無しさん:2010/03/13(土) 03:00:06
あァ?お前どこ中よ?
971デフォルトの名無しさん:2010/03/13(土) 03:02:09
どこなかと読んでしまっま
972デフォルトの名無しさん:2010/03/13(土) 03:07:15
え?
973デフォルトの名無しさん:2010/03/13(土) 03:56:34
とんでもねーとこにきちまったな
974デフォルトの名無しさん:2010/03/13(土) 04:13:29
レンタルサーバー借りてるって言ってるけど、
どこの借りてるんだろ。

レンタルサーバーって任意のポート開けれるんかな?
975デフォルトの名無しさん:2010/03/13(土) 04:15:34
http://pc12.2ch.net/test/read.cgi/tech/1086238859/
Java ネットワークプログラミング 【教えて!】

upnpでつまづくと思うけどな。
976デフォルトの名無しさん:2010/03/13(土) 14:11:50
インストール中に「選択した機能は現在使用できないネットワークソースにあります。」とメッセージがでるのですが・・・よくわかりません。

上記メッセージの後に、
「[OK]をクリックして再実行するかインストールパッケージ ‘jre1.6.0_12.msi‘を含むフォルダに対する代替パスを以下のボックスに入力します」
と表示出て、その先には進まずインストールが中断されてしまいます。

Javaヘルプセンターで調べてみたり、ネットで調べてみて、
旧バージョンのアインストールをしてみようと思いコントロールパネルを開いてみたのですがプログラム自体にJavaが存在しませんでした。
どなたか分かる方いらっしゃいますでしょうか?


ちなみにOSはVistaです。
977デフォルトの名無しさん:2010/03/13(土) 15:02:02
>>976
ダウンロード中にインストーラのファイルがぶっ壊れたんじゃね?
978デフォルトの名無しさん:2010/03/13(土) 15:36:43
>>977
復元作業したらなんとか出来ました。
979デフォルトの名無しさん:2010/03/13(土) 17:35:23
Javaにはtree構造を表現するクラスが存在しないみたいですけど
みなさんはtree構造を利用したい場合は自分で実装されていますか?
もし定番ライブラリみたいなものがあれば教えていただけないでしょうか。
980デフォルトの名無しさん:2010/03/13(土) 17:36:23
Map に Map 入れりゃツリーになるし、DOM もあるし。
981デフォルトの名無しさん:2010/03/13(土) 23:08:15
DOM最高!
XML最強!
982デフォルトの名無しさん:2010/03/13(土) 23:16:15
バイナリxmlをJAXPに加えてくれんかな。
fast Infosetじゃ半分の大きさにしかならないからEXIで。
983デフォルトの名無しさん:2010/03/13(土) 23:39:49
nimbusがあるパッケージって変わったんですか?
>com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
だったと思っていたんですが
984デフォルトの名無しさん:2010/03/14(日) 00:03:28
いつも自動取得でやってるからシラネ
985デフォルトの名無しさん:2010/03/14(日) 00:04:06
かわった
986983:2010/03/14(日) 00:40:07
jreにインストールしてあるLook And Feelを表示してみたら、3つしかなかった
java7からはnimbusがjavax.swing.plafに入るらしいけど

nimbusどこへ行った
987デフォルトの名無しさん:2010/03/14(日) 01:02:00
nimbusは家出中
988デフォルトの名無しさん:2010/03/14(日) 01:04:01
マジかよ。今横で寝てんだけど。
989デフォルトの名無しさん:2010/03/14(日) 08:58:09
保護した家で娘がdomだったなあぁ。

梅。
990デフォルトの名無しさん:2010/03/14(日) 17:43:26
nimbusってハリーポッターのほうきじゃないの?
991デフォルトの名無しさん:2010/03/15(月) 01:00:00
2010モデルってもう出てるのかな?
992デフォルトの名無しさん:2010/03/15(月) 14:29:51
もうjavaは終わったようだ。

膿め。
993デフォルトの名無しさん:2010/03/15(月) 14:33:58
次は何が来るんですか?先生!
994デフォルトの名無しさん:2010/03/15(月) 17:14:33
CO
995デフォルトの名無しさん:2010/03/15(月) 18:43:35
java.util.logging.FileHandlerを設定ファイルで定義しようとすると
個別にファイルの出力先変えられないのですか?
実装上はインスタンスごとに出力先変えられるのに、設定ファイルだとうまく行かないようなのですが??
996デフォルトの名無しさん:2010/03/15(月) 23:15:48
実装上はインスタンス単位で可能でも設定ファイル上はクラス名ごとしか指定出来ないクソ仕様。
諦めてオンコードで書くことだな。
997デフォルトの名無しさん:2010/03/15(月) 23:31:53
クラスに属さないメソッドって作れないの?
998デフォルトの名無しさん:2010/03/15(月) 23:42:07
逆にクラスに属するメソッドの何が問題なの?
999デフォルトの名無しさん:2010/03/15(月) 23:50:57
>>998
知識として、知っておきたいだけ
1000デフォルトの名無しさん:2010/03/16(火) 00:00:01
答えはこの後すぐ!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。