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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

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

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath

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

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

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

次スレは>>980がお願いします。
2デフォルトの名無しさん:2005/04/08(金) 17:56:28
2 げと
3デフォルトの名無しさん:2005/04/08(金) 18:22:43
>>1
4デフォルトの名無しさん:2005/04/08(金) 18:23:23
4さま
5デフォルトの名無しさん:2005/04/08(金) 21:07:44
>>1
    ∧__∧
    (`・ω・´)  乙!
   .ノ^ yヽ、  
   ヽ,,ノ==l ノ
    /  l |
"""~""""""~"""~"""~"
6まゆみ☆:2005/04/08(金) 22:01:33
たすけてください!!言語 ASP & javascript + vbs
CREATEOBJECTにてExcel起動を行っているのですが,Windows 2000 server IIS5だと問題なく動作するのですが、
Windows 2003 server IIS6だとそのページさえいきません。。。現象としてはグループで分類し240件を超えてしまうと
まったく動作しなくなってしまいます。
れ以下だとプリントできます。どなたかお知恵をお貸しください
どうぞよろしくお願いいたします。以下にリンクスクリプトを記載いたします。
長文失礼いたします。

//リンクを行う
parent.menu2.location.href = "TanPrint.asp";
7デフォルトの名無しさん:2005/04/08(金) 22:05:49
前スレにも書いたのですが…

JavaってPerlより実行速度遅いのでしょうか?
http://pc8.2ch.net/test/read.cgi/prog/1111397014/267n
8名無し ◆774/GPwwww :2005/04/08(金) 22:06:28
>>6
>>1
> JavaScriptの質問は、ここでは受け付けていません。
> Web製作板をご利用ください。http://pc5.2ch.net/hp/
9デフォルトの名無しさん:2005/04/08(金) 22:11:20
>>7
処理の内容やプログラムの書き方に依存します

URLで示されている発言の内容について知りたいのであれば
当該スレで書き込みを行われたご本人に伺うのが良いかと思います
10デフォルトの名無しさん:2005/04/08(金) 22:57:37
>>7
頭痛い。板に関わらず対立系スレの参加者って馬鹿っぽい。
11デフォルトの名無しさん:2005/04/08(金) 23:03:29
JavaってGUIのからまないサーバ系処理とか単純論理演算とかだと、すでにCより速いとか
いう実験結果が出てるんだけどな。

バブルソートとかそういうのね。
12デフォルトの名無しさん:2005/04/08(金) 23:15:58
>>11
いまだそんな誇大広告に踊らされてんなよ(^^;
13デフォルトの名無しさん:2005/04/08(金) 23:17:59
複数のベンチマークサイトで同じような結果が出ていたと思ったが
14デフォルトの名無しさん:2005/04/08(金) 23:19:44
>>13
CオプティマイズなしJavaガチガチオプティマイズとかおおよそ理不尽な条件下のベンチだろ
15デフォルトの名無しさん:2005/04/08(金) 23:19:59
Javaが遅いという思い込みしている人っていまだにいるのよね。
アプレットの印象が強いのだろうね。
16デフォルトの名無しさん:2005/04/08(金) 23:21:11
>>14
違うよ(w
17デフォルトの名無しさん:2005/04/08(金) 23:22:24
>>15
なわけナイナイ
18デフォルトの名無しさん:2005/04/08(金) 23:26:16
1.1系をいまだに引きずっているのね・・・
19デフォルトの名無しさん:2005/04/08(金) 23:29:29
ダイナミックなコンパイル技術は一生もののテーマ

こっちでは普通にコンパイルするが、こっちではSSE使えるので使おうとか
そういう実装をJavaではすでにしてるからね

あらかじめコンパイルしておく技術はターゲットとなるマシンから環境が
かけ離れると最適にならないわけで、Cより早い可能性は十分にあります
20デフォルトの名無しさん:2005/04/08(金) 23:30:32
JavaがCより高速に動作できる唯一のパターンは、動的オプティマイズが効果するようなケースだよ、
それ以外で勝つのは無理、バブルソートが高速になるというのはハッタリ系だと思われ。
21デフォルトの名無しさん:2005/04/08(金) 23:34:01
>>10
一応。そのスレは対立系スレでは無いですよ。
22デフォルトの名無しさん:2005/04/08(金) 23:37:13
>>11
バブルソートなんてC,Java言語間の差じゃなくて
コンパイラの性能じゃない?

で、CとJavaで同じ速度は出せると思うけど
リソース消費量はJavaの方が大きいのだろうな、
という予想はつく。
23デフォルトの名無しさん:2005/04/08(金) 23:37:32
遅いのが嫌なやつはJavaやめろよ
24デフォルトの名無しさん:2005/04/08(金) 23:42:34
>>23
遅いとは思わないが、
リソースの消費が無駄に大きいのを何とかしてくれると
より好きになれると思います。
25デフォルトの名無しさん:2005/04/08(金) 23:49:23
>>24
リソース消費が無駄に大きいというけど、具体的に何処が無駄だと思ってる?
26デフォルトの名無しさん:2005/04/08(金) 23:50:37
>>22
最近のCPUは動作速度がおっそろしく早いので、メモリーを読みに行くような行為をするとボロボロになるんだ、
リソース消費量が多い=メモリーを読みに行く機会が増える
キャッシュヒットミスが増える、これが高速化が無理って理由の一つでもある。
さらに間接参照の多さもキャッシュヒットミスの原因の一つ。(読み込み先アドレスが読み込みの直前まで判らないため予測キャッシュできない)
まだ他にも、エラーチェック、境界チェックの有る無し等も影響して、これら全てに打ち勝たないとCより速くなるのは無理。
もちろんその可能性として色々面白いものをVMは持っているのだが、それだけでは簡単に勝てないよ。
かなり無茶なJavaらしくない汚いコードとか書けば勝てなくはないだろうけど、それはかなり不本意なプログラムになりまっせ。

>>25
メモリーだけでも二〜三倍くらい消費するよ。
27デフォルトの名無しさん:2005/04/08(金) 23:51:49
>>26
「何処が無駄か」を聞いてるんだよ。それとも、指摘できないのか?
28デフォルトの名無しさん:2005/04/08(金) 23:53:16
>>27
「メモリーだけでも二〜三倍くらい消費」する、
ゆえに『何処かに無駄があるに違いない』

とか言われると予想。答えになってないけどね。
29デフォルトの名無しさん:2005/04/08(金) 23:54:58
>>27
Javaにとってはムダではないメモリーだよ、ガベージコレクタという重要な機能を動作させるのに必要だからね。
Cにはガベコレ無いですよね、もちろん作って入れてもいいだろうけれど、普通はそんな事はしないからね。
30デフォルトの名無しさん:2005/04/09(土) 00:02:44
>>27
> もちろんその可能性として色々面白いものをVMは持っているのだが
ちなみに、知ってるものを列挙してみ?
31デフォルトの名無しさん:2005/04/09(土) 00:05:21
>>30
厨をイジめて楽しいか?
32デフォルトの名無しさん:2005/04/09(土) 00:06:53
>>30
列挙できるほど沢山はしならいが、一つに実行時オプティマイズかな、
実行中に履歴を調べて状況に応じて最適化するって奴、これが目玉かと思う。
33デフォルトの名無しさん:2005/04/09(土) 00:07:50
>>32
それしか知らんの?
34デフォルトの名無しさん:2005/04/09(土) 00:08:42
>>33
ではもう一つ、ガベージコレクタのメモリー解放はCより速い。
35デフォルトの名無しさん:2005/04/09(土) 00:08:54
>>32
っつか実行時最適化って、このスレ内で既出じゃん。
36デフォルトの名無しさん:2005/04/09(土) 00:09:31
>>33
素直に教えてくださいって言えばいいのにwww
37デフォルトの名無しさん:2005/04/09(土) 00:09:52
>>35
つかそれ以外に決め手になるような物も無いし・・・
38デフォルトの名無しさん:2005/04/09(土) 00:09:55
>>34
は? 何を持って速いと言ってるんだ?
39デフォルトの名無しさん:2005/04/09(土) 00:11:34
>>38
ガベージコレクタのメモリー解放は解放済みマークをつけるだけだからだよ、
Cだとfreeとなるが、これは実際に解放処理がそこに入る。
40デフォルトの名無しさん:2005/04/09(土) 00:13:38
>>39
……ガベコレでメモリ再配置やるのとか知らんのか?

Cの freeだってヒープから取ったメモリなら
解放済みマーク付けるだけだぞ。
41デフォルトの名無しさん:2005/04/09(土) 00:13:45
>>27
VM, JIT
42デフォルトの名無しさん:2005/04/09(土) 00:15:46
>>39
お前が回答する側に回るには
知識が無さ過ぎるぞ。
その回答は致命的だ。
43デフォルトの名無しさん:2005/04/09(土) 00:15:50
>>40
>ガベコレでメモリ再配置やるのとか知らんのか?
知ってるよ
>Cの freeだってヒープから取ったメモリなら
>解放済みマーク付けるだけだぞ。
知らんかった、最近は頑張ってるんだな。

44デフォルトの名無しさん:2005/04/09(土) 00:16:13
サーバサイドでは、もはや動作速度至上主義は通用しない。
安全で安定して動作することが求められている。
これは、管理された箱庭で動作するJavaなり.NETなりがサーバサイドで多く
採用されつつある主因の一つである。

クライアントサイドのアプリケーションでは、動作速度が最重視されることもまだ
少なくないかもしれない。
しかし、Microsoftはクライアントアプリすら箱庭の中で管理しようとしつつある。

年寄りの皆様、もう少し思考を行ってみませんか?
でないと本当に痴呆が始まってしまいますよ?
45デフォルトの名無しさん:2005/04/09(土) 00:18:23
>>43
最近はじゃなくて、昔からですよ。
46デフォルトの名無しさん:2005/04/09(土) 00:19:15
>>45
実装によるんじゃない?
47デフォルトの名無しさん:2005/04/09(土) 00:19:58
>>43
最近の C使いはヒープも自分で実装せんのか?
48デフォルトの名無しさん:2005/04/09(土) 00:20:51
>>47
普通は標準のを使うだろ(w
49デフォルトの名無しさん:2005/04/09(土) 00:21:48
>>48
いや、VMが遅いとか無駄があるとか言うような連中なら、
ヒープぐらい自力で実装しそうなもんだが。
50デフォルトの名無しさん:2005/04/09(土) 00:24:14
>>49
実装した事はあるよ、その場で開放してたよ、
前後のリンク繋ぐだけだし、頻繁に使わないなら大層な処理でもないし。
51デフォルトの名無しさん:2005/04/09(土) 00:30:18
ヒープの解放といえば、
・メモリを管理してる構造体とかに未使用フラグを立てる
・前後に未使用領域があって連結できるなら連結する。

ぐらいか? これがガベコレより遅い、と。
52デフォルトの名無しさん:2005/04/09(土) 00:30:50
>>51
最近のfreeは遅いのですよ。
53デフォルトの名無しさん:2005/04/09(土) 00:32:52
>>50
その場で解放って何だ?

ヒープの癖に内部でfree呼ぶのかと思ったぞ?
54デフォルトの名無しさん:2005/04/09(土) 00:34:27
>>51
マークつけるならストア1回、リンク繋ぐとリードが数回入るね、
キャッシュが問題になるのはリードの方、全てをヒープにして頻繁に使うJavaのような事をするなら問題が起こるね

Cならどうでもいい話。
55デフォルトの名無しさん:2005/04/09(土) 00:41:12
>>54
リンク繋ぐのはガベコレでメモリ再配置するのと同じで冗長な処理と言われたら、
解放の部分は単に未使用フラグ付けるだけだぞ?
56デフォルトの名無しさん:2005/04/09(土) 00:42:14
>>54
っつか、本当にどうでも良い話だな。

>>26 は実行時最適化しか知らなかったでFA?
57デフォルトの名無しさん:2005/04/09(土) 00:45:41
>>56

>実行時最適化しか知らなかったでFA?
どうぞお好きに(藁
58デフォルトの名無しさん:2005/04/09(土) 00:47:23
>>56
FA。わざわざ聞くまでも無い。
59デフォルトの名無しさん:2005/04/09(土) 01:02:21
ファックアナル
60デフォルトの名無しさん:2005/04/09(土) 01:38:00
なんか見てないうちに急にスレが痛くなったな
61デフォルトの名無しさん:2005/04/09(土) 01:39:39
そうか?
文法についてあれこれ聞くだけより
よっぽどレベルは高いと思うが。
62デフォルトの名無しさん:2005/04/09(土) 01:46:00
JFrameを閉じたときのイベント処理はどう記述すればいいのでしょうか
63デフォルトの名無しさん:2005/04/09(土) 02:10:53
>>62
java.awt.event.WindowListener の windowClosed(WindowEvent) を適切に実装した
addWindowListener(WindowListener) でセットするとか。

JFrame#setDefaultCloseOperation(int) で
javax.swing.WindowConstants の
DISPOSE_ON_CLOSE、DO_NOTHING_ON_CLOSE、EXIT_ON_CLOSE、HIDE_ON_CLOSE
とかをセットするとか。
6461:2005/04/09(土) 02:13:26
>>62-63といったようなことより。
65デフォルトの名無しさん:2005/04/09(土) 02:13:50
>>60
確かに痛いね。

ま、数十レスで静かになったんだから良い方なのかもしれないけどさ。
66デフォルトの名無しさん:2005/04/09(土) 02:52:32
Fedora Core3 にJDK(J2SE?)をインストールしようとしてます。
CPUがPentium4 640で64BitのCPUを積んでいて、Fedoreも64bitで動作させています。

できればJ2SE 5.0をインストールしたいのですが、64Bitは
Linux AMD64 Platformと
Solaris AMD64 Platform
しかありません。

J2SE1.4.2の方は
Windows IA64 Platform
Linux IA64 Platform
があります。

J2SE5.0はIntelの64BitCPUには未対応なのでしょうか?
どなたかご存じの方教えてください。
67デフォルトの名無しさん:2005/04/09(土) 02:54:07
テレビ欄みたいなビューを持つブラウザから閲覧できるプログラムを
JSP+Servletで作りたいんですが、参考になるいいフリーのソース公開ライブラリとかありませんかね?
1日を時単位で24分割、それぞれにたとえば1時〜3時みたいにひとつだけの状態
(テレビ欄で言うなら「その時間の放送番組」のようなもの)を付加していく、
最終的に8〜12個のカテゴリ(テレビ欄で言うなら「各テレビ局」)を管理したいのですが。
68デフォルトの名無しさん:2005/04/09(土) 02:58:32
>>66
釣れますか?
69デフォルトの名無しさん:2005/04/09(土) 02:58:50
>>67
JSP+Servletなら最終出力はhtmlだろうから
自分でがんばってtableを組むしかないだろ。
70デフォルトの名無しさん:2005/04/09(土) 03:00:42
>>60
>>7 に釣られたナイス害が多いみたいですね
71デフォルトの名無しさん:2005/04/09(土) 03:02:20
>>69
ビューHTMLはいくらでもかけるのでまあ無くてもなんとかなるんですが
(どうせビューは動作するベースにあわせてカスタマイズしなきゃいけませんしね)、
コントローラ部としての挙動仕様を見てみたい(つーか使いたい)ことや、
DB(Oracle)勉強中なのでデータストアの部分をどのように整理しているか見てみたいと思いまして。

まあぶっちゃけ言っちゃうと自宅のDVDレコーダに対して予約を入れる/入れたつーのを
自宅鯖で閲覧/操作できるWebアプリを作ってみたいなと。そんな感じです。
72デフォルトの名無しさん:2005/04/09(土) 03:02:33
>>68
釣りじゃないんですけど(つД`)
CPU詳しくないから変な勘違いしてるかも。
良ければ教えてくだされ。
73デフォルトの名無しさん:2005/04/09(土) 06:37:27
>>72
俺はその一つ上のグレードのCPUだけど
J2SE 5.0のLinux AMD64 Platformで動かしてる。
74デフォルトの名無しさん:2005/04/09(土) 06:57:38
ウホッ
浦山氏
75デフォルトの名無しさん:2005/04/09(土) 08:04:17
readLineを使って文字列を一行づつ改行しながら読み込むにはどうしたらいいのでしょうか?
concatメソッドを使ったら、改行されずにくっついてしまいますが、、
76名無し ◆774/GPwwww :2005/04/09(土) 08:15:45
>>75
|д・)つ concat("\n")
77デフォルトの名無しさん:2005/04/09(土) 08:21:45
なるほど!ありがとうございます
78デフォルトの名無しさん:2005/04/09(土) 08:59:03
>>72
IA64ってIA32とはまったく別のアーキテクチャだよ
Pentiumなんてナマエはつかない

だからつりだと誰でも思うのさ
79デフォルトの名無しさん:2005/04/09(土) 09:12:46
80デフォルトの名無しさん:2005/04/09(土) 09:43:55
>>79
それIA64いわない
81デフォルトの名無しさん:2005/04/09(土) 09:47:21
>>80
そのあたりで混乱を生じているんだと思うよ
82デフォルトの名無しさん:2005/04/09(土) 10:08:28
IA64ってーのはいわゆるたっかいサーバー製品用だからな
アーキテクチャがまったく違う

64bit拡張IA32はx64という言い方してる
83デフォルトの名無しさん:2005/04/09(土) 10:09:58
>>82
EM64Tじゃなかったっけ?
84デフォルトの名無しさん:2005/04/09(土) 11:06:59
EM64はインテル独自だろ?
AMDはAMD64といってるし

汎用的なx86-64がx64
85デフォルトの名無しさん:2005/04/09(土) 11:33:26
>>84
「64bit拡張IA32はx64」と「64bit拡張IA32はEM64T」はどっちが正確?
86デフォルトの名無しさん:2005/04/09(土) 11:44:24
EM64といってるのはインテル
AMD64といってるのはAMD

インテルが妥協して命令セットが統一されたので
結局そのどちらも同じでx64(MSが提唱)

ってだけだろ?
87デフォルトの名無しさん:2005/04/09(土) 19:08:55
あのaxisを使ったウェブサービスを勉強し始めたのですが、サーバ上のjavabeans
から使うためのファイルってのはどこに置いておけばいいのでしょうか。
同じサーバ上で結構です。要は何フォルダに置いておけばいいのでしょうか?という事ですね。

ちなみに、スレ違いだった場合は激しく申し訳ない。誘導キボンヌ
88デフォルトの名無しさん:2005/04/09(土) 21:45:53
>>87
WEB-INF/classesに置いておいて、
getClass().getResourceAsStream("/hoge.txt")
でInputStream取得すればいいんじゃね?
89デフォルトの名無しさん:2005/04/09(土) 22:45:38
さっき拾ってきたあるアプリなんですが、
GUIがちょっと普通と違ったので調べてみたところJavaで作られてるらしかったです。
なのですが、画面の右下の所に例のティーカップみたいなのが現れません。
普段はJava製の物を動かすとそれが現れるんで
これはJavaを使ってるんだなってのが分かるんですが、
これはどういうことなんでしょうか?
90デフォルトの名無しさん:2005/04/09(土) 22:48:21
>>89
appletがティーカップ。
applicationでは出ない。
91デフォルトの名無しさん:2005/04/09(土) 22:48:37
そういう風に作ってるんでしょう。
92デフォルトの名無しさん:2005/04/09(土) 22:50:13
>>91
何しに出てきたんだ?
93デフォルトの名無しさん:2005/04/09(土) 22:59:07
ガベコレなんて、ユーザーからみれば、百害あって一利無し。
94デフォルトの名無しさん:2005/04/09(土) 23:00:04
>>93
そもそも、ユーザはガベコレなんて知らない。
95デフォルトの名無しさん:2005/04/09(土) 23:06:23
>>90
ごめんなさい。ボケてました。ありがとう。
96デフォルトの名無しさん:2005/04/09(土) 23:11:51
>>93
プログラマ責任のメモリリークが撲滅されるのでウマー
97デフォルトの名無しさん:2005/04/09(土) 23:12:02
GUI についての質問なのです。

JFrame に対して、JTextField を貼り付けると(正しくは JFrame の getContentPane() で取得できるコンテナに対して)、
正常に JTextField に文字を入力することができるのですが、
JWindow に対して同様のことをすると、JTextField に文字を入力できません。

キャレット自体が表示されていないようです。

何か回避方法はありませんでしょうか???
98デフォルトの名無しさん:2005/04/09(土) 23:26:39
JWindowを使う理由は?
99デフォルトの名無しさん:2005/04/09(土) 23:29:56
>>98
タイトルバー、クローズボタンなどのないウィンドウを使いたかったんです。
100デフォルトの名無しさん:2005/04/09(土) 23:36:57
JFrameのAPIみてみそ
10197:2005/04/09(土) 23:47:20
トップレベルじゃないから、不可能ってことですか?
102デフォルトの名無しさん:2005/04/09(土) 23:47:50
ガペコレなんて自称プログラマの巻き起こすメモリリークが少々軽減される程度
ガペコレに頼るより低学歴低賃金プログラマを雇わない方が遙かに効果大
ユーザーはガペコレは知らなくてもJavaの遅さや引っかかりにウンザリ
103デフォルトの名無しさん:2005/04/09(土) 23:58:30
>>102
ソフトの値段が跳ね上がり競争力上がってアボーン。

まぁ、当然他のバグもアホほどあって、火消しにハイスキルな奴を投入したりとかのリスクを考えると同意。
104デフォルトの名無しさん:2005/04/10(日) 00:07:47
携帯Javaアプリなんぞはメインループの頭で必ずSystem.gc()してたりする奴も多いんだが。
(まじでメモリ足らんからねorz)
105デフォルトの名無しさん:2005/04/10(日) 00:19:47
>>104
昔はJ2SEもフレームレート安定のためにそれやるの基本だったよ
世代別GC採用してからやると余計に遅くなったがね

>>102みたいなあふぉは論外として


比較的最近のニュースによると携帯もHotspot搭載らしいので
今後はたしょうはよくなっていく・・・のかなぁ
JavaはCPUじたいがどうのこうのよりやはりメモリ総量がかなりきくからねぇ
106デフォルトの名無しさん:2005/04/10(日) 00:21:44
>>102
メモリリークさせた事が無いなんて奴は半人前だろ。

そーゆー奴が凄腕プログラマである事は無い。
単にメモリリークさせた事に自分で気付かないだけ。
107デフォルトの名無しさん:2005/04/10(日) 00:28:53
>>106
もはや意味不明なわけだが。
108デフォルトの名無しさん:2005/04/10(日) 03:17:34
メモリの話はもういいよ。
109デフォルトの名無しさん:2005/04/10(日) 04:41:01
つまりガペコレは、メモリリークを頻発させる、低脳プログラマにだけ必要であって、
デバッグ段階でメモリリークを除去できる、普通のプログラマや、
ソフトを使うだけのユーザーには、かえって害のある物って事だな。
でも、ドカタプログラマを大量に使う、Javaのプログラム開発では、
ある意味、必須だよな。
110デフォルトの名無しさん:2005/04/10(日) 07:21:22
>>97

JFrameをsetUndecoratedにしたやつだとどうなる?
111デフォルトの名無しさん:2005/04/10(日) 07:54:40
>>109
アホか。
112デフォルトの名無しさん:2005/04/10(日) 10:42:28
コスト軽減のため、ガベコレは画期的な物だ
大きなソースになればなるほど、メモリリークする確率は上がるし、
見つけるの時間かかるし。
ってか、実際使用してメモリリークするまで気づかない事多いし。
また、ユーザーにはJAVAでメモリリークが絶対無いって事が、
仕様上で保証されてるから安心と言えば安心。

>>109のようなヤツが作る物が一番怪しいんだよ・・・
小さなプログラムしか作った事がないか、
自分だけが使うプログラムしか作った事がない。
もしくは配布or販売してるがユーザーが少なく
フィードバックも少なくてメモリリークのバグ報告が少ないとかじゃない?
113デフォルトの名無しさん:2005/04/10(日) 11:03:41
>>109
> つまりガペコレは、メモリリークを頻発させる、低脳プログラマにだけ必要であって、
その定義であれば、世の中には低能プログラマだけしかいない。

大きな違いは自分が低能と気付いているかどうか。
>>109 は自分が低能と気付いていない人。
114デフォルトの名無しさん:2005/04/10(日) 11:11:21
>>109
テストじゃなくてデバッグなんて言ってるし。
115デフォルトの名無しさん:2005/04/10(日) 11:12:56
>>113
無知の知ですな。

個人的にはインスタンスを返す関数をインスタンスを引数に取る関数に直接渡せるのが便利。
C++で同じことすると速攻リークですが。。。
116デフォルトの名無しさん:2005/04/10(日) 11:13:27
>>114
俺らがしっかり叩くからお前は後ろの方でギムネバ茶でも飲んでてください。
117デフォルトの名無しさん:2005/04/10(日) 11:59:38
> 個人的にはインスタンスを返す関数をインスタンスを引数に取る関数に直接渡せるのが便利。
具体的にどーゆー事を言ってるんだか?
118デフォルトの名無しさん:2005/04/10(日) 12:00:10
>>115==>>116 なら任せるのは危険っぽい。
119デフォルトの名無しさん:2005/04/10(日) 12:03:21
普段Javaに使い慣れてるからC++ではnewした一次変数を
渡しまくってしまってdelete出来ねぇよウワァァンってとこじゃない?
アフォだけど
120デフォルトの名無しさん:2005/04/10(日) 12:23:14
>>115 って修飾語を削ると、
関数を関数に渡せるのが便利ってなるんだが……
121デフォルトの名無しさん:2005/04/10(日) 12:28:29
Hoge bar() {
....;
Hoge aHoge = new Hoge();
...;
return aHoge;
}

foo(Hoge aHoge) {
// use aHoge;
}

ってことだろうな。
122デフォルトの名無しさん:2005/04/10(日) 12:30:53
>>121
aHoge・・・ahoge・・・アホ毛・・・ハァハァ。なかなかいい趣味だ。やらないか?
123デフォルトの名無しさん:2005/04/10(日) 12:49:16
>>117
具体的もなにもデコレーターパターンが直ぐに思い浮かぶが?
C++だったらリークする等とは全く思わんが・・・・・・

俺としては、クラス間でオブジェクトを投げ合う様な場面で、誰が何処で
生成したオブジェクトなのかを意識する必要がないのがありがたい。
124デフォルトの名無しさん:2005/04/10(日) 12:52:56
C++で

hoge(new CString());

ってリークしないんですか?
125デフォルトの名無しさん:2005/04/10(日) 13:04:41
>>124
書き方変えろよ!JavaにはJavaの、C++にはC++の書き方がある。
126デフォルトの名無しさん:2005/04/10(日) 13:08:04
>>125
アホか。
127デフォルトの名無しさん:2005/04/10(日) 13:18:54
>>120
同意。>>115にはドキュメント書かせないほうがよさげ。
128デフォルトの名無しさん:2005/04/10(日) 13:21:25
125 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/10(日) 13:04:41
>>124
書き方変えろよ!JavaにはJavaの、C++にはC++の書き方がある。

126 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/10(日) 13:08:04
>>125
アホか。
129デフォルトの名無しさん:2005/04/10(日) 13:24:18
>>123
>C++だったらリークする等とは全く思わんが・・・・・・

ちょんぷろ書いたらばっちりリークしました。
どういう意味だったのでしょうか。
130デフォルトの名無しさん:2005/04/10(日) 13:28:06
aho = new Nanika
hoge(aho)
aho.sine
とでもすれ。
131デフォルトの名無しさん:2005/04/10(日) 13:31:35
C++なら
std::auto_ptr<Hoge> aHoge;
foo(aHoge.get());
foo 側で解放処理をしない限り、Java の
ようには書けないな。これがC++風
13297:2005/04/10(日) 13:51:31
>>110
でけた!

こんな俺の為にアドバイスをくれた方々、ありがとうございました。
133デフォルトの名無しさん:2005/04/10(日) 15:01:38
Java厨って、相変わらずキモイね。新興宗教の信者みたい・・・
134デフォルトの名無しさん:2005/04/10(日) 15:07:31
>>133
いや変態が1人いて
自作自演繰り返してるだけだと思うよ
135デフォルトの名無しさん:2005/04/10(日) 15:20:17
>>133-134
誰のことだよ、いったい。はっきり書け、ボケ。お前も自作自演ダロが!

>>112-116
のガペコレ盲目的信者あたりか?こんなのを、普通のプログラマとゴチャマゼにすんな。
変態信者なんて、ほんの一部で、大半はまともなんだよ!
136デフォルトの名無しさん:2005/04/10(日) 15:23:19
ketsuge
137デフォルトの名無しさん:2005/04/10(日) 15:32:45
>>135
メモリーリークしないとか言いはる奴って
恐らくバグも出さないんだろうな。
注意すれば(あるいは高学歴and/or高収入であれば?)、
あらゆるバグは未然に防げるとか言い出しそう。
138デフォルトの名無しさん:2005/04/10(日) 16:15:28
>>137

こういうアホが、ガペコレとかに妄想いだくんだろうな。
同じJavaを使うものとしては、哀しいことだ。

バグもリソースリークも、テストで防げるよ。
もちろんゼロにはならないが、実用的レベルでって事だ。
じゃなきゃ、銀行のシステムで、プログラムなんて使えないだろ。
それが、職業プログラマってもんだ。
139デフォルトの名無しさん:2005/04/10(日) 16:18:45
いいかげん、ウザい。
140デフォルトの名無しさん:2005/04/10(日) 16:20:01
敗北宣言も出たことだし、いい加減終わりにしろよ。
141デフォルトの名無しさん:2005/04/10(日) 16:21:24
>>138
・・・・・・
142デフォルトの名無しさん:2005/04/10(日) 16:24:17
>>138
こーゆー奴がいるからUFJ銀行とかでシステムダウンしたりするんだろうな。

誰であれ、バグもリソースリークも未然に防ぐ事はできない。
だからテストするんだが、テストにだってバグの可能性はあるし、
テスト漏れの可能性も常につきまとう。
成果物が実用的レベルかどうかは客が判断する事だ。
それが、職業プログラマってもんだ。
143デフォルトの名無しさん:2005/04/10(日) 16:24:44
ガペコレがあればメモリーリークしないとか言いはる奴って
おそらくシステム開発に携わったことないんだろうな
144デフォルトの名無しさん:2005/04/10(日) 16:25:48
>>142
推敲してから書き込むように(w
145デフォルトの名無しさん:2005/04/10(日) 16:26:15
>>143
> ガペコレがあればメモリーリークしないとか言いはる奴って
誰もそんな事言って無いと思うが。
(少なくとも俺は言って無い)
具体的にレス番示してくれるか?
146デフォルトの名無しさん:2005/04/10(日) 16:27:59
粘着Java厨同士の争いっての実物初めてみた
147デフォルトの名無しさん:2005/04/10(日) 16:28:19
黄金週間明けまでこんな調子なのかな?
148デフォルトの名無しさん:2005/04/10(日) 16:28:31
ホントしつこいね
149デフォルトの名無しさん:2005/04/10(日) 16:31:40
>テストにだってバグの可能性はあるし
テストをテストするんだよ、多分
150デフォルトの名無しさん:2005/04/10(日) 18:22:48
動きゃいいんだよ、動きゃ
151デフォルトの名無しさん:2005/04/10(日) 19:24:58
>>147
開けも何も、まだ入っていないだろ
152デフォルトの名無しさん:2005/04/10(日) 19:56:22
テンプレ>>1
>以下のエラーが表示されて、途方にくれているあなたは、下のページへ。 」
>「Exception in thread "main" java.lang.NoClassDefFoundError: 」
>http://www.wikiroom.com/java/?path,classpath
と同じ症状で途方にくれてるものですが
リンク先の処置をしても同じようなエラーが出ます

それで質問なんですがこちらwin98seでautoexe.batを開くと
loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys
しか書いてなく
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\J2SDK1.4.2_01\BIN
を追加したのですが
loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys
が1つしか書いてないautoexe.batは正常ですかね?
153152:2005/04/10(日) 20:07:12
板違いスマソ
吊ってきます
154デフォルトの名無しさん:2005/04/10(日) 20:18:14
JAVAのコンソールプログラムから他のプログラムに入力し、結果を
受け取るにはどうすればいいのでしょうか?
pipeを使うらしいのですが、いまいち分からないです。
155デフォルトの名無しさん:2005/04/10(日) 20:32:49
>>109
ソフトウェア開発の変化の上で必須となりつつある技術であり
CやJavaに携わる技術者の質の問題ではない。

ドカタプログラマを大量に使うような開発が行われていると認識しているのであれば、
それは「Javaの」プログラム開発のせいではなく、
「現在の」プログラム開発の形態がそうなりつつあるからなのだろう。

そういった意味では、現代のプログラム開発の形態に
C言語はそぐわなくなっている、ということになる。
156デフォルトの名無しさん:2005/04/10(日) 20:43:50
>>154
Javaに限った話題ではありませんので
適切な場所に移動して質問されることをオススメします
157デフォルトの名無しさん:2005/04/10(日) 20:45:13
とりあえず「ガペコレ」とか書いてるのは全部釣りだろ
158デフォルトの名無しさん:2005/04/10(日) 21:15:18
>>157
釣りというか同一人物でしょ
159152:2005/04/10(日) 21:25:17
こっちで良かったようなのでできれば
>>152
の質問お願いします
160デフォルトの名無しさん:2005/04/10(日) 21:29:42
>>159
こっちで良くないです
Javaの話題じゃなくてWindowsの話でしょ
161デフォルトの名無しさん:2005/04/10(日) 21:45:40
ガペコレって書いてるのは同一人物
ドカタって書いてるのは同一人物
メモリリークって書いてるのは同一人物
162デフォルトの名無しさん:2005/04/10(日) 21:49:53
とりあえず「JAVA」とか書いてるのは全部釣りだろ
163デフォルトの名無しさん:2005/04/10(日) 21:50:42
>>162
釣りというか同一人物でしょ
164デフォルトの名無しさん:2005/04/10(日) 21:56:47
JAVAに不満がある椰子はこのスレ来るなよ
165デフォルトの名無しさん:2005/04/10(日) 22:24:29
>>159
autoexe.batに何が書かれているかはjavaとは関係ないです。
よってスレ違い。というかNoClassDefFoundErrorとautoexe.batは関係ない。
166デフォルトの名無しさん:2005/04/10(日) 22:58:58
>>159
とにかく「どの行で」その例外になったかを調べて、具体的に
「どのクラスが見つからないか」を決定すること。それが自作の
クラスなら.classファイルの転送し忘れとかでしょ。そうでない
ならコンパイル時と実行時でCLASSPATHの設定が違うとか?
167デフォルトの名無しさん:2005/04/10(日) 23:12:28
>>166
>>159(>>152)はそれ以前のところにいるのでスルーしる
168デフォルトの名無しさん:2005/04/10(日) 23:23:01
>>159
それ、CLASSPATHの問題だから。
というかクラス定義が見つかりませんってちゃんと書いてあるでしょ。

CLASSPATHってなに、とおもうんだったら、もう一度>>1を読みなさい。
それFAQだから。
169デフォルトの名無しさん:2005/04/10(日) 23:25:24
>>168
classpath程度でもの凄い偉そうですね。
まぁ。その程度の人なんだけれど。
170デフォルトの名無しさん:2005/04/10(日) 23:32:31
おいおい。
そりゃclasspathなんて基礎の基礎の上にちょっと調べりゃ出てくる
FAQ中のFAQなんだから、馬鹿にされて当然。
やさしく教えてたらそういうのが増えて困る。少なくとも>>168
参照先を示しているだけまし。
171デフォルトの名無しさん:2005/04/10(日) 23:36:11
>>170
他人をバカにしてる時点で負けてるんですよ。
172デフォルトの名無しさん:2005/04/10(日) 23:37:15
173デフォルトの名無しさん:2005/04/10(日) 23:38:06
人生がどうしてもうまくいきません。
おしえてください。

public class Life {
public void run() { ... }
public static void main( String[] args) {
Thread th = new Life();
th.start();
}
}
174デフォルトの名無しさん:2005/04/10(日) 23:39:55
スレタイにある「初心者大歓迎」というのは嘘なわけ?
175デフォルトの名無しさん:2005/04/10(日) 23:40:10
質問すみません

登録した全員に一斉にメールを送る事が出来る機能って、何ていうんでしょう
176デフォルトの名無しさん:2005/04/10(日) 23:41:37
>>173
「class Life」の後ろに「extends Thread」を追加すれ。
そうしないと変数thにLifeのインスタンスを入れられない。
177デフォルトの名無しさん:2005/04/10(日) 23:43:46
>175
とりあえずJavaMailでぐぐって下さいな。
……「Javaで」登録した全員に一斉にメールを送る機能の実現方法を知りたいんだよね?
178デフォルトの名無しさん:2005/04/10(日) 23:46:45
>>177
レス感謝します、ググってみます
友人と作ろうと話して、いざパソコンの前に来たら何とググれば良いか分らなくて…
助かりました
179デフォルトの名無しさん:2005/04/10(日) 23:50:06
>>174
Javaの初心者は大歓迎だが
Javaの話に辿りつけてない者は相手にしない
180デフォルトの名無しさん:2005/04/10(日) 23:57:04
>>179
はいはい。あんたは偉い偉い。
181デフォルトの名無しさん:2005/04/11(月) 00:01:43
>>180
こんなの書いてるくらいだったら
おまいが回答してやってはどうか
183サマージャンボされちゃった僕:2005/04/11(月) 00:12:05
184デフォルトの名無しさん:2005/04/11(月) 00:25:43
お前らこんなところでケンカするなよ。
>やさしく教えてたらそういうのが増えて困る。
初心者歓迎ってスレタイにあるんだから我慢汁。
答えるのが嫌なら放っておけ。
煽っても荒れるだけなんだから。
185デフォルトの名無しさん:2005/04/11(月) 00:44:42
@オブジェクト.メソッド ←オブジェクトのメソッドを実行
Aオブジェクト.メソッド ←オブジェクトに対してメソッドを実行し、その結果をオブジェクトに代入
B変数=オブジェクト.メソッド ←オブジェクトに対してメソッドを実行し、その結果を変数に代入

オブジェクト.メソッドの使い方として
上記3通りがあると認識しているのですが
AとBの使い分けの根拠ってあるのでしょうか?
186デフォルトの名無しさん:2005/04/11(月) 00:57:26
>>185
2,3が意味不明。
187デフォルトの名無しさん:2005/04/11(月) 00:58:20
>>185
1と2って何が違うんだ?
188デフォルトの名無しさん:2005/04/11(月) 01:00:36
うんこ喰った
189185:2005/04/11(月) 01:15:29
すみません。出直してきます
190デフォルトの名無しさん:2005/04/11(月) 01:17:16
>>185
2と3の違いがよくわからん。2の説明に代入ってあるのに代入してなくない?
もしかして2で呼んでるメソッドの中でそのオブジェクト自身のプロパティに値をセットしてるの?
メソッドの結果をオブジェクト自身にセットするか返り値で返すかの使い分けってことかな。
191185:2005/04/11(月) 01:24:55
Aはオブジェクトに対してtrim()などのAPIを使ったときに
その結果がオブジェクトに返されるのではないかと思ったわけです・・。
192デフォルトの名無しさん:2005/04/11(月) 01:28:31
>>191
String は不変オブジェクトだから trim() しても、そのインスタンス自体は変化しないぞ。
193デフォルトの名無しさん:2005/04/11(月) 01:30:35
>>185
@とかは機種依存文字だから使わないように。
194デフォルトの名無しさん:2005/04/11(月) 01:31:53
代入してると言うより、オブジェクトの内部状態が変化したということだな。
ちなみにtrim()は値を返すので、3のやり方になるよ。

Stringのような、内部状態を一切持たない「不変オブジェクト」は、trim()とかすると、
状態が変化した新しいオブジェクトを作って返す。
2のようにメソッドを実行した結果内部状態が変わるのは「可変オブジェクト」。
Stringに対して、StringBufferは可変オブジェクトだな。

不変オブジェクトはマルチスレッド環境においても排他制御しなくても絶対安全
という特徴がある(状態がないのだから、マルチスレッドからアクセスしても、
常に同じ状態であることが保証できるから)。

一方で、なんかするたびに新しいオブジェクトをぱかぱか作るので、メモリバカ食い
するという欠点がある。
195デフォルトの名無しさん:2005/04/11(月) 07:39:35
文字 ① はUnicodeでは U+2460。
196デフォルトの名無しさん:2005/04/11(月) 10:13:51
海外のJavaプログラマが書いたソースみると、
よくオブジェクト名の頭に"m"を付けてるんだけど、
これは何の意味なんでしょう?
mIDとか、mNameとか。
197デフォルトの名無しさん:2005/04/11(月) 10:23:31
ヒント: m稲垣
198デフォルトの名無しさん:2005/04/11(月) 11:11:55
例えば外部コマンドの呼び出しを
Runtime#exec()で行うとして、
これに任意のタイムアウト値(10秒以上経過でエラーとか)
を設定することってできるんですかね?
もしやったことある!って方いたら教えてください。。。
199デフォルトの名無しさん:2005/04/11(月) 11:24:41
>>198
そういう動きを実装したことはある
200デフォルトの名無しさん:2005/04/11(月) 12:28:15
>>197
メンバーってことですか。
クラスのメンバー変数?どういう意味でしょうか。。。
ソースあさってきまつ
201デフォルトの名無しさん:2005/04/11(月) 12:42:21
>>200
そう。
メソッド内のローカル変数とクラスのメンバー変数を区別しやすくする
ために、メンバー変数に m とか m_ とか f とか this-> とか付ける流
儀がある。
202デフォルトの名無しさん:2005/04/11(月) 14:03:40
javaのコーディング方法についての質問です。

if (!source.equals(destination1)
      && !source.equals(destination2))
と、制御構文のパラメータが2行にまたがる時は

if (!source.equals(destination1)
      && !source.equals(destination2)) {
  statement;
}
と、{ の位置を2行目と同じ行にするか
if (!source.equals(destination1)
      && !source.equals(destination2))
{
  statement;
}
と、{ を一行下げて書くか、どちらの方が正規のJavaコーディングに
沿ってるのでしょうか?

203デフォルトの名無しさん:2005/04/11(月) 14:09:07
204デフォルトの名無しさん:2005/04/11(月) 15:02:20
>>201
> this-> とか付ける
付けない。っつか、構文エラーだ。
205デフォルトの名無しさん:2005/04/11(月) 15:04:26
>>202
たしか、Sunのコーディング規約では上のはず。
職場やプロジェクトのコーディング規約があるならそっちに従え。
206デフォルトの名無しさん:2005/04/11(月) 15:19:19
>>195
2chってSJISでしょ。機種依存文字はダメ。

っつか、Unicdeでキャラクタコードが割り当てられてても
対応したフォントが無ければ表示できないし。
207デフォルトの名無しさん:2005/04/11(月) 15:19:25
>>204
this.

の間違いだろ
208デフォルトの名無しさん:2005/04/11(月) 15:26:02
>>207
個人的にはインスタンス変数である事を示すためだけに
中途半端にハンガリアン記法使うぐらいなら
this. を強制した方がマシだとは思うけど。

>>201 は入門者か? 慣れてる人なら間違えないと思うし。
209201:2005/04/11(月) 15:52:15
いやー、Javaはもう10年近く触ってるんだけど、C++も使うから間違え
ちゃた。てへ。

210デフォルトの名無しさん:2005/04/11(月) 17:11:08
>>207
アレだろ。最近粘着してる、ガペコレとか書いてた C++厨の彼だろ。
211デフォルトの名無しさん:2005/04/11(月) 17:43:26
>>210
セラピストに相談しろ
212デフォルトの名無しさん:2005/04/11(月) 17:56:31
>>210
阿呆な癖に粘着性だけは抜群だったよね。
たぶん、まだいるから刺激しない方が良いよ。
213デフォルトの名無しさん:2005/04/11(月) 18:05:21
214デフォルトの名無しさん:2005/04/11(月) 18:17:50
>>210
奴はC++厨じゃなくて単なる厨だと思うが。
あんなんと同類にされたらC++厨が可哀そうだ。

>>212
そだね。
215デフォルトの名無しさん:2005/04/11(月) 20:20:22
スレ違いは悪いんだけど、C++でもthisだったら「this.名前(...)」
じゃないの。thisがいきなりポインタであるようなクラスって
作る方法あるの?
216デフォルトの名無しさん:2005/04/11(月) 20:23:02
すんません、逆にthisって全部ポインタっすね、吊って来ます…
217デフォルトの名無しさん:2005/04/11(月) 21:12:45
粘着Java厨キモイ
218デフォルトの名無しさん:2005/04/11(月) 21:29:47
text→XML→XSLで変換
という処理を作成したいのですが
中間のXMLファイルを出力したくありません。
仮想ファイルみたいのを扱えるクラスは存在するのでしょうか?
219デフォルトの名無しさん:2005/04/11(月) 21:41:39
>>207=>>217
お前、ガペコレとか言ってたC++厨だろ。
お前みたいな低レベルの馬鹿に、Javaは無理なんだよ。
このスレから消えろ。
220デフォルトの名無しさん:2005/04/11(月) 21:59:19
>>208
mとかfとかつけるのはハンガリアンでは あ り ま せ ん
221デフォルトの名無しさん:2005/04/11(月) 22:04:05
無職で2chばかりやってると、社会復帰できないほど性格が歪んでくるよね。
いくら妄想を書き込んでも、将来は暗いし誰も雇ってくれないし。
本当は、もう人生終わってるんだよね。
222デフォルトの名無しさん:2005/04/11(月) 22:15:39
>>221
自分の実体験ですか? ま、頑張ってね。
223デフォルトの名無しさん:2005/04/11(月) 22:23:06
>>221
ガンバレ
プログラマやめて新聞配達でもすれば生きてはいける(´∇`)
224デフォルトの名無しさん:2005/04/11(月) 22:26:11
無職で2ちゃんに入り浸りで、JAVAプログラマになるのが夢って、夢というより妄想だよな。すねかじられてる親は泣いてるよ。
225デフォルトの名無しさん:2005/04/11(月) 22:28:02
>>220
ハンガリアンに詳しい人ハケーン

っつか、この件に関しては、接頭辞に m_ 使おうが m 使おうが f 使おうが
やってる事同じだから区別する必要はないのだが。
226デフォルトの名無しさん:2005/04/11(月) 22:33:57
>>224
ちゃんと自分の事理解してるじゃん。
頑張ってね。とりあえずバイトからかな?
227デフォルトの名無しさん:2005/04/11(月) 22:39:05
バイトしながら2chやってる奴を、無職の妄想家っていうんだよ
228デフォルトの名無しさん:2005/04/11(月) 22:40:42
>>227
あぁ、バイトはしてるんだ? 偉いね〜(完全無職よりは)
229デフォルトの名無しさん:2005/04/11(月) 22:42:19
>>226

プ
自分はバイトをやってるから無職じゃないとか思ってた?
プププ

230デフォルトの名無しさん:2005/04/11(月) 22:43:28
コンビニのバイトは、やっぱ「職」とは言えないよなあ。
231デフォルトの名無しさん:2005/04/11(月) 22:45:12
>>221-230
お前ら Java に関係ない話は他所でやれ。

っつか、なんでバイトって単語に過剰反応してんだろう?
232デフォルトの名無しさん:2005/04/11(月) 22:58:12
byte[] bytes = { (byte)221, (byte)229 }
233デフォルトの名無しさん:2005/04/11(月) 23:05:22
byte[] signature = { (byte)202, (byte)254, (byte)186, (byte)190 };
234デフォルトの名無しさん:2005/04/11(月) 23:08:18
フリーアルバイター = 無職
フリーアルバイター = 無職
フリーアルバイター = 無職
援交 = 売春
援交 = 売春
援交 = 売春

これ社会の常識
235デフォルトの名無しさん:2005/04/11(月) 23:32:08
まだ、正確な不具合箇所が判明してないんで悪いんだけど
知っている人がいたら教えてください。

Linux上でApache+Resinを連携させてServletを作ってるんだけど
HttpServletRequest#getParameter() をコールしているところで
例外が発生して困ってます。
発生条件として、秒間20〜30アクセスの負荷をかけると
パラメータ取得時にArrayIndexOutOfBoundsExceptiongaが発生します。

やっぱ、getParameter()を使ってる箇所を synchronized 化するしかないですか?
それとも、Resin 特有の問題で他のコンテナでは違う実装方法がとられてたりするんですか?
236デフォルトの名無しさん:2005/04/12(火) 00:13:09
>>218
XMLをStringやchar[]やbyte[]に保持しておけばいいのでは。
237デフォルトの名無しさん:2005/04/12(火) 00:20:08
つーかストリームわかっていればそれがファイルだろうがソケットだろうが
メモリ内だろうがかわらんだろうに

その使用するライブラリがFileを必ず使うとかだとちと無理だがな
238デフォルトの名無しさん:2005/04/12(火) 00:37:01
>>225
というかmとかつけるのはプレフィクスであって
ハンガリアン記法はプレフィクスとして型名の一部をつけるのが特徴じゃなかったっけ?
239デフォルトの名無しさん:2005/04/12(火) 00:41:55
J2MEじゃなくてJ2SEでbluetoothを用いたプログラミングをしたいんですが、できますでしょうか?
どこかにサンプルコードがあれば、教えていただきたいです。

ME用のサンプルコードならあるのですが、SE用のがgoogleしても見あたらなくてこまってます。
240デフォルトの名無しさん:2005/04/12(火) 01:07:13
241デフォルトの名無しさん:2005/04/12(火) 01:07:50
JDK1.4環境で、HttpUrlConnectionクラスから接続に使用したproxyの情報を
取得する方法が判るとかいう方います?

JDK5.0のproxySelectorを使えとか言われるとそれまでなんだけど。
242デフォルトの名無しさん:2005/04/12(火) 01:08:56
>>170

> やさしく教えてたらそういうのが増えて困る。
じゃあお前が出て行きゃ済む話では?
俺は優しく教えるし、そういうのが増えても特に困らん。
243デフォルトの名無しさん:2005/04/12(火) 01:10:29
>>196
MFCはm_だよね。
つーか、そんなにm多い?
Javaのコーディング標準では推奨していなかったと思うけど。
244デフォルトの名無しさん:2005/04/12(火) 01:13:22
ガストアルバイター
ガストアルバイター
ガストアルバイター
245デフォルトの名無しさん:2005/04/12(火) 01:20:10
>>241
System.getProperty("http.proxyHost") とかでとってこれんかったっけ?
実装依存かもしれんが?
246デフォルトの名無しさん:2005/04/12(火) 01:32:51
>>242
ところで70番以上まえのネタをいつまでやるんだ?
247デフォルトの名無しさん:2005/04/12(火) 01:49:52
今日の格言 無知な初心者とガペコレとか言ってる奴は氏んだ方が良い
248デフォルトの名無しさん:2005/04/12(火) 08:14:18
しつこさと執念深さだけは(☆∀☆)1だね
249235:2005/04/12(火) 08:27:39
で、俺の質問に答えられる先輩方はいないわけか・・・

面倒だがコンテナのソース追うか・・・
250デフォルトの名無しさん:2005/04/12(火) 08:27:54
Tiffファイルから、画像データ部分をバイトで取得したいです。
組み込みなので
ネイティブに依存しないライブラリで、そのようなことができるものはりますか?
(JAIはDLLなどが必要みたいのでだめです)
251デフォルトの名無しさん:2005/04/12(火) 09:00:58
>>236
いったんString,char[],byte[]にするより、XSLへの入力だったらDOMに
するのが実行効率が最も良さそう。
252デフォルトの名無しさん:2005/04/12(火) 11:01:09
すいません。質問なのですが・・・。
Javaサーブレットを使うWebなどでDBのロックって可能なんでしょうか。
というか、そんなことやっちゃっていいんでしょうか。

何かのシステムである画面にDBのデータを表示し、
その後、その画面情報を編集して更新をするという場合に
最初の情報取得時にDBのロックをしてしまうと、
他人さんが情報取得できなくて、Webじゃなくなりますよね。

最初の情報取得時にタイムスタンプ情報をあわせて取得しておき、
編集実行時にそのタイムスタンプ情報に変更がなければ、
更新をかける、というふうに考えるのが普通なんですよね?
253U ◆CZtFsGiu0c :2005/04/12(火) 11:35:03
>>235
まずApacheと連携しない形でテストして、問題が起きるかどうか調べた方がいい。
こういう場合は問題の切り分けが大切。
254デフォルトの名無しさん:2005/04/12(火) 11:42:22
複数のリクエストにまたがってDBのロックを行うのはかなり特殊です
限定条件下でなければ普通は使いません

>他人さんが情報取得できなくて
ではなく、クライアントの生死判定が簡単にはできないのが理由
クライアントが落ちても(意図的にブラウザを閉じた場合も含む)ロックを外せないのは致命的
コネクションを保持し続けないといけないのも微妙なところです

タイムスタンプを使用する方法はロックの次に確実性が高いですね
ユーザー数が少ないのであれば普通に使う方法だと思います
ただ、そこまで厳密に整合性を合わせないといけないプログラムの場合
使用するユーザーも限定されるのでは?
自分の場合は、後勝ちで問題ない仕様にした上でチェック無し更新に落とすことが多いです
255デフォルトの名無しさん:2005/04/12(火) 12:12:05
>>249
それセッションアクセスしてる?
なら同期化が必要だよ
わからなければ図でかいてみれ

コンテナ依存の部分は俺はわからんが、上記のことは
わりと運用してから多発しているのをみる
256デフォルトの名無しさん:2005/04/12(火) 17:31:42
>>250
Tiffファイルをバイトストリームで読み込んでヘッダ部分を読み飛ばせばイイじゃん
257200:2005/04/12(火) 18:27:41
>>201
お礼が遅くなりました。
ありがとうございました(・∀・)
258デフォルトの名無しさん:2005/04/12(火) 20:16:36
コマンドラインから入力した数値の和を
計算するプログラムを作りたいのですが、

入力されたコマンドライン引数が、
数値だけならtrue
数値以外に文字も入力していたらfalse
という感じで分岐させたいのですが、
どうしたらいいんでしょうか?
259デフォルトの名無しさん:2005/04/12(火) 20:24:06
Integer.parseInt() して例外が投げられたら false
260デフォルトの名無しさん:2005/04/12(火) 20:31:08
>>258
char[] chars = args[0].toCharArray();
boolean isDigit = true;

for(int i=0; i<chars.length; i++) {
 isDigit = Character.isDigit(char[i]);
 if(!isDigit) break;
}

こんな感じで判別すればいいと思われ。
Exception発生させて判別なんて論外です。
261デフォルトの名無しさん:2005/04/12(火) 20:48:57
boolean b = false;
int[] num = new int[args.length];
try {
for (int i = 0; i < args.length; i++) {
num[i] = Integer.parseInt(args[i]);
}
b = true;
} catch (NumberFormatException e) {
b = false;
}
262258:2005/04/12(火) 21:04:36
>>259, 260, 261
みなさまアドバイスありがとうございます。
isDigitを使う方法とtry catchを使う方法があるみたいですね。

260さんによるとException発生させて判別する、
というのは論外との事ですが、
エラーを残したまま処理するよりも
エラーをちゃんと解決して処理させた方がいい、
ってことですか?
263デフォルトの名無しさん:2005/04/12(火) 21:10:01
>>262
例外処理ってのは予期せぬ事象が発生したときのためにある。
決してPGが楽するためのものではない。
264デフォルトの名無しさん:2005/04/12(火) 21:17:39
>>263
ここでは"数字じゃない"って事象が例外じゃん
せっかくparseIntが例外投げてくれるんだから、それを使えばいい
もし、「数字ならA、記号ならB、ひらがななら・・・」みたいな処理ならば、
ここでNumberFormatExceptionを使うのは適当でないと思うけどね
265デフォルトの名無しさん:2005/04/12(火) 21:28:49
Character.isDigitを使えば、
個々の文字が「数字」はは判定できるけど、
全体として「数値」として意味を持つ形をしているかは
判定できないですね。
あと、アラビア数字以外でもCharacter.isDigitがtrueになる
「数字」群がいくつかあります。

本気でやるならNumberFormat.parseでしょうか。
266デフォルトの名無しさん:2005/04/12(火) 21:29:09
「動きゃいいのよ」
267デフォルトの名無しさん:2005/04/12(火) 21:31:45
あ、アラビア数字ってのは、0〜9の算用数字(インドアラビア数字)
のつもりでした。

単にアラビア数字というとアラビア文字の数字(0〜9とかなーり形が違う)
の意味になることもあるのでした。
268263:2005/04/12(火) 21:42:59
私は非チェック例外はcatchすべきではないと思ってましたが諸説あるようですね。
NumberFormatExceptionをcatchするのも間違ってないかも。
只、Integer#parseIntは全角数字も通ってしまうようなのでご注意を。
269デフォルトの名無しさん:2005/04/12(火) 22:15:51
>>268
このケースに限らず、
「Exceptionがthrowされる事を判断材料に使うのべきでない」
という考えは賛成。Exceptionのthrowは、コストの高い処理だから、
そういうことに使うものではない。

楽チンで確実に動作するコードが得られるから使っているだけだと思う。
俺はperseIntで手抜きする派。
270デフォルトの名無しさん:2005/04/12(火) 22:16:33
0から9の算用数字なら、正規表現 ^[0-9]$ とマッチするかどうかでもいいんじゃないか。
271デフォルトの名無しさん:2005/04/12(火) 23:15:19
throwのコストなんてグチグチ考えるなら、JAVAなんてやめろよ。
272デフォルトの名無しさん:2005/04/12(火) 23:15:33
>>270
正規表現やisDigit()ではint値の範囲チェックが出来ないです。
まあ自分ですればよいですが。
273デフォルトの名無しさん:2005/04/13(水) 00:20:18
throwのコストなんて、よっぽど頻繁に呼ぶ処理や
大量に回すループの中でもなきゃどうでもいい程度だよな。
コンパイラが吐くバイトコードまで考えて最適化するようなレベルならともかく。

まあ、このケースだとthrowを例外ではなく条件分岐に使ってるから
意味的に正しくないというのは同意。
274218:2005/04/13(水) 00:25:29
>>236,237,251
レスありがとうございます。
251殿のDOMというのが気になったので調べてようやく理解しました。
実はXMLがさっぱり分からなくて
何から調べて良いのか分からない状態だったのでとても助かりました。
javax.xmlパッケージの存在も知らなかったので、
強引に処理しようと思っていましたが、
DOMSourceとか色々使ってスマートに出来上がりました。
ありがとうございました。
275デフォルトの名無しさん:2005/04/13(水) 00:34:02
ACCESSのグリッドみたいなものをHTMLのTABLEタグを利用して作成したいとおもうんですが
ソート(複数列可能 SQL のORDER BY の要領で)をどうやって実装すればいいのか分かりません


これを実現するにはどのようなデータの保持の仕方がいいか教えてくださいまし
276デフォルトの名無しさん:2005/04/13(水) 00:36:11
>>275
基本情報処理取れ。
277デフォルトの名無しさん:2005/04/13(水) 00:39:32
>>276
すいません
おととしソフ開取らせていただきました
278デフォルトの名無しさん:2005/04/13(水) 00:43:24
>>275
処理スピードのことを考えないのなら意外と簡単に実装できるよ。
例えば、ORDER BY a, b, c を実装したい場合
a, b, c のフィールドを持つクラスを作って
c -> b -> a の順でソート処理を行えばよい。
ORDER BY の指定と逆にソートをするってところがポイントで
良く考えればわかるはず。
ただし、ソートのアルゴリズムは「安定なソート」である必要がある。
まー、コレクションのソートはマージソートなので問題無し。
279デフォルトの名無しさん:2005/04/13(水) 01:02:09
>>249
その方が将来につながりますよ。
280デフォルトの名無しさん:2005/04/13(水) 01:25:03
>>273
>throwのコストなんて、よっぽど頻繁に呼ぶ処理や
>大量に回すループの中でもなきゃどうでもいい程度だよな。

どうでもいいと言えるほど軽い処理ではないことは知っておいた方がいい。
281デフォルトの名無しさん:2005/04/13(水) 01:28:39
よっぽど頻繁に呼ぶ処理や大量に回すループの中でもなきゃ
どうでもいい程度に軽いよ。
282デフォルトの名無しさん:2005/04/13(水) 01:48:22
入力値チェックというのは結構頻繁に呼ぶように思うんだが。
283デフォルトの名無しさん:2005/04/13(水) 01:57:56
んなもんバリデータでも使ってろよ、アホか
284デフォルトの名無しさん:2005/04/13(水) 02:01:19
> 処理スピードのことを考えないのなら意外と簡単に実装できるよ。
Javaで処理速度なんて考えるなよ。
何も考えないで素直に実装するのがJava流。
もちろん遅いが、誰でも作れて、メンテナンスも楽だろ。
285デフォルトの名無しさん:2005/04/13(水) 02:26:34
>>284
> 何も考えないで素直に実装するのがJava流。
throw を使うのが素直なのかは疑問。
286デフォルトの名無しさん:2005/04/13(水) 02:42:25
>>282
そんなのはコストが気になるような頻繁ではない。
287デフォルトの名無しさん:2005/04/13(水) 02:51:23
>>281
>throwのコストなんて、よっぽど頻繁に呼ぶ処理や
>大量に回すループの中でもなきゃどうでもいい程度だよな。

どうでもいいと言えるほど軽い処理ではないことは知っておいた方がいい。
288デフォルトの名無しさん:2005/04/13(水) 04:17:57
SwingのどこがMVCなのか懇切丁寧に解説してるサイトってありますか?
289デフォルトの名無しさん:2005/04/13(水) 08:30:59
>>287
よっぽど頻繁に呼ぶ処理や大量に回すループの中でもなきゃ
どうでもいい程度に軽いよ。
290デフォルトの名無しさん:2005/04/13(水) 09:13:06
>>289
もしかして、「最近のJavaは、Cと比べても充分に速い。」とか言ってる人?
291デフォルトの名無しさん:2005/04/13(水) 09:23:57
いや
全ての処理に、エラー処理を記述するべきだ。
とか言ってる人かも。
292デフォルトの名無しさん:2005/04/13(水) 10:14:09
>>287
根拠レス

>>289
根拠レス
293デフォルトの名無しさん:2005/04/13(水) 10:15:27
>>290-291
おまえはJavaをやる気がないなら他所のスレ行け。
まぁ他所のスレからも追い出されたのかもしれんが。
294デフォルトの名無しさん:2005/04/13(水) 10:16:31
Process process = Runtime.getRuntime().exec("/bin/bash -exec /opt/java/test.sh");
みたいに記述すると動くんだけど、
Process process = Runtime.getRuntime().exec("/opt/java/test.sh");
とすると動かない。。。プロンプトで直接実行したらどっちもうまくいくのに。
例えばtest.shにパラメータを渡したいと思って
Runtime.getRuntime().exec("/bin/bash -exec /opt/java/test.sh param1");
みたいに書いてみてもうまく渡ってないし・・・


詳しい人アドバイスを下さい。。。
295デフォルトの名無しさん:2005/04/13(水) 10:17:49
>>294
それは Java の質問じゃないな。
296デフォルトの名無しさん:2005/04/13(水) 10:42:36
>>282
入力チェック自体は頻繁でも、
チェックの結果exceptionをthrowするcaseはそんなに多くないんじゃね?
まあ状況にもよるが。

本当に気になるのならバリデータ自分で書くんだろうけど、
労力に比べて得られるモノが少なそうだよな。

今回はそれほどのことでもないだろ、と思うが如何。
297デフォルトの名無しさん:2005/04/13(水) 15:32:55
JAXBとかでXMLのデータバインディングとやらをやってるんですが、
eclipseでは問題なく動くんですがコマンドラインからだとエラーです。

>java -classpath C:\Sun\jwsdp-1.5\jaxb\lib\*.jar;C:\Sun\jwsdp-1.5\jwsdp-shared\lib\*.jar -jar hoge.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

JAXBExceptionはC:\Sun\jwsdp-1.5\jaxb\lib\jaxb-api.jarにあるんじゃないんですか。。。
クラスパスについてあちこち調べましたがさっぱりです。
ワイルドカードやめていっこいっこ指定したりとか全然です。
助けてください。
298デフォルトの名無しさん:2005/04/13(水) 16:50:56
>>297
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html#-jar
| -jar
|
| このオプションを使用すると、指定した JAR ファイルがすべてのユーザクラスの
| ソースになり、ユーザクラスパスのほかの設定は無視されます。 」
299デフォルトの名無しさん:2005/04/13(水) 17:49:11
すいません、質問です。
Jakarta PoiでExcelドキュメントを扱うPGを組んでいるのですが、
HSSFRow.getLastCell()メソッドで取得する値について、
たとえばExcelシート内に3行のレコードがあった場合だと
0,1,2と数えて取得値は2になるのでしょうか?
それとも1行目、2行目、3行目という感じで取得値は3になるのでしょうか?

使い慣れないライブラリでドキュメントをゆっくり探す間がないんで、
申し訳ないですが、知ってる方がいらっしゃれば教えてくださいませんか?
300デフォルトの名無しさん:2005/04/13(水) 18:57:35
int型をString型に変えるにはどうすればいいのでしょうか
301デフォルトの名無しさん:2005/04/13(水) 18:58:17
>>300
StringクラスのAPIマニュアルよんでみそ
302デフォルトの名無しさん:2005/04/13(水) 19:02:17
>>300
String.valuOf()
303デフォルトの名無しさん:2005/04/13(水) 19:27:29
strutsのカスタムタグについて質問です。

<input type="text" name="userName" value="<%=a.getName%>" />
(aというBeanからgetNameメソッドで取り出した値をテキストボックスにいれておく)

これをカスタムタグで実現するにはどのように書けばいいのでしょうか?
<html:text property=useName・・・・・

304デフォルトの名無しさん:2005/04/13(水) 20:07:11
>>303
実装方法(クラス設計)がおかしい。
それをやりたいならActionでuserNameにnameを入れれ。
305デフォルトの名無しさん:2005/04/13(水) 20:49:02
int a = 100;
String b = "" + a;

・・・?
306デフォルトの名無しさん:2005/04/13(水) 20:51:17
Threadクラス使ってタイムアウトが発生したらエラー!
って処理を組みたいんですけど。。。

thread.join(30000);

みたいに書いてます。
タイムアウトが発生したのか普通の終わったのか見分ける方法ってあります??
なんか.NETだと普通にjoin()の返り値で判断できるっぽいすね・・・うらやまし
307デフォルトの名無しさん:2005/04/13(水) 21:24:01
>>304
Actionクラス(サーブレット)でuserNameにname(ひろゆき)を入れてしまえば
<html:text property=useName />
で、テキストボックスにひろゆきと入ってるわけですか?
それともActionForm?

308デフォルトの名無しさん:2005/04/13(水) 21:26:43
>>306
できるよ
java.util.concurrentパッケージのぞいてみれ
309デフォルトの名無しさん:2005/04/13(水) 21:32:54
本見ながらサンプルのプログラム作るたびに思うよ・・・
JavaのGUIって難しいね・・・(´・ω・`)
いやJava以外のGUI勉強した事ないから、他わかんないけど・・・
本当にちゃんと自分でJavaアプリ作れるか疑わしく思うよ・・・_| ̄|○
310デフォルトの名無しさん:2005/04/13(水) 21:56:29
>>309
具体的に何が難しい?(嫌味じゃないよ
311デフォルトの名無しさん:2005/04/13(水) 22:20:20
>>310
うーん・・・全体的に・・・w
Perlは使えるんだけどさ。
でも、Perlは関数使うでしょ
いくつか関数覚えれば、それで動くよね。
型なんてないしさw

Javaは全部メソッド
オブジェクトの中
これが戸惑うね〜(´・ω・`)
それに、クラス&メソッドが沢山ありすぎる・・・
型だってあるし、どのメソッドの戻り値は○○型って覚えるのって無理_| ̄|○
それと、例外処理。
これもあまり馴染みがないから戸惑うね・・・
どれが例外投げる物かとかわかんないし・・・
まぁ、コンパイルしてエラーでたらどれが例外投げる物かわかるんだろうけど。

なにより難しいのはGUIの概念。
GUI勉強するのは初めてだから、しょうがないのかなぁ〜

別に文句言ってる訳じゃないよ。
とりあえず、慣れるしかないって事でいろいろサンプル組ながら勉強してみるよ〜
312デフォルトの名無しさん:2005/04/13(水) 22:25:03
>>308
判定はできるようになったけど今度はThreadの破棄でハマってまつ。。。
destroy()とかstop()ってやっぱ使うのマズいんだよなぁ。。。
313デフォルトの名無しさん:2005/04/13(水) 22:26:51
>>311
> それに、クラス&メソッドが沢山ありすぎる・・・
perlやなんかと同じで頻繁に使うクラスやメソッドは限られてる。

> 型だってあるし、どのメソッドの戻り値は○○型って覚えるのって無理_| ̄|○
> どれが例外投げる物かとかわかんないし・・・
ちゃんとドキュメント読む癖をつけた方が良いよ。

> GUI勉強するのは初めてだから、しょうがないのかなぁ〜
しょうがないと思われ。
314デフォルトの名無しさん:2005/04/13(水) 22:33:52
俺は専門卒で就職したことはないけど、
フリーアルバイターやりつつ独学で実力を付けて、
このスレでもいろいろと回答したりしてる。
最近はなんか、プライドばかりでレベルの低いプログラマが増えて、
なんかダメだなーって思う。
デザインパターンすら知らない、書籍を読んで勉強しようともしない、
そんなんでスパゲティコード書き散らして、
メンテナンス出来ないようなシステム作って、
それでプログラマって呼べるのかな?
315デフォルトの名無しさん:2005/04/13(水) 22:35:40
>>314
スレ違い。っつか、板違いだな。マ版いってやれ。
316デフォルトの名無しさん:2005/04/13(水) 22:40:40
>>314
このスレから消えてくれ。脳内世界から回答されたら初心者も迷惑だ。
317デフォルトの名無しさん:2005/04/13(水) 22:50:19
>>314
具体的にどの回答を?煽りとか?
318デフォルトの名無しさん:2005/04/13(水) 23:05:58
>>294
配列を引数に取る方のexec()をつかってみ。
319デフォルトの名無しさん:2005/04/13(水) 23:22:31
すいません、質問です。教えてください。

小数点2位以下が0でないデータがあればエラーとして扱う入力チェックをしたいのです。

引数の型は文字列です。
たとえば引数が「1.10」ならセーフで、「1.01」ならエラーにしたいのです。
しかも値は-10〜10までしか受け付けないようにしたいのです。
ちなみに「9」や「-3」など値が範囲内であれば整数でもセーフ扱いにしたいのですが、
BigDecimalでこのような制御ってできるんでしょうか?
320デフォルトの名無しさん:2005/04/13(水) 23:31:36
>>319
>小数点2位以下が0でないデータ
データを10倍して整数かどうかを判定すればいい。

>-10〜10までしか受け付けない
データが-10〜10かどうかを判定すればいい。
上のと同時にやるなら10倍したデータが-100〜100かどうかを判定すればいい。
321319:2005/04/13(水) 23:37:38
レスありがとうございます。
さくっと考えたまま作ってみました。

float f = 0;
String str = "1.11";
try{
  f = Float.parseFloat(str);
  int i = (int)(f * 10);
} catch (NumberFormatException e){
 return error;
}

こんな感じですかね。
322デフォルトの名無しさん:2005/04/13(水) 23:39:52
class Oya{
int d=10;
void print(){
System.out.println(d);
}
}

class Okochama estends Oya{
int d=100;
void print(){
System.out.println(d);
}
}

class Test{
public static void main(String[] args){
Oya oya = new Okochama();
System.out.println(oya.d);
}
}

でTestを実行すると表示されるのが"100"ではなくて"10"になる理由がわかりません。
誰か教えてください。
323デフォルトの名無しさん:2005/04/13(水) 23:53:16
>>322
TestクラスでoyaオブジェクトがOyaクラスじゃん。
そのOyaオブジェクトの変数を参照しているからだろう?
324デフォルトの名無しさん:2005/04/13(水) 23:54:08
>>322
逆に聞きたい。
何で100が表示されると思ったの?
325322:2005/04/13(水) 23:58:45
Testクラスにおいて
"System.out.println(oya.d);"の代わりに
"oya.print();"
だと"100"が表示されるからどういうこと何だろうと思いました。
326デフォルトの名無しさん:2005/04/14(木) 00:01:42
>>322
ポリモフィズムが適用されるのはインスタンス・メソッドだ。
oya.dはフィールド参照。フィールド参照は、オブジェクト参照の型に左右される。
oyaの型はOyaだから、10が表示される。

もしgetD()とかいうメソッドを作って、Okochamaでオーバーライドしてやれば、
望んでいる動作をする。

ついでにいうと、フィールドに直接アクセスなんてするなよ。
327322:2005/04/14(木) 00:04:46
>>326
"フィールド参照は、オブジェクト参照の型に左右される"
のはなぜなのか知りたいのですが…。
教えていただけませんか。
328デフォルトの名無しさん:2005/04/14(木) 00:13:06
>>327
それはSunに聞いてくれ。
329デフォルトの名無しさん:2005/04/14(木) 00:13:15
>>325
System.out.println(((Okochama)o).d);
なら100って表示されるよ。

Oya型の参照では、Okochama型のdは参照できない。
Okochama型の参照では、Oya#d, Okochama#d の両方を参照することは可能。
ただし、この場合はOya#dを「隠蔽」しているので、結局キャストする必要がある。

コンパイラは、フィールドにアクセスするとき、参照の型で
先頭アドレスからのオフセットを決めてる。

例えば・・・
oya.d だと、「インスタンスの先頭アドレスを基準として 0 byte 目から4byteを整数値と扱います」
((Okochama)oya).d だと「インスタンスの先頭アドレスを基準として 4 バイト目から 4 byte を整数値で扱います」
ってな感じで、コンパイラに伝えてるだね。

この辺りは C/C++ をやってないとピンとこないかも知れないね。
330デフォルトの名無しさん:2005/04/14(木) 00:17:06
Java言語仕様。
「プログラミング言語Java 第3版」にも「フィールドにアクセスする場合には、宣言されている
参照型が使用されます」とだけ書かれている。

なんでそうなるかという(理論的な問題でなく)技術的なところが気になるなら、
フィールドへのアクセスはコンパイル段階で解決されるから。

実行時の実型判定が行えないタイミングでバイトコード変換されている。

ちなみにメソッドアクセスは、実行時に判定されているという違いがある。
331322:2005/04/14(木) 00:29:19
>>329
>>330

ありがとうございました。
まだピンとこないけどがんばって勉強します。
332デフォルトの名無しさん:2005/04/14(木) 00:30:45
まー、Javaプログラマにはメソッドにもポインタ(参照)でアクセスできるなんて
思いもしないことだろうな。
クラスの非finalメソッドの参照が仮想関数テーブルに new されているときに
格納されているなんて夢にも思っていないんだろうね。
とりあえず、>>322はママのオッパイでも吸ってなwww
333デフォルトの名無しさん:2005/04/14(木) 00:32:28
>>324
中身はOkochamaのインスタンスだからだろ
いくらなんでもそのくらいは察しろ
334デフォルトの名無しさん:2005/04/14(木) 00:33:32
>>332
Javaにポインタは(ry
335デフォルトの名無しさん:2005/04/14(木) 00:44:51
ようは、フィールドはオブジェクト型を参照するんではなく
参照型変数の型を指定する。メソッドはインスタンスメソッド
の場合、オブジェクトの型によって決まる。 ってことでいいんじゃない
336デフォルトの名無しさん:2005/04/14(木) 00:47:08
ちょっと熱くなってるじゃねぇかよ。

>>322の内容は結構ディープな内容だからね。
本気で理解したいなら C++ やるだけではなく
コンパイル時にアセンブラコードも出力して、それを追えば
どうやって、インスタンスのフィールドにアクセスしてるのか
どうやって、ポリモフィズムを実現しているのかを理解できると思うんだけどね。

手っ取り早いのが「プログラムはなぜ動くのか?」だっけか?
アレ読めばわかるかも。
あっ、私は関係者じゃないですよ。
でも、アレ読んだとき自分が3年位やってきたことを
上手にまとめてるなって感じたからね。
もちろん、本の内容は広く浅くだけど・・・
その後、深く勉強するのは本人次第だし。

とりあえず、>>322は頑張れ。
俺的には良い疑問だと思うよ。
337デフォルトの名無しさん:2005/04/14(木) 00:51:54
>>332
そりゃ、わざわざそういった概念を排除して言語設計したんだから当然じゃねーの?
338デフォルトの名無しさん:2005/04/14(木) 00:56:38
http://www.amazon.co.jp/exec/obidos/ASIN/4774113611/

興味ある奴はこれでも読め。
ちょっと賢くなったような気にはなれる。
実務で評価される知識とは全く別物だけどなw
339デフォルトの名無しさん:2005/04/14(木) 01:01:13
>>338
有我豚
340デフォルトの名無しさん:2005/04/14(木) 01:20:34
質問させてください。Eclipseで、JFrameを使った中途半端な
アプリケーション(Java@2ch−Wiki-ソースの貼り付け参照)を試しに作っています。
コンパイルは通りましたが、実行時に
java.lang.NoClassDefFoundError: S0
Exception in thread "main"
というエラーが出ます。Java@2chのWikiは見ましたが、自分の場合に
該当してないように思われます。(ほかのプログラムは、動いていますし、
mainメソッドは、点検しました。)

HTMLのルビのためのタグをはずすプログラムです。出力をJTextAreaに
表示させて、ルビが外れた元の普通の日本語文が出てくれば、
成功というものです。ソースは、Wikiに貼り付けました。
たぶん、文字列処理のところは、今回のエラーに関係ないと思いますので、
省略しました。よろしくお願いします。
341デフォルトの名無しさん:2005/04/14(木) 01:24:04
すいません。テキスト整形のルールを読んでなかったので、
貼り付けられませんでした。出直してきます。
342デフォルトの名無しさん:2005/04/14(木) 01:26:34
点検したそのmainメソッドをさらしてみろ。簡略版でもいいけどシグネチャだけはコピペして。
あと実行方法もな。
343デフォルトの名無しさん:2005/04/14(木) 01:57:30
import文など、少し、変ですが、ソースの貼り付けに書き込めました。結局、
全文貼り付けました。よろしくお願いします。
344デフォルトの名無しさん:2005/04/14(木) 02:01:10
このスレ自作自演大杉
345デフォルトの名無しさん:2005/04/14(木) 02:10:24
>>340
うちでは起動する。
だから君の環境の問題。おそらくS0.classのあるところにクラスパスが通っていない。
もう一度Wikiをじっくり見てみたらどうだ。
346デフォルトの名無しさん:2005/04/14(木) 02:18:44
>>327
実際のところは、言語設計した人間に聞いてみないとわからんけど、
子クラスで親クラスと同名のフィールドが宣言できないのは不便とか考えたのでは?

クラスメソッドでも同名、同引数型だと覆い隠しが発生するよね?
347デフォルトの名無しさん:2005/04/14(木) 02:49:25
>>332
> クラスの非finalメソッドの参照が仮想関数テーブルに new されているときに
それを言うなら new されているときじゃなくてクラスのロード時、かな。
348デフォルトの名無しさん:2005/04/14(木) 02:53:24
>>345
レスありがとうございます。
申し訳ございません。いちからプロジェクトーークラスへと
作り直して、ソースは、クラス名を変えてコピペで起動できました。
ひとつのソースをいじりながら、
プロジェクト間で、同じクラス名とかを使いまわしたので、
Eclipseの実行ボタンにある履歴にソースのそんざいしないものが
残っていたようです。主観的には、不思議ですが、たぶんそうだろうと
思います。お騒がせしました。
349340、343、348:2005/04/14(木) 02:59:59
おかげさまで、解決しましたが、この場合、Wikiのソースの貼り付けは、
該当部分を消去するのがいいのでしょうか?
350デフォルトの名無しさん:2005/04/14(木) 03:06:57
>>349
よくわからないんだけど、自由にしたらいいんだと思う。
誰か特定の管理者が管理してるわけではないんだし。
351デフォルトの名無しさん:2005/04/14(木) 09:45:17
現在実行中のThreadをstop()、destroy()使わないで
途中終了する方法をどなたか教えてくれませんか・・・?
ちなみにjdk1.3.1_08なのでTimerThreadクラスとかは使えません。。。
352デフォルトの名無しさん:2005/04/14(木) 10:00:39
スレッドプール使えば?
353デフォルトの名無しさん:2005/04/14(木) 10:20:13
javaの新しいのをインスコしたら暴走しちゃうのですが
(ブラウザじゃないところに文字がでたり)
バージョンのダウンって出来ますか?
354デフォルトの名無しさん:2005/04/14(木) 10:34:00
>>353
とりあえず、アンインストールすれば?
355デフォルトの名無しさん:2005/04/14(木) 11:02:47
>>307
HogeForm hoge = new HogeForm();
hoge.setUserName("ひろゆき");
request.setAttribute("hogeForm", hoge); //キー名はstruts-configのForm名

これでuserNameにデフォで「ひろゆき」が入る。
初期値が決まっているならFormのコンストラクタで設定してもよい。
356デフォルトの名無しさん:2005/04/14(木) 11:04:00
>>351
その辺のメソッドが非推奨になったときに、Sunが代替手段を
まとめたドキュメントをjava.sun.comにおいたから一読するのを
すすめる。
357デフォルトの名無しさん:2005/04/14(木) 11:31:34
>>356
どうもです。
目を通して見ましたが、やっぱり代替手段としては
スレッド処理内でフラグを持たせて判定するしかないみたいですね。

run() {
process.getRuntime().exec("rcp user@host");
}

みたいになってたとして、exec()で応答が返ってこない!
なんてことがあるとどうにもこうにも止めようがないってことですね。
358デフォルトの名無しさん:2005/04/14(木) 11:58:19
>>357
どっかに Process の参照持っといて、destroy() すれば?

っつか、waitFor() してないからサブプロセス起動したら
(サブプロセスが終了する/しないに関係なく)すぐに復帰せんか?
359デフォルトの名無しさん:2005/04/14(木) 12:47:40
C++だろうがおなじだよ
安全じゃないスレッド終了はやるべきではない
360デフォルトの名無しさん:2005/04/14(木) 12:51:16
あの、wait()した時って、いくつかロックもってたら全部開放するの?
たとえば
public synchronized hoge(){
synchronized(foo){
foo.wait();
}
}

みたいな時。ちと気になったので教えてよろ
361デフォルトの名無しさん:2005/04/14(木) 13:33:23
JavaアプレットがOracleと接続するにはどうしたらいいですか?
362デフォルトの名無しさん:2005/04/14(木) 13:53:47
>>361
OTNに質問だしたら?
363デフォルトの名無しさん:2005/04/14(木) 14:10:34
>>362
おとん?父親のこと?
364デフォルトの名無しさん:2005/04/14(木) 14:12:27
Oracle製品さわっていてOTNしらないはずはねぇ
365デフォルトの名無しさん:2005/04/14(木) 14:50:13
>>361
そのOracleはどこにあるんだ?
366デフォルトの名無しさん:2005/04/14(木) 15:19:31
なあ、thisキーワードを使って、オーバーロードされた他のコンストラクタを呼び出すことが出来るじゃないか。
それを、呼び出されたコンストラクタを呼び出すオーバーロードされたコンストラクタを呼び出した場合、
どんなことになるんだろうな。
つまり

class Hoge {
public Hoge() { this(""); }
public Hoge(String s) { this(); }
}

こんなことをする。

どうせ「そこまで書くなら自分で試せ」とか言うんだろ?
うるせーよ、氏ねよ。
じゃあ、やってやるよ。

> コンストラクタの呼び出しが再帰的です。

とか言われて叱られたじゃねーか。
これで満足か?ばーかばーか
367デフォルトの名無しさん:2005/04/14(木) 15:24:54
じゃあ、this("")とかで、オーバーライドされたコンストラクタを呼び出したら、super()を呼べないのかな?

どうせ自分で調べろとか、過去ログ嫁とか、空気嫁とか言うんだろ?
知ってるよ、そんなことは。
thisかsuperしか呼べないんだよ!当たり前だろ?

class Hoge {
public Hoge() { super(); this(""); }
public Hoge(String s) { super(); }
}

こんなことになってたら、superが二回呼ばれるじゃねーか。
それぐらい気付け、馬鹿。お前が過去ログと空気嫁。
368デフォルトの名無しさん:2005/04/14(木) 15:25:46
いまいち
369デフォルトの名無しさん:2005/04/14(木) 15:41:43
>>366-367
んな事やって遊んでるヒマがあったら言語規定読んでこいよ。
370デフォルトの名無しさん:2005/04/14(木) 15:46:03
質問してもいいでしょうか

ソースを読んでいたら
class Test
{
 public static class inClassA
 {
  public int x, y ;
 }

 public static class inClassB
 {
  public void func(){}
 }
}

こんなクラスが出てきたのですが
inClassA は静的なのでTestのインスタンスが生成されてもinClassAは共通のクラスになるんでしょうか

Test t1 = new Test();
Test t2 = new Test();
t1.inClassA.x = 1 ;

としたときにt2.inClassA.xの値はどうなっているのでしょう
371デフォルトの名無しさん:2005/04/14(木) 16:01:28
> inClassA は静的なのでTestのインスタンスが生成されてもinClassAは共通のクラスになるんでしょうか
日本語になってないぞ。
372デフォルトの名無しさん:2005/04/14(木) 16:17:01
>>370
> としたときにt2.inClassA.xの値はどうなっているのでしょう
どうにもならない。

というか、
> t1.inClassA.x = 1 ;
これがコンパイル時にエラーにならないコンパイラは言語規定に反する。
373デフォルトの名無しさん:2005/04/14(木) 16:43:40
DBのテーブルにアクセスする基礎オブジェクトクラスを作りたいのですが、
具体的にどうやってつくればいいのかイメージがわきません。
参照になるようなソースや説明があるサイトってあるのでしょうか。
なにをキーにして検索したらいいのかも分からないのですが。。。
申し訳ないですけど教えていただけませんでしょうか。

BaseDaoクラスみたいな親クラスを作って、サブクラスに
それぞれのテーブルクラスを作るようなイメージです。
374デフォルトの名無しさん:2005/04/14(木) 16:52:10
>>373
> BaseDaoクラスみたいな親クラスを作って、サブクラスに
> それぞれのテーブルクラスを作るようなイメージです。

イメージできてるじゃん。君が何をしたいのか私にはイメージできませんが。
375デフォルトの名無しさん:2005/04/14(木) 17:03:14
>>374
レスありがとうございます。

おかしな表現ですいません。
BaseDao(仮)というクラスでなにをすればいいのかが
イメージができていないのです。

サブクラスの各テーブルクラスでSQLをがしがし書くだけに
すればいいのだろうとは自分なりに考えてはいるんですが。

じゃ、親クラスでできることはなに?と考えた場合に
なんだろう・・・?と思って悩んでいる状態です。
376デフォルトの名無しさん:2005/04/14(木) 17:11:04
DBアクセスクラスとしての設計とテーブルの関連をオブジェクト化する設計とを
混同しているように見えるのだが
377デフォルトの名無しさん:2005/04/14(木) 17:13:19
>>376

なんかそのへんも含めてごちゃごちゃになってます。
だから具体的なイメージがわきにくいので、
サンプルを探しています・・・。
378デフォルトの名無しさん:2005/04/14(木) 17:34:25
O/Rマッピングの勉強をしてみてはいかがでしょう
Torque や Hibernate を触ってみるのもいいかもしれない
379デフォルトの名無しさん:2005/04/14(木) 17:35:34
>>378
できればゆっくり勉強したいのですが、
納期に間に合いません。助けてください。
380デフォルトの名無しさん:2005/04/14(木) 17:42:33
じゃあ、今回はあきらめろ
381デフォルトの名無しさん:2005/04/14(木) 17:43:15
>>380
あきらめたらそこで終わりです
382デフォルトの名無しさん:2005/04/14(木) 17:47:03
>>381
だから終わってしまえといってるんだが
383デフォルトの名無しさん:2005/04/14(木) 17:47:50
>>379
BaseDaoを親クラスとしないで、BaseDaoからコネクションを取得する
というような設計にすれば?勿論プーリングさせる。
つーか、データアクセス設計なしで開発入ってるの?Webアプリ?
384デフォルトの名無しさん:2005/04/14(木) 18:01:26
>>382
必死ですね

>>383
データアクセスクラス自体がいい加減です。
唐突にPJに入れられましたが、
DAOクラスとか根幹的なクラスが全然ないです。
actionクラスでむりやりSQL書いてたそうです。
選択しかSQLなかったんですが、マスタメンテナンス作れと
言われたそうで私がやることになりますた。
385しょうがくせい:2005/04/14(木) 18:38:22
すうがくがぜーんぜんできなくてもつかいこなせるげんごってあるんですか?
386デフォルトの名無しさん:2005/04/14(木) 18:43:13
>>385
C言語
387しょうがくせい:2005/04/14(木) 19:01:21
>>386
おじさんありがとうございますcげんごならいます
388デフォルトの名無しさん:2005/04/14(木) 19:05:13
http://data.uploda.net/anonymous/etc1/dat5/upload115965.zip

これの削除方法を教えていただけないでしょうか?
間違って落として、削除できなくなってしまいました・・・
389デフォルトの名無しさん:2005/04/14(木) 19:15:24
>>388
スレ違い
消えろ
390デフォルトの名無しさん:2005/04/14(木) 19:19:11
map2 = (HashMap<Integer, Integer>)map1.clone()

上のようにHashMapのclone()をしてキャストすると以下のような警告がでるんですけど
なんとかならないのでしょうか?

Hoge.java:10: 警告: [unchecked] 無検査キャストです

以下のようにObjectにそのまま代入すると何もでないんですが

Object obj = map1.clone()
391デフォルトの名無しさん:2005/04/14(木) 19:45:22
>>390
class MyHashMap extends HashMap<Integer,Integer>{
 public MyHashMap clone(){ return (MyHashMap)super.clone(); }
}
とかすれば?
392デフォルトの名無しさん:2005/04/14(木) 19:53:26
1.5を使ったこと無いけど答えてみる

Collections.checkedMap を使えばいいのかな?
おそらく汎用型で宣言しても、外からはその型が何かわからない状態で
実際にキャストして見てエラーがでても知らないよってことじゃなかろうか
393デフォルトの名無しさん:2005/04/14(木) 19:54:21
map2の型がただのMapだったり?
394デフォルトの名無しさん:2005/04/14(木) 20:30:05
>>390
ジェネリクスつかってるならコレクションで型指定が無いから

コンパイルオプションに-warnuncheckedいれると詳細が出るよ
警告じゃなくてエラーにしてくれるので安全なコードがかける

これだけのためにJ2SE5にするのはあり

List list = new ArryList();
って書き方は通らないからね
395デフォルトの名無しさん:2005/04/14(木) 20:43:53
>>284
前時代の人ですね。こちらへどうぞ。

【とりあえず】Java叩き【2回戦突入】
http://pc8.2ch.net/test/read.cgi/prog/1111397014/
あ、言っとくけどあんたは非Javaの方ね。
396デフォルトの名無しさん:2005/04/14(木) 21:45:49
亀レスに必死にならなくても…
397デフォルトの名無しさん:2005/04/14(木) 21:58:08
>394の

>List list = new ArryList();
>って書き方は通らないからね

ってマジっすか?
398デフォルトの名無しさん:2005/04/14(木) 21:59:14
これがダメだと、1.4 -> 1.5のマイグレーションは物凄く面倒っぽいな・・・
399デフォルトの名無しさん:2005/04/14(木) 22:56:00
つーか、コレクションは型指定するのが当たり前だろ?
C++から流れてきたから今のJavaのコレクションの仕様が気に食わない。
何でも入れられるから、何でも入れるってのは間違いだからな。
とりあえず、ちょっとだけJavaを認めてやるよ。
400デフォルトの名無しさん:2005/04/14(木) 22:56:16
自作自演の楽園って此処ですか?
401デフォルトの名無しさん:2005/04/14(木) 23:02:14
>>400
自作自演っつーか、C++厨が暴れてるだけ。

まぁ、そのうち飽きると思うけど。
奴さんが引き篭もり無職だと時間かかるかもね……
402デフォルトの名無しさん:2005/04/14(木) 23:05:00
これからはList#toArray(Object[])はいらなくなるかな
403デフォルトの名無しさん:2005/04/14(木) 23:09:50
>>402
ライブラリ作らない人とか、古いAPI使わない人なら使う頻度は減るかも。
404デフォルトの名無しさん:2005/04/14(木) 23:17:09
>>397
コンパイルオプションを入れた場合ね
いれないと注意文がでる

いままでとおなじにしたいのなら
List<Object> list = new ArrayList<Object>();
とかくわけさ


>>398
警告というかメッセージが出る
コンパイルオプションでエラーにすれば詳細なメッセージが出る

実行時にバグがわかるという1.4までの問題が解決されるすばらしいものだよ
405デフォルトの名無しさん:2005/04/14(木) 23:23:35
>>390
なんか曖昧な説明しかできないんだけど、汎用型の情報はコンパイル時にのみ
使われて、コンパイル後のバイトコードからは消えているというところがポイントかと。

キャストの正当性確認は実行時に行われるけど、HashMap<Integer, Integer>という
情報は実行時には存在しない。だからそのキャストは無意味だしチェックもできない
といってるんだと思う。

ただチェックできないということは知らせとかないといけないので、ワーニングにして
ると思われる。
406デフォルトの名無しさん:2005/04/14(木) 23:25:36
>>404
ところで未検査変換って警告じゃなくて、エラーになるんだっけ?
407デフォルトの名無しさん:2005/04/14(木) 23:29:32
>>405
HashMapが public Object clone() でなく
public HashMap<K,V> clone() みたいに
オーバーライドすれば良いだけのような気がするが……

java.util.Collections の複製メソッド使えって事なのかな?
408デフォルトの名無しさん:2005/04/14(木) 23:31:15
JTextAreaにsetTextを使ってテキストを配置するさいに、上書きしないで追加するようにするにはどうしたらよいのでしょうか
409デフォルトの名無しさん:2005/04/14(木) 23:32:09
>>384
actionクラスということはstrutsかな?
こんな感じでActionクラス継承したクラス作れば、かなりすっきりすると思うけど。
DBUtilsなんか組み合わせるといいかも。

public ActionForward execute(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response)
 throws Exception {
 String forwordName = null;
 Connection connection = null;

 try {
  connection = getConnection(); //コネクションの取得。取得方法は割愛。データソースでも可。
  forwordName = invoke(connection, form, request, response);
 } catch (Exception e) {
  throw e;
 } finally {
  try { connection.close(); } catch(Exception e) {}
 }

 return mapping.findForward(forwordName);
}


protected abstract String invoke(Connection con, ActionForm form,
 HttpServletRequest request, HttpServletResponse response) throws Exception;


410デフォルトの名無しさん:2005/04/14(木) 23:45:50
>>407
たしかコンストラクタを使えとSunのどっかのページに書いてあった。
411297:2005/04/14(木) 23:53:58
JAXBで質問させていただいた者です。
-jarオプションだと-classpathは無視されるのはわかったんですが、
するとjarから実行したい場合、jaxbなどライブラリのjarを指定するにはどうするんでしょう?
マニフェストのClass-PathにURL形式で指定してもダメみたいだし、
javaのlib/extにコピーはなんか対症療法のような。。。
412デフォルトの名無しさん:2005/04/14(木) 23:59:21
>>411
1番簡単なのはjaxbなどライブラリのjarを解凍して実行jarに入れちゃう...
413デフォルトの名無しさん:2005/04/15(金) 00:00:06
>>412
それって配布条件にひっかからない?
414デフォルトの名無しさん:2005/04/15(金) 00:06:03
ものによればひっかかるだろ

だから「これを動かすには○○が必要です」とかやるしかないんだろうな
415デフォルトの名無しさん:2005/04/15(金) 00:06:38
416デフォルトの名無しさん:2005/04/15(金) 00:30:27
Strutsの質問なんですけどいいんでしょうか。
スレ違いなら無視してください。
そして長くなるかもしれませんが、許して下さい。

sampleJSPという画面で入力を行い、sampleFormクラスと
sampleActionクラスを作りました。
sampleJSP内では<html:text property="input1"/>や
<html:file property="input2"/>などがあるとします。
あ、submitボタンもあるとしてください。

submitが行われたら、入力にエラーがあってもなくても、
kakuninJSPという確認画面に遷移して、
sampleJSPで入力された値を表示させたい時、
<bean:write property="input1"/>
<bean:write property="input2"/>
<bean:write property="input3"/>
というようにすれば表示されるのでしょうか。

またそのkakuninJSPで入力エラーがない場合、
さらに「確定」ボタンでDBへの処理を行いたいのですが、
<bean:write>タグだと表示だけですよね。
kakunin.JSPでもその値を保持し、kakuninActionでも利用したいのですが
<html:text>などを使わないで値を保持するには
どうしたらいいんでしょうか???

長々とすいません。
417デフォルトの名無しさん:2005/04/15(金) 00:34:39
struts 関係の質問です
入力jsp → 出力jsp
の過程で全角文字が出力jspのほうで文字化けしてしまいます
半角英数については問題無しでした
入力JSP→<html:text property="id" size="16"/>
アクション→String id = DataForm.getId();
      
フォーム→private String id と普通にゲッターセッター
出力JSP→<bean:write name="id" scope="session"/>
アクションのところにsession.setAttribute("id", "あいうえお");
としてやるとあいうえおと表示されました。文字化けはああああと
textに書いたとき!(!(!(!(もしくは(!(!(!(!こんな風に出てたと思います
資料が不明確ですいません、なんか情報漏洩法?かなんかのせいで
会社厳しくなって一切持ち帰りできないので・・・・
418デフォルトの名無しさん:2005/04/15(金) 00:35:39
>>416
少しは調べてから質問しようね
419デフォルトの名無しさん:2005/04/15(金) 00:36:47
>>418
知らないなら出てくるなよ・・・
420デフォルトの名無しさん:2005/04/15(金) 00:40:29
>>416
自分も質問してる身ですけど sampleJSPの<html:text property="input1"/>
のproperty名と同じ名のフィールドをもつBeanを作って
そのBeanを元にArrayListを作ると保持できますよ
421デフォルトの名無しさん:2005/04/15(金) 00:41:10
>>416
> submitが行われたら、入力にエラーがあってもなくても、・・・

sampleFormがSessionスコープの場合はマッピングすれば表示される。

> またそのkakuninJSPで入力エラーがない場合、・・・

<html:hidden... を使用。fileは無理ですね多分。
422デフォルトの名無しさん:2005/04/15(金) 00:45:59
>>417
form
public void reset(ActionMapping mapping, HttpServletRequest request) {
 try {
  request.setCharacterEncoding("EUC-JP"); //サーバの文字コードを指定
 } catch (Exception e) {
  e.printStackTrace();
 }
}

これで1回やってみてください。
423デフォルトの名無しさん:2005/04/15(金) 00:53:42
>>422
有り難うございます。明日になってしまいますが
メモして持ってきます。
424デフォルトの名無しさん:2005/04/15(金) 00:53:47
>>411
配布するときはフォルダまとめて提供するとして、
アプリケーションjarと同列にlibディレクトリでもつくって、そこにjaxbとかの
jarをおいて、アプリケーションjar内のマニフェストのClass-pathにlib以下の
jarをlib/xx.jarって感じで指定してやればだいたいいける。

残念ながらjarの中のjarをクラスパスに指定することはできない。
425デフォルトの名無しさん:2005/04/15(金) 00:55:11
僕も初心者ですけど、偉そうにするなら、教えてくれなくていいです。
426デフォルトの名無しさん:2005/04/15(金) 00:55:22
>>419 は逆ギレ予備軍
427デフォルトの名無しさん:2005/04/15(金) 00:57:04
レスありがとうございます。

>>420さん
それはArrayListを作成しないと保持できないのですかね。

>>421さん
<html:hidden>を考えたんですが、hiddenってvalue属性ありましたっけ?
<html:hidden property="input1"/>だけでいいんですか?
同じproperty名が同じkakuninJSP内にあったらだめですよね。
<html:hidden property="input1-1" value=<%=XXXX%>/>でOK?
428デフォルトの名無しさん:2005/04/15(金) 00:59:48
>>425
漏れはどんなにえらそうでも教えてくれたら
それでもう感謝だ。仕事とかで切羽詰ってないからじゃないかな?
仕事切羽詰って2chで質問ってのもあれだがw・・・
頼りになる話しやすい先輩がホスィ・・・
429デフォルトの名無しさん:2005/04/15(金) 01:01:52
このスレバカばっかり
二度とこねーよこんなスレ
430デフォルトの名無しさん:2005/04/15(金) 01:03:31
>>429
バイバーイ。二度とこないでね♪
431デフォルトの名無しさん:2005/04/15(金) 01:04:57
>>427
<form action="/hoge">にマッピングされているbean(form)のプロパティです。

<html:form action="/hoge">
<html:hidden property="input1"/>
</html:form>

input1に値が入っていればvalueも同値。
432デフォルトの名無しさん:2005/04/15(金) 01:05:04
>>430
ホントにバカが混じってたと純粋に驚いた。
433デフォルトの名無しさん:2005/04/15(金) 01:06:51
>>427
ごめん入力値を出力したいだけなら
ArrayListいらんわ
ttp://www.javaroad.jp/opensource/js_struts4.htm
ココのを自分の似合わせて改造すればOK
日本語のも出したいなら422さんのも踏まえれば多分OK
434デフォルトの名無しさん:2005/04/15(金) 01:13:42
みなさんいろいろご丁寧にレスほんとうに感謝してます。
会社にろくな参考書がなくてネットや2ちゃん頼りに
探しまくってます。いまいろいろやってます。
決して無視してるわけではないので。
435仕様書無しさん:2005/04/15(金) 03:59:56
javaサーブレットで掲示板を作ろうと思います
JSPをビューにして掲示板の作成クラスと削除クラスを二つ作ってパスワードをいれれば自分の登校したものを削除できるようにしたいんですが
うまくいきません。以下コードを書きます。何かアドバイスがあったらください。
436デフォルトの名無しさん:2005/04/15(金) 04:31:52
真のバカは、このスレに常駐してる椰子だろうな。
437390:2005/04/15(金) 08:54:18
とりあえず警告の原因がジェネリクスの型指定をしてないからだということは理解しました
そんで >>410 さんのコンストラクタを使うやり方で警告を抑えることもできました

map2 = new HashMap<Integer, Integer>(map1);

沢山のレスありがとうございました
438デフォルトの名無しさん:2005/04/15(金) 10:17:09
>>408
setTextじゃ無理。appendを使う。
439デフォルトの名無しさん:2005/04/15(金) 12:54:26
J2SEとJ2EEの違い ≒ servlet能力

じゃあ、
J2SEとJ2MEの違いって何だ。
WTKだけか。
440デフォルトの名無しさん:2005/04/15(金) 17:19:05
いきなりですがご質問をば
リフレクションで型のキャストは不可能です?
不可能なのこれぐらい?
441デフォルトの名無しさん:2005/04/15(金) 17:41:52
同じクラスローダー内であれば可能な気がする
と、無責任な回答
442デフォルトの名無しさん:2005/04/15(金) 18:28:03
> リフレクションで型のキャストは不可能です?
何が出来れば「リフレクションで型のキャストが可能」って事になるん?
443デフォルトの名無しさん:2005/04/15(金) 21:20:52
strutsのlogicタグについて質問があります。
aが空とnullの時に・・  という2つの条件を持たせるにはどのように書けばいいのでしょうか?

<logic:equal  name="a" value=    >
444デフォルトの名無しさん:2005/04/15(金) 21:43:10
logic:presentでいいんじゃねーの?
445デフォルトの名無しさん:2005/04/15(金) 21:59:04
つ [empty]
446443:2005/04/15(金) 22:10:10
<logic:empty name="a" />でよろしいでしょうか?
それともpresent?
nullと空の両方を満たすのはemptyですか?
447デフォルトの名無しさん:2005/04/15(金) 23:10:10
JDBCドライバを動的にロードして使いたいのですが、方法をご存知の方いますか?

次のコードで良いと思ったのですが、DでClassNotFoundExceptionが出ます。
またDのかわりにcl.newInstance();とすると、EでSQLException: No suitable driverが出ます。
もちろんJDBCドライバにクラスパスを通せば正常動作します。
どこに問題があるのでしょうか?

@File jarFile = (new File("mysql-connector-java-3.0.16-ga-bin.jar").getCanonicalFile();
AURL baseURL = jarFile.toURL();
BURLClassLoader loader = new URLClassLoader(new URL[] { baseURL });
CClass cl = loader.loadClass("com.mysql.jdbc.Driver");
DClass.forName("com.mysql.jdbc.Driver");
EConnection con = DriverManager.getConnection("jdbc:mysql://localhost/test_db?useUnicode=true&characterEncoding=SJIS","root","");
448デフォルトの名無しさん:2005/04/15(金) 23:24:31
>>447
(2)でちゃんとURLは正しく取れているか?
あと、丸数字は使わないほうが良い
449447:2005/04/15(金) 23:43:31
>>448
(2)でURLは取れています。
(4)までは問題なく動作しています。
うーん、昨日からこれで悩んでいます。。
450デフォルトの名無しさん:2005/04/15(金) 23:46:37
>>447
DriverのクラスローダとDriverManagerのクラスローダが違うのが原因。

DriverManagerを使わずに
Driver driver = (Driver) cl.newInstance();
Connection con = driver.connect("jdbc:mysql://localhost/test_db", props);
とやればできるのは前に試したことがある(propsには接続用パラメタをいれておく)。
451デフォルトの名無しさん:2005/04/15(金) 23:46:57
>>447
File jarFile = new File("mysql-connector-java-3.0.16-ga-bin.jar").getCanonicalFile();
URL baseURL = jarFile.toURL();
URLClassLoader loader = new URLClassLoader(new URL[] { baseURL });
Class.forName("com.mysql.jdbc.Driver", true, loader);

これならどうでしょう?
452447:2005/04/16(土) 00:10:41
解決しました。
>>450
その方法で解決しました!ありがとうございました。
>>451
その方法ですと
(6)でSQLException: No suitable driver
という結果がでました。
検討して頂きありがとうございました!

みなさん凄いですね、ありがとうございます。
こんなに早く解決するならもっと早く相談すべきでした。
453デフォルトの名無しさん:2005/04/16(土) 00:12:14
>>452
調子に乗ってくだらないこと質問すると叩かれますよ
454297:2005/04/16(土) 00:25:20
>>412-415 >>424
詳しく教えていただいてありがとうございます。
ライブラリを一緒に配布してしまうのも問題がありそうですし、
ユーザーにもインストールとlib/extへのコピーをやってもらうのが一番無難そうですね。
455デフォルトの名無しさん:2005/04/16(土) 01:19:11
jaxbって配布しちゃいけないんだっけ。
456デフォルトの名無しさん:2005/04/16(土) 06:11:46
雰囲気の悪いスレだなあ
457デフォルトの名無しさん:2005/04/16(土) 09:28:36
>>454
>ユーザーにもインストールとlib/extへのコピーをやってもらう

かなり悪いやり方。lib/extは触れるべきではない。>>424が正解。
458440:2005/04/16(土) 10:22:18
>441
お返事どうもです。はい、正直に申します。
おっしゃった事が高度過ぎてよくわかりません。
久々に危機感もって探求しています。今のとこさっぱりです。
その為、お返事には時期尚早と感じております。

>442
お返事どうもです。調べてて自分も同じ事思いました。切り分け難しいです。
System#arraycopy(...)と同等な事を動的にいけます?

>442-457
同感です。とにかくリフレクションあまり使うもんじゃないですね、すっきりしない
459デフォルトの名無しさん:2005/04/16(土) 10:49:37
くだらない質問なんですけど、JSTL(JSPの標準タグ)はどうして
あまり使われないのでしょうか?
いま、やっている開発(Strutsでの開発)では、ぜんぜん使われていなくて、
当たり前ですが、Strutsのタグライブラリが頻繁に使われています。
JSTLとStrutsのタグライブラリは、機能的に補完しあうような関係でなく、
どちらかというと、競合するような関係と認識していますが、この理解で
あってますでしょうか?
460デフォルトの名無しさん:2005/04/16(土) 10:53:20
>>458
> 調べてて自分も同じ事思いました。切り分け難しいです。
切り分けより、>>440 から
> System#arraycopy(...)と同等な事を動的にいけます?
を連想しろという方がよほど難しい。

> System#arraycopy(...)と同等な事を動的にいけます?
結果が同じでリフレクション使ってやれば良いってだけなら、
java.lang.reflect.Array 使えば簡単に出来ると思われ。
っつか、キャストは全く関係ないと思うが。
461デフォルトの名無しさん:2005/04/16(土) 11:03:01
>>459
> JSTLとStrutsのタグライブラリは、機能的に補完しあうような関係でなく、
> どちらかというと、競合するような関係と認識していますが、この理解で
> あってますでしょうか?
どちらとも言える。
機能がかぶっている部分もあるし、JSTLにしか無いものも、Strutsにしか無いものもあるし、
機能によってはかぶっていてもStrutsタグのほうがいいものもある。
462デフォルトの名無しさん:2005/04/16(土) 11:15:05
>>422
有り難う、それでばっちりだった。
463デフォルトの名無しさん:2005/04/16(土) 11:35:52
>>461
>どちらとも言える。
>機能がかぶっている部分もあるし、JSTLにしか無いものも、Strutsにしか無い>ものもあるし、
>機能によってはかぶっていてもStrutsタグのほうがいいものもある。

おお、そうなんですか。どちらともいえますか。
場合によって使いわけろというわけですね。
464デフォルトの名無しさん:2005/04/16(土) 13:25:27
初心者です。
Javaってなんですか?
465デフォルトの名無しさん:2005/04/16(土) 13:28:09
axis内でServletContextを得るにはどうすればよいでしょうか。リソースをGetしたいです。
教えてください。よろしこ orz
466デフォルトの名無しさん:2005/04/16(土) 13:28:20
>>464
>>1
467440:2005/04/16(土) 20:32:12
>460
ごもっともです。すいません、arraycopyは
Collection#toArray(Object[])
ここらへんのキャストからくるものです。
調べてたらどんどん焦点がずれてきてる次第です。
(Object[]) null;
みたいなことできますでしょ、これどんな仕組みか
468デフォルトの名無しさん:2005/04/16(土) 22:40:42
昨日からJAVAを始めた初心者です。ハローワールドを作ろうとしました。
ところが、コンパイルは出来たのですが(.classファイルは出来ました)、JAVAの実行ができません。

C:\>Java C:\〜
Exception in thread "main" java.lang.NoclassDefFoundError: C:\〜
・・・というエラーが出ます。

Path、Classpathは以下のように設定してあります
C:\>set Path
Path=C:\j2sdk1.4.1_07\bin
C:\>set Classpath
Classpath=%Classpath%;.

ソースは以下のとおりにしました
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello Java World !");
}
}

これで考えられるエラーの原因は何でしょうか?
よろしければお願いします
469デフォルトの名無しさん:2005/04/16(土) 22:42:37
クラスパスなんて設定しなくていいし、
実行時に、c\なんて余計な入力しなくていい。
470デフォルトの名無しさん:2005/04/16(土) 22:53:14
>>468
javaコマンドはクラス名を引数にとるのであって、ファイルパスじゃない。
もし君が引数に C:\aa\bb\cc と指定したなら、javaコマンドは
"C:\aa\bb\cc" という名前(Cから最後のcまでが全部クラス名だ)の
クラスを探す。つまり「"C:\aa\bb\cc.class"」という正体不明のファイルが
CLASSPATH内にあるかどうか一生懸命探す。

こんな必死におまえの命令に忠実であろうとするjavaコマンドにもっと優しい
指定をしたらどうだ。たとえば、普通にクラス名「cc」を渡してやるとか。
471デフォルトの名無しさん:2005/04/16(土) 23:10:09
>>469>>470
ありがとうございました、無事解決しました。
472デフォルトの名無しさん:2005/04/16(土) 23:48:36
DataInputStreamで1バイトに1つの文字が入っているようなデータを読み取るにはどうしたらよいのでしょうか。
readCharメソッドだと2バイト分読み込んでしまいますよね、、、?
473デフォルトの名無しさん:2005/04/16(土) 23:56:43
read()
474472:2005/04/17(日) 00:00:56
ありがとうございます
475297:2005/04/17(日) 00:40:52
>>457
>>424でも、どのみちライブラリのインストールと
アプリケーションjarと同列のlibフォルダへのコピーは
やってもらわないといけないですよね。
それともライブラリのjarファイルを一緒に配布しちゃっていいんでしょうか。
476デフォルトの名無しさん:2005/04/17(日) 00:42:18
>>475 他人のライブラリ持ってきたときに仕様許諾契約結んだだろ?
477デフォルトの名無しさん:2005/04/17(日) 00:47:28
>>475
世の中のオープンソースなJavaアプリケーションは、普通に依存jarファイルをlibにつっこんで
配布しとる。

というか、ライセンス的に配布可能なjarしか使ってない。

そういうアプリケーションはほとんど
app/
--bin/
--lib/
--doc/

てな構成て配布されてるぞ? libにはjarが山盛り。そりゃそうだろ、「このアプリ使うには、
jarファイルを10個、いろんなサイトからダウンロードして、自分でlibディレクトリに入れて
くださいね」とかいわれたら、誰もそんなクソアプリ使うかよ。
478デフォルトの名無しさん:2005/04/17(日) 01:28:01
>>467
> (Object[]) null;
言語仕様的には、nullはあらゆる参照型にキャスト可能な空型。

http://www.y-adagio.com/public/standards/tr_javalang2/typesValues.doc.html#11128
> 式nullの型である特別な空型(null type)も存在する。それには名前がない。
> 空型には名前がないので,空型の変数を宣言すること又は空型にキャストすることはできない。
> 空型の式が取りうる唯一の値が空参照となる。空参照は,常に任意の参照型にキャストできる。
> 実用上は,Javaプログラマが,空型を無視し,nullを任意の参照型になれる特別なリテラルと見なしてもよい。

って事でなくて?
479472:2005/04/17(日) 03:21:19
>>472で質問したものですが、read()メソッドでバイト配列を取り出し、その中身をプリントアウトすると、
文字列ではなく数字が表示されてしまうのですが、どうしたら正しく文字を取り出すことができるのでしょうか。
480デフォルトの名無しさん:2005/04/17(日) 03:38:58
Java以前の問題だと思いますよ

元ファイルが文字列だろうがなんだろうが byte 単位で見ればただの2進数の羅列
read で読み出したものは byte であって String ではありません
文字コード(数値)から文字列への変換が必要ですよ

そもそも DataInputStream で使ってるってことは DataOutputStream で書き出したもの
を読み込んでるんだよね?
それだと 1byteで一文字って状況が良く分からないのですが
481デフォルトの名無しさん:2005/04/17(日) 03:41:43
>>479
(char)
482デフォルトの名無しさん:2005/04/17(日) 03:44:39
>>479 charに変換するとかnew String(bytes, "us-ascii")とか...って話になる
けど、そもそもなんで1文字1byteの単位でデータが収められたDataInputStream
なんてのがあるわけ? 用途間違えてないか? そのあたりの意図がわからないので、
472を読む限りだとなんかすげー遠回りしてそうな印象を受けた。
483482:2005/04/17(日) 03:45:44
480とかぶった。orz.
484デフォルトの名無しさん:2005/04/17(日) 03:47:38
おまえら相手の要件聞かずにコーディング始めるタイプなんだろうな
485デフォルトの名無しさん:2005/04/17(日) 03:52:28
>>479
君がしたいのがどういうことかによる。単にバイト列を取得したいなら>>473の回答の
通りだし、読み込みデータの1バイトを読んで、それをJavaのchar型として扱いたいと
いうなら、むしろ読み込みエンコード指定付きコンストラクタで作成したInputStreamReader
のread()のほうが適当。

吐き出すときはOutputStreamWriterのwrite(int c)な。あるいはPrintWriterのwrite( int c)。
486479:2005/04/17(日) 04:16:21
皆さんありがとうございました
487デフォルトの名無しさん:2005/04/17(日) 05:22:58
jTextAreaにappend()していくときに、同じ内容があれば処理を変える(書き込まない等)といったことを
するにはどうすればいいのでしょうか。
488デフォルトの名無しさん:2005/04/17(日) 05:28:30
ここでJAVAのバージョンはどれがいい、と聞いた者ですが
皆さんはJavaを組み立てるとき
どんなエディタを使っていますか?
教えてください

私はJextを使っていたのですが、英語だけで、とても疲れたので
皆さんはどんなものを使っているか知りたいです。
489デフォルトの名無しさん:2005/04/17(日) 05:30:44
>>488
Emacs+日本語Patch もしくは JBuilder
490デフォルトの名無しさん:2005/04/17(日) 06:14:42
仕事柄 WebSphere Studio Application Developer 5.1.2 ばかりだが別のと言われたらやっぱり Eclipse
491デフォルトの名無しさん:2005/04/17(日) 06:47:40
jTextAreaにappendした文字列を指定した行だけ取り出すにはどうしたらいいのでしょうか
492デフォルトの名無しさん:2005/04/17(日) 06:53:57
>>491
・素直にreadLine
・改行コードを検索し、指定行数分ループ
493デフォルトの名無しさん:2005/04/17(日) 07:08:27
eclipseを使ってゲームを作りたいのですが
pngなどの透明色指定する方法がわかりません。
誰かわかりませんか?
494ero 34.74.215.220.ap.yournet.ne.jp/:2005/04/17(日) 07:19:01
   っ      ぉ   ァ     お       ぇ                    
 ぇ  し  る   ハ    は    k  w       w                
      と                      う                   
え       の    ハ   w         う  ぇっ  w              
  け         ァ  う   w   w  w      w               
     
495デフォルトの名無しさん:2005/04/17(日) 11:30:37
>493
君が頑張って質問したたくさんのスレッドのどれかで回答ついてたよ。
頑張って探して二度と来るな。
496491:2005/04/17(日) 11:50:56
readLineとはJTextAreaのメソッドという意味でしょうか?
エラーが出てしまうのですが、、。
497デフォルトの名無しさん:2005/04/17(日) 12:05:07
while分の中にswitch文があった場合、switch文の中からwhileのループをbreakするにはどうしたらいいのでしょうか。
498デフォルトの名無しさん:2005/04/17(日) 12:13:15
>>497
言語仕様をよーくみてみるのだ
499デフォルトの名無しさん:2005/04/17(日) 12:32:10
>>489-490
皆さん市販されているものを使っているんですか、
私は、まだ初心者なのでフリーのエディタでいいのですが
知りませんか?
500デフォルトの名無しさん:2005/04/17(日) 12:40:18
>>499
Eclipseでいいじゃない。
501デフォルトの名無しさん:2005/04/17(日) 13:09:46
初心者向けのフリーの開発環境ならEclipseが無難だな。

エディタだけで書いてると、クラスを使い始める頃にはコードの煩雑さで死ねる。
EclipseなどのようなIDE(統合開発環境)は趣味プログラマでも必須だと思う。
502デフォルトの名無しさん:2005/04/17(日) 13:11:04
503297:2005/04/17(日) 13:54:08
>>476,477
へぇ〜、なるほど。そういうものなんですか。
ためになりました。ありがとうございます。
ライセンスを読まないとダメですね。英語はどうも。頑張ってみます。
504デフォルトの名無しさん:2005/04/17(日) 14:02:53
初心者ならNetBeans4.0を薦める。
上級者でもGUI使うなら必須だけど。

Sun純正であることとJavac使ってるので最新に対応しやすいことなど
メリットはそれなりにあるはず

Eclipse3より軽いし・・・
505デフォルトの名無しさん:2005/04/17(日) 14:55:15
>>493
わかるがスレ違いなので教えない
マルチ野郎には教えたくもない
506デフォルトの名無しさん:2005/04/17(日) 20:52:02
>>499返事を下さってありがとうございます。
皆さんの意見を参考にして色々試してみます。
507デフォルトの名無しさん:2005/04/17(日) 23:19:59
字種切り方について知りたいのですが、詳しく説明されているサイトや書物が中々見つかりません
字種切り方が詳しく載っているサイト・書物を教えていだたけたら幸いです
508デフォルトの名無しさん:2005/04/17(日) 23:57:27
字種切り法というと、文章をひらがなやカタカナで切り出しす方法だよな?
単純に一文字ずつ判定していくだけじゃダメですかい?
509デフォルトの名無しさん:2005/04/18(月) 00:01:36
510デフォルトの名無しさん:2005/04/18(月) 00:27:48
>507
うーむ、KaKaSiとかChaSenとかMeCabのソースを読んでみるというのはどうだろう?
511デフォルトの名無しさん:2005/04/18(月) 06:41:16
>>505
回答する気がないなら出しゃばるなよ
512デフォルトの名無しさん:2005/04/18(月) 06:43:25
>>511
オマエモナ
513デフォルトの名無しさん:2005/04/18(月) 07:21:15
>>512
オマエモナ
514デフォルトの名無しさん:2005/04/18(月) 10:07:33
なあ、ルー(rkx
515デフォルトの名無しさん:2005/04/18(月) 13:50:51
>>514
大柴?
516デフォルトの名無しさん:2005/04/18(月) 15:05:35
>>508,510
どうもありがとうございます
字種切り法=Java用語だと思っていましたorz
一文字ずつ判定ですか…難しそうだ…
510氏が教えてくださったソースを理解してみます
517デフォルトの名無しさん:2005/04/18(月) 15:25:21
LANアダプタのMACアドレスに割り当てられたIPアドレスを
Javaで取得したい場合は、やはりJNI使う以外に手は無いでしょうか?
518デフォルトの名無しさん:2005/04/18(月) 16:05:49
IPアドレスの取得なら普通に出来ると思うが
519デフォルトの名無しさん:2005/04/18(月) 16:11:11
>>517
ARP/RARPはJavaの標準APIでは使えなかったと思う。

520デフォルトの名無しさん:2005/04/18(月) 16:14:57
初心者なんですが質問します。
javaはmacでも使えるんですか?仕事で使うらしいのだがまったくわからないので…
521デフォルトの名無しさん:2005/04/18(月) 16:17:00
>>517
ARP/RARPで情報を取得するクラスを作成しては?
522デフォルトの名無しさん:2005/04/18(月) 16:17:40
>>520
使えます
523520:2005/04/18(月) 16:20:37
>>522
ありがとうございます。当方macしか持ってないもので…
これから勉強します。
524517:2005/04/18(月) 16:31:57
>>518>>519>>521
レスサンクス(・∀・)
今、ググりまくってるんだけど、やはりJavaのみでは無理のようですね。
やりたいことは、同じネットワークセグメント内にあるIP-reachableなPCの
MACアドレスだけが解っている状態に対し、
そのMACアドレスを入力値として、対応するIPアドレスを取得したいのですが。
Windowsのコンソールで動くコマンドなんかで、MACアドレス入れると、
それから引いたIPアドレス返してくれるツールなんかがあれば、
そいつを起動するとかでもいいんですけどね。。。
525デフォルトの名無しさん:2005/04/18(月) 17:14:46

Javaで前のページに戻れなくするやり方ってありますか?
JavaScriptでいうlocation.replace()見たいなものが欲しいんですけど。。
forwardタグではその前のページに戻ってしまいます。
教えてエロイ人
526デフォルトの名無しさん:2005/04/18(月) 17:40:39
javaを激しく勘違いしてるな
527デフォルトの名無しさん:2005/04/18(月) 17:41:56
>>525
実装の形態によっては、あります
528デフォルトの名無しさん:2005/04/18(月) 17:57:40
>>524
MACアドレス自体でどうのこうのっていう危険なのはJavaにはない

ただ、NICを列挙、そしてそれら列挙されたNICからさらにIPを列挙
というところまでは1.4での新機能としてある

まぁ妥当な実装やね
529525:2005/04/18(月) 18:06:27
>>527
教えてください
エロイ人
530デフォルトの名無しさん:2005/04/18(月) 18:23:48
>>529
1. エロイ人ではありません
2. あなたの示した情報から回答できる範囲は >>527 までです
3. 情報を小出しにされるのは嫌いなので私からの回答は >>527 で終了です
4. 本当に回答が欲しいのであれば質問の仕方を熟考されるべきかと思います
531デフォルトの名無しさん:2005/04/18(月) 19:08:28
java.net.NetworkInterface#getNetworkInterfaces() か。

どうでもいいがなんで1.4で導入された癖に
Enumerationで返すんだ、コイツ。1.1時代ならともかく。

532U ◆CZtFsGiu0c :2005/04/18(月) 19:11:04
>>525
要するにリダイレクトすればいいのでは?
533デフォルトの名無しさん:2005/04/18(月) 19:33:05
>>524
対象PCでNetBIOSが動いてるなら、Port137に対して適切なコマンド
(うろ覚えだけど、確かそんなコマンドが有ったはず)をブロードキャ
ストしてやれば取得できると思う。
534デフォルトの名無しさん:2005/04/18(月) 22:02:28
すいませんすごい初歩的な質問なんですけど、
HttpServletクラスを使いたいとき、J2SEだと、Tomcatの下階層のディレクトリにあるservlet-api.jarにクラスパスを通さないとコンパイルできませんよね。
でも、はじめからJ2EEをインストールしていれば、HttpServletクラスを使ったクラスをコンパイルできるということなんですか?
535デフォルトの名無しさん:2005/04/18(月) 22:32:08
Strutsの開発を行なっているのですが、tilesの関連した問題でつまり
ずっと滞っております。

ActionServletを呼び出し、画面遷移しようとする下記のような例外が
発生します。
どうも、tilesファイルが定義されていないようで、いろいろとWEBと本を
参考にし、同じようにやっているのですが、同じエラーが出てしまいます。

どなたか心当たりある方、ご教授お願いします。

2005-04-18 22:20:44 StandardWrapperValve[action]: サーブレット action のServlet.service()が例外を投げました
java.lang.NullPointerException
at org.apache.struts.tiles.xmlDefinition.FactorySet.getDefinition(FactorySet.java:116)
at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.getDefinition(ComponentDefinitionsFactoryWrapper.java:86)
at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:153)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:300)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

ちなみに、Tilesの定義はstruts-config.xmlで下記のように定義し、tiles-defs.xmlとstruts-tiles.tldは
WEB-INFの下においております。

<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
<set-property property="moduleAware" value="true" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
536デフォルトの名無しさん:2005/04/18(月) 22:36:03
>>535ですが、補足として、ボタンを押して画面遷移しようとするとき、
FormBeanが生成され値が保持され、Actionロジックまでは正常なログが
出ています。やはり、遷移のときの問題のようです。。
537デフォルトの名無しさん:2005/04/18(月) 22:40:16
>>524
ブロードキャストのpingってできるんだっけ?
で返事が返ってきたら
ARPキャッシュ一覧をどうにかして取得して
その中から対象のMACアドレスを探して、対応するIPアドレスをゲットするとか

ブロードキャストドメインにしか使えないかな

あとPCがpingに応答しなくても使えない
538デフォルトの名無しさん:2005/04/19(火) 01:05:48
>>537
いや、NetBIOSにコマンドが用意されてたと思う(NODE STAT REQUESTだっけ?
とにかくNetBIOS名の一覧を要求するコマンド)。
この時にIPまで手に入るのか、再び何らかのコマンドを投げてIPを得るのかは
実際に必要に迫られた事がないんで把握できてないんだけど、とにかくIPを得
る事はできる。
あとは得たIPをARPで投げると対象ホスト自身が返事をするはず。

>ブロードキャストドメインにしか使えないかな
セキュリティ系のページに設置されたCGIで、設定の甘いPCからMACアドレス
を得るという実験がされてたから、何らかの方法を用いれば取得できるのかも
しれないけど、少なくとも一般的な方法ではないと思う。
て言うか、そもそもLAN外からMACアドレスを取られる様な設定はちょっとどう
かと思う。
539デフォルトの名無しさん:2005/04/19(火) 01:55:59
>>538
無知のくせに適当な事言うなよ
540525:2005/04/19(火) 02:16:42
>>530
分からないなら分からないといえ
アフォ
541デフォルトの名無しさん:2005/04/19(火) 02:44:39
何なん君ら。
まずは最初に来たレス熟読して脊髄反射レスなんてくだらんもん書くな。
回答する気がなければ書くな。無駄に煽りが入る。
適当なこと言ってると思うなら適当なところ書けよ。
542デフォルトの名無しさん:2005/04/19(火) 06:28:11
>>541
君は自分の発言が煽りを過剰反応させるモノだと言うことに気づくことから始めよう。
君の論は正論だが、それならば君もまたそのようなレスを書き込んではいけないことになる。
そして私のこのレスも然りだ。

結局私たちは煽りを放置できない厨房だってこった。
543デフォルトの名無しさん:2005/04/19(火) 06:47:16
jTextAreaの中の指定した文字列を削除するにはどうしたらいいのでしょうか
544デフォルトの名無しさん:2005/04/19(火) 06:58:06
馬鹿は煽りに即レス
545デフォルトの名無しさん:2005/04/19(火) 07:07:01
どなたか探索木における幅優先探索のプログラムをうpしてください
おねがいします
546デフォルトの名無しさん:2005/04/19(火) 07:09:45
>>545 氏ね
547デフォルトの名無しさん:2005/04/19(火) 07:39:02
>>1-546
Java厨氏ね
548デフォルトの名無しさん:2005/04/19(火) 07:54:00
>>547
C++厨氏ね
549U ◆CZtFsGiu0c :2005/04/19(火) 09:09:04
>>534
J2EEは単なる仕様なので、その仕様に基づいて作られた動作環境(Tomcatなど)が
必要。おそらく「J2EE」と言っているのはJ2EE RIのことだと思うけど、J2EE RI
もJ2EE仕様にのっとって作られた動作環境の一つだから、Tomcatで動かすので
あれば、J2EE RIは不要。
550デフォルトの名無しさん:2005/04/19(火) 09:31:05
javaでユーザーのブラウザがjavascriptが有効かどうか判別できる
方法ってないでしょうか?
551デフォルトの名無しさん:2005/04/19(火) 09:49:06
>>550
あります
552デフォルトの名無しさん:2005/04/19(火) 10:00:54
>>551
方法を教えてください
553デフォルトの名無しさん:2005/04/19(火) 10:25:27
すいません、教えていただけないでしょうか。
Strutsを使って開発しています。
JSPで<html:select>タグを使っている部分があり、
画面で選択された値をActionクラス(DynaActionForm継承)で
取得したいのですがIllegalArgument例外が投げられます。

DynaActionForm df = (DynaActionForm)form;
String dataType = (String)df.get("date_type");

というようにActionクラスで記述しているのですが、
なぜこのような例外が投げられるかが分かりません。
selectタグの場合の取得はなにか特別な方法があるのでしょうか?
どなたか教えていただけないでしょうか・・・?
554デフォルトの名無しさん:2005/04/19(火) 10:47:40
Dynaならxmlの記述と矛盾してるとかじゃないかな?
555デフォルトの名無しさん:2005/04/19(火) 10:56:54
>>554
struts-config.xmlは以下のようになっております。
記述の方法、間違ってますか??

<form-bean dynamic="true" name="import" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="data_type" type="java.lang.String" />
</form-bean>
556デフォルトの名無しさん:2005/04/19(火) 11:39:48
この部分はおかしくないよね…
multiple とか指定した上で String で受け取ったらエラーになるのだろうか?
今、試せる環境が無いんだ。ゴメン

ところで、他のパラメータは問題なし?
557556:2005/04/19(火) 11:43:45
こっちが小出しになって申し訳ない…
IllegalArgumentException自体のメッセージは?
558デフォルトの名無しさん:2005/04/19(火) 12:00:44
ご回答ありがとうございます。
とりあえず今無理やり値を入れて
スルーして別テストやってます。
しばらくして、またエラー内容をペーストしてみます。

こちらから尋ねているのに申し訳ありませんが、
しばらくお待ちください・・・。
559デフォルトの名無しさん:2005/04/19(火) 12:22:23
こんなエラーがでました。

java.lang.IllegalArgumentException: Invalid property name 'date_type'
org.apache.struts.action.DynaActionForm.getDynaProperty(DynaActionForm.java:600)
org.apache.struts.action.DynaActionForm.get(DynaActionForm.java:196)
town_manager.action.ImportAction.execute(ImportAction.java:62)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:121)
560デフォルトの名無しさん:2005/04/19(火) 12:27:24
おーいおーい
Invalid property name 'date_type'
                ~~~
561デフォルトの名無しさん:2005/04/19(火) 12:52:37
>>560
( ゚д゚)ハッ!
解決できました・・・。
なんでこんなんに気づかなかったんだ・・・(T∀T)
ありがとうございます!
562デフォルトの名無しさん:2005/04/19(火) 13:23:38
>>552
小出しはパス
563Tomcat 4 使い:2005/04/19(火) 13:45:12
Tomcat 5 から単体で EJB 使えるようになったんだっけか?
564U ◆CZtFsGiu0c :2005/04/19(火) 14:43:29
>>563
んなわけない。
565デフォルトの名無しさん:2005/04/19(火) 15:22:52
あの、Javaのアプリケーションを配布したいんですが、J2SDKとかがインストールされて
いないPCの場合どうすればよいのでしょうか?ちなみに知り合いのPCではjavaコマンドは通りませんでした。
今のWindowsであればJREぐらいはデフォルトで入っているんですよね?
566デフォルトの名無しさん:2005/04/19(火) 15:29:20
>>565
Windowsには入ってない。
メーカーによってはプリインストールマシンにJRE入れるところもある。
567デフォルトの名無しさん:2005/04/19(火) 15:36:07
>>566
JREの入っているマシンであればユーザーが意図的にpathを通しておかなくてもjava
コマンドが通る状態になっているのでしょうか?
568デフォルトの名無しさん:2005/04/19(火) 15:43:44
Sun のインストーラーで入れられた jre ならパスは通ってるんじゃないかな?
それよりも jre 付で配布のほうが win ユーザーには優しいかもね
jre のバージョンも考えなくていいのも利点
569デフォルトの名無しさん:2005/04/19(火) 15:53:57
>>568
FDに入りますか?
570デフォルトの名無しさん:2005/04/19(火) 16:57:15
必要なもの以外を削ったら、それなりに小さくはなるけれども
FDはちょっと無理っぽい
571デフォルトの名無しさん:2005/04/19(火) 16:59:08
FDってフラッシュディスクでそ?
572デフォルトの名無しさん:2005/04/19(火) 17:11:03
システムフォルダにMS様謹製のjava.exeが入っている場合もあるから
あったら削除なり名前変更なりしとかないと、面倒な事になる場合もある。
573デフォルトの名無しさん:2005/04/19(火) 17:15:26
インストーラーごと同梱じゃなく、jreだけ同梱のつもりで言ってみた
バッチもしくは vb あたりでランチャ作れば起動も楽だし、
使用者の環境を汚さないでいいかなと
574デフォルトの名無しさん:2005/04/19(火) 17:26:22
>>573
そういう配布形態は認められていたっけ?
575デフォルトの名無しさん:2005/04/19(火) 17:30:57
JREを、AS ISじゃなく中身選別して配布するのはアウトだったような気がするなぁ。
576デフォルトの名無しさん:2005/04/19(火) 17:41:36
たしかJRE同根の再配布は認められてるが、REDMEだったかドキュメントになにをいれて
なにをはずしていいかの一覧がかいてあるのでそれを参考に

レジストリの登録する場合の仕方とかも詳しく書いてあったはず

日本語のドキュメントはオンライン上でみつかるはずだ

かってにこれいらないとランタイム小さくしたりするのはダメ
まずWEBSTARTくらいしか削除できないけどなー
577デフォルトの名無しさん:2005/04/19(火) 17:50:32
java知らなかったらjvmのバージョンとかインスコ先とか、pathとか全然わからんよね。
かつコマンドプロンプトも触れんかったらjavaファイルだけじゃ厳しいね。
jvmのバージョン古かったりjvm沢山入ってたり・・・。winもマンドクセーナー
578デフォルトの名無しさん:2005/04/19(火) 17:54:00
579デフォルトの名無しさん:2005/04/19(火) 18:02:52
5.0のほうが詳しく書いてるね

http://java.sun.com/j2se/1.5.0/ja/jre/README

ブラウザとのコネクション系とかは非公開JRE(ここでいう同梱JRE)ではずしていいのか
WebStartとあわせて削除して展開時2.5MB小さくなるか

ちなみに非公開JRE添付するならWinではzip圧縮大きいからやめたほうがいいよ
DGCAあたりにするとびっくりするほど小さくなる
580デフォルトの名無しさん:2005/04/19(火) 18:03:08
>577
このアドレスだけ、教えとけばいいんじゃないの?
http://java.com/ja/download/
581デフォルトの名無しさん:2005/04/19(火) 18:26:19
<html:frame href=C:\Test.pdf>ってやってるんですけど
全く表示されません・・・・・ IEのソース上は<frame src="C:\Test.pdf">
となり、アドレス(C:\Test.pdf)を違うブラウザのアドレスに打つと表示される
のですが、<html:frame>を使うとなぜか表示されません・・
WinXP SP2 IE6.0 WSSD5.1 使用
582デフォルトの名無しさん:2005/04/19(火) 18:28:21
>>580
一般ユーザの平均レベルだと、この程度でも難易度高すぎだと思われる。
ダメなヤツはとことんダメだぞ。 読んで理解しようとしないから。
583デフォルトの名無しさん:2005/04/19(火) 19:56:42
>>581
frame内にPDF表示させようとしたらIE固まった
謝罪と賠(ry

とりあえず、スレどころか板違いです
584デフォルトの名無しさん:2005/04/19(火) 20:22:58
どうもです!
恥ずかしい質問なんですけど
3を2進数表示すると11になりますよね?
これを00000011というように表示させたいのですが
3を11に変換してたのは
Integer.toBinaryStringを使ってます。
助言よろしくお願いします
585デフォルトの名無しさん:2005/04/19(火) 21:13:39
ゼロパディングしたいということなら、

final String PLACEHOLDER = "00000000";
String s = (PLACEHOLDER + Integer.toZBinaryString());
s = s.substring(s.length() - PLACEHOLDER.length());

# そうか、java.util.Formatterには2進表記を指定する記法はないのかぁ
586デフォルトの名無しさん:2005/04/19(火) 21:18:31
>>585
ありがとうございます。
とりあえずこれでやってみようと思います!
587デフォルトの名無しさん:2005/04/19(火) 21:34:21
>>585
java.util.Formatterにはないみたいですね!
Integerの中のtoBinaryStringは
どうも符号なしの2進数表示みたいですね!
もし、これが符号ありの2進数表示だったら
0000011って表示できてましたよねぇ
588デフォルトの名無しさん:2005/04/19(火) 21:37:12
>>587
情報処理の基礎からやったほうがいい
589デフォルトの名無しさん:2005/04/19(火) 21:47:18
>>588
情報処理の基礎って言われても
何をどう初めていいやら・・・
すみません わけわからなくて
590デフォルトの名無しさん:2005/04/19(火) 23:45:11
符号ありなしの話
−1をいれてみそ
591デフォルトの名無しさん:2005/04/19(火) 23:53:19
>>590
10000001になりました。MSBが符号ビットなのですね。
592デフォルトの名無しさん:2005/04/19(火) 23:59:01
>>591
それおかしいぞ
593デフォルトの名無しさん:2005/04/20(水) 00:59:11
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\torao>copy con a.java
public class a{
 public static void main(String[] args){
  System.out.println(Integer.toBinaryString(-1));
  return;
 }
}
^Z
    1 個のファイルをコピーしました。

C:\Documents and Settings\torao>javac a.java

C:\Documents and Settings\torao>java a
11111111111111111111111111111111

C:\Documents and Settings\torao>
594デフォルトの名無しさん:2005/04/20(水) 01:00:55
>>593がただしい
2の補数とか勉強せいやということだ
595デフォルトの名無しさん:2005/04/20(水) 01:23:25
ぽっかり開いた、心の穴を、
JAVAで埋めて、この先生き残っていくよ。



596デフォルトの名無しさん:2005/04/20(水) 02:56:41
なんだふられたのか。
597デフォルトの名無しさん:2005/04/20(水) 06:36:39
文字列配列の中から、毎回ランダムでどれかを取り出すにはどうすればいいのでしょうか?
598デフォルトの名無しさん:2005/04/20(水) 07:13:40
つ java.util.Random
599 デフォルトの名無しさん:2005/04/20(水) 08:17:51
時刻取得のソースですが、calender メソッドを
使って取得すると
calendar.get(Calendar.HOUR_OF_DAY)

12時間 表記で取得されてしまいます。
24時間表記で取得したいです、
どうやって取得すればいいでしょうか
600デフォルトの名無しさん:2005/04/20(水) 08:56:52

現在、Jsp、ServletでWEBアプリを作っています。
ServletにはExceptionをキャッチしたら以下のようにエラーテーブルに書き込む
記述をしてあります。


}catch(Exception ex){
String error_msg = ex.getMessage();

以下エラー書き出し処理



WEBアプリは現在稼動しているのですがエラーテーブルを見てみると

エラーメッセージ:Broken pipe
エラーメッセージ:なし

のようにBroken pipeエラーとエラーメッセージのないエラーが入っています。
エラーをキャッチしてcatch句に入っているのに書き出されていないのです。
この2つのエラーはどういうものなのか分かる方ご教授おねがいします。

なお、DBアクセスしてますがconnection、statement、resultsetはすべて
使ったらすぐにクローズしています。
601デフォルトの名無しさん:2005/04/20(水) 09:53:11
エラー処理として意図した動作になってないのでは?
Broken pipe は、おそらく IOException のメッセージです
メッセージだけを書き出しても、なにが発生しているのか分からないことのほうが多いです
メッセージを持たない Exception も多々ありますし、Excepion種+メッセージは最低でも
出しておきたいですね

エラーのほうですが低頻度で発生して、なおかつ画面上は正常というのであれば特に
気にする必要はないエラーです
(通信の途中でブラウザの停止ボタンを押したりすると発生します)
それ以外の常に同じ処理で発生しているというのならば、考えないといけません
602デフォルトの名無しさん:2005/04/20(水) 10:04:40
>>599
取得の仕方はどこもおかしくありません
これで取れないとなると…
Locale とかに依存したりするのでしょうかねぇ

とりあえず Calendar の中身が PM な時間であるのは確かでしょうか?
603デフォルトの名無しさん:2005/04/20(水) 10:05:24
ジャバのプログラムをプロンプトで開いてみたんですが
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
KohoTspSource.java:235: クラス KohoTsp は public であり、ファイル KohoTsp.java
で宣言しなければなりません。
public class KohoTsp extends Applet
^
注: KohoTspSource.java は推奨されない API を使用またはオーバーライドしています。

注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてくだ
さい。
エラー 1 個
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

こんなエラーが出ちゃったんですがどうしたら実行できるんですか?
初心者な質問でごめんなさい
604599:2005/04/20(水) 10:09:20
>>602
ご返答ありがとうございます

16時とかに実行すると、4:XX:XXって出るんですよ
で、4時に実行すると、4:++:++ って出ます

他に時刻の取得方法ってないですか?
605デフォルトの名無しさん:2005/04/20(水) 10:34:32
>>604
SimpleDateFormat format = (SimpleDateFormat)SimpleDateFormat.getInstance();
format.applyPattern( "HH:mm:ss" );

Calendar cal = Calendar.getInstance();
cal.setTime( format.parse( "20:30:12" ) );

System.out.println( cal.get( Calendar.HOUR_OF_DAY ) );

これで試してみ
606デフォルトの名無しさん:2005/04/20(水) 10:40:06
>>603
それはクラス名(KohoTsp)とファイル名(KohoTspSource.java)で矛盾が発生しているからです
ファイル名が「クラス名.java」となるようにしてください

また、「注」となってる内容は Warning です
放置しても実行はできますが出ないようにするのがベターです
そこに書いてあるようにコンパイルオプションを設定すれば詳細情報が出ますので、
修正してみてください
607604:2005/04/20(水) 11:16:29
>>605
どうもありがとうございます
ちょっとためしてみます
608600:2005/04/20(水) 16:45:47
>>601
ありがとうございました
609デフォルトの名無しさん:2005/04/20(水) 16:53:07
http://java.sun.com/docs/books/jls/
JLS 3rd のPDF版が出てるね。
610デフォルトの名無しさん:2005/04/20(水) 20:13:30
コンパイルエラーが多すぎて…困ってます。
自己責任とわかってますが、力を貸してもらえないでしょうか?

http://www.geocities.jp/de991a/

お願いします。
611デフォルトの名無しさん:2005/04/20(水) 20:17:15
>610
マルチポストはご遠慮下さい。
612デフォルトの名無しさん:2005/04/20(水) 20:26:40
>>600
サーブレットまたは JSP がデータを送信途中に TCP/IP レベルで
切断されたときに発生する。大抵は画面の表示途中で戻るボタンを
押したとか、読み込みキャンセルボタンを押したとか、画面が表示し
切れてない状態で次の画面へ行くボタンやリンクを押した場合。
だからサーバ側ではエラーに見えるがクライアントとしては正常動作。

DB にエラーメッセージが入ってないのは知らん。そういう作りなんだろ。
613610:2005/04/20(水) 20:28:25
>>611
すいません…

スレ違いと注意を受けてしまい、
こちらに同じ文章を載せてしまいました…
申し訳ないです。
614デフォルトの名無しさん:2005/04/20(水) 20:37:59
>>613
エラーの起きた行番号と原因が出てるんだからまずそれをひとつづつ調べて潰せ。
メッセージをそのまま google で検索すれば大抵どこかに載ってる

あの量のコードがかけてコンパイルエラーがひとつも分からないなら宿題の丸写し
だろ、あきらめて回線切って首吊って留年せれ。
615デフォルトの名無しさん:2005/04/20(水) 21:01:07
お知恵を貸してください。

フレームワークはwebwork、seasar、hibernateを使っています。
テーブルの更新処理で、JTAで以下のようなことがしたいのです。

1.セッションを取得
2.トランザクション開始
<ここから該当データ分ループ>
3.該当データの検索
4.該当データの更新
<ここまでループ>
5.コミット(トランザクション終了)

今の状態は、セッションのコネクションのautoCommitをfalseにしていて、
確かに更新する(session.update)ときはコミットされないのですが、
次の行を検索しにいく(session.find)ところでコミットされてしまいます。

セッションが新しいセッションを作ろうとしているのでしょうか?

何か良い手がかりを掴ませてください。
よろしくおねがいします。
616デフォルトの名無しさん:2005/04/20(水) 21:55:37
コマンドライン引数で受け取った文字列(半角・全角の英数字、カタカナ)
を全角⇒半角、半角⇒全角に変換して表示する。

というプログラムを作りたいのですが、

・半角文字列の配列
・全角文字列の配列

を用意して、
入力されたのが全角なら半角文字列の配列にアクセスして、
それに対応した半角文字を出力、
半角文字を入力されたならその逆で、

とやっていくのかな、と思ったんですが、
実際どのようなやり方をすればいいのでしょうか?
こんなやり方がある、というものがあれば是非教えていただけないでしょうか?
何かヒントだけでもお願いいたします。
よろしくおねがいします。
617デフォルトの名無しさん:2005/04/20(水) 21:57:27
>>610
宿題?
618デフォルトの名無しさん:2005/04/20(水) 22:04:35
>616
やっつけで変換クラス作ったときはほぼ似たような理屈でやった。
配列でなくて元文字がキー、変換後文字が値のHashMap使った程度だな、違いは。
達人な方もうちょっとエレガントな解をキヴォンヌ。

// そもそも「半角」と「全角」って何を指して言ってるんだ? というラディカルな論議は勘弁。
619デフォルトの名無しさん:2005/04/20(水) 22:20:17
英数字であれば、charに対して一定量の値を増減してやれば半角←→全角の変換はできるけど
カナの場合はそもそも濁点・半濁点の処理があるから
(「パ」は「パ 」ではなく「パ」にしなければならない、逆も同じ)
ロジックで何とかするしかないよね。
620デフォルトの名無しさん:2005/04/20(水) 22:32:10
>>613
確かにエラーはたくさん出たが、これ全部分からないのか?
せめて「この部分がよくわかりません」とかないの?

宿題スレにもあったので、ほんとに宿題なのなら、「実は宿題なんです」って
宿題スレではっきり言ってしまえばいいんじゃない?

宿題じゃないなら、ここで「どこが分からないのか」ちゃんと書いて質問することだね。
621デフォルトの名無しさん:2005/04/20(水) 22:46:53
>>604
Calendar.HOURなら、AM/PMの時間が取れる(16時だと4が返る)けど、
Calendar.HOUR_OF_DAYならば16が取れるはずだぞ。

public static final int HOUR
Field number for get and set indicating the hour of the morning or afternoon. HOUR is used for the 12-hour clock (0 - 11). Noon and midnight are represented by 0, not by 12. E.g., at 10:04:15.250 PM the HOUR is 10.

public static final int HOUR_OF_DAY
Field number for get and set indicating the hour of the day. HOUR_OF_DAY is used for the 24-hour clock. E.g., at 10:04:15.250 PM the HOUR_OF_DAY is 22.
622デフォルトの名無しさん:2005/04/20(水) 23:07:26
>>615
とりあえずSession#findの直前でSession#flushが呼ばれる仕様なのは了解?
でflushされたデータはホントにコミットされてるか(ロールバックできない、
隔離レベルが2以上の別のトランザクションから読めないなど)確認した?
623デフォルトの名無しさん:2005/04/20(水) 23:31:24
>>622
ありがとうございます。
session.findの前にflushされる仕様なんですね。勉強になりました。
flushされたデータがコミットされているのは確認済みです。
こういうのを回避するには、どうしたら良いのでしょうか。
S2hibernateを使用しているのですが。。
624デフォルトの名無しさん:2005/04/21(木) 00:29:50
>>618 エレガントというより他力本願って感じだけどICU4J. たとえば
http://www-950.ibm.com/software/globalization/icu/demo/transform
のデモでsource1をfullwidthにtarget1をhalfwidthにして
「アガザダナABCDabcd」を入れると
「アガザダナABCDabcd」が出力される。
625デフォルトの名無しさん:2005/04/21(木) 01:29:33
>621
何を分かりきった事を。APIリファレンスなんて真っ先に確認するだろ。
16が取れるはずなのに4が返るから質問したんだろ?

とりあえず>605の結果待ちだろ。
どっか別の場所にコーディングミスがあるんだろうが、環境の問題の可能性もある。
626デフォルトの名無しさん:2005/04/21(木) 07:17:54
InputStreamがよくわからない、、、
たとえばInputStreamの中身を
while (true) {
int c = stream.read();
if (c == -1) { stream.close(); break; }
System.out.print((char)c);
}
ではなく、String型で読み込みたい場合はどうすればよろしいでしょうか?
627デフォルトの名無しさん:2005/04/21(木) 07:45:31
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = br.readLine();
628626:2005/04/21(木) 08:00:14
>>627
返事ありがとうございます;
ProcessBuilder builder = new ProcessBuilder("ypcat", "passwd");
Process process = builder.start();
InputStream stream = process.getInputStream();
InputStreamReader is = new InputStreamReader(stream);
BufferedReader br = new BufferedReader(is);
String line = br.readLine();
System.out.println(line);
で試して見ましたが、一行目しか表示できなくて、
二行目はnullになってしまいました。。。
629626:2005/04/21(木) 08:12:58
>>628
すみません自己解決しました。
630デフォルトの名無しさん:2005/04/21(木) 09:19:05
javaのファイル関連で質問です。
ファイルやディレクトリーが更新されたら、
それを通知するAPIってありますか?
WinAPIで言う所のFindFirstChangeNotificationみたいなやつです。
過去ログにも無い様なので、お願いします。
631デフォルトの名無しさん:2005/04/21(木) 10:34:09
現在jsp、servletを使ってWebアプリを作っています。
ボタンを押すとDBに接続して表を動的に生成するページがあるのですが、
ためしに3つ窓を開いて3つ同時にボタンを押してみると一つの窓で以下のような
エラーがでました。

Root cause:
java.util.ConcurrentModificationException

このエラーを自分で調べてみるとスレッドの同期が取れていないときに発生
するようです。やはり同時にボタンを押したのが原因のようです。
ここで調べてみたのですがデーターベースコネクト周りのConnection、
Statement、ResultSetは全てメソッドの中で定義しています。
ですが取り出した値をjspに返す部分で以下のような記述をしていました。
public class sampleClass{

private String pk;
public String getPk(){return pk;}
public void setPk(String pk){this.pk = pk;}

}
ここで変数pkはクラス変数ですがこれを同時に使おうとしているのが
原因なのではと思っています。
こういう記述をしている場合上のようなエラーは出るのでしょうか?
また、この記述が原因ならどのように書けばエラーが
でなくなるのでしょうか?
ご教授おねがいします。
632デフォルトの名無しさん:2005/04/21(木) 10:37:39
>>615
>1.セッションを取得
>2.トランザクション開始

順序が逆だと思うんだが。

>5.コミット(トランザクション終了)

5.セッションのクローズ
6.コミット(トランザクション終了)

じゃね?

>今の状態は、セッションのコネクションのautoCommitをfalseにしていて、

JTA管理のコネクションだとsetAutoCommit()は例外を投げる。
633デフォルトの名無しさん:2005/04/21(木) 10:40:01
DB周りでそれがスローされることは無いと思う

もしかして HttpSession を使ってたりします?
634633:2005/04/21(木) 10:40:47
>>631です
635631:2005/04/21(木) 10:44:32
>>633
ご返答ありがとうございます。
HttpSessionを使っている箇所はありません。
636631:2005/04/21(木) 10:54:31
小出しですいません。
public class sampleClass{

private String pk;
public String getPk(){return pk;}
public void setPk(String pk){this.pk = pk;}

}
はServletとは違うクラスファイルに記述されておりServletでsetPkで
値を格納し、jspで
<jsp:useBean id="result" type="Vector" scope="request"/>
を宣言し、
<%
Iterator i = result.iterator();
while(i.hasNext()){
sampleClass sampleClass = (sampleClass)i.next();
if(sampleClass.getPk() != null){
%>
<%= sampleClass.getPk() %>
<%
}
%>
で取り出して表示しています。
以上です。
637633:2005/04/21(木) 11:06:11
見返すとものすごい言葉足らずだ orz

ConcurrentModificationException ですが、マルチスレッドに対応していない
オブジェクトが、複数スレッドから変更を受けた時に投げられる Exception です
自動的に検出されるものではなく、オブジェクト自身が「そんな操作無理デス!」と
意図的に投げられるエラーです
ConcurrentModificationException が発生するよくある事例としては、非同期なコレクションに
対する複数スレッドからの操作があります
複数窓からの同時操作は同じ Session を見る場合があるのでアヤシイと判断したのですが、違ったようで…
638デフォルトの名無しさん:2005/04/21(木) 11:09:34
っと、追加情報が

"result" で定義されている Vector が一番アヤシイです
Iterator を使用している間に元のコレクションに変更がかかると、件の Exception が発生します
Vector はどこで宣言されてます?
Servlet のフィールドになってたりしませんか?
639631:2005/04/21(木) 11:26:01
他のファイルsampleClass2で
Vector result = new Vector();
public Vector getResult(){return result;}
が定義されてましてサーブレットで
sampleClass.setPk("値");
sampleClass2.getResult().add(sampleClass);
request.setAttribute("result",sampleClass2.getResult());
としています。
getResult()をシンクロナイズ宣言すればいいんでしょうか?
640デフォルトの名無しさん:2005/04/21(木) 11:37:59
>>639
そんなとこsynchronizeにしても意味がない。
Vectorがどこかで操作されている間
別のところで操作されないようにしないといけないんだから
やるとしたら
synchronized(result) {
  Iterator i = result.iterator();
 &nbps;while(i.hasNext()) {
    中略
  }
}
641631:2005/04/21(木) 11:49:14
スゲー!!! 本当にエラーでなくなりました!!!
ありがとうございまする〜 m(_ _)m ドコドコド
synchronized使うと先に操作している人がいたら
次の人は待つことになりますがそれはしょうがないんですよね?
エラーでるよりはましということですよね
642631:2005/04/21(木) 11:59:48
ありがとうございました or2
643デフォルトの名無しさん:2005/04/21(木) 12:04:42
エラー出るよりマシというかそもそも
複数スレッドで同時に操作したら普通は結果がおかしくなるだろ。
時そばみたいなもんで、途中で邪魔が入るとわけがわからなくなる。
IteratorをとるときにVectorのコピーを作れば別だがな。
644631:2005/04/21(木) 12:10:50
あなたは神ですm(_ _)m
645デフォルトの名無しさん:2005/04/21(木) 12:15:25
つーか、それマルチスレッドでの基本だから
646631:2005/04/21(木) 12:17:55
申し訳ありません神様m(_ _)m
お怒りをお静めください
ありがとうございます
647桜木:2005/04/21(木) 12:19:12
超恐縮ですが、ディレクトリってどうやって作るんですか?

学校の教材で、「ホームディレクトリに Java というディレクトリを
作成して下さい.この講義で作るプログラムは,全て Java
ディレクトリの下のどこかに入れることになります.
Java ディレクトリの下に Hello というディレクトリを作成して下さい.」

と書いてあるのですが、その時点で行き詰ってます。ついでにpath変数の
更新方法についても分かりません。
http://www.wikiroom.com/java/?path,classpath を見てやってみましたが
うまくいかないです。根ほり葉ほり教えてくださる方、お願いします。
648デフォルトの名無しさん:2005/04/21(木) 12:21:36
>>647
そのレベルだと講師に直接聞いた方がいいよ
君の場合これからもいろいろ聞くことになりそうだしね。
649桜木:2005/04/21(木) 12:41:45
>>648
やっぱその方がいいですかねぇ。
一番怖いのが講師に呆れられることなので・・。
650デフォルトの名無しさん:2005/04/21(木) 12:44:09
それってディレクトリの作り方習った後でしょ?
そうでないなら聞いても問題ないだろう
651604:2005/04/21(木) 16:17:20
>>605
昨日の話ですが、ありがとうございました。
確実に、24時間表記になりました。
652604:2005/04/21(木) 16:22:39
>>621
>>625

お手数お掛けいたしました。
どうもjavaのバージョンが古い部分もあり、HOURでも
16時と帰ってきていたので、どうしたもんかと思っていましたが、
Simpledateformat 宣言によって、何度実行しても
24時間表記になりました。 本当にお手数お掛けいたしました。
653デフォルトの名無しさん:2005/04/21(木) 16:26:01
>>651
なぜよくなったのか書いてもらわないと

よく自己解決しましたとかいうのみるが、あれはふざけてるな
654604:2005/04/21(木) 16:30:44
>>653
すみません なぜという具体的な理由が定かではないです

JAVA のSDKを一度削除して、新しいのを入れ直したというのと、
SimpleDateFormat("H");
String Shour = format(date);

と、取得のフォーマットを変更して表記したら、何度
実行しても16時と取得できた模様です。
655デフォルトの名無しさん:2005/04/21(木) 16:31:58
そのふるいSDKのバージョンは?
656604:2005/04/21(木) 16:34:09
1.4.1X くらいだったと思います
657デフォルトの名無しさん:2005/04/21(木) 16:44:11
1.4系でそんなバグあったっけ?
つーかCalendar実装当初からそんな挙動は無かったかと
658デフォルトの名無しさん:2005/04/21(木) 16:56:11
XMLEncoderを使ってクラスを保存するとき、そのクラスに画像データを持たせて、
それを含めて保存する簡単な方法がありましたら教えてください。

お願いします。
659デフォルトの名無しさん:2005/04/21(木) 17:30:48
>>658
普通にバイナリで
660桜木:2005/04/21(木) 19:49:59
>>650
>それってディレクトリの作り方習った後でしょ?

違うんです(泣)ディレクトリの作り方すら習っていないので
(恐らくディレクトリは作れて当たり前みたいな感じだと思います)
鼻から理解できてない状態なんですorz

661デフォルトの名無しさん:2005/04/21(木) 20:14:32
>>647
聞きたいのは
「Javaでディレクトリを作る方法」なのか
「OS(Unix?)でディレクトリを作る方法」なのかどっちなの?
後者ならスレ違いなんだけど。
662デフォルトの名無しさん:2005/04/21(木) 20:30:48
Runtime#execで起動したコマンドのプロセスを
killしたいんですけど。。。。
ちなみに、コマンドはWAS上のアプリケーションから起動してます。
663デフォルトの名無しさん:2005/04/21(木) 20:59:23
Process#destroy()
664デフォルトの名無しさん:2005/04/21(木) 21:25:23
>>650
Windowsなら「ファイル」「新規作成」「ファルダー」で
JAVAのデイレクトリを作成します。
Unix等の場合にはまた聞いてください。
665デフォルトの名無しさん:2005/04/21(木) 21:29:32
>630
あんたは俺ですかw
同じ事考えて1.4のAPIドキュメントのioとnio周りをつらつら眺めてみたがそれらしいのはなかったっす。
スレッド回して適度にsleepしながらディレクトリを見に行くか、
JNIでAPIラップして叩くか、だと思うとです……
666デフォルトの名無しさん:2005/04/21(木) 21:30:58
>>663
solarisの場合は、Process#destroy()できないって書いてあったんで・・・。
てゆか、よく考えたらスレ違いだ!!(-□-)
すんません、UNIXスレにいってきます・・・
667630:2005/04/21(木) 22:11:41
>>665
そっか〜、やっぱりそれしかないか〜。
俺はSleepしながらディレクトリー見に行くことにします(´Д⊂グスン
668デフォルトの名無しさん:2005/04/21(木) 22:26:25
ttp://rstar.hp.infoseek.co.jp/java/sec1/janken.html
ここに、次のようなプログラムがありました。
public class Janken {
public static void main(String[] args) {
int me = Integer.parseInt(args[0]);
//0は[グー],1は[チョキ],2は[パー]
int enemy = (int)(Math.random() * 3);
int judge = Math.abs(enemy - me) % 3;
if (judge == 1)
System.out.println("勝ち!");
if (judge == 2)
System.out.println("負け!");
if (judge == 0)
System.out.println("あいこ!");
}
}
ず〜と、考えているんですが意味がわかりません。
enemyとmeの差を3で割った余りで、勝ち負けの判定はできないと思うんです。
わかるかた説明おねがいします。
669デフォルトの名無しさん:2005/04/21(木) 23:10:28
>>668
どうせ9パターンしかないんだから全部洗い出して考えてみたらいいじゃん。
670デフォルトの名無しさん:2005/04/21(木) 23:19:27 BE:59775427-
剰余算をしているのは、変な数を入れられたときの為(ここでは3以上の値)。
差を求めているのは、
三角形を作ってみると分かりやすいよ。
671デフォルトの名無しさん:2005/04/21(木) 23:30:34
…できなさそうな気がする。
相手がグー(0)、こっちがパー(2)でフラグが2になり、負けになってしまうのでは。
672デフォルトの名無しさん:2005/04/21(木) 23:31:06
どちらにせよ、まちがってないか?これ
1-2 と 2-1 が同じ結果になっちゃダメでしょ
673デフォルトの名無しさん:2005/04/21(木) 23:35:35 BE:51235362-
間違ってないよ。
何故ならば、誰が勝ったか負けたかは表記されてないから。
674デフォルトの名無しさん:2005/04/21(木) 23:54:52
な、なるほど。
つまり更にこの後、正しく動作するように(メッセージ含めて)直せ、という問題なのか。
675デフォルトの名無しさん:2005/04/22(金) 00:58:57
見事な詐欺コードだ
676658:2005/04/22(金) 01:17:04
>>659
バイト配列でやってみたんですが、そうすると生成されるファイルが、以下のようになります。
<void property="ddd">
<array class="byte" length="3072">
<void index="0">
<byte>-1</byte>
</void>
<void index="1">
<byte>-1</byte>
</void>
<void index="2">
<byte>-1</byte>
...以下ずっと続く

これだと、あまりに無駄が多いと思うんですが、ほかに方法があるのでしょうか?
677デフォルトの名無しさん:2005/04/22(金) 01:19:27
ある
678デフォルトの名無しさん:2005/04/22(金) 01:22:23
目的がシリアライズならXMLEncoderやめたほうがええ
アレは便利だが、データの互換性を最重要課題にして
速度やサイズは二の次というのが目的だからね
679デフォルトの名無しさん:2005/04/22(金) 04:20:03
j2sdk-1_4_2_08-windows-i586-p.exe
をダウンロードしてインストールしたんだけど、binフォルダにjavacが無くてコンパイルできなくて困ってます。
ダウンロードするファイルが間違ってますか?
これからjavaをやろうとしてる初心者なので何か勘違いしてるのかもしれません。
680679:2005/04/22(金) 04:29:32
j2sdk-1_4_2_08-windows-i586-p-iftw.exeの方をDLしたら上手くいきました。
681デフォルトの名無しさん:2005/04/22(金) 04:30:16
ファイルはあってる
ダウンロード・インストールをやり直してもダメ?
あとは、ネットワークインストール版でやってみるか、1.5を入れるか…
682デフォルトの名無しさん:2005/04/22(金) 08:58:10
swingに関して質問なんですが、
JFrameを継承したクラスが持つボタン等を押されたときに、
そのJFrameを閉じたいのですが、閉じるメソッドが見つかりません。
JFrameの右上にある閉じるボタン(Xボタン)をクリックする以外に
閉じる方法ってありますか?
683デフォルトの名無しさん:2005/04/22(金) 09:35:23
ttp://www5c.biglobe.ne.jp/~ecb/java/02_10_02.html

この問題の解答なんですが、
アルファベットの文字列を入力したり、文字を何も入力しなかった場合でも
「小さい」と表示されます。
問題文の通り、「それ以外が入力されたらもう一度入力させる」動作をしたいのですが
どうすれば良いんでしょうか?

よろしくお願いします。
684デフォルトの名無しさん:2005/04/22(金) 09:37:56
>>683 parseIntが例外を投げたときに、メソッドが0を返すのが問題。
685デフォルトの名無しさん:2005/04/22(金) 09:47:48
>>684
「例外を投げたとき」ってのは「例外が起こったとき」って意味でいいんですよね?

ありがとうございます、もう一度色々いじってみます。
686デフォルトの名無しさん:2005/04/22(金) 09:57:37
>>682
API を見ただけだけれども、dispose() か イベントを処理させたりじゃないかな?
687683=685:2005/04/22(金) 09:59:45
事後報告。

> return 10000;

例外発生時に、五桁の数を返すように修正したらあっさり直りました。
ありがとうございました。
688682:2005/04/22(金) 10:35:30
その方法だと、何故かボタンを2回クリックしないと終了しません・・・
理由はまったく謎ですがw
以下にソースを少し載せます

jButtonOK.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent e) {
      OptionDialog.this.dispose();//OptionDialogはこのクラス名です。
   }
});
689686:2005/04/22(金) 10:44:45
GUI 作ったことが無いから、このやり方が普通なのかはわからないけど

public void actionPerformed(ActionEvent e) {
  if(e.getActionCommand().equals("<適当なコマンド>")){
    this.processWindowEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
  }
}
690デフォルトの名無しさん:2005/04/22(金) 10:49:56
補足
JFrame に ActionListener を implements してあります
(this はJFrame 自身)
691デフォルトの名無しさん:2005/04/22(金) 10:51:12
JVM 同時実行可能なスレッド数の最大値は
どこで設定されていますでしょうかにょんころりん?
OSの何かの設定値に依存とかでしょうかにょんころりん?
692682:2005/04/22(金) 10:59:43
>>689
その方法でもボタンを2回クリックしないとウィンドウが閉じないです(´Д⊂グスン
693桜木:2005/04/22(金) 11:01:49
>>664
ありがとうございます。早速やってみます。

コマンドプロンプトに書き込んでいく前にすることは
ディレクトリを作る→path変数を更新する(どうやるんかは
分からないですが)でいいですか?
694デフォルトの名無しさん:2005/04/22(金) 12:15:47
なぜ
setVisible(false)
がでてこない?
695686:2005/04/22(金) 12:17:47
>>692
試しにイベント処理で System.exit(0) を実行するようにして、それでも2回クリックの必要があるなら
クリックの処理がおかしいんじゃないかい?
デバッガやログ埋めで処理を追ってみたほうがいい気がする

現象に見当がつかなくてスマン
696デフォルトの名無しさん:2005/04/22(金) 12:19:58
>>694
あぁ、たしかに…
ずっとアプリの終了方法だと思い込んでた
ソースに Dialog って書いてあらぁ orz
697デフォルトの名無しさん:2005/04/22(金) 12:27:32
和暦変換って皆さんどうやってます?
前のプロジェクトでは知り合いが自作してたAPI使ってたんですが・・・。
フリーでも使えるようなAPIはあるんでしょうか。
698デフォルトの名無しさん:2005/04/22(金) 12:35:09
和暦を使わないように提案しちゃうので・・・
お役所や保険関係はダメなんだろうけどな
699デフォルトの名無しさん:2005/04/22(金) 12:44:40
>>693
>コマンドプロンプトに書き込んでいく前にすることは
この意味がわからないのですが。

「フォルダー」と「デイレクトリ」は同じ意味です。

pathはマイコンピュータを右クリックして「プロパテイ」をクリックしますと、
「システムのプロパテイ」ダイアログが表示されますので、「詳細設定」タブを
クリックします。下方に「環境変数」ボタンがあります。
それをクリックして変数の「path」を編集します。

本屋さんで頭がクラクラするくらい立ち読みをしていると必要な情報が
書かれている本を見つけることができます。
頑張ってください。
700682:2005/04/22(金) 13:09:35
>>694
setVisible(false)でも2回クリックしないと、ウィンドウが閉じれないです
>>695
System.exit(0)は一回のクリックで終了しました。

これはJFrameクラスを継承したクラスから呼び出されます。
アプリケーションのオプション設定画面です。
下にソースを端折って載せます、
よろしくお願いします。

public class OptionDialog extends JDialog {
   private javax.swing.JPanel jContentPane = null;
   private JButton jButtonOK = null;

   // @param owner このクラスを呼び出すJFrame
   // @param modal
   public OptionDialog(Frame owner , boolean modal) throws HeadlessException{
      super(owner,modal);
      initialize();
   }

   //起動処理
   private void initialize() {
      this.setResizable(false);
      this.setTitle("Option");
      this.setSize(300,200);
      this.setContentPane(getJContentPane());
      this.setVisible(true);
   }
701682:2005/04/22(金) 13:10:01
   //パネルの取得
   private javax.swing.JPanel getJContentPane() {
      if(jContentPane == null) {
         jContentPane = new javax.swing.JPanel();
         jContentPane.setLayout(null);
         jContentPane.add(getJButtonOK(), null);
      }
      return jContentPane;
   }

   //ボタンの取得及びイベント
   private JButton getJButtonOK() {
      if (jButtonOK == null) {
         jButtonOK = new JButton();
         jButtonOK.setBounds(27, 121, 92, 33);
         jButtonOK.setText("OK");
         jButtonOK.addActionListener(new java.awt.event.ActionListener() {   
            public void actionPerformed(java.awt.event.ActionEvent e) {
                                 //問題の場所
                                 } 
         
         });
      }
      return jButtonOK;
   }
}
702デフォルトの名無しさん:2005/04/22(金) 13:19:38
//問題の場所
ってあるけど、無名クラスからダイアログのメソッド呼べてるの?
単に俺が無知なだけなのだが、どういう実装しているのか教えてくれないか
703682:2005/04/22(金) 13:33:41
>>702
これで呼べるよ

クラス名.this.メソッド名
OptionDialog.this.メソッド名


OptionDialog.this.dispose();
704デフォルトの名無しさん:2005/04/22(金) 13:53:10
>>703
ありがとう

で、上のをそのまま動かしてしてみたけれど、普通に動作してしまった
そうなると、呼び出し元のほうが原因だろうか…
閉じた瞬間にまた表示しなおしてるとか?
705682:2005/04/22(金) 14:02:30
>>704
そうみたいです( >Д<;)

OptionDialog opton = new OptionDialog(MainFrame.this,true);
opton.show();//これが再表示してたみたいです

解決しました、みなさんありがとう!!
706デフォルトの名無しさん:2005/04/22(金) 14:28:48
わろた
あとshowとかcloseよりsetVisible推奨ね
J2SE5ではshowとかはおこられるから
707デフォルトの名無しさん:2005/04/22(金) 14:30:47
あとは親のWindowクラスがなんなのかわからないときは
SwingUtilities使うといい

貼り付けられている先がなにかわからないってのはよくあることだからね
708615:2005/04/22(金) 14:34:32
>>632
仰るとおりです。
トランザクションで全てを括るのでした。
ご指摘ありがとうございます。
709615:2005/04/22(金) 14:40:50
ところで、トランザクションの開始・終了ログは、
log4jのDEBUGレベルでも見られないものなのでしょうか???
710682:2005/04/22(金) 14:40:51
>>706
俺も笑いがでました。
J2SE5の事を意識してやってみようと思います。

>>707
確かに良いメソッド結構ありますね、使ってみます。
情報ありがとうございます。
711デフォルトの名無しさん:2005/04/22(金) 19:48:48
>>698
使わないですむならそれが理想ですが
何せ今度の相手銀行・・・。無理ですね。
とりあえず前のプロジェクトのを流用せざる得ないですね。たぶん。
712デフォルトの名無しさん:2005/04/22(金) 20:05:32
IBMのICU4JにJapaneseCalendarが入ってる。
713デフォルトの名無しさん:2005/04/22(金) 20:12:08
補足。

ICU4Jのカレンダー関係はJava2SE本体のCalendarの母体ともいえる
ものゆえ、クラス継承関係がJava本体のものと別になっている
(本体に存在しない時点でのプロダクトなのだから当然だが)

だから、
java.util.Calendar cal = new com.ibm.icu.util.JapaneseCalendar()
みたいなことはできなくなる。必要な箇所では、ICUの該当クラスで
代用すること。

714デフォルトの名無しさん:2005/04/22(金) 23:19:24
コマンドラインから引数を入力するとして、
入力できる(というか受け取ることが出来る)のを数字だけ
なんて限定した場合、
"1"を受け取ったら"A"とか
"2"を受け取ったら"B"とか
"12"だったら"AB"とかって
出力できるようなメソッドってありますでしょうか?
715デフォルトの名無しさん:2005/04/22(金) 23:37:31
もっともばたくさい実装でも、たった10個の if 文とループで実現可能なのじゃないか?
716デフォルトの名無しさん:2005/04/23(土) 00:07:15
「ばたくさい」とは「(マイナスの意味で)洋風」という意味
717デフォルトの名無しさん:2005/04/23(土) 00:34:57
>>712
おお、ありがたい。早速チェックしてみます。
718デフォルトの名無しさん:2005/04/23(土) 06:01:38
>715
どの辺が「洋風」なんですか?
719デフォルトの名無しさん:2005/04/23(土) 07:20:00
たとえば200という数字を文字の「200」として表したい場合、どうすればいいのでしょうか
72012:2005/04/23(土) 07:26:34
>>719
String str = "200";
int i = 200;
str = String.valueOf(i);
721720:2005/04/23(土) 07:29:21
Ooops.無意味に変な名前を打ってしまった、すまそ。
722719:2005/04/23(土) 08:22:42
ありがとうございます
723デフォルトの名無しさん:2005/04/23(土) 12:45:51
java から外部dllを呼び出すことって出来ますか?

windows 上で動いている Visual Basic と Visual C++ で書かれたソフトを
java で書き直そうという話が出ているんですが、
1.現在利用しているミドルウェアを引き続き利用することになった場合。
2.java で書き換えたが遅いのでその部分だけC++で書き直すことになった場合。
のいづれかの事態が発生した場合は、外部dllを呼ぶことになります。

この先、linux 上で動かせとか言われるかもしれないので、出来るだけ java で
書きたいなあと思ってるんですが、外部dllを利用できないとなると C# か、
VB.net あたりで書けと言われそうなんです。
724デフォルトの名無しさん:2005/04/23(土) 13:02:10
linux上で、windowsのdllをつかうのか?
725デフォルトの名無しさん:2005/04/23(土) 13:55:08
その時は linux 用のライブラリもつくるんでそ?

JNI で調べると吉ですぜ
726デフォルトの名無しさん:2005/04/23(土) 15:51:31
>>723
JNI で DLL を呼び出せます。ANSI C/C++ と条件コンパイル活用して作れば
そのまま Linux に持っていって .so ファイル作って、同じく JNI 経由で呼び出せます。
727デフォルトの名無しさん:2005/04/23(土) 16:24:15
   /⌒ヽ
  / ´_ゝ`)すいません、ちょっとテストしますよ・・・
  |    /
  | /| |
  // | |
 U  .U

®ist('hoge');
728デフォルトの名無しさん:2005/04/23(土) 16:26:13
   /⌒ヽ
  / ´_ゝ`)すいません、もう一回テストしますよ・・・
  |    /
  | /| |
  // | |
 U  .U

&re
729デフォルトの名無しさん:2005/04/23(土) 16:33:06
   /⌒ヽ
  / ´_ゝ`)いや実はですね、perlでチャット書いてたんですよ
  |    / &を[& amp;]に痴漢するか迷ってるんですよ。
  | /| | 痴漢しちゃうとうちのAA房友だちがそういう記号使えなくなっちゃうんですよ。
  // | | しかしプログラムで& regって表示したい時に®ってなっちゃうんですよ
 U  .U 最近裏が白紙のチラシが無くなっているのでちょっと書かせてもらいましたよ。
730デフォルトの名無しさん:2005/04/23(土) 16:35:15
V ´^?u^?`)y―┛~
731デフォルトの名無しさん:2005/04/23(土) 17:05:41
チャットでプログラムの説明をするときに不便って事か?
&を表示したいときは& amp; って打つようにすればいいだろ。
もしくは、発言の先頭に特定のパターンが入ってる場合のみ&を置換しないようにする、とか。
732デフォルトの名無しさん:2005/04/23(土) 17:09:27
&amp;
733デフォルトの名無しさん:2005/04/23(土) 17:09:32
意味わかんね。
& → &amp; の置換対象は静的なテキスト、非置換対象は書き込み内容のような
動的なテキスト、とかいう風に作れんのか。
734デフォルトの名無しさん:2005/04/23(土) 17:22:25
ソース全部こぴぺでのっける時に&をいちいち痴漢すんのがめんどいだろ?
735デフォルトの名無しさん:2005/04/23(土) 17:46:05
つうか完全な板違いだボケ
736デフォルトの名無しさん:2005/04/23(土) 17:50:19
そうだぞヴぉけ
             ─            彡彡彡
           ─       ,,-‐''""""'ノ彡彡彡彡
           ─     /       彡彡彡\
            ─     /        彡彡   ヽ
          ─     /        ::::::       i
        ─      ./        :::::::::::   ┛┗ i
       ─      /  <"\ :::::::::::::::::::   ┓┏ /
         ─    /    ヽ○ ::::::::::::::::::      /
      ─      /     :::::::::/ :::::::::::::     /
        ─    /   ::::::::::::::::/ :::::<"\::::::::  >8
      ─     /   _::::::::::/ ::::.... ヽ○:::::: /
      ─     /    ..| |\::::::::::::::::::::::::::   /
     ─ `)""::`)    :::\ ̄|\::::::::::::::    /
     ─   ;;;⌒`),,⌒) :::.. \ ̄|\:::::::::   /             ウワァァン!!
      ─  ;;⌒`)⌒`  ::::::: \ ̄|:::::::::::  /   .ヽ(;´Д`)ノ ゴメンナサーイ!!
     ``)    ;;⌒`)⌒`)‐ ::::  ̄::::::::::: /       (  ) ←729
        ;⌒`;;),,⌒`)⌒`;;)⌒`);⌒`)⌒`)    ε=/  ヽ
              ;;⌒`)⌒`) ;;;⌒`)⌒`)⌒`)

            」」      」」       」」       」」
        __  |    __  |    __  |    __  |
              |          |          |          |   _|  _|  _|
        ___|    ___|    ___|    ___|
737デフォルトの名無しさん:2005/04/23(土) 18:05:47
>>723
ぶっちゃけ、.NETにしとけ。
738723:2005/04/23(土) 20:12:26
>>724
将来的に linux にするかもという話がでているので、とりあえず java 化だけしておこうかと。

>>725-726
JNI ですか、ちょっと具具って見ただけですが問題なく使えそうな感じですね。
ありがとうございました。

>>737
.net を薦める理由はなんですか?
既存の Visual Basic 6.0 プロジェクトの書き換えなんで、VB.net にするのが一番らくで、
C# がその次に楽だろうことは想像に難くないんですが、それ以外になんか理由があるなら
教えてください。

739デフォルトの名無しさん:2005/04/23(土) 23:56:14
Jakarta log4j-1.2.9 で日時出力を GMT にする方法はありますか?
740デフォルトの名無しさん:2005/04/24(日) 00:19:38
TTCCLayout は?
SimpleDateFormat で実現できるフォーマットなら書き出せそう
741739:2005/04/24(日) 00:49:10
>>740
これで出来ました。ありがとうございました。

<appender name="myAppender" class="org.apache.log4j.ConsoleAppender">
 <param name="Target" value="System.out" />
  <layout class="org.apache.log4j.TTCCLayout">
   <param name="TimeZone" value="GMT" />
   <param name="DateFormat" value="ISO8601" />
 </layout>
</appender>
742デフォルトの名無しさん:2005/04/24(日) 01:52:39
あの、ちょっと前にjreの話が盛り上がってたみたいなんですけど、
JAVAの環境も同時にインストールしてしまうというようなインストーラー付きの
ソフトウェアもいくつかあったりするじゃないですか。それってどうやって作ってるんでしょう?
それか標準的な手法としてはどんなものがありますでしょうか?
ちょっと気になりました。教えてください。
743デフォルトの名無しさん:2005/04/24(日) 01:55:42
OSそれぞれ違うからなんとも。Windowsだったら、Windows Installerとか
NSISとかでぐぐると、他のソフトもひっかかるよ。
744デフォルトの名無しさん:2005/04/24(日) 02:03:39
>>738
.NETだとp/invokeって言ってC#で直接DLLの関数を呼び出せるけど
JavaだとJNIを使ってDLLの関数を呼び出すためのDLLを作る必要がある
どっちにしても構造体が絡むと激しく話がややこしくなるのでめんどくせーって思ったらswigでググれ
745デフォルトの名無しさん:2005/04/24(日) 02:30:02
そしてswingをググってしまう
746デフォルトの名無しさん:2005/04/24(日) 02:37:40
p/invokeでDLL呼び出ししたほうが楽だぞ。やたら複雑な呼び出しさえなければ
DLL呼び出し用のラッパをC#なりで用意するだけでほぼ自由にアクセスできる。
Javaで開発なんて変態開発やめておけ死ぬぞ。
747デフォルトの名無しさん:2005/04/24(日) 03:35:35
swigを使ってもポインタ渡しや関数ポインタが絡むと異常にややこしくなる罠
748デフォルトの名無しさん:2005/04/24(日) 03:38:01
ソフトウェアってなるべくシンプルにしろってよく言われるじゃない?

アルゴリズムなんかは発想の問題なんかもあって実際は結構シンプルにするのは
困難だったりするわけよ。
しかし今回の問題については、シンプルな方法ってのは明らかなわけ。
それを敢えてややこしくしようってのは開発者としてどうよ?

少なくとも>>723の1,2の問題が解決できる目処が立ってから考え直せ。

あと、
> 既存の Visual Basic 6.0 プロジェクトの書き換えなんで、VB.net にするのが一番らく
残念ながら今のままVB6+VCでやっときゃ良かった、と思えるようなオチになる
可能性が少なくない程度には楽ではない。
749デフォルトの名無しさん:2005/04/24(日) 05:08:29
たしかに
見ていると、Javaでのプロジェクト経験がほとんど無さそうだしね
チームの教育から始めないといけない& 生かせる資産・経験なんて
ほとんど活かせない状態で、完遂できる工数を与えられてるとすると、
相当に小さいか潤沢な予算があるか

逆にそんな状態で Java が案として挙がるようなプロジェクトというと…
業務アプリをサーブレット使ったWebアプリに、とか?
750デフォルトの名無しさん:2005/04/24(日) 09:23:39
アスキーコードをchar型に変換するにはどうしたらいいのでしょうか
751桜木:2005/04/24(日) 10:25:31
>>661
「Javaでディレクトリを作る方法」です。
お願いします!!
752デフォルトの名無しさん:2005/04/24(日) 10:38:51
753723:2005/04/24(日) 10:53:51
>>744
swig ですか。さっそくググって見ました。
JNIとの違いがわかりません・・・ora

>>746
変態ですか(@_@)
やぱーり、java で VC の DLL ってよぶアプリって・・・・
あまり聞かないですしね。
基本的には java で書きたいんですよ。
他社製ミドルウェアはたぶん使わなくて済むと思うんですけど、
java じゃやっぱ遅いって話になったときに、部分的に C++ で
書かないといけないかもしれない。その場合はやっぱ外部DLL
にするしかないのかなぁ・・というのが問題なんです。

>>748
748 さんは VB6.0 → VB.net への書き換えの経験が豊富そうですね。
私もシンプルにするために VB+VC なんてコードは捨てて、
java オンリー(もしくは .net)にしたいんです。
>>少なくとも>>723の1,2の問題が解決できる目処が立ってから考え直せ。
私もそうしたほうがいいと思いますが、会社の方針というものにはなかなか
逆らえないわけでございまして、問題の発生する可能性をにらみながら、
java にするか .net にするか決めないといけないんですよ。

.net 移行への苦労話も伺いたいんですが、それはスレ違いと怒られそうなので
やめときます。

>>749
プロジェクトは既存のwinアプリ(VB+VC)をwinアプリ(java+SWTか.net)への書き換えです。
それなのになんで java かというと、将来的に linux で動かそうという話が
でているので、java にしといたほうがその時らくだろうな思いまして。
754デフォルトの名無しさん:2005/04/24(日) 11:09:47
> java じゃやっぱ遅いって話になったときに、部分的に C++ で
>書かないといけないかもしれない。

よほど下手な作り方をしなければ速度が問題になることはないと思う
755デフォルトの名無しさん:2005/04/24(日) 12:47:18
javaを勉強をしててだんだん疑問になってきた・・・
本当にjavaの勉強に時間を使って意味があるのかと・・・
これならCの勉強をやり直した方がいいような・・・
モチベーションが低くなってきました・・・
javaの魅力って、どのOSでも動く以外にありますか?
756デフォルトの名無しさん:2005/04/24(日) 13:07:30
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Dimension.html

誤字を発見しました!

→Dimension クラスは、単一のオブジェクト内のコンポーネントの幅と高さを整数精度でをカプセル化します。

いえ、それだけです。はい、どうも。ではでは。
757デフォルトの名無しさん:2005/04/24(日) 13:09:26
>>755
Javaの開発案件は今後も続くだろうから、やっておいて損はない。
と、うわっつらだけ答えてみる。
758デフォルトの名無しさん:2005/04/24(日) 13:51:12
普通CかC++、JavaかC#、PerlかRubyかPythonの3系統は全部できるべきだろ。
というかできないとプログラマとしてのレベルに達していない。
759デフォルトの名無しさん:2005/04/24(日) 14:06:22
>>758
そういう独断適正はどうだっていい
760デフォルトの名無しさん:2005/04/24(日) 14:17:18
>>758の独断はどうでもいいが
ただ道具として、使えそうなものは何でも使えるべきだと思う。
実現することが命題であってそれをどのような道具を使用して実現するか
本来自由でいいはずだ。だとするとどんな言語も使用できたほうがいい。
761デフォルトの名無しさん:2005/04/24(日) 14:28:22
全部Algol系なんだからどれか一つしかできない方がおかしい。
JavaをやるかCをやるかなんて選択肢はありえない。
JavaをやるかLispをやるか、とかJavaをやるかPrologをやるかならわかるがな。
762デフォルトの名無しさん:2005/04/24(日) 15:22:21
ディレクトリ作成
import java.io.File;

String dirName = "java/sage";
File dir = new File(dirName);
boolean dirExsited = dir.mkdirs();

あとは自分で調べてください。
763デフォルトの名無しさん:2005/04/24(日) 17:09:56
メソッドやクラスにつける修飾子のpublicとstaticの違いがいまいちわかりません。
この2つはどのように違うのですか?

staticはメソッドにつけると、インスタンス化しなくても呼び出せるんですよね?
publicはなんなのでしょうか?
764デフォルトの名無しさん:2005/04/24(日) 17:20:37
>>763
どのクラスからも呼び出せるようになるアクセス修飾子。
765デフォルトの名無しさん:2005/04/24(日) 17:35:59
すいません、質問があります。
今回、この様なコードを書いたのですが・・・・

public static void main(String[] args) {
  new MyFrame();
}

MyFrameは、アプリケーションのフレームでして、このコンストラクタ内で
setVisible(true) もしています。
そして、各種イベントを発生させるコンポーネントも含んでます。
このフレームを操作して、アプリケーションを進めていくのですが、

main メソッド内で、スタート用に上記のコードを書いたのですが、
これだと、アプリケーション処理中に、ある時突然、MyFrame自体が
ガーベジコレクタによって、削除されてしまうという事が
発生するのでしょうか?
766デフォルトの名無しさん:2005/04/24(日) 18:20:43
>>755
http://pc8.2ch.net/test/read.cgi/prog/1111397014/514

C全盛の時代と現在は明らかに開発手法が異なってて、
その辺の事を学ぼうとするとCよかJava知ってた方が、
概念が言語仕様に関わってたり
書籍の数が多かったりで優位性はある、と言えるのではないかなぁ。

> これならCの勉強をやり直した方がいいような・・・
Cくらいは知っとけ。
と今まで言われてきたのと同様に、Javaくらい知っとけ
というのが現在の流れ。
767デフォルトの名無しさん:2005/04/24(日) 18:28:47
>>764
ありがとうございます。
ということは、staticをつけると、同じクラスの中からならインスタンス化しなくても
参照することができ、

public static とすると、どのクラスからもインスタンス化せずに参照できるという解釈でいいのでしょうか?
768デフォルトの名無しさん:2005/04/24(日) 18:35:51
インスタンス化されていないものを参照することは出来ない。
769767:2005/04/24(日) 19:19:44
すいません参照ではなく呼び出しでした
770デフォルトの名無しさん:2005/04/24(日) 19:59:59
>>765
ガベコレはそのような自体が発生しないように作ってあるから心配するな
771デフォルトの名無しさん:2005/04/24(日) 20:05:33
>>770
過信は禁物だぞ。
例えば、Singletonパターンで意図しない解放が起きる例とかが有名。
772デフォルトの名無しさん:2005/04/24(日) 23:13:09
strutsの勉強がをしているのですが困ったのでご教授ください
まずtomcatをhttp://localhost:8080で猫の画像を出ることを確認し
次にstrutsのstruts-blank.warをTOMCATの
webapps直下にlogonExample.warとリネームして置いてTOMCAT
を再起動させたのちhttp://localhost:8080/logonExample
にアクセスすると Hello World が出ると本に書いてあったのですが
説明 The server encountered an internal error () that prevented it from fulfilling this request.

例外
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
原因
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
とでて、うまくいきません。
773デフォルトの名無しさん:2005/04/24(日) 23:15:16
>>772
javacコンパイラを見つけることができません。
com.sun.tools.javac.Mainがクラスパス上にありません。
たぶんJAVA_HOMEがJDKをポイントしていないのでしょう。
774デフォルトの名無しさん:2005/04/25(月) 00:03:53
>>772
環境変数JAVA_HOMEが正しく設定されていないか、
JDK(Java2SDK)ではなく、JREがインストールされているか。
JDKが5.0でTomcat5.5ならJREでも動くけどね。
775デフォルトの名無しさん:2005/04/25(月) 00:26:40
困ったちゃんですいません
C:\>java -version
java version "1.4.2_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-b
Java HotSpot(TM) Client VM (build 1.4.2_07-b05, mixed mode)

とでたので多分PATHはあってるのかとおもっています
TOMCATは5.0です。
776デフォルトの名無しさん:2005/04/25(月) 00:29:21
>775
いいから
C:\ > javac
と打ってみれ。
777776:2005/04/25(月) 00:30:17
うっ、何か激しく意味のないことをカキコしてしまった……
すまぬ>775
778デフォルトの名無しさん:2005/04/25(月) 00:38:02
いや、PATH じゃなく JAVA_HOME の設定ができているかどうかですよ?
779デフォルトの名無しさん:2005/04/25(月) 00:43:07
>>778
WIN2000にて
変数名 JAVA_HOME
変数値 C:\j2sdk1.4.2_07
です。
780デフォルトの名無しさん:2005/04/25(月) 00:49:06
ごめんなさい、今日はもう寝ます
明日TOMCATのインストールあたりからやり直してみようと思います
声を掛けてくださった方々有り難うございました。
781デフォルトの名無しさん:2005/04/25(月) 00:53:43
多分JREはインスコされていてパスも通ってるが
%JAVA_HOME%\binにパスが通っていない
782デフォルトの名無しさん:2005/04/25(月) 00:55:39
行儀悪いけど、tools.jarをcommon/libに入れちまえ
783デフォルトの名無しさん:2005/04/25(月) 00:55:58
>>770
JAVA PRESSの41号見てみたらたぶん今の考え変わると思うよ。立ち読みで
チラッと読んでみ。
>>780
徹夜してやらないやつには二度と教えてもらえないと思ったほうがいいぞ
784デフォルトの名無しさん:2005/04/25(月) 04:29:45
>>>744
>swig ですか。さっそくググって見ました。
>JNIとの違いがわかりません・・・ora

おいおい頼むよ〜、本当にググってきたのか?

JNI→ネイティブコードをJavaから実行する、あるいはネイティブコードからJavaのクラスを実行するための仕様
swig→C言語/C++のライブラリ等をJava(他多数の言語)から使えるようにするコードを自動生成するツール
785デフォルトの名無しさん:2005/04/25(月) 12:09:34
SwigってJNI使ってるのかな
結局スタックサイズで困りそうな罠
786デフォルトの名無しさん:2005/04/25(月) 12:34:33
>>765
つうか、MyFrame のインスタンスはイベントディスパッチャースレッドが握ってるから
GC の対象にはならんよ

と指摘する奴がいないのはここが派遣のすk(ry
787デフォルトの名無しさん:2005/04/25(月) 12:58:12
Swingで
キャンセルボタンを押すとそのウィンドウをだけを破棄する方法を教えてください・・・
788デフォルトの名無しさん:2005/04/25(月) 13:00:07
GUI 周りは超うるおぼえだが

WindowListener
public void windowClosing(WindowEvent e){
  ((Frame)e.getSource()).dispose();
}
789デフォルトの名無しさん:2005/04/25(月) 13:45:54
>>788
日本語も超うるおぼえだな
790デフォルトの名無しさん:2005/04/25(月) 14:00:54
うるってなんだ
791デフォルトの名無しさん:2005/04/25(月) 14:02:17
>>788
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(jButton_OK)){ //呼び出し元がOKボタン

}else if(e.getSource().equals(jButton_Cancel)){ //呼び出し元がキャンセルボタン
((Frame)e.getSource()).dispose();
}
}
すいません、実行して、ボタンを押してもクローズできませんでした。
僕の他の部分のコーディングが原因かもしれませんが。
792デフォルトの名無しさん:2005/04/25(月) 18:50:13
>>790
ultraの略
793デフォルトの名無しさん:2005/04/25(月) 18:54:29
>>792
お前頭いいな!
794デフォルトの名無しさん:2005/04/25(月) 19:08:17
アプレットビューアではちゃんと動くのにWEBブラウザでとつでん読み込めなくなったんだけど・・・こんなことって普通ないですよね?
あと画像がフルパスでは表示できるのに相対パスでは表示できない(取得できない?)んですけど関係ありますかね?
eclipse使ってます。
795デフォルトの名無しさん:2005/04/25(月) 19:19:18
>>791
そりゃそうだ
((Frame)e.getSource()).dispose(); の e.getSource() は
上の if の条件で判定している通り、Button クラスのオブジェクトなんだから
796デフォルトの名無しさん:2005/04/25(月) 20:18:26
>>795
教えて君で申し訳ないんですが、どういった処理を記述すればいいか教えてもらえますか?
797デフォルトの名無しさん:2005/04/25(月) 20:34:27
つーか、Swingスレとでマルチしてるな
798デフォルトの名無しさん:2005/04/25(月) 22:18:29
昨日の夜は質問したまま先に寝てしまい誠にすいませんでした。
会社で眠くなるのはまずいと思ったのですが考え方甘かったです
ごめんなさい。 問題のほうは何とか会社のPCと見比べながら
何が違うかつぶしていって何とか解決しました。原因はCLASSPASSだったようです。CLASSPATHにこれぶち込んだら解決しました。スレ汚しすいませぬ
%CATALINA_HOME%\common\lib\servlet.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\classes;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\struts.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\commons-beanutils.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\commons-collections.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\commons-digester.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\commons-fileupload.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\commons-logging.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\commons-validator.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\jakarta-oro.jar;
%CATALINA_HOME%\webapps\struts-blank\WEB-INF\lib\struts.jar;
799デフォルトの名無しさん:2005/04/25(月) 22:40:14
>>800
クラスパスが原因。
800デフォルトの名無しさん:2005/04/25(月) 23:04:03
>>799
800 は私ですが、なにか?
801デフォルトの名無しさん:2005/04/25(月) 23:12:57
実際798だったりするわけで。。。
802デフォルトの名無しさん:2005/04/25(月) 23:20:24
javaのシステムプロパティについて教えてください

1、java.version:JAVAのバージョン(1.4.2_07)
2、java.vm.specification.version:JAVA VM仕様のバージョン(1.0)
3、java.vm.version:JAVA VM実装バージョン(1.4.2_07-b05)
4、java.specification:JREの仕様バージョン(1.4)

()内は僕の結果です

一般にjavaのバージョンと言ったら1番だと思うのですが
他にもjavaシステム内にも様々なバージョンがあることを知りました
中二つの理解が曖昧なのですが、2番のVMの仕様を元に
3番のVMが実際にコーディングされているという考えであっていますか?
あと、僕の場合1〜4のベンダは全てサンでしたが他のベンダも有るんでしょうか?

803デフォルトの名無しさん:2005/04/25(月) 23:32:30
>SwigってJNI使ってるのかな

そもそもJNIじゃないと互換性無くて使い物にならない悪寒・・・
804デフォルトの名無しさん:2005/04/25(月) 23:32:39
MSのVMもあったはずだぞ
HotSPOT VMはたしかHPだよな?
805802:2005/04/25(月) 23:43:14
>>804
返事有難うございます
僕(というかデフォルト)は全部サンでした。でもやっぱ他のベンダもあるんですね
じゃあ、プロの方はサンのVMは使いにくいからHPのVMとサンのJREの組み合わせで使う
という人も居るんですかね?
どこでVMの使いやすさを判断するのかは素人の僕にはさっぱり解りませんけどね
806デフォルトの名無しさん:2005/04/25(月) 23:47:02
>>805
sunのJREはバグがある
807802:2005/04/25(月) 23:54:48
>>806
じゃあサンのVMとHPのJREの組み合わせっすか?
808デフォルトの名無しさん:2005/04/26(火) 00:17:17
自分で作ったJavaアプリをJRE同梱で配布する場合

jarファイルと
jre1.5.0_02フォルダをコピーしたものと
start jre1.5.0_02\bin\javaw -jar xxx.jar とか書いたbatファイル

を一まとめにして圧縮して配布すれば、
配布先では展開した後batファイルを実行することで
Javaアプリを起動できるんですよね?

漫画喫茶で試してみたら
Error: loading xxxxxx jvm.dll
って感じのエラーが出てJavaアプリを起動できなかったんですが

どうすればJavaアプリを配布先で起動できるようになりますか?
809デフォルトの名無しさん:2005/04/26(火) 00:28:47
>802
余計混乱させたらすまんがBEAのjrockitってのもある。
これはBEAがWebLogicに同梱してるJRE(VM含む)。WebLogicを特に設定せず使うと、
このランタイムを使うことになる。単体でダウンロードもできるけどね。
良し悪しについてはよーわからん、スマソ。
810デフォルトの名無しさん:2005/04/26(火) 00:35:34
Sunのが結局一番使われていてバグも放置されにくいってのはある
HPのもSunをベースだった気が

1.3のころはIBMのなかなか早かったのだがSunは1.4からがんばり始めたからなぁ
811デフォルトの名無しさん:2005/04/26(火) 00:36:34
jrockit JBOSSに組み込めるよ軽量でいいよ。
812デフォルトの名無しさん:2005/04/26(火) 06:35:07
>>810
>HPのもSunをベースだった気が

てことはいくらSUNのが修正されてもHPが動かんとHPのそれは直らないわけだ。
813デフォルトの名無しさん:2005/04/26(火) 08:39:24
VMは結構Sun以外の実装あるけどJ2SEのライブラリは
大体Sunの使ってるよね.IBMは国際化まわりでSunに
コード出したこともあってかなり自分とこで手を入れ
ているけどGUIはほとんどそのまま.
J2MEだと自分とこで全部実装している企業が多いね.
814デフォルトの名無しさん:2005/04/26(火) 10:14:38
Javaってsprintfはないのです?
815デフォルトの名無しさん:2005/04/26(火) 10:16:45
>>814
ないのです
816age:2005/04/26(火) 10:49:23
817デフォルトの名無しさん:2005/04/26(火) 11:17:18
818デフォルトの名無しさん:2005/04/26(火) 14:06:40
普通に標準APIにあるだろ

String data = String.format("%d + %d = %d"1, 2, 1+2 );
819デフォルトの名無しさん:2005/04/26(火) 14:14:04
補足:1.5 以上が必要
820デフォルトの名無しさん:2005/04/26(火) 14:34:42
5.0な

もう半年以上たってるし、便利で安全なコードが書けるので
移行したほうがよさげ

少なくとも1.4に飛びついたときに比べて安定度は段違いにいい
821デフォルトの名無しさん:2005/04/26(火) 15:29:35
>>820
1.5といった方が開発者っぽい。5.0という奴は利用者。
822デフォルトの名無しさん:2005/04/26(火) 15:32:04
2ch でうるおぼえに突っ込みですか
新社会人の季節ですかそうですか
823デフォルトの名無しさん:2005/04/26(火) 15:38:44
>>822
>>821 は一行目につっこむ事で、それ以降もダメっぽいと言いたいのだろう。

っつか、前スレかどっかでやってなかったっけ?
BugParade の件数出されて終わった奴。
824デフォルトの名無しさん:2005/04/26(火) 18:26:25
InetAddress.getByName(host)で取得するIPアドレスが
DDNSで変更されても変更前のものになってしまいます。
処理しているサーバ上でPingをうってみると、変更後の
アドレスになっているのですが。
Tomcat上で処理する場合どこかにキャッシュされたり
するのでしょうか?
825デフォルトの名無しさん:2005/04/26(火) 18:29:41
>>824
事故レス。キャッシュされるみたいですね。
スレ汚しスマソ。
InetAddress (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/net/InetAddress.html
826824:2005/04/26(火) 20:45:24
すいません、もう一つ質問です。
JAVA_HOME/jre/lib/security
のjava.securityとかのファイルはリードオンリー属性に
なってますが、直接変えてしまってもいいのでしょうか?
それともどこか別のところで設定するものでしょうか?

動的に変更するには
java.security.Security.setProperty("networkaddress.cache.ttl","0");
等のように書くようですが。ファイルの変更方法については
見つかりませんでした。
827デフォルトの名無しさん:2005/04/26(火) 23:02:45
学校の宿題で、困ってます。教えてください。
複数のクラス(JPanel)からなるGUIを作っています。
そのなかで、ボタンがあるButtonPanelと結果をJTextFieldに表示する
ResultPanelは別のクラスになっています。ボタンを押したときのActionListener
をButtonPanelに内部クラスとして書いているのですが、そのボタンを押したときの
アクションの行き先は別のクラスであるResultPanel内のJTextFieldです。
このときはどのようにreferenceをセットしたらよいでしょうか。

actionPerformed(ActionEvent e){
if(e.getSource==buttonA)
responsePanel.textField.setText("button clicked");
}

別のクラスにあるため、上のように出来ませんよね・・・どうしたらいいですか?
よろしくお願いします。
828デフォルトの名無しさん:2005/04/26(火) 23:18:48
>>827
オブジェクトの比較は==じゃなくてequals()メソッド使うべき。

>responsePanel.textField.setText("button clicked");
と同じようにすればいいじゃん。
if( e.getSource.equals( buttonPanel.buttonA ) ) {
829デフォルトの名無しさん:2005/04/26(火) 23:23:04
>>828
べきとか言ってる時点でなぜそうしないといけないのか分かってない予感。
830デフォルトの名無しさん:2005/04/26(火) 23:26:29
おせーて
831デフォルトの名無しさん:2005/04/26(火) 23:45:13
javaのプログラムの実行中にわざと何秒か空き時間が作りたいんですけど
これは
for(int i = 0; i < 5000; i++);
みたいにわざと無駄な処理をさせる方法しかありませんか?
何らかのクラスで処理できたらいいのですが・・・
832デフォルトの名無しさん:2005/04/26(火) 23:52:27
>>831
Thread.Sleep(100);
833828:2005/04/26(火) 23:54:27
気になって組んでみたけど、いちいちButtonPanelとかResultPanelとか登場させる必要があるのか疑わしくなってきた。
Frame使っていいのならFrameで一括管理した方がいいと思った(今回のButtonFrame)。
// Main.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonPanel extends JPanel {
JButton buttonA = new JButton("ボタン");
public ButtonPanel() {
add(buttonA);
}
}
class ResultPanel extends JPanel {
JTextArea textArea = new JTextArea(10, 20);
public ResultPanel() {
add(textArea);
}
}
class ButtonFrame extends JFrame implements ActionListener {
ButtonPanel bPanel;
ResultPanel rPanel;
public ButtonFrame() {
setLayout(new BorderLayout());
bPanel = new ButtonPanel();
rPanel = new ResultPanel();
bPanel.buttonA.addActionListener(this);
getContentPane().add(BorderLayout.NORTH, bPanel);
getContentPane().add(BorderLayout.CENTER, rPanel);
}
public void actionPerformed(ActionEvent ae) {
if( ae.getSource().equals( bPanel.buttonA ) ) {
rPanel.textArea.setText( "button clicked" );
834827:2005/04/26(火) 23:54:51
>>828
responsePanelは直接参照できないみたいです。それに、textFieldはprivate
なので、responsePanel.textField.setText("button clicked"); のようには
出来ないとみたいです。誰か教えてください・・・
835デフォルトの名無しさん:2005/04/26(火) 23:55:22
>>828
e.getSource() で返ってくるのはそのボタンのインスタンスそのものなので==でよい。
836828:2005/04/26(火) 23:56:54
// つづき
}
}
}
public class Main {
public static void main(String[] args) {
ButtonFrame obj = new ButtonFrame();
obj.setSize(300, 300);
obj.setVisible(true);
}

}

>>833にも書いたけどButtonPanelとかResultPanelというクラスの必要性は個人的には感じられません。
Frame内でJPanelを2コnewして、そいつらに対してボタンなりテキストフィールドなりをaddすればいいと思いました。
AWT、Swingは詳しくないので、もっといい案があれば是非。

>>829
FAQでしょ。もう。
837827:2005/04/26(火) 23:57:19
>>828
どうもありがとうございます。JFrameなりJPanelなり、同じクラス内に
ボタンとテキストフィールドがあれば、問題なく出来るんです。
ただ、課題の要件にそれぞれ別のクラスで書くように指示されているので・・・
どうしたもんでしょうか・・・ 
838デフォルトの名無しさん:2005/04/26(火) 23:59:21
>>828はネジがとんでるな
839デフォルトの名無しさん:2005/04/27(水) 00:07:13
>>836
>FAQでしょ。もう。
なのに理解してない。と。
840デフォルトの名無しさん:2005/04/27(水) 00:09:33
笑いの才能がある>>828
841デフォルトの名無しさん:2005/04/27(水) 00:12:24
おせーてと書いた者なのですが。
だれか答えをおせーて。
842827:2005/04/27(水) 00:17:01
Source codeがあったほうがいいと思ったので、以下にコピーします。
ボタンを押すと、テキストフィールドに何回押したか表示されるという
宿題なんですが。(クラスは指定されているのですべてひとつのクラス
で作ることは不可です)
どなたか、よろしくお願いします。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class MySurvey extends JFrame
{
private CenterPanel centerPanel = new CenterPanel();
private QuestionPanel questionPanel = new QuestionPanel();
//private String header = "?? // what' s this for???

public MySurvey(String header)
{
setTitle(header);
Container c = getContentPane();
c.setLayout(new BorderLayout());
c.add(questionPanel, BorderLayout.NORTH);
c.add(centerPanel, BorderLayout.CENTER);

}

};
843827:2005/04/27(水) 00:17:28
import java.awt.*;
import javax.swing.*;

public class CenterPanel extends JPanel
{


private ButtonPanel buttonPanel = new ButtonPanel();
private ResponsePanel responsePanel = new ResponsePanel();


public CenterPanel()
{
setLayout(new BorderLayout());
add(buttonPanel,BorderLayout.CENTER);
add(responsePanel,BorderLayout.EAST);
}
}
844827:2005/04/27(水) 00:17:51
import java.awt.*;
import javax.swing.*;

public class QuestionPanel extends JPanel
{
private JLabel question1 = new JLabel("Please click on your response to There should be ASSIGNMENTS in SCM2311");

public QuestionPanel()
{
add(question1);
}
}
845827:2005/04/27(水) 00:19:39
import java.awt.*;
import javax.swing.*;

public class ResponsePanel extends JPanel
{

private JTextField textField[] = new JTextField[5];

//create array of integers (named counter), and initialize with 0
private int counter[] = {0,0,0,0,0};



public ResponsePanel()
{

setLayout(new GridLayout(5,1));

846827:2005/04/27(水) 00:20:38

for(int i=0;i<textField.length;i++)
{
textField[i] = new JTextField(4);
textField[i].setSize(100,100);
add(textField[i]);
}

}//end constructor

public void incrementCounterValue(int index)
{
counter[index]++;
}

public int getCounterValue(int index)
{
return counter[index];
}

public void reflectResponse(int index)
{
textField[index].setText(Integer.toString(counter[index]));
}

}
847827:2005/04/27(水) 00:24:28
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class ButtonPanel extends JPanel implements ActionListener
{
private JButton[] button = new JButton[5];


public ButtonPanel()
{
setLayout(new GridLayout(5,1));

button[0] = new JButton("Strongly DISAGREE");
button[1] = new JButton("DISAGREE");
button[2] = new JButton("Neither AGREE or DISAGREE");
button[3] = new JButton("AGREE");
button[4] = new JButton("Strongly AGREE");
add(button[0]);add(button[1]);add(button[2]);add(button[3]);add(button[4]);


button[0].addActionListener(this);
button[1].addActionListener(this);
button[2].addActionListener(this);
button[3].addActionListener(this);
button[4].addActionListener(this);

}
848827:2005/04/27(水) 00:24:58
public void actionPerformed(ActionEvent e)
{
if(e.getSource()== button[0])
{
System.out.println("button[0] is pressed");
//responsePanel.incrementCounterValue(0);
//responsePanel.reflectResponse(0); //counter is private...
}

if(e.getSource()== button[1])
{
System.out.println("button[1] is pressed");
//responsePanel.incrementCounterValue(1);
//responsePanel.reflectResponse(1); //counter is private...
}

if(e.getSource()== button[2])
{
System.out.println("button[2] is pressed");
//responsePanel.incrementCounterValue(2);
//responsePanel.reflectResponse(2); //counter is private...
}
849827:2005/04/27(水) 00:25:49
if(e.getSource()== button[3])
{
System.out.println("button[3] is pressed");
//responsePanel.incrementCounterValue(3);
//responsePanel.reflectResponse(3); //counter is private...
}

if(e.getSource()== button[4])
{
System.out.println("button[4] is pressed");
//responsePanel.incrementCounterValue(4);
//responsePanel.reflectResponse(4); //counter is private...
}


}


}
850827:2005/04/27(水) 00:26:40
以上、6つのクラスからなるGUIです。
どなたか、よろしくおねがいします。
851デフォルトの名無しさん:2005/04/27(水) 00:28:35
荒らし?
852827:2005/04/27(水) 00:33:37
いえ、荒しじゃないです。コードがあったほうが、質問の意味が
解ってもらいやすいと思って・・・量がおおくてすみません・・・
853デフォルトの名無しさん:2005/04/27(水) 00:46:10

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

public class ResponsePanel extends JPanel
{

private JTextField textField[] = new JTextField[5];

//create array of integers (named counter), and initialize with 0
private int counter[] = {0,0,0,0,0};



public ResponsePanel()
{

setLayout(new GridLayout(5,1));
854デフォルトの名無しさん:2005/04/27(水) 00:54:26
>>827
★★ Java の宿題ここで答えます part51 ★★
http://pc8.2ch.net/test/read.cgi/tech/1112154540/
855デフォルトの名無しさん:2005/04/27(水) 01:04:06
オブジェクト比較の際は、
Object#equals(Object)メソッド呼び出し時のオーバーヘッドを避けるため、
==演算子を使用した方がよい。

上記の認識は間違っていますか?
回答よろしくお願い致します。
856デフォルトの名無しさん:2005/04/27(水) 01:07:20
>>855
オブジェクトの何を比較したいのか。
同じインスタンスかどうかを調べたいのか?
同じ値を持つかどうかを調べたいのか?
857デフォルトの名無しさん:2005/04/27(水) 01:11:36
equalsと==は違うものだよ。
obj1.equals(obj2) でも obj1 != obj2 である事もある。

オーバーヘッドはどうだろうな。
デバッガで比較したわけじゃないのでわからんが、恐らく==が軽い。
858デフォルトの名無しさん:2005/04/27(水) 01:19:02
恐らくもヘッタクレもなく==が軽いよ。
ただequal()とは用途が違うだろうが
859デフォルトの名無しさん:2005/04/27(水) 01:36:37
いろいろとレスありがとうございます。

ルートクラスであるObjectのObject#equals(Object)と、
==演算子は同じ意味合いですよね。
そのことについての比較の認識です。
860デフォルトの名無しさん:2005/04/27(水) 01:41:21
追記です。

例えば、StringBuffer#equals()と==演算子では比較の対象が違いますよね。
恥ずかしながら、
オーバーライドされて挙動が変わることを忘れておりました。
861デフォルトの名無しさん:2005/04/27(水) 01:42:16
>>859
だから用途が違うってみんないっておろうに
862デフォルトの名無しさん:2005/04/27(水) 01:47:02
しかし、>>827のイベントのコードは正しくて
質問としている意図が伝わっていなくて>>828がへんなの答えたのは神

>>827の質問は他のオブジェクトに対してどうメソッドを呼んだらいいか
ってだけだと思うがそんなの答えは「好きにしろ」としかいえんよな
デザパタ知ってるならオブザーバーパターン使えとしか
863デフォルトの名無しさん:2005/04/27(水) 01:55:06
>>859
==を使うのは、nullとの比較や、たとえば、下のような参照の同一性を
比較するコードでつかう。
それ以外はequalsを使う。あんたが書いているコードはまちがいなく
equalを使うべき。

class MyObject {
static final MyObject MAX = new MyObject();

public MyObject getObject(String msg){
...........
if (someCondition){
return MAX;
}
}

public boolean isMax(MyObject obj){
if (MAX == obj){
// ^^^^^^^^^^^ このように参照自体が同一かを比較する場合だけ使う
return true;
}
return false;
}

864デフォルトの名無しさん:2005/04/27(水) 02:33:15
参照とその他の比較をするのは違うんだが
まさか同じと思ってるヤヴァイ脳みその持ち主じゃないよな?
865デフォルトの名無しさん:2005/04/27(水) 03:07:55
Java始めたばっかりの頃はこの辺の理解が滅茶苦茶だった奴も多いだろ。
一番最初に引っかかる所だろうし、一番躓きやすい場所だと思うぞ。
少なくとも、C言語におけるポインタと同程度にはややっこしい。

String str1 = new String("hoge");
String str2 = new String("hoge");
となってた場合、
str1.equals(str2)  はtrueになる。だが、
(str1 == str2)   はfalseになる。
二番目の比較式の右辺は確かにhogeだ。
だが、str1が示してる"hoge"は一行目で作った奴で、str2のは二行目で作った「別の」hogeだからな。
Javaではこれをインスタンス(実体)が違うって言う。str1とstr2では値は同じだがインスタンスが違う。
ちなみに、intやchar、boolみたいなごく一部の単純な型(プリミティブ型)ではこんな現象は起こらない。

#擬似プリミティブ型関連の突っ込みは質問者を混乱させる恐れがあるためお控え願います
866デフォルトの名無しさん:2005/04/27(水) 06:14:59
すみません、eclipseのantの出力コンソールがms932に文字化けしています。
eclipseのデフォをutf-8にしたのに。
867デフォルトの名無しさん:2005/04/27(水) 07:13:57
同じ家でも住所が違えばそれは別物だ。

山田さんは富山に、もう一人の山田さんは岐阜に、
同じ山田さんだけど似て非なるものだ。

ポインタはそういうものなんだ。
868デフォルトの名無しさん:2005/04/27(水) 08:34:08
「*同じ*家」なら「それは別物だ」はおかしいよな

ポインタを本当に理解してるのか
理解してるつもりなのか知らんけど
少なくとも国語力に問題がありそうだ

わかりにくい比喩は混乱を招く
869デフォルトの名無しさん:2005/04/27(水) 08:45:34
観点によるかと。
870デフォルトの名無しさん:2005/04/27(水) 09:55:51
>>827のコードは参照の同一性のほうだから問題なし

当たり前だがequalsだとおかしい動きをする
871デフォルトの名無しさん:2005/04/27(水) 20:42:38
javaアプレットでなにか作ろうと思い、JAppletを継承して描画を行おうと
したのですが、いくつかサンプルを見て気になったことがあるのです。

repaint();で再描画をするのですが、その際にはJPanelのメソッドである
paintComponent()を呼び出しているのですよね?

JPanelもしくはJPanelを継承して作成したオブジェクトをpanelとすると
panel.repaint();でpanelの再描画が行われると思うのです。

サンプルのなかにはそのように、オブジェクトに対して再描画を要求する
もの以外に、単純にrepaint();とだけしているものがありました。

この場合はオブジェクトを指定していないのですが、
すべてのパネルを再描画する、という意味なのでしょうか?
872デフォルトの名無しさん:2005/04/27(水) 20:52:02
JAppletのrepaintだろ?
873(*′艸`*):2005/04/27(水) 21:03:46
ここって、どれくらいの初心者から教えてもらえるんですか?(..;)
874デフォルトの名無しさん:2005/04/27(水) 21:30:21
>>872
なるほど、JAppletのrepaintメソッドが呼び出されているということなのですね。
でも、そうなるとpaintメソッドが呼び出されることになるのではないでしょうか?

JAppletではrepaint→update→paintの順で実行されていると思っているのですが、
repaint→paintComponentとの違いがいまいちわかりません。

repaint後の動作はどうなっているのでしょうか?
875デフォルトの名無しさん:2005/04/27(水) 21:43:37
>873
とりあえず、
・「PATHが通ってる」という言葉の意味が分かる(分からない場合は一旦PC初心者板へGo)
かつ
・>1のWikiを見ても疑問が解けない
かつ
・宿題で出された課題でない(課題なら宿題スレへGo)
なら聞いてみたら?
876874:2005/04/27(水) 21:45:40
具体的には、例えば下記のソースで
http://www.gifu-nct.ac.jp/elcon/labo/fukunaga/edu/3d/ex_sim/rei52org/rei52.html

class Rei52Panel extends JPanel
のなかにpaintComponentが書かれています。

そしてnew Rei52Panel()でインスタンスを生成し、
public void runの部分でrepaint()しています。

インスタンスとして生成されたパネルのなかにあるpaintComponentメソッド
をrepaint()とするだけで呼び出しているのでしょうか?

panel = new Rei52Panel();
とし、

panel.repaint();

のようにしなくてもよいのでしょうか?
877デフォルトの名無しさん:2005/04/27(水) 21:58:21
つーかJFrameじゃねぇか
878デフォルトの名無しさん:2005/04/27(水) 22:04:31
まぁ、このままでええよ

ゲーム目的なら違うけどな
879874:2005/04/27(水) 22:05:19
>>877
いえ、例として適当なソースを持ってきただけなのですが、
この場合でもインスタンスのメソッドpaintComponentを呼び出すのに
repaint()とするだけで呼び出しているのかどうかがいまいち分からないのです。

hoge.repaint();のように対象とかを指定しなくてよいのでしょうか?
880デフォルトの名無しさん:2005/04/27(水) 22:10:23
だから対象がJFrameになってるんだろ?
GUI以前の問題だ

とりあえずインナークラスとかRunnableとかListenerをトップレベルで分割して書いてミソ
881デフォルトの名無しさん:2005/04/27(水) 22:19:07
>>873
まずは半年ほどROMに徹して把握してみてはどうか
2005/10/27 以降にまたどうぞ
882デフォルトの名無しさん:2005/04/27(水) 22:22:35
サーバーについてこれから学んでいこうとしているのですが、
サーバーの知識として、ASPを学ぶより、JSPを学んだほうが
良いように思えるのですが、詳しい方どうでしょうか?
また、その場合ASPの知識無しでJSPだけマスターすれば
不自由ないのでしょうか?
883デフォルトの名無しさん:2005/04/27(水) 22:32:56
サーバについて学ぶというか、サーバーサイドプログラミングについて学ぶということだよね?
プログラミングはできるけどサーバーサイドは初めてってことかな。それともプログラミング
自体もまだこれから?

正直言ってASPかJSPかなんていうのは些細なことで、最初に学ぶのはどっちでもいい。
片方学んだらもう一方も楽にできるような学び方をすることが重要。どっちにしても5年か
そこらで役に立たなくなる技術なんだから広い視野で学ぶこと。これだね。
884デフォルトの名無しさん:2005/04/27(水) 22:35:25
Java系のほうがフリーで環境構築しやすい。
学習はやっぱり動かしながらじゃなきゃだめだからな
885874:2005/04/27(水) 23:34:52
>>880
少しためしてみたのですが、アニメーションせずに(repaintをしない)
でみるとJPanelの生成時?なのかアプレットの開始時なのかよくわかりませんが
とりあえず1回はpaintComponentが呼ばれて描画がされました。

アプレット(もしくはフレーム)の上にパネルを配置して、
そのパネルが仮にpanelだとしたら、panel.repaint()としても
単純にrepaint()としても動作は同じでした。

見た目は同じですが、内部の流れというか処理の順序がどうなっているのか
調べているのですがなかなか分かりません。

アプレット(もしくはフレーム)に対してrepaintするのと、
パネルに対してrepaintするのではなにが異なっているのでしょうか?

単純にrepaintだと、配置したパネルなどすべてを描画しなおしているということでしょうか?
その場合、別にrepaint→paintComponentというように呼び出されているわけではなく、
repaint→update→paint→パネルの表示→(同時にpaintComponentも呼ばれる)
という流れなのでしょうか?

何度も申し訳ないのです。。
886デフォルトの名無しさん:2005/04/27(水) 23:54:35
前に、半角・全角の変換プログラムを作成したい、と質問したものです。
import java.util.regex.*;
public class Convert05 {
 public static void main(String[] args) {
 Pattern pattern;
 Matcher matcher;
 for (int i = 0; i < args.length; i++) {
  pattern=Pattern.compile("A");
  matcher=pattern.matcher(args[i]);
  System.out.println(matcher.replaceAll("A"));

  pattern=Pattern.compile("B");
  matcher=pattern.matcher(args[i]);
  System.out.println(matcher.replaceAll("B"));
  }
 }
}
と、この例でいうと、
"A"が含まれているかどうかの判定をして、含まれているなら"A"に置換して、
"B"が含まれているかどうかの判定をして、含まれているなら"B"に置換して、
という感じで進めていこうと思ったんですが、判定する要素を"B"、"C"…と
増やしていったとき、
上の例だと、System.out.printlnが"A"にも"B"にもあるので、 ABCとコマンドライン引数を与えたとき、
  ABC
  ABC
となってしまうのです。 これを、
  ABC
と表示されるようにしたいのですが、どうしたらよろしいのでしょうか?
何卒よろしくお願いいたします。
887デフォルトの名無しさん:2005/04/27(水) 23:58:33
>>855
やっぱり分かってなかったよ。。。FUCKなんじゃなかったのか?
888デフォルトの名無しさん:2005/04/28(木) 00:00:14
replaceAllの結果の文字列に対してまたreplaceAllしたらどうですか。
しかしまあずいぶん無駄の多い重い処理だこと。
889デフォルトの名無しさん:2005/04/28(木) 00:00:24
変換終了後をsysoutすればいいだけだろ
ロジックがひどいとかそういう以前のレベルだぞ

お前一度プログラミングやめて人生について考えた方がいいぞ
890デフォルトの名無しさん:2005/04/28(木) 00:07:27
置換部分を関数化してA-ZとA-Zを配列に入れてforでまわしたらどうだ。
891デフォルトの名無しさん:2005/04/28(木) 00:13:52
0x40を足せ。そういう風にASCIIコードは設計されている。
892デフォルトの名無しさん:2005/04/28(木) 00:19:07
みなさまレスありがとうございます。
やっぱり無駄が多いですよね。

ちなみに、
半角英数字の配列、全角英数字の配列、

String hann = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
String zenn = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

を用意したとして、
・含まれているかどうかの判定
・含まれていれば置換
て、やっていけばいいんですか?

なんか凄い無駄の多いことをしてる気がするのはわかっているのですが、
無駄が少ないような記述って例えばどうやったらよろしいのですか?


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

C:\Documents and Settings\torao>copy con a.java
public class a{
public static void main(String[] args){
for(int i=0; i<args.length; i++){
StringBuffer buffer = new StringBuffer(args[i].length());
for(int j=0; j<args[i].length(); j++){
char ch = args[i].charAt(j);
if(ch >= 'a' && ch <= 'z'){
ch = (char)(ch - 'a' + 'a');
} else if(ch >= 'A' && ch <= 'Z'){
ch = (char)(ch - 'A' + 'A');
} else if(ch >= '0' && ch <= '9'){
ch = (char)(ch - '0' + '0');
}
buffer.append(ch);
}
System.out.println(buffer.toString());
}
return;
}
}
^Z
1 個のファイルをコピーしました。

C:\Documents and Settings\torao>javac a.java

C:\Documents and Settings\torao>java a abc987XYZ
abc987XYZ
894886:2005/04/28(木) 00:42:30
>>893

"A"が入力されたら"A"を引いて"A"を足すんですね。
論理積使うなんて思いもよりませんでした。

ありがとうございました。
895デフォルトの名無しさん:2005/04/28(木) 00:46:02
>>619>>891は無視なのかい
896デフォルトの名無しさん:2005/04/28(木) 00:51:11
>>893
C言語では移植性の観点からダサいやり方とされているから
Javaでも引きずっている人間が多いor文字コードという言葉は知っていても
それを演算しようという発想にまで行き着けない人間が多い。
897デフォルトの名無しさん:2005/04/28(木) 01:15:56
死滅というか
この書き方しらないと国家試験とおらない希ガス

898デフォルトの名無しさん:2005/04/28(木) 01:18:25
>>885
paintとかupdateはAWTの仕組み
paintなんちゃらはSwingの仕組みでより細かいことが可能

paintやupdateは直接使わないこと

もちろん子のコンポーネントにもpaintなんちゃらはどんどん呼ばれていく
899デフォルトの名無しさん:2005/04/28(木) 01:24:59
いや、昨日からまだ続いてるから。
現場は大変なんだって。
900デフォルトの名無しさん:2005/04/28(木) 01:46:10
>>898
つまりJFrameやJAppletにrepaintすると、paintが呼び出されるのではなく
paintComponentが呼ばれるということでしょうか?
それでその上に配置したパネルとかのpaintComponentも次々と呼ばるという
ことでよいのでしょうか?
901デフォルトの名無しさん:2005/04/28(木) 02:01:02
そういう認識でいい
子がどんどんよばれるためにSwingはpaintを直接使用してはいけないわけだ
902デフォルトの名無しさん:2005/04/28(木) 03:07:34
>>892
含まれているかどうかの判定はいらんだろ。
903デフォルトの名無しさん:2005/04/28(木) 04:05:05
コアJavaとプログラミングレッスンどっちがいいですか?
904デフォルトの名無しさん
>>901
なるほど、やはり理屈から入ろうとするとなかなか分かりづらいので
もっといろいろなサンプルを作ってみようと思います。
ありがとうございました。