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

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

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

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

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

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

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

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
2デフォルトの名無しさん:04/09/11 09:05:03
2だったらこのスレ終了
3デフォルトの名無しさん:04/09/11 09:06:27
3だったらJava終了。
そしてJ#へ・・・
ww
4デフォルトの名無しさん:04/09/11 09:08:45
4だったらDelphiの時代
51:04/09/11 09:09:17
Wikiを更新した
6デフォルトの名無しさん:04/09/11 09:09:57
>>4
出る日の時代はもう来ないだろww
来るのか!?
7デフォルトの名無しさん:04/09/11 09:16:41
出る屁はとうとうマイナーなままだったね
8デフォルトの名無しさん:04/09/11 09:20:43
>>7
Javaよりはマシだったけどなw
(過去形)
9デフォルトの名無しさん:04/09/11 10:15:55
Delphiは8でおわったしなぁ・・・ってなんでJavaスレでDelphiの心配してるんだ

1と2はかなり感動したものだったが・・・
10デフォルトの名無しさん:04/09/11 10:40:14
初心者です。
今までADOでDBにアクセスしてたんですけど
Javaを勉強することになりました。
でADOだとSQLをきかしてRecordSetとった後
RecordSetで取得したデータを
ソートしたりできたんですけど
JDBCではSQLきかした後のデータの
ソートとかはどうやってやればいいでしょうか?

とりあえずJDBCでデータベースにアクセスして
ブラウザに表示するところまでは理解しています。

後DBにアクセスしてデータを変更したり画面表示する
勉強するのに適したWebアプリのための
勉強にお勧めの本ありますか。
11デフォルトの名無しさん:04/09/11 10:47:05
http://pc5.2ch.net/test/read.cgi/tech/1093267533/991
>>前スレッドの991

実際に問題があるのですよ。
すべてのクライアント環境がWindowsやIEのようなスマートなものだと考えれば、問題はありません。
ですが、ファイルの拡張子などを頼りに
どのヘルパアプリケーションを起動するかを判断してくれるスマートな環境以外では、
サーバが正しくMIMEタイプを返さない場合、JavaWebStartは現実に起動しないのです。
故にサーバの設定は正しく行わなければならないのです。

また、この問題については、
JavaWebStartが、クライアント環境のPCに標準搭載されていることとは、あまり関係がないかと思います。
ただ、「現在の大部分のクライアント環境がWindowsとIEのような、
拡張子なども頼りにして、ヘルパアプリケーションを起動するものばかりなので、
問題が起こることは少ない」と、言われるのなら、それには同意いたします。
12デフォルトの名無しさん:04/09/11 10:47:18
>>10
SQLでソートすれば?
13デフォルトの名無しさん:04/09/11 11:25:15
>>12
SQL 発行後にソートしたいのです。
14デフォルトの名無しさん:04/09/11 11:36:14
>>13
じゃあな、JDBCレベルじゃ無理だから、O/RマッピングとHibernateで調べてみ。
15デフォルトの名無しさん:04/09/11 11:41:21
すいません、クラスの関連について質問なのですが、
ヘッダークラスと明細クラスがあった場合に、

@ヘッダークラスに明細クラスの配列を保持
A各明細クラスにヘッダークラスを保持

一般的にどちらの設計がスマートなんでしょうか?
どなたかご教授下さい。
16デフォルトの名無しさん:04/09/11 11:45:56
?@
17デフォルトの名無しさん:04/09/11 11:48:17
恐れなく機種依存文字を使う兵ですね
18デフォルトの名無しさん:04/09/11 11:51:22
>>15
必要に応じて。
っつか、1は必要だろ。
19デフォルトの名無しさん:04/09/11 11:56:00
>>15
2.のような設計にする奴って明細の参照をどこで管理してるのか気になる
MeisaiManagerとかw
20デフォルトの名無しさん:04/09/11 12:04:11
>>13
なんで?
21デフォルトの名無しさん:04/09/11 12:09:18
こんにちは

StringBuffer sb = new StringBuffer();
char[] recvR = new char[64];

try {
FileReader fr = new FileReader("D:\\java\\ + str + ".txt");
while(-1 != fr.read(recvR)) {
sb.append(recvR);
}
}catch(Exception e) {
//System.out.println(e.getMessage());
}


こうやって、ファイルからreadすると、
最後のファイルデータを読み込む際のデータは64k以下となって、recvRに受信されるデータは中途半端になりますけども、
そのあまった部分に前受信したデータが入って、今受信したデータの後に、前に受信したデータがのこったrecvRになってしまいます。
このバグを解決する方法を教えてください。
2221:04/09/11 12:10:26
修正

誤)FileReader fr = new FileReader("D:\\java\\ + str + ".txt");

正)FileReader fr = new FileReader("D:\\java\\" + str + ".txt");
23デフォルトの名無しさん:04/09/11 12:52:03
>>21
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/Reader.html#read(char[])
> 戻り値:
> 読み込まれた文字数。ストリームの終わりに達した場合は -1
2421:04/09/11 12:56:37
>>23
while(-1 != fr.read(recvR)) {

-1は判定として入れてます。
25デフォルトの名無しさん:04/09/11 12:58:05
>>24
読み込まれた文字数が帰ってきた場合は捨ててるけどね
2621:04/09/11 13:18:56
>>25
解決しました
ありがとうございました
27デフォルトの名無しさん:04/09/11 13:22:34
>20
特定店舗で集計するSQLの後
最近のデータとかTop10、Worst10
特定範囲を集計しなおしたりとか
特定条件のデータだけ抽出しなおしたり
他にもいろいろといっぺんにするからです。
28デフォルトの名無しさん:04/09/11 13:27:20
>>27
普通はそのたびに適切なSQLを毎回発行するんじゃないのか?
29デフォルトの名無しさん:04/09/11 13:30:30
>>27
馬鹿
30デフォルトの名無しさん:04/09/11 13:55:31
>普通はそのたびに適切なSQLを毎回発行するんじゃないのか?
ですか
可能だったものは可能でしたので、、、
まあSQLは嫌いではないです。

ですが後学のために
JavaのArraysを使う方法とかも勉強すること
と書かれていますのでADOのrs.Sortとするのと同じことを実現する
方法を教えていただけないでしょうか?

O/RマッピングとHibernateですが
Googleで検索してみましたが
M$の世界では見たこともない単語が大量に入っていて
今のところよくわかりません。
31デフォルトの名無しさん:04/09/11 13:59:01
人は成長してこそ生きる価値あり

お前は価値無し
32デフォルトの名無しさん:04/09/11 14:06:10
>>30
解決のためのキーワードを言う。あとはググれ。

Collections#sort
Comparator
TreeSet
TreeMap
Comparable
33デフォルトの名無しさん:04/09/11 14:10:00
>>30
とりあえずO/Rマッピングなんかやらなくてもいい。

ResultSetのデータを全部別のオブジェクトのリストに詰めなおしてsortすれ
まずはそこからだ
34デフォルトの名無しさん:04/09/11 14:11:31
abstract型クラスについて教えてください。

・abstractクラスを作ってその中にabstractメソッドを
 一つも作らなかったとして、当クラスのサブクラス作成
 時に何か一つのメソッドのオーバーライド強制がされる
 という規則があるのでしょうか?もしこの規則がないと
 するとHttpServletクラスのAPIリファレンスが理解で
 きないのでよろしくお願いします。

・abstractクラス内でprivateなメソッドは宣言すること
 (しても意味なさそうだけど)は出来ますか?
35デフォルトの名無しさん:04/09/11 14:18:46
>>33
ふーん。Java って不便だな。思想ばかり高いのはやっぱりだめだな。
36デフォルトの名無しさん:04/09/11 14:20:33
>>34
やってみりゃいいだろ?
なんでやりもしないで聞くんだよ。そこでもう成長するチャンスを放棄してるんだって。
やってみて分かんないことがあったら、どうしてこうなるの?って機器に来い。
それすら自分で調べてたほうがいいくらいだ。
最も成長する気がないなら答えてもいいけど。
37デフォルトの名無しさん:04/09/11 14:23:38
ここは学校じゃないんだから成長とかしょーもないこと言うな。
変な奴は放置しとけ。
38デフォルトの名無しさん:04/09/11 14:33:11
>>36
別に自分でコーディングして調べたって、人に聞いたって
成長には関係ない。知っているなら教えてやればいいじゃ
ないか。めんどくさいなら、めんどくさいと言うか放置す
るだけだろ。自分がめんどくさいだけなのに"お前のため
を思って言わない"とか言ってしまうのを"オタメゴカシ"
という。
39デフォルトの名無しさん:04/09/11 14:38:45
>>36
Javaやるのにコーディングなんか必要ない。
って言うかコーディングなんか無駄だろ?
はっきり言うが、机上の空論が一番お似合いな言語のポジション独占中だろ。
40デフォルトの名無しさん:04/09/11 14:40:46
J2SEダウンロードしたら「Java勉強中」って充分言い張れる。
インストールすら必要ない。
まさに、ノータッチデプロイメントだ。
41デフォルトの名無しさん:04/09/11 14:43:35
>>35
楽する方法なんかいくらでもある。問題は基本が分かった上で使うかどうかだ。
42デフォルトの名無しさん:04/09/11 14:45:13
>>38
わざわざ下らんことを言ってやらなくても放置すりゃいいんだろ。
自分は言うけど人には言うなってか。
43デフォルトの名無しさん:04/09/11 14:47:08
>>42
わからないなら黙っとけってことだろ。
せめてインストールくらい済ませてから偉そうにしろってこった。
44デフォルトの名無しさん:04/09/11 14:47:51
>>38
いやその前に自分がめんどくさいだけで自分でやらずに人に聞く、
"怠慢"というんじゃないのか?
45デフォルトの名無しさん:04/09/11 14:48:59
>>44
自分でやって確かめるというのがそもそも間違いなんだよ。
お前、何もわかってないだろ?
46デフォルトの名無しさん:04/09/11 14:49:00
だから怠慢は放置しろってことだろ。
47デフォルトの名無しさん:04/09/11 14:49:57
今日中に1000行ったら、みんなでJavaオフしようよ。
48デフォルトの名無しさん:04/09/11 14:51:06
Collections#sort
Comparator
TreeSet
TreeMap
Comparable

キーワードありがとうございます。
脳内鉢巻を締めて
とりあえずグーグルで検索したり本を参照したりしてます
見たこともない単語が所々にあって
読んでて眠ってしまいそうですが
がんばって読んでます。
49デフォルトの名無しさん:04/09/11 14:54:16
ここまで読んでわかったこと。
このスレには>>34の問いに答えられる人間は居ないw
DLしただけで、プログラマになれるなんて素晴らしい言語ですねw
50デフォルトの名無しさん:04/09/11 14:54:16
オフはやっぱりJavaだけに茶でもすすりながらやるんすか
51デフォルトの名無しさん:04/09/11 14:58:46
じゃあ、自分で試せばわかることではあるが、
何の義理もない俺がわざわざ答えてやろう。

34 :デフォルトの名無しさん :04/09/11 14:11:31
abstract型クラスについて教えてください。

・abstractクラスを作ってその中にabstractメソッドを
 一つも作らなかったとして、当クラスのサブクラス作成
 時に何か一つのメソッドのオーバーライド強制がされる
 という規則があるのでしょうか?もしこの規則がないと
 するとHttpServletクラスのAPIリファレンスが理解で
 きないのでよろしくお願いします。

そんな規則はない。

・abstractクラス内でprivateなメソッドは宣言すること
 (しても意味なさそうだけど)は出来ますか?

できる。意味はある。

以上。

52デフォルトの名無しさん:04/09/11 15:00:46
こうして、煽れば答えてくれると思っちゃうんだろうな。
53デフォルトの名無しさん:04/09/11 15:00:49
怠慢な34のためにわざわざ回答してやったぞ?
54デフォルトの名無しさん:04/09/11 15:00:58
まあ取りあえずabstractがどういうことかちゃんと理解しろってこった。
55デフォルトの名無しさん:04/09/11 15:08:45
>>51
嘘教えてんじゃねーよw
56デフォルトの名無しさん:04/09/11 15:10:09
>>55
ちなみに、どれが嘘でしょう?
57デフォルトの名無しさん:04/09/11 15:11:12
>>56
怠慢な奴だな・・・
58デフォルトの名無しさん:04/09/11 15:12:27
じゃー、俺も答えるか。

>>34
> abstract型クラスについて教えてください。
> ・abstractクラスを作ってその中にabstractメソッドを
>  一つも作らなかったとして、当クラスのサブクラス作成
>  時に何か一つのメソッドのオーバーライド強制がされる
>  という規則があるのでしょうか?もしこの規則がないと
>  するとHttpServletクラスのAPIリファレンスが理解で
>  きないのでよろしくお願いします。

理解できないのは、頭が弱すぎる。
勝手に勘違いした前提で話をすることが、そもそもの間違いだ。

> ・abstractクラス内でprivateなメソッドは宣言すること
>  (しても意味なさそうだけど)は出来ますか?

しても意味なさそうと思えるお前が分からん。
59デフォルトの名無しさん:04/09/11 15:12:33
>>56
まず、自分で試してみろ。
じゃないと怠慢だと思われても仕方ないぞ。
60デフォルトの名無しさん:04/09/11 15:14:05
>>59
試すってなんだよ… 仕様調べろよ。怠慢な奴だな。
61デフォルトの名無しさん:04/09/11 15:15:14
62デフォルトの名無しさん:04/09/11 15:16:28
ここまで読んでわかったこと。
Javaは仕様を理解することより、動かして確かめることが大切。
63デフォルトの名無しさん:04/09/11 15:17:00
俺は調べたし試しもしたが、>>51は正しいぞ?
64デフォルトの名無しさん:04/09/11 15:17:39
プログラミング言語って割とそーゆーもんじゃ。
65デフォルトの名無しさん:04/09/11 15:18:04
>>63
どこをどう調べたんだ?
脳内か?
66デフォルトの名無しさん:04/09/11 15:19:55
前スレにもいたよな。理由は言わずにただ叩くだけで、結果的にくだらんレスでスレを伸ばしてる奴。
67デフォルトの名無しさん:04/09/11 15:22:00
単に >>51 が本当に間違ってないか確かめたいだけなんでは?
68デフォルトの名無しさん:04/09/11 15:22:05
そうだな。
>>63は、理由を言ったほうがいいな。
69デフォルトの名無しさん:04/09/11 15:23:19
えらく盛り上がってますね(w
70デフォルトの名無しさん:04/09/11 15:23:36
>>63
とりあえず試したコードを晒してよ。
71デフォルトの名無しさん:04/09/11 15:24:16
今からコード書くんじゃないの?
ゲラゲラ
72デフォルトの名無しさん:04/09/11 15:25:37
こんなんでいいんじゃね。
abstract class C{
private void say(){ System.out.println("say");}
public void hello1(){System.out.println("hello1");}
public void hello2(){say();}
}

class D extends C{

}

public class hello{
public static void main(String[] args){
D d = new D();
d.hello1();
d.hello2();

}
}
73デフォルトの名無しさん:04/09/11 15:25:42
仕様どおりだから。
やってみても想定通りになるから。
他に何を試せばいい?
>>67が正解なのかな…
74デフォルトの名無しさん:04/09/11 15:26:28
>>72
それじゃダメなんじゃないの?
75デフォルトの名無しさん:04/09/11 15:26:51
>>74
なんで?
76デフォルトの名無しさん:04/09/11 15:27:44
>>74
自信がないなら出しゃ張るな
77デフォルトの名無しさん:04/09/11 15:28:04
>>75
そんなこともわからないで(ry
78デフォルトの名無しさん:04/09/11 15:28:30
だから反論する時は理由書いた方がいいぞ。
79デフォルトの名無しさん:04/09/11 15:28:48
>>70
前者
abstract class SuperClass { public void method(){} }
class SubClass extends SuperClass { } //method を上書きしてない

後者
abstract class Hoge { private void method(){} }

コンパイラが言語仕様に準拠してるかはまた別問題なので自分で調べてね
80デフォルトの名無しさん:04/09/11 15:29:50
俺も調べたし試したのだがなぜ51が間違っているのか本気でわからん。
誰か教えて。
81デフォルトの名無しさん:04/09/11 15:31:08
>>80
とりあえず試したコードを晒してよ。
82デフォルトの名無しさん:04/09/11 15:31:54
俺もこんなコード書いたが、コンパイル通るぞ。
public abstract class Test {
  private void hoge() {
  }
  public void hage() {
  }
}

public class Test2 extends Test {
}

サブクラスでは何もオーバーライドしてないし、
abstractクラスにはprivateメソッドも実装できる。
83デフォルトの名無しさん:04/09/11 15:31:58
>>79ばか?
8482:04/09/11 15:32:53
コンパイル通らなかった・・・orz
8582だけど ◆lJJjsLsZzw :04/09/11 15:33:28
>>84
騙るのやめれ
86デフォルトの名無しさん:04/09/11 15:34:55
なんか必死に煽ってる奴いるけど、>>34本人か?
怠慢とか言われて逆ギレしてんのか?
87デフォルトの名無しさん:04/09/11 15:35:05
>>83
お前はきっと>>79の言ってる意味を勘違いしてる。
っていうか何で>>79>>70に言ってるのか良く分からんが…
88デフォルトの名無しさん:04/09/11 15:35:27
>>79
あー、ごめん >51 って回答してる香具師のほうか。
>51 を間違ってるとか言ってる香具師は釣りだろ。
89デフォルトの名無しさん:04/09/11 15:37:16
おまえら全員、茶でも飲んでもちつけ。(´・ω・`)つ旦
90デフォルトの名無しさん:04/09/11 15:37:56
ごめん、>>79>>70に言ってるってごくあたりまえの流れだな、なんかボケてた。
91デフォルトの名無しさん:04/09/11 15:38:48
な、>>34みたいな変態は放置しておくのが一番なんだって。
「怠慢だ」とか「成長したけりゃ」とか言うとこんなことに・・・
92デフォルトの名無しさん:04/09/11 15:39:14
で、



見事に釣られまくったわけだwww
93デフォルトの名無しさん:04/09/11 15:39:14
取りあえず、>>51>>72が間違っていると言う理由を言ってくれ。
94デフォルトの名無しさん:04/09/11 15:39:42
本気に見えるのは気のせいか?
95デフォルトの名無しさん:04/09/11 15:39:44
もう終わり?
どうしてJavaすれって荒れるんだろ?
お前ら全員馬鹿?
96デフォルトの名無しさん:04/09/11 15:40:40
はいはい。
97デフォルトの名無しさん:04/09/11 15:40:53
おい、>>34 、大漁で良かったね。
98デフォルトの名無しさん:04/09/11 15:42:43
>>95
煽り能力採点結果: 2点
99デフォルトの名無しさん:04/09/11 15:43:39
もう100近いじゃねーか。
お前ら一体何やってんだよ?
35で、答えてやればそれで済むことだったんじゃないのか?
100デフォルトの名無しさん:04/09/11 15:44:22
100!
このスレ終了
101デフォルトの名無しさん:04/09/11 15:44:58
>>99
答えても>>55みたいなことになるから放置が一番。
102デフォルトの名無しさん:04/09/11 15:46:50
>>99それですんじまったら面白くねーじゃね〜か。
103デフォルトの名無しさん:04/09/11 15:47:25
>>101
わからないからって
すぐそうやってごまかすw
104デフォルトの名無しさん:04/09/11 15:48:06
変態がまだいるな。
105デフォルトの名無しさん:04/09/11 15:48:46
>>104
おまえが・・・な。
106デフォルトの名無しさん:04/09/11 15:49:18
痴呆は放置
107デフォルトの名無しさん:04/09/11 15:50:09
>>99
質問して即回答。そんなんじゃツマラン。
的確なやりとりを望むなら Java普及委員会や @IT に逝けばいい。
108デフォルトの名無しさん:04/09/11 15:51:10
で、結局>>34が叩かれて逆ギレしたのか?
それとも>>55が後に引けなくなって釣りということにしたのか?
109デフォルトの名無しさん:04/09/11 15:52:20
>>107
調べてすぐわかるようなくだらん質問はさっさと終わらして欲しい。
110デフォルトの名無しさん:04/09/11 15:53:09
>>108
両方だろうね。
111デフォルトの名無しさん:04/09/11 15:53:26
>>11
確かに、昔LinuxでJavaWebStartを動かすようにするにはちと面倒な
ことやらされたがな

が、Windowsではどうってこともねえな
112デフォルトの名無しさん:04/09/11 15:53:50
で、>>34はどこ行った?質問して答えてもらったのにお礼も言わずにトンズラか?
113デフォルトの名無しさん:04/09/11 15:56:26
>>112
Java厨は、黙って質問に答えてればいいんだよ!
お礼とかウザイこと述べんな!ボケ!
114デフォルトの名無しさん:04/09/11 15:57:38
>>113
逆ギレした>>34タソでつか?
11534:04/09/11 15:57:57
知らない間にこんなにレスが進んでいるとは思わなかったです。
皆さん回答ありがとうございます。

1番目の質問はただの勘違いでした。無意味なこと聞いてすみません。

2番目の質問についてですが、abstractクラスでprivateメソッドが作る
意味というのはサブクラス作成の際にコピペオーバーライド(中身を替えない
オーバーライド)をわざとさせる目的で、そのコピペのフォームとして使わせる
というのが正しいのでしょうか?
116デフォルトの名無しさん:04/09/11 15:58:20
>>100突破記念AGE!
117デフォルトの名無しさん:04/09/11 15:59:11
>>115
いまさら白々しい・・・・
118デフォルトの名無しさん:04/09/11 15:59:36
>>115コピペオーバーライド(中身を替えないオーバーライド)をわざとさせる目的
な、なにを言ってんですか??
119デフォルトの名無しさん:04/09/11 16:00:57
普通にprivateを使いたい場合と同じように使うだけ。
abstractだとprivateの使い方が変わるって何で思う?
120デフォルトの名無しさん:04/09/11 16:01:22

/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)   おお!間に合ったか!
/|    / /  /ヽ            /〔 祭 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ     よーし!ガンガルぜ〜!
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 祭 〕
  |  /         /_ノ(_)          ┌|___|
  |/          (__)             (_ノ ヽ ヽ
/                                (_)
121デフォルトの名無しさん:04/09/11 16:03:29
>>120 完全に乗り遅れだ。どうでもいいが
122デフォルトの名無しさん:04/09/11 16:07:48
楽しかったです。
こういうプチ祭り、時々やりたいですね。
皆さんどうもありがとうございました。
123デフォルトの名無しさん:04/09/11 16:07:58
>>121
  |         |  |
  |         |  |_____
  |         |  | ̄ ̄ ̄ /|
  |         |  |   / /|
  |        /\ |  /|/|/|
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /     ∧∧
  |/  /.  _.| ̄|/|/|/      /⌒ヽ)         ニィタン…オナカスイタァ…
/|\/  / /  |/ /       [ 祭 _]    ∧∧
/|    / /  /ヽ         三____|∪   /⌒ヽ)    もう少しガマンしろ。
  |   | ̄|  | |ヽ/l         (/~ ∪    [ 祭 _]      次の祭り会場でヤキソバ買ってやるから…
  |   |  |/| |__|/       三三      三___|∪
  |   |/|  |/         三三       (/~∪
  |   |  |/         三三      三三
  |   |/                    三三
  |  /                    三三
  |/                    三三

124デフォルトの名無しさん:04/09/11 16:08:26
>>115
おまい、大人気だな、おい。

残念!!!
2 つ目も、「無意味なこと聞いてすいません」 斬り!
12534:04/09/11 16:12:59
public class Main{
public static void main(String[] args) {
SubTekito sub = new SubTekito();
sub.print1();
}
}

abstract class Tekito{
protected void print1(){
System.out.println("111111111");
this.print2();
}
private void print2(){
System.out.println("222222222");
}
}

class SubTekito extends Tekito{
}

実行結果:
111111111
222222222

↑こんな使い方を考えてみました。とんちんかんなことばかり聞いて
 本当にごめんなさい。
126デフォルトの名無しさん:04/09/11 16:16:32
まあ、使い方は置いといて、別に普通に使うときは使う。
ということは分かった?
127デフォルトの名無しさん:04/09/11 16:19:21
>>125
それって >>115 の2番目となんか関係あるのか?
128デフォルトの名無しさん:04/09/11 16:22:01
>>125
まー、そういうことだ。
129デフォルトの名無しさん:04/09/11 16:23:24
単に一部のメソッドがabstractなだけで、
その他のメソッドは普通どおりなんだから、
privateメソッドも普通に使うっていう単純な話で、
これだけスレがのびるってどういうわけよ?w
130デフォルトの名無しさん:04/09/11 16:27:00
>>127
print2()というメソッドはTekitoという抽象クラス内でしか使えない。
けれども
mainメソッドを持つMainクラスがSubTekitoクラスのインスタンスを作成
することでprint2()メソッドの実行結果を得ることができたのがわかるでしょ?
131デフォルトの名無しさん:04/09/11 16:28:58
>>129その話ではあまり伸びてない気が…
132デフォルトの名無しさん:04/09/11 16:30:38
みんなどうしたんだ、急にやさしくなって…
133デフォルトの名無しさん:04/09/11 16:30:45
>>130
>>125 のコードが >>115
> 2番目の質問についてですが、abstractクラスでprivateメソッドが作る
> 意味というのはサブクラス作成の際にコピペオーバーライド(中身を替えない
> オーバーライド)をわざとさせる目的で、そのコピペのフォームとして使わせる
> というのが正しいのでしょうか?

となにか関係があるのか? と聞いているんだけど。
134デフォルトの名無しさん:04/09/11 16:31:55
135デフォルトの名無しさん:04/09/11 16:43:10
>>133
要はですね。>>34はabstractクラスのprivateメソッドは存在しても
使う機会がないと思っていたが使う例があったという話。
136デフォルトの名無しさん:04/09/11 16:46:23
>>111
ん、なにか勘違いしていないか?
>>11
http://pc5.2ch.net/test/read.cgi/tech/1093267533/698
http://pc5.2ch.net/test/read.cgi/tech/1093267533/954
が論じているのはサーバの設定の話ではないの?
それとも俺のほうが勘違いしてる?

クライアントの設定なら、WindowsでもIE以外のブラウザでは、
そのLinuxと同じ手間の設定が必要にはならないの?
137デフォルトの名無しさん:04/09/11 16:47:21
>>135
いやさ、>>34>>125 だけだったら、それで理解できるんだか、
だとすると >>115
> 2番目の質問についてですが、abstractクラスでprivateメソッドが作る
> 意味というのはサブクラス作成の際にコピペオーバーライド(中身を替えない
> オーバーライド)をわざとさせる目的で、そのコピペのフォームとして使わせる
> というのが正しいのでしょうか?
ってのはなんだったのかが良くわからないんだけど。
138デフォルトの名無しさん:04/09/11 16:48:25
忘れたれよ…
139デフォルトの名無しさん:04/09/11 16:52:20
うまく煽れば100レスブースト出来ることが証明された。
これを自分のスレに応用して人気スレのように見せかけようと思う。
140デフォルトの名無しさん:04/09/11 16:53:42
さらに、900以降は1000を狙えるポジションということだ。
141デフォルトの名無しさん:04/09/11 16:57:28
>>139
おまいのスレどこ?
142デフォルトの名無しさん:04/09/11 17:01:45
143デフォルトの名無しさん:04/09/11 17:11:35
>>142
過疎っていうより死んでるな
144デフォルトの名無しさん:04/09/11 17:12:47
>>143
Javaテクノロジーで生き返らせる。
145デフォルトの名無しさん:04/09/11 17:40:46
クライアント環境におけるJavaWebStartについてなら、
LinuxにしてもWindowsにしても、気のきいたブラウザ、
たとえばMozillaなどでは、サーバがきちんとMIMEタイプを送信してきたのであれば、
たとえ、事前にクライアント側でヘルパアプリケーションの設定をしていなくても、

「このMIMEタイプをどのように扱えばいいか私(Mozilla)は知りません。
私は、このファイルをどう扱えばいいですか?」

とダイアログを表示して、ユーザに尋ねてくるので、
そのダイアログを用いて、javawsの実行ファイルを指定してあげるだけです。
それ以外には手間のかかるような設定は必要ありません。

IEやMozilla以外の、あまり気のきかないブラウザにおいては、
設定はもう少々複雑になることでしょう。

またKDEやGNOMEなどの統合デスクトップ環境によっては、
ブラウザのみならず、それらの統合デスクトップ環境自身が、
MIMEタイプやファイル拡張子の設定を保持し、
その設定を特定のブラウザに参照させる場合もあります。

ちなみに、MacOSXにおいては、これらクライアント側でのJavaWebStartの設定は、
Windows,IEの組合せ以上に手軽になっています。
OS自体にデフォルトで、JavaVMもJavaWebStartもインストールされているうえに、
ヘルパアプリケーションなど、上記の設定がすでになされているので、
ユーザは何も設定をする必要がないのですから。

>>136
勘違いというよりも、クライアント側の設定の話と、サーバ側の設定の話が
並列に進められているだけではないでしょうか。
146デフォルトの名無しさん:04/09/11 17:41:48
【JavaFive】C#からJ2SE5.xへ進化【TigerShot】
http://pc5.2ch.net/test/read.cgi/tech/1094891986/
147デフォルトの名無しさん:04/09/11 20:34:32
馬鹿な質問で申し訳ないのですが、
以下のような計算式は

int x=0
x=5+7+9+10;

コンパイル?時、計算式を勝手に計算結果にしてくれないんでしょうか?
x=31; のように。
148デフォルトの名無しさん:04/09/11 20:40:18
>>147
全然Javaの話じゃねーな
そんなのはコンパイラ依存
149デフォルトの名無しさん:04/09/11 20:47:47
すいませんでした。ありがとうございます。
150デフォルトの名無しさん:04/09/11 20:48:17
相変わらずJavaスレは楽しいですね
いつまでたっても成長がないところがすばらしいです
151デフォルトの名無しさん:04/09/11 20:51:23
>>148
嘘つけ。
152デフォルトの名無しさん:04/09/11 20:51:55
文字コードEUC-JPの文字列を16進数で表示したいのですが
どうすればいいのでしょうか。
下記のC言語のコードと同じことをやりたいのですが。

#include <stdio.h>
int main() {
int i;
unsigned char str[] = "2ちゃんねる";
for (i = 0; i < strlen(str); i++) {
printf("%02X ", str[i]);
}
printf("\n");
return (0);
}

出力結果
A3 B2 A4 C1 A4 E3 A4 F3 A4 CD A4 EB
153デフォルトの名無しさん:04/09/11 21:01:03
>>151はコンパイラが何かをわかっていないド素人
154デフォルトの名無しさん:04/09/11 21:02:53
麻宮騎亜のマンガ
155デフォルトの名無しさん:04/09/11 21:04:42
>>153
コンパイラってなんでつか?
156デフォルトの名無しさん:04/09/11 21:06:16
>>153
どういう意味か分からんが、
Javaって言語仕様レベルで定数式の扱い規定されてなかったっけ?
157デフォルトの名無しさん:04/09/11 21:10:49
>>155
麻宮騎亜のマンガ
158デフォルトの名無しさん:04/09/11 21:12:56
>>157相手にされないからってしつこいのが哀れみを誘ってるぞ。
159デフォルトの名無しさん:04/09/11 21:14:08
アニメーションGIFを表示する時の、ImageReaderで
各ページの相対XY座標を取得する方法を教えてください。
1ページ目がフルサイズCGで、2ページ目以降が部分CG
だと、その部分CGのXY位置をどこにすればいいのか
分からないのです。
160デフォルトの名無しさん:04/09/11 21:21:03
>>158
麻宮騎亜のマンガ
161デフォルトの名無しさん:04/09/11 21:22:43
>>152
J2SE 5.0(旧1.5)以降であれば printf 使えるので

byte[] array = "2ちゃんねる".getBytes("EUC-JP");
for (int i = 0; i < array.length; i++) {
 System.out.printf("%02X", array[i] & 0xFF);
}
System.out.println();
162デフォルトの名無しさん:04/09/11 21:27:34
>>148>>151どっちが嘘なんですか?
163デフォルトの名無しさん:04/09/11 21:29:27
>>156
定数式の扱いは規定されてて、
浮動小数点数型の演算は strictfp 宣言無しで FP厳密でなければならないとか
文字列の定数式は intern() して一意なインスタンスを共有するとか書いてあるけど
コンパイル時に定数式を計算して値に置き換えろ、って規定は無かったと思われ。
勘違いだったらスマソ

でもまぁ、普通のコンパイラは定数式を値に置き換えると思うけど。
164デフォルトの名無しさん:04/09/11 21:43:56
>>163
今Javapで逆汗してみたら値に置き換えていないね。
驚きました。
165デフォルトの名無しさん:04/09/11 21:55:35
>>164
C:\temp\test>copy Test.java con
public class Test {
public static void main( String[] args ){
int x = 0;
x = 5+7+9+10;
System.out.println(x);
}
}

1 個のファイルをコピーしました。

C:\temp\test>javac Test.java

したのを javap したら以下のようになった。
166デフォルトの名無しさん:04/09/11 21:55:59
>>164
そりゃだって変数だもん。
値に置き換えてるようだったら窓から投げ捨てる。
final修飾子が付いてりゃ値に置き換えてくれると思うがね。
167デフォルトの名無しさん:04/09/11 21:56:15
C:\temp\test>javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return

public static void main(java.lang.String[]);
Code:
0: iconst_0
1: istore_1
2: bipush 31
4: istore_1
5: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
8: iload_1
9: invokevirtual #3; //Method java/io/PrintStream.println:(I)V
12: return

}
ちゃんと値に置き換えてるように見えるけど。
168デフォルトの名無しさん:04/09/11 21:57:24
C:\temp\test>javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return

public static void main(java.lang.String[]);
Code:
0: iconst_0
1: istore_1
2: bipush 31
4: istore_1
5: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
8: iload_1
9: invokevirtual #3; //Method java/io/PrintStream.println:(I)V
12: return

}
ちゃんと値に置き換えてるように見えるけど。
169166:04/09/11 21:57:33
ゴメン。ちょっと勘違い。
170デフォルトの名無しさん:04/09/11 22:01:01
>>168
final修飾子つけたんですか?





ゲラゲラ
171デフォルトの名無しさん:04/09/11 22:01:40
>>167
x = 0; は消えてないみたいだけど、
x = 5+7+9+10; は x = 31; 相当になってるみたいね。
172デフォルトの名無しさん:04/09/11 22:01:52
>>170
       (  _,, -''"      ',             __.__       ____
   ハ   ( l         ',____,、      (:::} l l l ,}      /      \
   ハ   ( .',         ト───‐'      l::l ̄ ̄l     l        │
   ハ   (  .',         |              l::|二二l     |  ハ こ  .|
       ( /ィ         h         , '´ ̄ ̄ ̄`ヽ   |  ハ や │
⌒⌒⌒ヽ(⌒ヽ/ ',         l.l         ,'  r──―‐tl.   |  ハ つ │
        ̄   ',       fllJ.        { r' ー-、ノ ,r‐l    |  ! め │
            ヾ     ル'ノ |ll       ,-l l ´~~ ‐ l~`ト,.  l        |
             〉vw'レハノ   l.lll       ヽl l ',   ,_ ! ,'ノ   ヽ  ____/
             l_,,, =====、_ !'lll       .ハ. l  r'"__゙,,`l|     )ノ
          _,,ノ※※※※※`ー,,,       / lヽノ ´'ー'´ハ
       -‐'"´ ヽ※※※※※_,, -''"`''ー-、 _,へ,_', ヽ,,二,,/ .l
              ̄ ̄ ̄ ̄ ̄       `''ー-、 l      ト、へ
173デフォルトの名無しさん:04/09/11 22:03:41
>>170
final つけたら 2行目の代入文でコンパイル時エラー出ると思うけど。
ソースは >>165 にあるから、自分で試してみれば?
174デフォルトの名無しさん:04/09/11 22:04:44
× final つけたら 2行目の代入文でコンパイル時エラー出ると思うけど。
○ final つけたら 2つ目の代入文でコンパイル時エラー出ると思うけど。
175デフォルトの名無しさん:04/09/11 22:09:23
文字列に関しては定数式によって生成される文字列はリテラルと同様に
扱う旨、規格に明記されている。でも整数リテラル等に関して記述がない
からこのあたりを行うかどうかはコンパイラの実装依存ってことでOK?
176デフォルトの名無しさん:04/09/11 22:13:58
>>175
文字列も intern しろとは書いてあるが、
実行時に連結してはいけないとか、
コンパイル時に連結しなければならないと書いてないんだけどね。

整数リテラルに関して記述が無いってのが >>163>>175 の見落としだって可能性もあるし。
177デフォルトの名無しさん:04/09/11 22:14:38
どうやらそうみたいね…
caseラベルとかでの定数式の扱いから、
定数式はコンパイル時に確定しないといけないんだと思ってた。
# いや、確定はするんだけど、ごめん、うまくいえないな…
178デフォルトの名無しさん:04/09/11 22:16:40
あうち、>>177>>175に対して書いたんだけど…
>>176の可能性もまぁあることはあるわな。
179デフォルトの名無しさん:04/09/11 22:20:50
>>176 文字列に関してはコンパイル時に評価。
Strings computed by constant expressions (§15.28) are
computed at compile time and then treated as if they were literals.
180デフォルトの名無しさん:04/09/11 22:22:19
垂直同期をとった画面更新をしたいんだけど、

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
DisplayMode dm = gd.getDisplayMode();
int rr = dm.getRefreshRate();
if (rr == DisplayMode.REFRESH_RATE_UNKNOWN) rr = 60;

new java.util.Timer().scheduleAtFixedRate(new TimerTask(){
public void run(){
repaint();
}
}, 0, 4000 / rr);

だとうまくいかないっす。
どうすりゃいいんすか?
181デフォルトの名無しさん:04/09/11 22:28:11
>>179
それって仕様なのか例なのか、わからんトコロに書いてあるので微妙。

例えば同じところで System.out.print((hello == ("Hel"+lo)) + " "); が false になってるけど、
"Hel" + lo(値は"lo") が最適化の結果 true になってはいけないとは思えないし。
182デフォルトの名無しさん:04/09/11 22:41:17
>>180
それどこが垂直同期とってるんだ?
時間管理してるだけじゃないのか?

垂直同期取るためにはフルスクリーンにしてflipするべし
それ以外は垂直同期取れないのでタイマ管理が必要になる

ついでにリフレッシュレートは確実にいじれないので
フルスクリーンモードだからといってそのまま使わずに
垂直同期周波数をチェックして時間管理を入れるべし

垂直同期+時間管理だとティアリングは発生しないものの、
(おもに2Dゲームでは)がたつきが気になると思う
どうせウインドウモードではティアリング発生するのだから
たとえば60Hz以外と判断したときは垂直同期取らないとか
オプションで自由にいじらせるとかそういった考慮が必要
183デフォルトの名無しさん:04/09/11 22:41:26
>>181
今回の例は冒頭に
This example illustrates six points:
とあるように、ある規則をを例示するための
例であることが明示されているから、ただの
一実装例だと判断するのは間違いでしょ。
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#101083

あと、あの言語仕様を通して読むと、ある例が出され、その範囲をはみ出す例外が
存在するときは必ず明記されているから、それがないときはまあmustと
考えていいとおもう。一部のRFCみたいにmust/should/mayの使い分けが
強制されてないから文脈で判断するしかない曖昧さは残るけどね。
184デフォルトの名無しさん:04/09/11 22:50:21
>>183
しかし、その部分以外には
> 実行時に連結してはいけないとか、
> コンパイル時に連結しなければならない
と読める部分が無いのは相当弱いと思われ。

例証でしか書かれていない部分まで「言語仕様」として読んでよいものか微妙。
185デフォルトの名無しさん:04/09/11 22:53:18
>>181
|例えば同じところで System.out.print((hello == ("Hel"+lo)) + " "); が false になってるけど、
|"Hel" + lo(値は"lo") が最適化の結果 true になってはいけないとは思えないし。
おいおい... さすがにJavaの規格としてこの手の非互換性を許す
ようなことはないだろ...
言葉遊びや文章の揚げ足取りもいいけど、
なんのための文章がかかれているかってことはよみとってやれよ
186デフォルトの名無しさん:04/09/11 23:11:40
>>185
いや、その部分はさらに微妙なんだが。

System.out.print((hello == ("Hel"+lo)) + " "); が false になる部分の説明は
> Strings computed at run time are newly created and therefore distinct.
としか書いてなくて、"Hel" + lo は実行時に計算しなければならないとは一切書いてないし
他の部分にも そんな記述は無いはず。
187185:04/09/11 23:18:05
>>186
だからね、俺がいいたいのは、どこにかいてある・書いてない
じゃなくて、その6項目がなければ181が自分でいうようにコンパイラの動作に
非互換性が生じるのよ。
で、この手の基本的なレベルで非互換性が
出るようなことはありえないだろ?だからそこは例じゃなくて仕様
が書いてあると読み取ってあげるのが普通じゃないの?
188デフォルトの名無しさん:04/09/11 23:23:23
>>187
非互換といえば、1.3 までの javac が言語仕様に従わずに
import SimpleName; を容認してたのが
1.4 から容認しなくなったのでも非互換が生じたけど。

言語仕様というのは完全で漏れが無い事を目指して作るものだから、
書いてない事は仕様でないと考えるべきだと思われ。

もっとも、実装するときは仕様に書いてある例と同じ出力にするだろうけど。
189デフォルトの名無しさん:04/09/11 23:26:46
俺も>>185のいうことに同意だな
コンパイラの最適化でこの例の結果が変わるとは思えない。
むしろコンパイラの仕様がこの例の通りにならなかったら単にバグでしょ
190デフォルトの名無しさん:04/09/11 23:29:06
>>189
欠陥が有るとしたら仕様書のほうにあるんじゃないのか?
191デフォルトの名無しさん:04/09/11 23:30:19
ぬるぽ
192185:04/09/11 23:32:17
|非互換といえば、1.3 までの javac が言語仕様に従わずに
|import SimpleName; を容認してたのが
|1.4 から容認しなくなったのでも非互換が生じたけど。
これは実装レベルでの話で別の話。いま話しているのは
規格レベルで非互換性を許すかどうか。

|言語仕様というのは完全で漏れが無い事を目指して作るものだから、
|書いてない事は仕様でないと考えるべきだと思われ。
だから、書いてあるじゃん。あれを仕様だととらずに
ただの例だと読み取るのはそうとうアレ。
This examplesの指す範囲はあくまでもその上のコードと出力結果だろう。
例を先に出す構成は悪文だとは思うがね。
193デフォルトの名無しさん:04/09/11 23:33:02
> System.out.print((hello == ("Hel"+lo)) + " ");

これって見ての通り、リテラル+リテラルじゃなくて、
リテラル+変数だからfalseで当たり前の例なんだよね。
194デフォルトの名無しさん:04/09/11 23:34:34
>>193
仕様をよく読むとそれには二通りの解釈が成り立つ。
195デフォルトの名無しさん:04/09/11 23:35:03
>>192
> 規格レベルで非互換性を許すかどうか。
いわゆる「解釈の違い」って奴ですよ。規格自体は変わらない。
196デフォルトの名無しさん:04/09/11 23:35:19
ヌルポ
197デフォルトの名無しさん:04/09/11 23:37:24
>>195
それは、規格に漏れがあるということであり、
㋖∠の欠陥じゃないか?
198デフォルトの名無しさん:04/09/11 23:37:49
>>191,196
ガッ
199デフォルトの名無しさん:04/09/11 23:39:46
>>191
ペッ
200デフォルトの名無しさん:04/09/11 23:41:03
何とか一日で200レス達成しました。
協力してくださった皆さんどうもありがとうございます。
201デフォルトの名無しさん:04/09/11 23:43:06
Javaは釣りネタに事欠かないなぁw
202180:04/09/11 23:43:11
>>182
ありがとう。
フルスクリーンにしてBufferStrategy使ったらできました。
でもこれだとコンポーネントが表示されなくなるな。
垂直同期はあきらめるか。
203デフォルトの名無しさん:04/09/11 23:47:23
結局、言語仕様を好意的に読むと、元ネタの>>165
コンパイル時にx=31になるでFA?
204デフォルトの名無しさん:04/09/11 23:50:51
>>201
さびしい土曜日ですね。
205デフォルトの名無しさん:04/09/11 23:52:10
>>183
構成の話をすれば、
JLS は明示的で抽象的な仕様が書いてあって、
それから暗黙に導かれるルールが例とかで補足されるのは結構あるけど、

あの二つは先行する明示的な仕様から導くのは無理だし。
206デフォルトの名無しさん:04/09/11 23:53:42
>>203
それは言語仕様的にはコンパイラはx=31にしても良いし、しなくても良いでFA。

今やってるのは文字列連結の定数式だけだから。
207デフォルトの名無しさん:04/09/11 23:56:16
>>204
仕事ですが何か
208デフォルトの名無しさん:04/09/12 00:11:56
しかし、あの例って確かに微妙だわ。
あの例をすなおに解釈すると、
hello
Other.hello
"Hel"+"lo"の演算結果というかコンパイラの最適化結果
は、同じインスタンスを指していて
"Hel"+loの演算結果
だけは、別インスタンスということになる。
で、真の値intern値は5つとも共通と、、、。
209デフォルトの名無しさん:04/09/12 00:18:17
>>207
釣りが?
さらに寂しいね。
210デフォルトの名無しさん:04/09/12 00:20:41
>>209
無職がうらやましいよ
211デフォルトの名無しさん:04/09/12 00:24:49
>>210
2chで釣りするのが仕事なら、無職でもいいや。
212デフォルトの名無しさん:04/09/12 00:29:41
>>211
釣士ですらスレの趣旨に沿って書き込んでるのに、お前はなんだ?
ん?




ていうか、俺が釣ってましたw
>>201は無関係だと思う。
213デフォルトの名無しさん:04/09/12 00:30:29
ニートの発想って、ホント貧相

日本の代表的なニート
ttp://www.gazo-box.com/wara/img-box/img20040724044408.jpg
214デフォルトの名無しさん:04/09/12 01:44:00
>>206
それが FA だとすると
1 + 2 だと必ずしもコンパイル時に計算しなくてもいいけど
1 + 2 + "" だと絶対にコンパイル時に計算しなきゃいけないんだよね。

なんか統一感ないね。
215デフォルトの名無しさん:04/09/12 01:49:05
>>214
お前の頭の悪さは格別だな。
216デフォルトの名無しさん:04/09/12 06:14:41
おれも>>214と同じように感じるよ
何か統一感ないね
というか言語仕様でコンパイラ最適化を思わせる例がでていて
ほかのリテラルに適用されないってどうよ?
217デフォルトの名無しさん:04/09/12 08:45:48
あの、くだらない質問で申し訳ないんですけど、classloaderにdefineclass
ってあるじゃないですか。んで、それはバイト列としてバイトコードをわたせば
クラスとかができるらしいんですね。
 で、VMが現在実行中、もしくは、これはから実行されていくバイトコードを
得る事ができたら、ネットワークに投げたりして、完璧な遠隔実行とか可能
だと思うんです(性能は別として)。そんな事できるんでしょか?そういった機能
をVMにインプリメントするとか。
 defineclassはクラスを作るから、そんなんじゃなくて、実行するためバイトコードを
バシバシ渡せるメソッドとかがあれば最高。
 私の妄想でしょうか?
218デフォルトの名無しさん:04/09/12 10:36:16
既にそういうクラスローダーあるけど?
219デフォルトの名無しさん:04/09/12 10:41:21
servlet/jspのセッションの消滅時に処理をはさむことは
できますでしょうか?
できるとすればどのようにすればいいでしょうか?
ブラウザが閉じられたりタイムアウトしたときにログにメッセージを表示したり
したいと思ってます。
220デフォルトの名無しさん:04/09/12 10:46:55
できる
リスナー登録
ブラウザを閉じるタイミングだとJavaScript併用かな
タイムアウトはOK
221デフォルトの名無しさん:04/09/12 10:56:27
【Java】Apache Jakarta Commons
http://pc5.2ch.net/test/read.cgi/tech/1094954163/
222デフォルトの名無しさん:04/09/12 10:59:52
>>219
エラーページを作るってのはどうよ?
<%@ %> 内で指定するディれくてぃぶでそういうのが遭ったと思うが
223デフォルトの名無しさん:04/09/12 11:01:27
>>219
ログインしていないときは、
そのページでログインしているかどうかをif文で判定して、
java.util.Loggerなどでログを残しつつ
例外も投げ、
エラーページにforwardするってのもありだと思うが。
224デフォルトの名無しさん:04/09/12 11:28:36
>>222-223
なんか的外れ・・・
225デフォルトの名無しさん:04/09/12 11:29:22
226デフォルトの名無しさん:04/09/12 11:29:35
>>220
セッション情報をファイルに書き込むようにしたら、リスナーが呼ばれなくなったことがあってウツ。
Tomcat4.0のころだったと思うが。
今はどうなのかな。
227デフォルトの名無しさん:04/09/12 11:31:11
>>225
死体・・・クリック注意。
228デフォルトの名無しさん:04/09/12 12:30:15
>>225
発砲スチロールあんどラテックス製か
よくできてるな
229デフォルトの名無しさん:04/09/12 12:35:35
実物じゃないので、逆に怖い。
本物はリアリティー優先で怖さは優先されてないからな。
230デフォルトの名無しさん:04/09/12 13:28:14
>>217
URLClassLoader
231デフォルトの名無しさん:04/09/12 13:54:33
>>230
>>218
ありがとうございます。

 えーと、こういった感じ(クラスとかそういう単位じゃなく)、実行中の生バイトーコードを
VMから得るメソッド、与えて実行させるメソッドってのがないかな?って思ってる
んです。知ってる方いないでしょうか?
 サードパティーとかどっかの自作クラスとかでもかまいません。
 おねがいします。
232デフォルトの名無しさん:04/09/12 13:55:18
×バイトーコード
○バイトコード
233デフォルトの名無しさん:04/09/12 13:59:32
DBの接続情報などを外部ファイル化するとして、
そのファイルをクラス階層に置くべきか否かで指針となるものってありますか?
234デフォルトの名無しさん:04/09/12 14:00:26
>>233
環境に依存する情報は、クラス階層におくべきではない。
235デフォルトの名無しさん:04/09/12 14:03:30
メソッド ×
メソッドー ○
236デフォルトの名無しさん:04/09/12 14:03:55
クラス階層っていうのがなんのことかわからんが。
リソースにするのなら、クラスパスが通るところに置くべきだし。
237デフォルトの名無しさん:04/09/12 14:04:40
×バイトコード
○バイトコドー
238デフォルトの名無しさん:04/09/12 14:07:44
>>236
DBの接続情報なんかをリソースにするのはいかんだろ。
クラスパスが通るところというのは、環境依存しない情報しかおくべきではないだろう。
たとえば、メッセージリソースとかな。
239デフォルトの名無しさん:04/09/12 14:13:56
>>231
>実行中の生バイトーコードをVMから得るメソッド
Debugger Interfaceとか。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jpda/jvmdi-spec.html#GetBytecodes

>与えて実行させるメソッド
メソッドだけではバイトコードとしては存在できないので
適当なクラスを作ってそれのメソッドとする。
動的にクラスを作るライブラリとしてはBCELとかjavassistとか。
240デフォルトの名無しさん:04/09/12 14:22:32
>>238
じゃあ、クラスパス通らないところにおいて、絶対パスでファイル読み込みか?
そのほうが良くないだろ。
メッセージリソースも、ロケールという環境に依存するわけだが。

クラスパスが通るところ、つまりリソースにしないとして、設定ファイルはどこに置くんだ?
レジストリ?大げさだな。
241デフォルトの名無しさん:04/09/12 14:31:06
>>231
> 実行中の生バイトーコードをVMから得るメソッド、

Class#getResourceAsStream()

>与えて実行させるメソッドってのがないかな?って思ってる

Classオブジェクトが得られれば後はどうにでもできる。

動的に「バイトコードを作る」のなら>>239

リフレクションについてもっと調べてから出直してこい。

君に、ある程度の知識と説明能力が無けりゃ何がやりたいのかこっちがが理解できん。
242デフォルトの名無しさん:04/09/12 14:34:29
>>240
メッセージリソースはクラス階層に置き、
環境依存パラメータは絶対パスでファイル読みということだ。
どっちもリソースにしてしまうと、複数環境へ配布するときに煩雑になるぞ。
243デフォルトの名無しさん:04/09/12 14:34:58
>>241
1行おき、やめれ。
244デフォルトの名無しさん:04/09/12 14:38:03
>>242
クラス階層って何だ?
たとえばclassesディレクトリ直下とかいう意味?
245デフォルトの名無しさん:04/09/12 14:39:10
>>242
じゃあその絶対パスはソース直書きか?
さらに複数環境に対応できんな。
複数環境に配布するからこそ、クラスパスだと思うのだが。
246デフォルトの名無しさん:04/09/12 14:44:39
>>242
おまえはクラスパスとリソースについて、勉強しなおす必要があるな。
247デフォルトの名無しさん:04/09/12 14:45:39
相対パスで書けるじゃん
たとえば servlet.getServletContext().getRealPath("hoge") みたいに
248デフォルトの名無しさん:04/09/12 14:49:57
>>247
Webではないアプリケーションはどうするんだ?

そんなんWebの場合はコンテナの設定ファイルが使えるから、設定ファイルの話ははっきりいって関係なかろう。
Tomcatであればデータベースの設定なんかcontext.xmlにJNDIリソース登録するわけだし。
249デフォルトの名無しさん:04/09/12 14:50:27
>>242を好意的に解釈すると
環境依存パラメータを記述したファイルを-Dオプションで絶対パス指定するのかも知れない。
250デフォルトの名無しさん:04/09/12 14:50:56
>>245
実行時パラメータで渡すのが吉。
複数環境ということは、当然DBの接続情報も変わるわけだが、
クラス階層にあるリソースファイルを環境単位に用意するのは、
気持ち悪いでしょ?

>>247
サーブレットなら、それでもいいね。
251デフォルトの名無しさん:04/09/12 14:53:18
たとえばeclipseはどうやって解決してるのか?って話だろ。
252デフォルトの名無しさん:04/09/12 14:55:08
配布先がWindows系とUnix系両方だったとすると、
やはり、実行時パラメータで渡すだろう。
そのためのバッチファイル&シェルを用意すると。
253デフォルトの名無しさん:04/09/12 14:55:18
>>250
> クラス階層にあるリソースファイルを環境単位に用意するのは、 気持ち悪いでしょ?

なんで?
ファイルを作ることには変わりないし。
クラスパスにリソース置けばすむのに、実行時パラメータ使うのもアホらしいだろ。

っていうか、クラス階層ってなによ。クラスパスが通ったところ以外の意味があるのか?
254デフォルトの名無しさん:04/09/12 14:55:55
>>246
文脈が読み取れないらしいな。
255デフォルトの名無しさん:04/09/12 14:56:15
>>252
実行可能JARと同じディレクトリに置くようにしとけば十分だろが。
256デフォルトの名無しさん:04/09/12 14:58:19
>>254
いや、クラスパスやリソースについてわかってなさそうだぞ。
257デフォルトの名無しさん:04/09/12 14:59:45
一応確認しておくけど、ここでの設定ファイルっていうのは、環境依存パラメータのことだよね?
起動してからは書き換えられないファイル。
258デフォルトの名無しさん:04/09/12 15:02:23
>>253
ラクかどうかの問題を言っているのではない。
クラスの外にリソースとして分けて記述したところで、
それは形式が変わっただけで、本質的には変わったわけではない。
そう感じるのだ。

「クラスパスが通ったところ」をなんというんだ?
259デフォルトの名無しさん:04/09/12 15:03:11
>>257
そう。
260デフォルトの名無しさん:04/09/12 15:04:01
>>247
というか、Webの場合に環境依存パラメータを、そうやってコンテキストルート以下のファイルに置くのもやっかいだ。
Webの場合の環境依存パラメータはcontext.xmlに書け。
261デフォルトの名無しさん:04/09/12 15:06:22
>>255
それは、無名パッケージで置くということだが、
クラスと同じ場所にあるという点で、何も変わらないのだが。。
262デフォルトの名無しさん:04/09/12 15:07:41
>>259
それであれば、クラスパスの通ったところにプロパティファイルを置くようにするのがまっとう。
なんでわざわざクラスパスが通らないところにファイル置いて、実行時パラメータでパス指定する必要があるんだか。
それにそれが本質的に変わるとは思わないんだが。

実際の用語としては「クラスパスが通ったところ」をクラスパスというのだけどね。
263デフォルトの名無しさん:04/09/12 15:08:41
>>261
なんならディレクトリ作ればいいだろ。
何を変える必要があるんだ?
264デフォルトの名無しさん:04/09/12 15:09:18
>>260
webなら、コンテナがあるので、そっちに任せるというのには、賛成。
では、通常のJavaアプリではどうする?
265デフォルトの名無しさん:04/09/12 15:13:04
>>261
実行ファイルであるappli.jarと環境設定ファイルであるconfig.propertiesを同じディレクトリに置くことにどんな不都合があるのか説明きぼんぬ。
そこがわからないためにここまでの食い違いが生じてる。
config.propertiesをどこかヨソに置いて、ソース埋め込みにしろVMパラメータにしろ、絶対パスで指定することの利点と比較してね。
266デフォルトの名無しさん:04/09/12 15:14:00
>>262
クラスパス上にあるモノは「いったん書いたらどこでも動く」べきでは?
というのが発端。

なので、環境依存情報は、クラスパス外にあるべきでは?と思ったわけだ。
267デフォルトの名無しさん:04/09/12 15:15:13
>>264
実行jarと同じディレクトリにファイル置く。
もちろん実行jarを置いたディレクトリにクラスパスが通るように、マニフェストを記述。
268デフォルトの名無しさん:04/09/12 15:18:32
>>266
いい着眼点だ。
最近の若い奴らは、メッセージも環境情報も同じファイルにかきやがる。
269デフォルトの名無しさん:04/09/12 15:19:00
>>266
> クラスパス上にあるモノは「いったん書いたらどこでも動く」べきでは?

そんな「べき」はない。
どうしても環境依存するクラスを(そんなんあるなら)、環境ごとのjarにして、環境ごとに配布というのも否定するものではない。
たとえばiアプリのようなリソースの限定された環境。
JNIで環境ごとの差をネイティブライブラリに閉じることができなかった場合など。
270デフォルトの名無しさん:04/09/12 15:21:52
>>266
環境依存パスをクラスパスで吸収して、パス文字列の環境依存もリソースローダーで吸収させるのが目的なんだから、環境設定ファイルはリソースにするべき。
そのためのリソース。
271デフォルトの名無しさん:04/09/12 15:23:35
>>269
でも、少なくとも、上位アプリケーションのレベルでは、
それを目指すべきだと思うが。
272デフォルトの名無しさん:04/09/12 15:24:35
>>271
クラスパスに環境依存情報置くなって?
そんなもの目指さなくていい。
なんのメリットがあるんだ?
273デフォルトの名無しさん:04/09/12 15:27:08
>>271
とりあえず>>265に答えてくれ。
274デフォルトの名無しさん:04/09/12 15:27:36
>>270
パス文字列の形式は吸収できるが、内容は吸収できない。
内容が語異なる場合の理由になっていませんね。
275デフォルトの名無しさん:04/09/12 15:28:25
>>271
もちろん、環境ごとにクラスを置き換えというのは、可能な限り避けるべきだ。
276デフォルトの名無しさん:04/09/12 15:29:12
>>274
だから別ファイルにしておけばいいだろ。
277デフォルトの名無しさん:04/09/12 15:31:15
>>274
で、>>267のようにした場合にどんな不都合があるんだ?
278デフォルトの名無しさん:04/09/12 15:33:08
>>265
不都合とかメリットとかの話をしているわけではないのだが。。
本来の使い方になってるの?ということ。
279デフォルトの名無しさん:04/09/12 15:35:56
javaが「頭でっかちの言語」と言われるゆえんですね
あーたのしい。
280デフォルトの名無しさん:04/09/12 15:37:53
Choiceのメソッドを使おうとしても、
シンボルを…と出て使えないのはなぜですか。
本のサンプルプログラムまんまなのにどこがおかしいんだか…。
281デフォルトの名無しさん:04/09/12 15:39:22
>>280
お前が検索もできない無能だからですよ
282デフォルトの名無しさん:04/09/12 15:41:58
>>281
不具合でもあるってことですか、検索できないからだっていうのは。

このスレ、どこが初心者歓迎なんだか。
283デフォルトの名無しさん:04/09/12 15:42:13
シンボルを解釈処理できません の検索結果のうち 日本語のページ 約 296 件中 1 - 50 件目 (0.36 秒)

ここはJava初心者スレであって、PC初心者やインターネット初心者はスレ違い・板違いです
284デフォルトの名無しさん:04/09/12 15:44:12
>>283
>ここはJava初心者スレであって、PC初心者やインターネット初心者はスレ違い・板違いです
それ次からテンプレに加えようぜ。
285デフォルトの名無しさん:04/09/12 15:46:52
意味不明。
もちっとPCやJavaを勉強する前に日本語を勉強したら?(プ
286デフォルトの名無しさん:04/09/12 15:48:24
クラスパス上にあるモノは「いったん書いたらどこでも動く」べきでは?

という疑問は、いまだ解消されず。。

クラスパスってコーディング時に静的な情報をおいておくところでなかったけ?
クラス定義とか。メッセージとか。

配布時に動的に変わるものがあっていいの?
ふつう、君たちがダウンロードしてくる、他のプロダクトって、クラスパスの外部に設定だ居るあるでしょ?
それに疑問を持ったことないの?
287デフォルトの名無しさん:04/09/12 15:48:34
>>285
意味不明なのは、お前が無能だからですよ
288デフォルトの名無しさん:04/09/12 15:49:30
>>286
×クラスパスの外部に設定だ居るあるでしょ?
○クラスパスの外部に設定ファイルあるでしょ?
289デフォルトの名無しさん:04/09/12 15:50:10
>>280
この質問から読みとれるのは、お前が釣りだと言うことだけだ。
290デフォルトの名無しさん:04/09/12 15:51:35
死ね>>280
死ね>>280
死ね>>280
死ね>>280
死ね>>280
死ね>>280
死ね>>280
291280:04/09/12 15:54:29
結局だれもわからないんですね。
はぁ…
やっぱり本にバグがあるとしか思えませんね
292デフォルトの名無しさん:04/09/12 15:55:16
>>288
クラスパスの外部に設定ガイル居るでしょ?
293デフォルトの名無しさん:04/09/12 15:56:57
>>292
面白いけど居ません。
294デフォルトの名無しさん:04/09/12 15:57:16
この世で一番嫌いな数字が280になりました。
295デフォルトの名無しさん:04/09/12 16:10:04
おまいら、んあんおためにシステムプロパティがあると思ってんだ?
プロパティで与えた場所から読むようにすれば問題なし。
なんでもそうやってるだろ?
JAVA_HOME
CATALINA_HOME
ANT_HOME
...
Eclipseも暗黙で同じことをやってるよ
296デフォルトの名無しさん:04/09/12 16:10:32
>>294
ちょうど今出かけようと財布を見たら、ちょうど280円だったorz
297デフォルトの名無しさん:04/09/12 16:11:56
>>296
じゃ、財布に「100万円入っています。開けてはいけません。」
っていう封印シール張っておくことをお薦めする。
298デフォルトの名無しさん:04/09/12 16:24:59
>>239
>>241
またまたありがとうございます。

 自分は、処理を分散するために、VMに処理能力共有機能をインプリメント
できないかなって考えていて、そのための実現方法を探していたんです。
 まだまだ、知識もないので無茶かもしれませんが、がんばってみます。


299デフォルトの名無しさん:04/09/12 16:29:47
>>295
与え方の議論ではないのだが。。
300デフォルトの名無しさん:04/09/12 16:30:46
>>217 >>298
もしネットワークを通じた処理能力分散などに興味があれば
JXTAなどについて調べてみるのも面白いかもね。
301デフォルトの名無しさん:04/09/12 16:41:38
すいません
スクロールペインにパネルを組み込んだのですが、
スクロール処理がされません。
スクロールバーは表示されるのですが、・・・

//jpanel
setBackground(Color.CYAN);
setSize(1000,1000);
setLayout(null);

//jpanel main
jpMain = new JPanel();
//jpMain.setLocation(0,0);
jpMain.setSize(1000,1000);
jpMain.setLayout(null);
jpMain.setBackground(Color.YELLOW);

//jscrollpane
jSP = new JScrollPane(jpMain);
jSP.setBounds(5,5,400,300);
jSP.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jSP.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jSP.setViewportView(jpMain);
add(jSP);
302デフォルトの名無しさん:04/09/12 16:44:55
>>286
> 配布時に動的に変わるものがあっていいの?

問題なし。

> クラスパスってコーディング時に静的な情報をおいておくところでなかったけ?

違う。
どこからそんな定義が出てくるんだ?

> メッセージとか。

メッセージはロケールによって変わる。
あとからメッセージリソース追加すれば、そのメッセージリソースが使われる。
環境ごとに違う。
303デフォルトの名無しさん:04/09/12 16:49:10
ということで、リソースバンドルは環境によって変わるような仕組みになっていて、あとからクラスパスに追加すれば使えるしくみになっているので
「クラスパスってコーディング時に静的な情報をおいておくところ」
という認識が誤りという結論で。
304デフォルトの名無しさん:04/09/12 17:02:47
>>288
> クラスパスの外部に設定ファイルあるでしょ?

そんなのどうやって判断するんだ?
305デフォルトの名無しさん:04/09/12 17:05:18
>>302
メッセージはロケールによって異なるというのと、
ここでいう環境ごとに違うというのとは違う。
複数ロケールのメッセージを提供する場合、
配布時は静的であって、どのロケールのメッセージが使用されるかは、
実行時に動的に決まる。

ここで問題としたいのは、配布時に動的な情報のこと。
306デフォルトの名無しさん:04/09/12 17:07:07
>>304
開発時に使えばわかるでしょ?
307デフォルトの名無しさん:04/09/12 17:08:52
普通にユーザのホームディレクトリにユーザ設定保存してますが?
308デフォルトの名無しさん:04/09/12 17:10:56
>>305
だから、あとから*_ja.propertiesを追加するのは「配布時は静的」というのと違うと思うんだが。
環境によって異なる情報をクラスパス上のファイルに記述することには全く問題ないが。
ライブラリのバージョンも変わることがあるわけだし、たとえばログみたいにクラスパス上にあるライブラリによって挙動が変わるものもあるわけだし。
309デフォルトの名無しさん:04/09/12 17:11:30
>>307
ここではユーザー設定ではなくて、環境依存パラメータの設定の話。
310デフォルトの名無しさん:04/09/12 17:12:26
>>306
EclipseなりNetBeansなりが、実行時にどこにクラスパスが通ってるか簡単に把握できるか?
311デフォルトの名無しさん:04/09/12 17:13:54
>>306
単純な実行可能JARでも、解凍しないとどこにクラスパスが通るかわからんが。
312デフォルトの名無しさん:04/09/12 17:14:36
>>308
それは、配布し直していることと同じでしょうが。
自分で修正して、自分に配布しただけのこと。
313デフォルトの名無しさん:04/09/12 17:15:26
>>312
は?
314デフォルトの名無しさん:04/09/12 17:15:49
>>310
エクリプスは実行時のその手の情報を表示できるよ
315デフォルトの名無しさん:04/09/12 17:16:15
環境依存パラメータって具体的には何?
316デフォルトの名無しさん:04/09/12 17:17:06
>>315
たとえばデータベースの接続先。
317デフォルトの名無しさん:04/09/12 17:17:33
>>315
たとえば、DBの接続情報、他システム連携情報、ロギング設定など。
318デフォルトの名無しさん:04/09/12 17:20:13
それって、システムプロパティで設定した値からの相対で取得するでしょ
クラスパスに入ってる必要全くないと思うけど
319デフォルトの名無しさん:04/09/12 17:20:37
>>267のようにプロパティファイルに環境情報書くようにして、実行可能JARのマニフェストでそのファイルにパスが通るようにするのがだめだと言ってるらしい。
それより、クラスパスが通らないところにおいて、リソースの仕組みを使わずにファイルとして読み込むべきだと。
そんなバカな。
320デフォルトの名無しさん:04/09/12 17:21:38
>>318
むしろ、わざわざリソースを使わずに取得する必要がまったくない。
321デフォルトの名無しさん:04/09/12 17:25:01
大概はそういうのってリソース使ってないと思うけど?
322デフォルトの名無しさん:04/09/12 17:30:43
>>319
リソースでないものにリソースの仕組みを使っているというところが気持ち悪い。
使えるからといって使うのが妥当ということにはならない。

だから、誰かが指摘していたが、環境設定情報とメッセージを同一ファイルに安易に
書いてしまう輩が出没したりする。
323デフォルトの名無しさん:04/09/12 17:32:28
単純なプログラムで、起動スクリプト使わず実行可能JARの場合、リソースにするのが手軽で目的にかなっていると思うのだが。
324デフォルトの名無しさん:04/09/12 17:35:01
>>323
そんなお手軽プログラムなら、リソースだとか環境設定ファイルがどうこうなど考えなくてよい。
きちんと考えるなら、どうあるべきかという話をしている。
325デフォルトの名無しさん:04/09/12 17:35:48
Hibernateの設定は、デフォルトだとクラスパスの頭からとってくるね。
326デフォルトの名無しさん:04/09/12 17:35:59
質問させてください

Java3Dでアニメーションを作成していて
一定時間毎に座標を指定して移動させたいのです。

Threadをたてたのはいいのですが、
repaint()の代わりになる上書き命令をどのようにすればいいのかがわかりません。

いい方法はないでしょうか?
327デフォルトの名無しさん:04/09/12 17:39:07
>>325
お手軽な設定方法がそうだということでは?と解釈しているが。
328デフォルトの名無しさん:04/09/12 17:39:51
>>326
Timerつかってみそ。
329デフォルトの名無しさん:04/09/12 17:42:36
>>327
だからといって、ここでわめいてるやつがいうように、クラスパスにそういう情報を記述してはいけないのだとしたら、悪いデフォルトだということになるね。
クラスパスに設定情報を記述してはいけない、というのは、どこからくるんだか。
330デフォルトの名無しさん:04/09/12 17:43:17
こだわらなければクラスパスでリソースとして設定情報置くのは、とくに問題ないのではないかと。
331デフォルトの名無しさん:04/09/12 17:52:25
Java3Dで完結させたければBehavior使うんじゃないの?
332デフォルトの名無しさん:04/09/12 17:52:55
Cayenneの設定もクラスパスの頭だしな。
一般的に推奨されないことであれば、いろいろなライブラリでデフォルトではクラスパスから設定ファイルを探しに行くというのは、これほど広まってないでしょ。
333デフォルトの名無しさん:04/09/12 17:55:36
Cayenneの設定はクラスパスにないといけないんじゃないかな。
334デフォルトの名無しさん:04/09/12 18:04:20
設定ファイルをクラスパスに置くってのはお手軽でいいかもしれないけど
セキュリティホールにもなるしある程度規模が大きいシステムではまずやらないよ
335デフォルトの名無しさん:04/09/12 18:07:10
>>329
サンプルコードがそのまま使えないのと同様、
世に出回っているデフォルトが必ずしも妥当である保証はない。

なので、そういうところを疑ってみてもいいのではないか?

>>330
こだわる必要がないときには、お手軽さを優先することには同意している。
こだわるときにはどうするかという話をしたい。
336デフォルトの名無しさん:04/09/12 18:08:20
>>332
初学者のためには敷居が低いほうが広まるからであろう。
337デフォルトの名無しさん:04/09/12 18:09:06
セキュリティーホールというのは、どういう場合?
今回の話の流れとは別の問題だけど。
338デフォルトの名無しさん:04/09/12 18:09:50
>>336
Cayenneの設定がクラスパスにないといけない、というのはどうよ?
真偽も含めて。
339デフォルトの名無しさん:04/09/12 18:11:30
>>336
使ったことないからわからんが、設定ファイルとはXML形式なのかな?
識者コメントきぼんぬ。
340デフォルトの名無しさん:04/09/12 18:13:52
>>336
しかし、非推奨になっているのなら、多くのライブラリでクラスパスから設定をとってくるようにはなってないだろと。
とりあえず、「クラスパスに環境依存ファイルを置くべきではない」というのは違うというのは結論として出てるのかな。
その上で、規模が大きいときや、信頼性・柔軟性が求められるときには別の設定にした方がいいという話?
341デフォルトの名無しさん:04/09/12 18:14:48
>>339
XML形式だな。
342デフォルトの名無しさん:04/09/12 18:21:58
>>337
クラスパス上に置いちゃうと基本的にデフォルトクラスローダーで
ロードされるから、底にそのアプリで使われているクラスと同じ名前の
クラスファイルを配置されてしまうと、クラスパスによっては
そっちがロードされてしまう。
だから、通常はクラスパスに置かないか、独自のクラスローダで
ロードする。サーブレットコンテナなんかは後者の考えだよね。
343デフォルトの名無しさん:04/09/12 18:22:40
>>340
多くのライブラリが、クラスパスから取るべきか否かといった議論がなされているわけではないだろう。
特に出始めのものは。

プロダクトが成熟していくにしたがって、外部化の方向をたどっているように感じる。
カイエンが成熟しているとはいえそうもないが。。

「クラスパスに環境依存ファイルを置くべきではない」の是非は結論付けられていないでしょ?
344デフォルトの名無しさん:04/09/12 18:25:23
HibernateとかCayenneのようなツール系でも、
たとえばDBの情報を盗みだしてしまうようなコードを
吐くクラスと入れ替えられたらヤバーでしょ。
345326:04/09/12 18:56:53
>>328
>>331

アドバイスありがとうございます!

TimerもBehaviorもいろいろ調べて試してみましたが
さっぱりわかめですよ ハハー
346デフォルトの名無しさん:04/09/12 19:19:09
>>343
話が別の方向に行きつつあるから、中締めしたい。
少なくとも議論の発端の「クラスパスには環境によってかきかえるものを置いてはいけない」というのは、そうとはいえないんだよね?
347デフォルトの名無しさん:04/09/12 19:36:29
>>346
お手軽プログラムではそうとはいえない。
大規模プログラムでは、結論は出ていない。
348デフォルトの名無しさん:04/09/12 19:41:43
あと、論点はずれるが、クラスパス・ルートにリソース置くのはよくないよな。
ソースはパッケージで名前空間を独立させているのに、
リソースだけ独立させないのはいかんだろ。
349デフォルトの名無しさん:04/09/12 20:11:33

ImageReaderでアニメーションGIFデータを読み込んだのですが
各ページの表示X座標とY座標を取得する方法が分かりません。
どうすれば取得できるのでしょうか?
350デフォルトの名無しさん:04/09/12 21:33:59
>>301
この間AppletでJScrollPane使ったから、サンプル投下します。汚いですけどね。

Dummy = new JPanel();
Panel = new JPanel();

Dummy.add(DrawMapPanel);
ScrollPanel = new JScrollPane(Dummy);

this.add(ScrollPane);

この構成はJScrollPane->JPanel1(Dummy)->JPanel2(Panel)ってなってます。
なんで、Panelを重ねるかと言うと、JScrollPaneに載ったJPanelのサイズは
JScrollPaneのサイズに勝手に上書きされてしまうからです。※
よって、一個どうでもいいPanelを挿入してやると。
※私の場合は、JScrollPaneのサイズ>JPanelのサイズの時に上書きされました。
逆だと問題なし。よって参考にならないかも。

あと、私も質問を。
Appletからweb鯖のファイルを選択できるダイアログを作りたいんですが
JFileChooserもFileDialogもURIが通らなかったので、何か良い解決策をご存知の方は是非。
351デフォルトの名無しさん:04/09/12 21:38:54
>>350
与えたURI起点のファイル構造を提供するFileSystemViewを作ると
いいんじゃないでしょうか?

よく読んでないけどこんなことやってる人がいます。
ttp://www.crocodile.org/listok/2/WhatDoesFileSystemViewView.shtml
352350:04/09/12 22:43:56
>>351
FTP使ってってのは考えていたけど、ここまでしっかりしたリソースがあるとは。
情報提供サンクス!
353デフォルトの名無しさん:04/09/12 23:17:30
Swing で マルチスレッド を使用し、 親スレッド(?) のボタンを押したら 子スレッド が起動し、
子スレッド から 親スレッド(?) の Label の内容を変更したいのですが、上手く行きません。
良い例などありますでしょうか。
354デフォルトの名無しさん:04/09/13 00:18:38
>>353
よし、それじゃあいいことを教えてやろう。
よく聞け。
耳の穴かっぽじってよく聞け。

そ れ は マ ル チ ス レ ッ ド で は な い
355デフォルトの名無しさん:04/09/13 00:24:22
ボタンにスレッドが関係あんのか?
356デフォルトの名無しさん:04/09/13 00:30:32
>>353
どう上手くいかないのかわからないと答えようがない
サッパリわからんってこと?
357デフォルトの名無しさん:04/09/13 01:09:19
interface Tekito{
 void print();
}
class ClassTekito{
 Tekito tsukuru(){
  InnerImpTekito tkt = new InnerImpTekito();
  return tkt;
 }
 class InnerImpTekito implements Tekito{
  void print(){
   System.out.println("適当適当");
  }
 }
}
public class Main{
 public static void main(String[] args) {
  ClassTekito clstkt = new ClassTekito();
  Tekito tkt = clstkt.tsukuru();
  tkt.print();
 }
}

-----------------------------------------------------------------
<こんなエラー>
ClassTekito.InnerImpTekito の print() は Tekito の print() を実装
できません。スーパークラスでの定義より弱いアクセス特権 (public)
を割り当てようとしました。

↑なぜでしょうか?教えていただきたいのですが…。
358デフォルトの名無しさん:04/09/13 01:13:26
スーパークラスでの定義より弱いアクセス特権 (public)を割り当てようとしたからって書いてあるだろ。
日本語読めないのか?
359デフォルトの名無しさん:04/09/13 01:15:02
>>357
Tekito#printがpublicなのに、InnerImpTekito#printがパッケージプライベートだから。
360デフォルトの名無しさん:04/09/13 01:16:49
クラスTekito・・・>>125・・・・>>34・・・またおまえか!
abstractの次はinterfaceか!
361デフォルトの名無しさん:04/09/13 01:20:09
***************************************

  Tekito を NG ワードにブチ込みましょう

***************************************
362353:04/09/13 01:36:21
いやですね、Swing 使って鯖作ろうとしてるんですけど、
子スレッドで鯖を起動するようなってるんですよね。
んでその子スレッドから Swing の Label の内容を変更しようとしても、
うまくいかないんです。help me
363353:04/09/13 01:41:38
すみません、もう一回書きます
┌────────────┐
├────────────┤
│                  │
│   ┌─────┐     │
│   │ 鯖起動  │     │
│   └─────┘     │
│                  │
│   ステータス(JPanel)    │
└────────────┘

こういう感じで、ボタンを押すと子スレッドが起動し、ServerSocketで鯖として活動します。
んで、その子スレッドから、 JPanel の内容を変更したいのですが、
うまく行きません。(コンパイル時にエラーは出ないのですが、実際には反映されません)
いい例などありませんでしょうか・・
364デフォルトの名無しさん:04/09/13 01:45:00
365353:04/09/13 01:59:33
>>364
英語読めませんすみません
BorlandのJBuilder使ってますはい
366301:04/09/13 02:09:41
>>350さん

ご丁寧なご返答本当にありがとうございます。

JPanelの部分で、setSizeをsetPreferredSizeに変えたら、
JScrollPane内でスクロールできるようになりました。

どうも、setSizeとsetPreferredSizeの違いがわかりませんねw
両方の違いがあいまいすぎる。

だれかその両方の違いについて教えていただけないでしょうか?
両方ともサイズの変更を行うものなんでしょうけども。。。
367デフォルトの名無しさん:04/09/13 02:15:15
368デフォルトの名無しさん:04/09/13 02:18:23
>>365
それは、読んでないから読めないだけだ。
嫁。単語くらい調べろ。
369306:04/09/13 02:19:10
>>367
ありがとうございます。
英語力は低いのですが、
なんとなく読めるので、読んでみたいと思います。

どうも。
370366:04/09/13 02:19:36
>>367
ありがとうございます。
英語力は低いのですが、
なんとなく読めるので、読んでみたいと思います。

どうも。
371デフォルトの名無しさん:04/09/13 02:20:56
>>353
SwingUtilities.invokeLaterあたりの問題だろう。

>>366
Swingコンポーネントのサイズを変えるためには
基本的にsetPreferredSizeを使いsetSizeは使わない
(というかたいていは使っても意味がない)。
なおsetPreferredSizeも「適切なサイズ」を設定するだけで実際のサイズは
レイアウトマネージャが決めるから、設定したサイズそのものになるとは限らない。
372366:04/09/13 02:24:38
>>371
なるほど。
レイアウトマネジャー絡みなために、推奨されるサイズってことになってるわけですね。

ありがとうございました。
373デフォルトの名無しさん:04/09/13 02:39:18
>>370
技術文書は、文学的な表現もないし、専門用語は日本語でも結局カタカナだから、読みやすい。
嫁。
374デフォルトの名無しさん:04/09/13 02:52:36
javaに限った質問ではないんですが、

左上の座標(x,y)、縦横の長さ(a,b)がわかった長方形が2つあるとして
それらが重なっているか否かを判定するのに、いいアルゴリズムは無いですか?
375デフォルトの名無しさん:04/09/13 02:53:29
>>374
アルゴリズムっていうか、普通に判定すれば?
376デフォルトの名無しさん:04/09/13 02:55:57
>>374
普通にって、
fillRect(x1,y1,a1,b1)
fillRect(x2,y2,a2,b2)
の2つがあるとすると

どうすればいいんでしょうか・・
377375:04/09/13 02:56:27
xについて重なる・含まれる・重ならない考えると6通りあって、yについても6通りあるから、適当に表作って考えれ。
378デフォルトの名無しさん:04/09/13 03:08:31
まー、この程度自力で考え出せ、と言いたいところだが、
直方体の交差は
public java.awt.Rectangle#intersects(Rectangle) (メソッド名末尾のsを忘れずに)
で分かる。
境界値をどう扱うかはちゃんと確認すること。


379デフォルトの名無しさん:04/09/13 03:12:52
>>378
直方体?3D?w
380378:04/09/13 03:17:00
>>379

長方形orz
381374:04/09/13 03:19:09
>>378
そんなメソッドがあったんですか・・・
ありがとうございます
今自分で考えてたのは
物凄い長いのになってしまいまして・・
382デフォルトの名無しさん:04/09/13 03:33:30
>>381
378のを使わなくても < と && 使えば一行でかけるだろ。アホ?
383374:04/09/13 03:41:49
アルゴリズムを自分で考えたら
((atr[0]-40<p2.x)&&(p2.x<atr[0]+30))||((atr[1]-40<p2.y)&&(p2.y<atr[1]+5))
というのになってしましました。

>>376の表記に準えると
x1 = atr[0], y1 = atr[1], a1 = 30, b1 = 5
x2 = p2.x, y2 = p2.y, a2 = 40, b2 = 40
と思って下さい
384374:04/09/13 03:42:23
とにかく、>>378さんのでスマートに解決しました
ありがとうございました。
385デフォルトの名無しさん:04/09/13 04:04:32
KeyEventで
日本語キーボードの
*
:け
と書いてあるキーにあたるのは
VK_????
の何ですか?
386デフォルトの名無しさん:04/09/13 04:10:19
>>385
VK_け
387デフォルトの名無しさん:04/09/13 04:12:14
>>386
やってみましたがコンパイルエラーになりました
あなたの環境ならこれで通るんですか?
388デフォルトの名無しさん:04/09/13 04:21:08
>>387
JavaDocみればわかる程度の質問だから、煽ってみた。
やってみるところがかわいいね。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/event/KeyEvent.html
389デフォルトの名無しさん:04/09/13 04:25:31
アスタリスクのスペルが間違ってただけでしたorz...

しかも、コンパイルは通ってもキーは反応しません
仕方がないので他のキーを使います
ありがとうございました
390デフォルトの名無しさん:04/09/13 04:28:17
>>389
それは天気ーのじゃないの?
VK_COLONで。
391386:04/09/13 04:31:37
もしだめだったらば、とりあえず数値確認して
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/constant-values.html#java.awt.event.KeyEvent.VK_SHIFT
から対応するものを探す。
392デフォルトの名無しさん:04/09/13 06:18:14
質問です。
フレームの中の上部にボタン2つ、下にボタンによって切り替えたいPanelがあります。
下のPanelは初期画面にタイトルの様なPanelを用意して上部のボタンを押すとタイトルのPanelがそのボタンの内容のPanelに切り替える様にしたいのですが
うまいやり方が見つからず、前スレにてカードレイアウトについて載っていたのでカードレイアウトで挑戦してみたのですがうまくいきません・・・。
ttp://www.ics.kagoshima-u.ac.jp/edu/ProgramingJava/Gui/s4.html
自分のやりたいことはこのようなことなのですが、
ActionListenerに適用できませんと言われてしまいます。(ボタンを押すという所が上記ページではよくわからなかったので
馴染みのあるActionListenerに置き換えたのがうまくできない理由なのですが・・・)
こういう場合カードレイアウトでやるのがベストなのでしょうか?
それともこのケースにふさわしい他の方法があるのでしょうか?
ほんと初心者的な質問ですいません。アドバイスお願いします。
393デフォルトの名無しさん:04/09/13 09:36:47
高速コンパイラjikesを使って、コンパイルしようと思ってるのですが、
jikes.exeを sdk1.4.2/binに入れてコマンドウプロンプトでjikes 〜.java
を入力するとエラーが出てしまいます。

何か設定を変えないといけないのでしょうか?もしjikesの使用方法について
わかりやすく書かれてるサイトがあれば紹介していただけないでしょうか?
394デフォルトの名無しさん:04/09/13 10:28:03
>>393
よくわかってないのなら標準のつかえ
コンパイル速度以前の問題だろ
395デフォルトの名無しさん:04/09/13 10:39:17
エラーの内容を書かないと言うことは、さては>>393は釣りだな?
396デフォルトの名無しさん:04/09/13 10:50:59
終わらない夏
397393:04/09/13 11:56:55
http://www.mit.msn.to/devel/jikes.html
を見て試してみると、コマンドウプロンプトではなんとかコンパイルできました。
で実際はeclipseのantで行いたいのですが、以下のビルドファイルを実行したら
<project name="FirstProject" default="compile">
<property name="build.compiler" value="jikes"/>
<target name="compile">
<jikes srcdir=".." destdir="..">←
<bootclasspath>
<pathelement path="c:/j2sdk1.4.2_05/jre/lib/rt.jar"/>

<pathelement location="c:/j2sdk1.4.2_05/jre/lib/rt.jar"/>
</bootclasspath>
</jikes>
</target>
</project>
←の部分について Could not create task or type of type: jikes.というエラーが発生してしまいます。
<property name="build.compiler" value="jikes"/>という記述を書けばエラーにならないと思うのですが、
ビルドファイルの内容にどこか誤りがございますでしょうか?

よろしくお願いします。

398デフォルトの名無しさん:04/09/13 14:06:15
>>397
ant の coreタスクや optionalタスクに jikes ってあったっけか?
もしくは自分で jikesっつーカスタムタスクを作った、とか?

jikes 使う場合は javac タスクで
<javac srcdir=".." destdir=".." compiler="jikes" executable="{jikesのパス}" />
とかするんじゃなかったっけ?

間違ってるかも知らんので ant のマニュアル見てちゃんと調べてね。
399デフォルトの名無しさん:04/09/13 16:24:26
>>397
build.compilerプロパティでjikesを指定してもいいし、
398のように<javac>タスクの属性で指定してもいい。
でも使うタスクはあくまでも<javac>

あと余計なお世話だけどeclipse3.0からantは新たにVMを別プロセスで立ち上げ
その上で走らせるのがデフォルト設定になった。だからそのままjikesを使うと
ビルドのたびにVMプロセスが一つ、jikesのプロセスが一つ生成されるよ。
もし速いからjikesにするとか思ってるのなら、ちゃんと設定しないと
へたしたらかえって遅くなるかも。さらにうっかりプロジェクトのプロパティで
builderを殺してなかったらさらに時間かかる。
400デフォルトの名無しさん:04/09/13 17:28:52
Eclipseのコンソールってantから呼び出したjavacが吐くエラーメッセージには
対応していてスタックトレースのソースファイル名と行番号
のとこクリックするとエディタで開いてくれたりするけど、
jikesが吐くエラーメッセージには対応してたっけ?
401デフォルトの名無しさん:04/09/13 17:30:06
こんばんわ
JPanelのグラフィック処理を自前で処理したいので、JPanelを派生させて独自クラスを作りました。

class MyJPanel extends JPanel implements ActionListener{
public MyJPanel() {
}

protected void paintComponent(Graphics g) {
}
}

で、このpaintComponentは、通常だとJavaVMが描画更新の際に、自動的に呼び出されますが、
こちら側(プログラマー側)でpaintComponentを呼び出したいのですが、どのようにすればいいのでしょうか?
402401:04/09/13 17:49:44
何かのAPIを呼び出すことで、
paintComponentに描画イベントが通知されるみたいな。
403デフォルトの名無しさん:04/09/13 17:52:25
repaint
404353:04/09/13 17:53:48
何度もすみません。
http://up.isp.2ch.net/up/0df242bd41da.zip
これをコンパイルしてもエラーは出ないのですが、ボタンを押しても反映されません。
解決方法ご教授下さいませ・・
405デフォルトの名無しさん:04/09/13 18:24:05
>>404
それ、runというインスタンスのjLabel1と
frameというインスタンスのjLabel1は別物。
406デフォルトの名無しさん:04/09/13 18:24:44
>>404
絶対一度ちゃんとした入門書読むべき
407404:04/09/13 18:30:03
>>405さん
なるほど・・

>>406さん
了解しました。やはりちゃんとした本を一冊でも買うべきですよね。。
408デフォルトの名無しさん:04/09/13 18:30:42
>>404 それスレッド分ける必要ないとか、インスタンス
って知ってる?とかは誰か指摘してくれるとして...
フレームを画面の真中に出す処理とかclose処理とかが
古臭いのがなんかや。404くらいのレベルで下位互換性
考えるとは思えないからどっかからコピペだと思うんだけど...
409デフォルトの名無しさん:04/09/13 18:31:15
>>407
キミ、前スレにもいただろ・・・
まったく同じ失敗してるし、スレッドのテストにしては、
意味不明なテストの仕方だし・・・
もう訳わかんないよ・・・
410デフォルトの名無しさん:04/09/13 18:33:08
>>408
これ、JBuilderで作ったんだと思うよ。
前スレでもそう言ってたし、
俺もJBuilder持ってるから分かる。
411デフォルトの名無しさん:04/09/13 18:35:09
へぇ、JBuilderってオブジェクトの遅延生成しないんだ。
412404:04/09/13 18:41:22
標準出力になら、うまく出力してくれるんですけどね・・・
前スレでも書きましたが、インスタンス化しても変化ありません・・・
413デフォルトの名無しさん:04/09/13 18:42:25
うるせーバカ。ちゃんと勉強してくるまで二度と現れるなハゲ。
414デフォルトの名無しさん:04/09/13 18:44:12
俺思うんだけどさ・・・
よく分かってないのにJBuilderとか使うのって良くないと思うんだよね。
まずは自分でウインドウが作れて、ボタンが作れてって、
そういうの理解して、不精するため(?)にJBuilderみたいなツール使えばいいと思う。
よくわかんないけど、JBuilderさんがウインドウ作ってくれるみたいなのだと、
上達も遅れるだろうしさ・・・
俺もJBuilderがキャンペーン中とかで安くて買ったけど・・・
まだJAVA勉強中の身だから、JBuilder使わずエディタ&javacで勉強してるよ・・・
415デフォルトの名無しさん:04/09/13 19:49:23
Jpanelに表示されてる画像をjpgやbmpなどで画像ファイルに保存する方法
知ってる人がいたら教えてくれませんか?

paintcomponentメソッドを使って描画したものです。
416415:04/09/13 22:24:31
あ・・なんとかできました。

ご迷惑をおかけしました。
417デフォルトの名無しさん:04/09/13 22:26:53
あの、ここ1週間くらいプログラミングするにあたっていろいろな言語学んだのですが
javascriptはjavaはjavaでもぜんぜん違うそうですが、どうなんでしょうかね?
やはりC#やjavaに負けてしまいますかね??
418デフォルトの名無しさん:04/09/13 22:30:15
>>417
負け組
419デフォルトの名無しさん:04/09/13 22:31:39
>>417
用途が違います。
420デフォルトの名無しさん:04/09/13 22:31:57
>>417
何がしたい?
何が作りたい?
HPでちょっと見てくれよくしようとしてるだけ?
だったら、JavaScriptは最適だよ。
ブラウザによって挙動が違ったりするけど。

C#やJAVAに負けるかと聞かれると・・・
まぁ、C#やJAVAの方が範囲広い分負けてるのかなぁ〜・・・
あまり勝った負けたってのはないと思うけどね・・・
その時々で合った言語使う物なんだし・・・
421デフォルトの名無しさん:04/09/13 22:35:14
Rhinoってのもあるしな。
JavaScriptがブラウザだけのものじゃないってこった。
422デフォルトの名無しさん:04/09/13 22:35:24
>>417
C# や Java に負けるとか、そんなもんじゃない。目的が異なる。
Javascript はブラウザ上でのちょっとした処理がメイン。
C# や Java はサーバ上で業務ロジックを組んだり、
スタンドアロンアプリケーションが構築できる。

Java や C# はシステムのメイン言語となるが、Javascript は
おまけ。
423デフォルトの名無しさん:04/09/13 23:11:51
>>みなさんアドバイス有難うございます。
Javascriptはなんだか簡単でコンパイルなど無くてなんか謎でしたがスッキリしました。

用途。これ重要ですよね。今はC#かJavaどちらを本格的にやろうかと迷っていますが
C#はMSがこれからすごく力を入れていきそうですし、Javaは世界のプログラマさんですし。。
昔NESのパソコンがはやっていた頃はまさかMSがこんなにシェアを占めるなんて思っていた人は
少ないと思います。時代の流れは恐ろしいものですよね。MSもこう考えると微妙なとこがありまして
やはりJavaを本格的にやろうと思ってたりします。
思ったこと書いてたら意味不明に(ny
424デフォルトの名無しさん:04/09/13 23:32:27
NESってファミリーベーシック?
425デフォルトの名無しさん:04/09/13 23:47:37
OpenNMSを日本語化した人いる?
426デフォルトの名無しさん:04/09/13 23:48:29
NECの間違い・・・かな

DOSもシェアかなりとっていたし、その前のBASICもシェアかなりもっていたことから
数十年MSはプラットフォームトップシェアとしてなんにかわってないよ
427デフォルトの名無しさん:04/09/14 01:24:21
>>424
ファミコンのことですよ。
Nintendo Entertainment System
428デフォルトの名無しさん:04/09/14 03:35:34
質問です。
javaで、1秒ずつカウントダウンするスレッドを作りたいのですが

public void run(){
try{
while(true){
Thread.sleep(1000);
t = t-1;
time.setText(Integer.toString(t));
}
}
catch(Exception e){}
}

とすると、setTextがある行でスレッドが止まってしまいます(これをコメントアウトすると動く)
tはint型変数、timeはJLabelです
どうして止まってしまうのでしょうか
429デフォルトの名無しさん:04/09/14 03:42:27
repaintとかでへんなことしてない?
430デフォルトの名無しさん:04/09/14 03:43:25
へんなことって・・エッチなこと?
431デフォルトの名無しさん:04/09/14 03:48:45
>>414
んなときはJBuilderの変わりにEclipse + Ant使うのがおすすめ
432デフォルトの名無しさん:04/09/14 06:14:21
>>429
Appletのイベントループを止めてるからだよ。
メインスレッドの中でwhileの無限ループなんて作っちゃダメ。
ちゃんとマルチスレッドにしる。
433デフォルトの名無しさん:04/09/14 08:39:40
>>428
エラー書いてないけど実行したときにtimeがNullなんじゃねの
434デフォルトの名無しさん:04/09/14 12:52:28
サブクラスをスーパークラス型で生成することがありますが、
どんなメリットがあるのでしょうか?
例えば、

class A{
int hoge;
void foo(int aho){
hoge = aho;
}}

class B extends A{
double voke;
void unchi(double dadada){
voke = dadada;
}}
のとき
A nullpo = new B(0.72);
とか
435デフォルトの名無しさん:04/09/14 13:10:26
>>414
ウィンドウ出すことやjavacコマンドの使い方なんかは本質的なことではないので、JBuilderやNetBeansでまずプログラムに親しむのもあり。
436デフォルトの名無しさん:04/09/14 13:21:40
>>434
> サブクラスをスーパークラス型で生成することがありますが、
> A nullpo = new B(0.72);
「スーパークラス型で生成」はしてないね。
スーパークラス型に代入はしてるけれど。

サブクラス型で新たにアクセス可能なメソッドやフィールドを宣言してないか、
それらを使う必要が無いと判断すれば、スーパークラス型に代入しても問題ないね。
たぶん、そーゆー場合はスーパークラスのメソッドの何れか(あるいは全部)がオーバーライドされてるんだろう。

例: InputStream in = new FileInputStream("hoge.txt");
437デフォルトの名無しさん:04/09/14 13:51:00
>>414
RADツールとIDEは別のものという認識をもつと
選択肢広がるのにね。
438デフォルトの名無しさん:04/09/14 13:52:15
またインターフェースプログラミングについての話か・・・
これJavaに限った話じゃないし、前スレで荒しがでたしな

VB.netでもc#でもオブジェクト指向がまとうな言語なら基本中の基本で
Javaだけに関した話ではないからオブジェクト指向の勉強した方がいいと思われ
439デフォルトの名無しさん:04/09/14 19:57:49
List list = new ArrayList();
Listのインタフェースで定義されている機能しか使わない場合

インタフェースを狭める方向に記述したほうが保守性が上がる
440デフォルトの名無しさん:04/09/14 20:06:36
>>439
本質は多態だろ?
441デフォルトの名無しさん:04/09/14 21:53:07
>>440
>>434 の質問の本質は多態以前のもっと基本的なところだと思われ。
442デフォルトの名無しさん:04/09/14 23:02:12
変数を「オブジェクトそのもの」と思うからインタフェース型の変数に代入する意味がわからなくなる。
変数は「オブジェクトを操縦するリモコン」だと思えばよい。変数の型はリモコンの種類。
443デフォルトの名無しさん:04/09/14 23:09:20
オブジェクトと言う言葉の適応範囲は広い。
インスタンスもオブジェクトだし、配列もオブジェクト。
厳密には変数もオブジェクトだし。

それを考えると、>>442の話は少しおかしく思う。
444デフォルトの名無しさん:04/09/14 23:09:47
また不要な例えを出して混乱させる奴が出てきたよ・・・・
445デフォルトの名無しさん:04/09/14 23:15:02
>>442
リモコン? 俺はよけい分からん。
interface は「界面仕様」のみを表し、class は「界面仕様」+「実装」を表す。
変数宣言の左側の「型」は、「界面仕様」としてしか使われず「実装」は無関係。
446デフォルトの名無しさん:04/09/14 23:17:32
>>443
インスタンスそのものや配列そのものはオブジェクトだが変数はオブジェクトじゃない。
(プリミティブ型が云々という揚げ足取りじゃなくて)。
447デフォルトの名無しさん:04/09/14 23:24:25
クラスのオブジェクトやメソッドのオブジェクトはあるけど、変数のオブジェクトはないね。
448デフォルトの名無しさん:04/09/14 23:37:02
うーん???
変数って、どの変数でも宣言すると、this.hogeのような形になるでしょ。
これが変数がオブジェクトだっていう証拠じゃないの?
何か俺勘違いしてるかえ?
449デフォルトの名無しさん:04/09/14 23:41:48
変数はプリミティブ型と参照型(オブジェクト)の 2 種類しかないだろ。
450デフォルトの名無しさん:04/09/14 23:49:26
うーん・・・何か納得いかないなぁ〜・・・
たとえば、hoge.set()ってのは、
スタティックが付いてればクラスメソッドであり、
付いてなければ、インスタンスメソッドだよね。
大きく言えば、オブジェクトだよね。
だとすれば、hogeクラスのhage変数は、
スタティックが付いてればクラス変数であり、
なけらばインスタンス変数。
それもオブジェクトだよね・・・?

だから、やっぱ大きく言ってみれば全部オブジェクトなんじゃないのかな〜っと・・・
個々で見るんだたら、メソッドはオブジェクトじゃないって言ってるような物じゃない?
451デフォルトの名無しさん:04/09/14 23:55:16
うーん・・・
やっぱ、オブジェクトと言えば全部がオブジェクトなんだと思う。
オブジェクトと変数という分け方が間違ってるっぽい。
分けるなら、クラスとメソッドと変数だと思う。
で、どれもがオブジェクト。
452デフォルトの名無しさん:04/09/14 23:57:04
>>450
いや、だからクラス変数であろうがインスタンス変数であろうが、
プリミティブ型であればオブジェクトじゃないって。

で、static での変数アクセスはクラスオブジェクト経由にアクセス、
インスタンス変数へのアクセスはインスタンス(オブジェクト)経由でアクセス。
453デフォルトの名無しさん:04/09/15 00:02:47
>>452
なんでプリミティブ型はオブジェクトじゃないの?
454デフォルトの名無しさん:04/09/15 00:03:37
>>452
うーん???
アクセスの仕方(参照型)でオブジェクト???
だったら、クラスメソッドはオブジェクトじゃないって事にならない?
finalが付いたクラスもオブジェクトじゃなくなるって事?
455デフォルトの名無しさん:04/09/15 00:05:56
>>453
言語仕様
456デフォルトの名無しさん:04/09/15 00:07:36
>>455
それは要するに狭義のオブジェクトだろ。
今の話は広義のオブジェクトだ。
457デフォルトの名無しさん:04/09/15 00:07:38
Javaの場合オブジェクトとはObjectクラスのインスタンスとして扱うものだ。
Javaには変数をObjectクラスのインスタンスとして扱う仕組みはない。
よって変数はオブジェクトではない。
458デフォルトの名無しさん:04/09/15 00:08:46
>>456
それいえば、if文も+演算子もオブジェクトといえるね。
で、その議論になにか意味があるの?
459デフォルトの名無しさん:04/09/15 00:13:35
>>458
>>443の「オブジェクトと言う言葉の適応範囲は広い。」について、
広義において変数もオブジェクトに含まれる。
JavaのObjectという狭義においては含まれない。
ただそれだけだが?議論も糞も無い。
460デフォルトの名無しさん:04/09/15 00:13:41
どんどん混乱してきたぞ・・・
たとえば、どのクラスもObjectを継承してるよね。
で、変数を宣言すると、スタティックだろうが違おうが、
そのクラスの変数になるよね。
って事は、その変数はObjectクラスの内にいてる訳で・・・

>>458の話も面白い。
たしかに、if文やらfor文やらもオブジェクトになるんじゃないかな〜・・・
たしかに不毛な議論かもしれないけど、結構面白いと俺は思った。
461デフォルトの名無しさん:04/09/15 00:13:47
{ 〜 }がオブジェクトであってもいいしね。
extendsとかimplementsとかstaticとかpublicとか、いろんなものがオブジェクトであってもよくなるね。
で、なにか意味が?
462デフォルトの名無しさん:04/09/15 00:15:01
あーわかんない!
頭痛い。もう寝とく事にする。
463デフォルトの名無しさん:04/09/15 00:15:18
>>460
オブジェクトの中にあるからといって、それがオブジェクトになるわけではない。
464デフォルトの名無しさん:04/09/15 00:16:59
>>463
はっきりいって、それじゃ、オブジェクトとはどの実態をオブジェクトと言うの?
参照している変数をオブジェクトと言うの?
465デフォルトの名無しさん:04/09/15 00:18:01
単に、>>451なんかが言ってるのが広義のオブジェクトで、
>>452の言ってるのが狭義のオブジェクトで、
お互い定義の異なる「オブジェクト」について語ってるから噛みあってないということを指摘してるだけなんだが、
そこで意味が?とか聞かれてもハァ?としか答えようが無いな。
466デフォルトの名無しさん:04/09/15 00:19:24
オブジェクト指向言語の場合、構文要素のすべてをオブジェクトとして扱うことが可能だ。
ただし、実際問題としてそれでは処理効率が悪いので、何をオブジェクトとして扱って、なにをオブジェクトとして扱わないか、取捨選択することになる。
Javaの場合、クラスやメソッドはオブジェクトだけど、変数はオブジェクトではない。{〜}もオブジェクトではない。
C++の場合、クラスやメソッドもオブジェクトではない。もちろん変数もオブジェクトではない。
467デフォルトの名無しさん:04/09/15 00:21:26
>>465-466
あ・・・なんかちょっと分かった気がする・・・
オブジェクトって言葉のちゃんとした定義がないのが悪いんだよ・・・
468デフォルトの名無しさん:04/09/15 00:22:55
よくみたら、フィールドの場合はオブジェクトだな。
ローカル変数はオブジェクトではない。
publicやらabstractやらはオブジェクトだ。
469デフォルトの名無しさん:04/09/15 00:23:59
>>467
ちゃんとした定義は、それなりにある。
けども、言語によってなにがオブジェクトかは異なる。
470デフォルトの名無しさん:04/09/15 00:25:08
ここは Java スレだ。
471468:04/09/15 00:26:39
さらによく見たら
 java.lang.ref.Modifier
にはstaticメソッドしかないから、修飾子はオブジェクトとして扱われることはなさそうだな。
472デフォルトの名無しさん:04/09/15 00:27:26
それじゃ・・・
変数はオブジェクトな時とオブジェクトじゃない時とがあって、
その時々でオブジェクトなのか違うのかが変わるって事で。
ひとつおりこうになりました。
473デフォルトの名無しさん:04/09/15 01:40:13
JAI(Java Advanced Imaging,)について書かれた日本語の本、
誰かしりませんかー。
洋書はあるけど、日本語はないっぽくて
474デフォルトの名無しさん:04/09/15 01:57:06
>>472
静的に決まるから、「その時々」ではないよ。
475デフォルトの名無しさん:04/09/15 02:00:27
感覚的には変数がオブジェクトってのは変な感じがするなあ…
例えインスタンスメンバの変数であっても、それは単なるオブジェクトから伸びる矢印。
オブジェクトと言えるのはあくまでその矢印の先にあるオブジェクト。
476デフォルトの名無しさん:04/09/15 02:04:22
>>475
変な感じがしようがしまいが、オブジェクトとして扱えるんだから仕方ない。
それに、その論で行くのであれば、「矢印」の集合である配列がオブジェクトであるのもおかしいね。
というか、クラスがオブジェクトであるのもおかしいし、メソッドがオブジェクトであるのもおかしいね。
477デフォルトの名無しさん:04/09/15 02:08:51
言ってみれば、ワサビの無い寿司と同じって事だな!
シャリは寿司じゃない。
ワサビも寿司じゃないし、魚の身も寿司じゃない。
全部合わせて寿司なんだ。
もちろん、ワサビが抜けたのも寿司じゃない。
478デフォルトの名無しさん:04/09/15 02:18:34
>>476
いいことを教えてやろう。
>>475よりも>>476の方がずっと頭が悪い。
479デフォルトの名無しさん:04/09/15 02:24:18
>>476
クラスやメソッドがオブジェクトで云々は、もともとそういう感覚では言ってないんでね。
クラスを表すメタクラスのインスタンスはオブジェクトだけど、クラスと言う物はオブジェクトとみなしてない感じ。
# あくまでそういう感覚の見方ってだけだよ。

で、矢印の集合がオブジェクトってのは、おかしくない。
ってかもともとの言い方で、クラスのインスタンス自体矢印の集合なんだから。
もっと言い換えたら矢印の集合(矢印の起点)として、それ自体が参照先となりえるような空間に存在できる物がオブジェクト。
# あくまでそういう感覚の見方ってだけだよ。
480デフォルトの名無しさん:04/09/15 02:29:45
オブジェクトが節(ノード)で、メンバとなっている参照型変数は別の節を指す矢印。
値型のメンバ変数は、節に含まれる(節の一部)な感じ。
節はオブジェクトだが、値型のメンバ変数は節に含まれているだけで
オブジェクト(節そのもの、それ自体が節)ではない。
# あくまでそういう感覚の見方ってだけだよ。
481デフォルトの名無しさん:04/09/15 02:38:13
>>460
SmalltalkではJavaで言うif文もfor文も実際にオブジェクトです。
482473:04/09/15 02:48:39
483デフォルトの名無しさん:04/09/15 02:49:55
>>479
オブジェクトとして扱える要素がオブジェクトで、オブジェクトとして扱えない要素がオブジェクトではない。
# あくまで、そういう感覚の見方ってだけだよ。
484デフォルトの名無しさん:04/09/15 02:50:41
おまえらまだやってたのか
485デフォルトの名無しさん:04/09/15 02:54:39
変数がリモコンって見方、そんなに悪くもないと思うけどな…
486デフォルトの名無しさん:04/09/15 03:34:38
>>485
おれも悪くないと思う。
487デフォルトの名無しさん:04/09/15 03:37:02
>>482
タイミングわろし。
488デフォルトの名無しさん:04/09/15 03:53:11
>>485-486
ただし、配線がつながってる有線のリモコンだ。
大丈夫、必要に応じて繋ぎ変えることもできる。
489デフォルトの名無しさん:04/09/15 04:03:25
>>488
オブジェクトから変数はたどれないから、有線じゃないんだよ。
490デフォルトの名無しさん:04/09/15 04:41:09
有線て言葉自体に双方向の意味があるのか?よく知らんが…
一方向の有線てことで。
491デフォルトの名無しさん:04/09/15 04:48:09
>>490
線がつながってたら、自分につながってる線をたどっていくことができるだろ。
無線だと、自分に信号を送るものを特定できない。
だから、あえて「一方向の有線」というわけのわからないものを持ち出すなら、無線でいい。
492デフォルトの名無しさん:04/09/15 05:09:07
というか、別に紐でつながってるって話をしてるんじゃないんだから、
つながっている以上たどる事はできるとかそういう問題じゃないと思うが…
まあ、別にこだわってるわけでもなんでもないので分かればなんでもいいけど。
493デフォルトの名無しさん:04/09/15 06:15:33
>>492
わざわざ「ただし」として有線にしたわけだから。
494デフォルトの名無しさん:04/09/15 08:39:02
>>458
> >>456
> それいえば、if文も+演算子もオブジェクトといえるね。
Smalltalkか?
495デフォルトの名無しさん:04/09/15 09:26:58
リモコンだと特定のオブジェクトに結びついてる感じがでないかな?
ってちょっと思ったもんで。
まあ、リモコンが特定のオブジェクトの方を向いてるって事でいいかなって。
496デフォルトの名無しさん:04/09/15 09:57:59
こんにちは

Javaで配列内の要素をソートしてくれるクラス・APIはありますか?
初歩的な質問ですいませんがご返答よろしくお願いいたします。
497デフォルトの名無しさん:04/09/15 10:11:32
>>496
java.util.Arrays
498デフォルトの名無しさん:04/09/15 10:43:16
JavaWebStartのキャッシュはどこに入りまつか?

キャッシュのJarを直接実行すると、クライアントJavaとして動作してくれるんでしょうか?
その場合はセキュリティはクライアントJavaのポリシーファイルになるんだろうか。
499デフォルトの名無しさん:04/09/15 11:13:50
java で 配列から複数の数字をランダムに取り出すには どうしたら???
良いのか誰か教えて
500デフォルトの名無しさん:04/09/15 11:15:23
>>498
他のプラットフォームでは知らないけど、Windowsなら
${user.home}\.javaws\cacheに、サーバ及びポートごとに分けて配置される。
(${user.home}はここではSystem.getProperty("user.home")取得できるフォルダを指す)

キャッシュ内のjarの実行だけど、JavaWebStartのAPIを使っている場合は
通常のクライアント用アプリとしては動かない。
ある程度の規模のアプリならローカルファイルの参照とか
ネットワークリソースの取得とかやってるはずなので、
基本的にJWSのランチャ経由以外で動くことはないと思っていいんじゃないかな。

まあ、JavaWebStartはオフライン実行もできるようになってるんだし、
そんなに重要な問題ではないと思う。
501デフォルトの名無しさん:04/09/15 11:20:42
サンクス>>500
何でも知ってる方が居られるんでつね。
もう1件教えて下さい。
JavaWebStartでサーバのDBとやり取りする場合は、
やっぱサーバからHTTPでファイル貰うんでつよね?

RMIやJDBC接続なんかしたら、
ファイアーウォールにブロックされるだけですよね?
502デフォルトの名無しさん:04/09/15 12:05:27
>>499
ランダム = 配列.get複数の数字();

配列から複数の数字をランダムに取り出しました
ていうか意味不明瞭
503デフォルトの名無しさん:04/09/15 12:39:57
ごめんなさい>>502
1〜9までの数字を、ダブらないように3回ランダムに取り出したいんですよ。
で!配列に1〜9までの数字を格納して、数字を取り出したいんですけど???
504U ◆CZtFsGiu0c :04/09/15 13:10:39
>>501
別にサーバのやりとりはどのようにしようと構わない。
ファイアウォール云々は環境依存。イントラネットでデータベースやアプリケー
ションサーバに直接つなぐことも普通にある。というかJWSとは無関係ですね。
505デフォルトの名無しさん:04/09/15 13:20:35
>503
整数なら配列にする必要もないかも…
506デフォルトの名無しさん:04/09/15 13:29:56
>>503
int[] digit = new int[9];
for(int i=0; i<digit.length; ++i) digit[i]=i+1;
Set digitSet=new TreeSet();
while(digitSet.size()<3) {
Integer value=new Integer( digit[(int)(Math.random()*9+1)] );
digitSet.add(value);
}
Iterator it=digitSet.iterator();
int num1=((Integer)it.next()).intValue();
int num2=((Integer)it.next()).intValue();
int num3=((Integer)it.next()).intValue();
507デフォルトの名無しさん:04/09/15 14:00:55
int[] digit = new int[9];
Rundom r = new Rundom();
for(int i = 1; i <= digit.length; ++i) digit[i] = i;
for(int i = 0; i < 500; ++i){
 int idx1 = r.nextInt(digit.length);
 int idx2 = r.nextInt(digit.length);
 int tmp = digit[idx1];
 digit[idx1] = digit[idx2];
 digit[idx2] = tmp;
}
int num1 = digit[0];
int num2 = digit[1];
int num3 = digit[2];
508デフォルトの名無しさん:04/09/15 15:49:39
>>501
なんでwebstartのアクセス方法でファイアウォールの話がでてくるんだろう・・・

jnlpAPIとサンドボックスの勉強しなされ
509デフォルトの名無しさん:04/09/15 16:23:46
>>501
別に、サーバーがローカルにあるんだったら、RMIでもJDBCでも構わないと思うが。
510デフォルトの名無しさん:04/09/15 16:24:10
あ、ローカルっていうのは、ローカルネットワークね。
511デフォルトの名無しさん:04/09/15 17:31:18
超初心者の質問で申し訳ないのですが

テキストボックスに文を入力し、テキストフィールドに出力するとして
出力された文を3行で表示する場合、改行の仕方はどうすれば良いのでしょうか?
512デフォルトの名無しさん:04/09/15 17:38:31
>>511
テキストフィールドは改行を扱いませんが。
っていうか、ちゃんとコンポーネントのクラス名書いて。
513デフォルトの名無しさん:04/09/15 18:53:49
Java3Dで球や立方体にJPEGファイルから読み込んだテクスチャを貼り付けてみたんですが、
見た感じで数100〜数1000色程度に減色した様な表示になってしまいました。
原因に心当たりありませんか?
514デフォルトの名無しさん:04/09/15 19:54:53
import java.io.*;
public class NULLPO{
public static void main(String[] args) thorws IOException{
BufferedReader br = new BufferedReader(new FileReader(args[0]));
BufferedWriter bw = new BufferedWriter(new FileWriter(args[1]));
String str;
while((str = br.readLine()) != null){
String hoge = str.toLowerCase();
bw.write(hoge);
bw.newLine();
}
bw.flush();
br.close();
bw.close();
}}
で、入力ファイルに
Λ_Λ
(´∀`) <ぬるぽ
って書いて実行して見ると
耳が変になっていました。
515514:04/09/15 19:56:10
ごめんめっちゃずれたわ。ってか
小顔になってしもたw
516デフォルトの名無しさん:04/09/15 23:32:46
Javaは簡単だという人は天才かはたまたバカかの2種類の人間しかいないと
思えるついこのごろですが、Javaを根本から理解できる本を紹介していただ
けないでしょうか?哲学、鉄則、格言…何かいいん本はないでしょうか?
517デフォルトの名無しさん:04/09/15 23:49:06
518デフォルトの名無しさん:04/09/16 00:56:57
マウスボタンの2と3はどこの部分なのでしょうか?
2が右クリックなのですか?
519デフォルトの名無しさん:04/09/16 01:02:00
OpenNMSって使ったことある人いる?
日本語化なんてされてないよね?
520デフォルトの名無しさん:04/09/16 03:54:38
>>516
別にJavaに限らず、ちゃんとした言語は全部難しい。
Javaだったら、仕様書を日本語に訳したのあったと思うけど・・・
その辺読んでみれば詳細などもわかるんじゃない?
普通にJava使う分で、そこまで知る必要ないとは思うけどね。
フレームワークなどの本の方が役に立つっぽい。
521デフォルトの名無しさん:04/09/16 05:58:03
ある文字列のうち、指定したバイト数分の文字列を返すようなことはできますか?
例えば「あいうえお」という文字列で、
そのうちの4バイト分の「あい」のみを取得したい場合です。
substringでは指定した文字数分を返すのでこれではできませんでした。
522デフォルトの名無しさん:04/09/16 06:04:31
>>521 getBytes()する。
523デフォルトの名無しさん:04/09/16 11:58:36
>>521
char何個で目的のバイト数になるかが既知の場合、
char何個で目的のバイト数になるか試行錯誤して良い場合は getBytes() で解決。

でなければ無理。Java の char は 16ビットで unicodeの一文字だから、
他のエンコーディングで何バイトになるかは変換してみんとわからん。
(実際にはchar1個==1文字とは限らんけど)
524デフォルトの名無しさん:04/09/16 12:40:19
学校の課題なんですが、分からないので是非解答してください、お願いします。
問題 
 入力されたテキストの内容を操作するjavaアプレットを作成せよ。ここでいう操作とは、文字列の置換を指す。
 javaアプレットは以下の機能を兼ね備えているものとする。
     1.テキストは、テキストボックスに入力される。
     2.被置換文字列、置換文字列はテキストとは別のテキストボックスに入力される。
     3.置換結果は、別のウィンドウに表示される。
 javaのことさっぱりなので、よろしくです。学校の課題なんですが、分からないので是非解答してください、お願いします。
525デフォルトの名無しさん:04/09/16 12:42:37
Java の宿題ここで答えます。
http://pc5.2ch.net/test/read.cgi/tech/1089527630/
526デフォルトの名無しさん:04/09/16 12:46:33
ジャバネット高田
527デフォルトの名無しさん:04/09/16 15:34:07
ツマンネ



なのに何故だろう。
あのBGMと、高田社長がJavaの解説をしてる様子が頭から離れないんだ。
528デフォルトの名無しさん:04/09/16 15:44:43
>>524
激しくマルチだな
529デフォルトの名無しさん:04/09/16 19:22:56
DoJa 3.5でswingのjavax.swing.JLayeredPaneみたいに階層を指定する方法ってある?
例えばアプリで、ソフトキーでメニュー表示させた後にメニュー閉じるとメニュー開く前に戻る感じ。
メニュー開く前のユーザの入力を一々記憶して、メニュー閉じたらそれを復元する方法しか俺には思いつかんorz
530デフォルトの名無しさん:04/09/16 20:54:05
ファイルやディレクトリの絶対パスってどうやって取得するんでしょうか?
531デフォルトの名無しさん:04/09/16 21:03:47
532デフォルトの名無しさん:04/09/16 21:16:47
>>524
夏休み、遊びたおすから・・・
復習しれ。
533529:04/09/16 21:17:46
ごめん、ちょっとスレ違いだった。。
534デフォルトの名無しさん:04/09/16 21:21:26
SDKの最新バージョンをDLしてJavaの入門書を買ったんですが、SDK1.4しか解説してありませんでした
1.4と最新バージョンの違いを教えてください
また不具合はないでしょうか?
535デフォルトの名無しさん:04/09/16 21:22:37
>>534
そういうことは違いを見つけてからで直してこい。
536デフォルトの名無しさん:04/09/16 21:59:06
>>534
最新バージョンというのが、5.0のRC版のことなら下のページのリンク先を参照。
Java 2 Platform Standard Edition 5.0 概要
http://java.sun.com/j2se/1.5.0/ja/

もし最新バージョンというのが1.4.2_05のことなら、
1.4.2と1.4の違いは、日本語で解説しているページもあったとおもうが。
537デフォルトの名無しさん:04/09/16 22:16:31
Windows上で、Swingなアプリに、MS PAINTからクリップボード経由で画像データを渡す方法ってあります?
538デフォルトの名無しさん:04/09/16 22:32:34
>>537
たぶん可能。
// クリップボードに画像があれば、それをImageインスタンスにして返し、
// クリップボードに画像がなければ、nullを返す。
public static Image getClipboard() {
Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);

try {
if (t != null && t.isDataFlavorSupported(DataFlavor.imageFlavor)) {
Image text = (Image)t.getTransferData(DataFlavor.imageFlavor);
return text;
}
} catch (UnsupportedFlavorException e) {
} catch (IOException e) {
}
return null;
}

Getting and Setting an Image on the System Clipboard (Java Developers Almanac Example)
http://javaalmanac.com/egs/java.awt.datatransfer/ToClipImg.html

このあたりも参考に。
Clipboard (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/datatransfer/Clipboard.html
画像を転送する
http://black.sakura.ne.jp/~third/system/java/Gjava57.html

539デフォルトの名無しさん:04/09/16 22:38:09
このスレッドを見ていて、いつも思うことなのだが、

Swingスレッドやデスクトップ系Javaスレッドを別個に設けるよりも、
iモードスレッドのように、 このJava質問スレッドを
初心者向け質問と、それ以外のJava質問・雑談に分けたほうがまだいいかもしれない。

// まあ、過去に上級者向けか中級者向けかのスレッドが現実に作られ、
// そして、過疎化したことはあったわけだが。
540デフォルトの名無しさん:04/09/16 22:42:20
初心者無視スレはネタスレだと理解していたが......
541デフォルトの名無しさん:04/09/16 22:42:39
おまえはスレ立ててみたいだけちゃうんかと
542デフォルトの名無しさん:04/09/16 22:54:14
>>541
抽象クラスについての話題で毎回100も200もレスが消費するスレッドとは別に、
クライアントサイドやデスクトップのJavaについて語る専用のスレッドが欲しいだけだよ。
JavaWebStartとかRbotoクラスとか。
543デフォルトの名無しさん:04/09/16 22:59:50
>>542
http://pc5.2ch.net/test/read.cgi/tech/1062271447/966-
いらねーってことで話はついているはずだが?
544デフォルトの名無しさん:04/09/16 23:13:43
サーブレットスレがあるんだからクライアントサイドスレがあってもいいとは思うよ。
流行らないだろうけど。
545デフォルトの名無しさん:04/09/16 23:16:45
このスレで代用しる。

Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1068349883/
546デフォルトの名無しさん:04/09/16 23:21:40
まああるこたあるが

Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/
547デフォルトの名無しさん:04/09/16 23:23:33
>>546
3つ上のレスも見ないのか? >>543
548530:04/09/16 23:24:03
遅ればせながら>>531さんトンクス
549デフォルトの名無しさん:04/09/16 23:26:43
Java 雑談スレはあったほうが良いような気がしてきた。
550デフォルトの名無しさん:04/09/17 13:56:19
socket接続してるとこにsignal飛ばして止めたりできますか?

Redghat9、jdk1.4でつ
551デフォルトの名無しさん:04/09/17 13:57:29
質問の意味がわからん
552デフォルトの名無しさん:04/09/17 14:04:06
>>551
俺もあまりわかってないからなぁ・・・
Javaで実行中のプロセスに対してsignal送れるかどうか。
…でわかる?
553デフォルトの名無しさん:04/09/17 14:08:53
>>552
kill -HUP とかをしたいってことか?
Javaでサーバプロセス常駐させて、そこにコマンド送ったら、そのサーバプロセスがシステムコマンドを発行するとかどうよ?
554デフォルトの名無しさん:04/09/17 14:23:33
>>553
低能はすっこんでろ
555デフォルトの名無しさん:04/09/17 14:23:40
ぜんぜん中身しらずにCommons Daemonを勧めてみる
556デフォルトの名無しさん:04/09/17 14:25:56
>>554
そうファビョるなよ、学生さん?
557デフォルトの名無しさん:04/09/17 14:34:34
>Redghat9
何より先にこんな名前のOSは聴いたことないんだが・・・
と思いつつググッて見たらいっぱい引っかかるではないか
558デフォルトの名無しさん:04/09/17 15:18:19
>>557
超ゆーめーですよ。
ポリフォーリズムなみ。
559デフォルトの名無しさん:04/09/17 16:24:42
String allmember = null;
ResultSet rs1 = dba.executeQuery("SELECT * FROM test.member WHERE year='"+year+"'");
while (rs1.next()) {
allmember = rs1.getString("s_id");
ResultSet rs2 = dba.executeQuery("SELECT MAX(no) as id_max FROM test.msg WHERE code='"+allmember+"'");
rs2.next();
int id_max = rs2.getInt("id_max");
id_max = id_max+1;
}

このようなプログラムを実行すると
java.sql.SQLException: Operation not allowed after ResultSet closed
というエラーが発生してしまいます。
while(rs1.next())で複数回繰り返されるはずだったとしても、
1回目を実行し終わって、2回目を実行しようとするところでエラーが発生してしまいます。

ResultSetを二つ同時に使うことはできないんでしょうか?
560デフォルトの名無しさん:04/09/17 16:26:44
>>559
dbaがjava.sql.Statementであると仮定して、Statementオブジェクトをもう一つ用意。
561デフォルトの名無しさん:04/09/17 16:27:26
てかPreparedStatement使え。
562デフォルトの名無しさん:04/09/17 16:27:57
>>559
dbaのオブジェクトを共有できないので
dba1、dba2みたいに二つ作ってあげればいいよ
563U ◆CZtFsGiu0c :04/09/17 18:25:51
>>559
というか、一回のSQLで取ってこれるのでは?

SELECT code, MAX(no) as id_max FROM test.msg inner join test.member
on test.msg.code = test.member.s_id
where test.member.year = xxxx
group by code
564559:04/09/17 22:52:27
解決しました。ありがとうございます。

>>560>>562
オブジェクトを二つ作ることで動作しました。
>>561
PreparedStatementを使って作り直してみました。
同じSQL文を何度も実行する場合はPreparedStatementが良いんですね。
>>559
他の部分との関係で、そのSQL文ではうまく動作しませんでした。
565デフォルトの名無しさん:04/09/18 00:35:55
>>564
一回実行するだけでもPreparedStatementが良い
566デフォルトの名無しさん:04/09/18 00:40:48
>>565
そうそう、SQL文のサニタイジングもしてくれるしね。
567デフォルトの名無しさん:04/09/18 00:46:04
>>561
相手のレベルに応じてレスを変えるくらいの頭は持とう。
568デフォルトの名無しさん:04/09/18 01:12:07
>>567
実際にPreparedStatement使って解決してるんだからいいじゃん。
569デフォルトの名無しさん:04/09/18 09:38:57
>>567と同じく俺も心配してたが
ループの内側でPreparedStatementを生成してる希ガス
570デフォルトの名無しさん:04/09/18 12:14:47
おはようございます。質問あるんですがよいでしょうか。
JavaApplet 作ってるんですが、出来上がったリソース類をまとめ
ようとしています。具体的にはクラスファイルのあるディレクトリに
parts というディレクトリをつくり、その中に画像、au、midi ファイル
を全部まとめて放り込んで、jar cf test.jar test.class parts で
jar にまとめました。この状態でブラウザから呼び出すと、画像の
リソースはきちんと読み出せるんですが、au と midi が正常に読み
出せないっぽくて困ってます。以下、読み出し部分です。

private AudioClip[]sound = new AudioClip[1] ;
private AudioClip[]midi = new AudioClip[1] ;
try {
 sound[0] = getAudioClip(getCodeBase(),"parts/sound.au") ;
} catch (Exception e) {
 System.out.println("取得に失敗しました。") ;
 sound[0] = null ;
}
try {
 midi[0] = getAudioClip(getCodeBase(),"parts/midi.mid") ;
} catch (Exception e) {
 System.out.println("取得に失敗しました。") ;
 midi[0] = null ;
}

この書式だと、jar にまとめない状態だときちんと再生されるんです
けど、jar にまとめると再生できなくなってしまいます。midi だけ
でなく、au も再生できないので、midi がサポートされていないという
問題とも違うと思われるのですが・・・

是非お知恵拝借したく。できれば、Sun 、Microsoft 両方の JVM で
変更無しで動く方法だと嬉しいのですが。よろしく御願いします。
571デフォルトの名無しさん:04/09/18 12:17:20
>>570
Exceptionは自己流のエラーメッセージに置き換えないで、
ちゃんとスタックトレースが読めるように処理しようね。
特にデバッグ中は。
572570:04/09/18 12:19:48
570 です、連続投稿ご容赦。
加えて、Java アプレットで midi を「正確に」再生させる方法で
簡単な方法はありますか?570 の書式だと、Sun の JVM では一応
再生はできるもののテンポがギクシャクした感じになってしまうし
Microsoft の JVM では再生すらされません。ゲームのBGMなの
で細かい制御はできなくてもいいのですが、再生、停止、ループが
安定してできれば十分です。よろしく御願いします。
573デフォルトの名無しさん:04/09/18 12:50:48
>>569 お前が >>567 だろが!
574デフォルトの名無しさん:04/09/18 12:58:22
>>570
sound[0] = getAudioClip(getClass().getResouce("/parts/sound.au")) ;
ではどう?
575デフォルトの名無しさん:04/09/18 13:10:36
>>570
いつも、new JarFile("filename").getInputStream(new JarEntry("filepath"))使ってました。
こんなに簡単に読めたんですね.....
576デフォルトの名無しさん:04/09/18 15:42:40
MicrosoftのJVMはau形式のファイルしか再生できなかったとおもう。

auコンバータなどで検索をかければ、
wav形式のファイルをau形式のファイルに変換するフリーウエア等がみつかるとおもうので、
midiをwavやauに変換するフリーウエア等も組み合わせてau形式のファイルにするのがいいかと。
577デフォルトの名無しさん:04/09/18 15:46:24
>>572
ちゃんとした音楽ならJavaSoundしかない
MSVMはもはや新規インストールできないわけで切り捨ててもいいだろう
578デフォルトの名無しさん:04/09/18 16:09:24
MacOS9以前や、マイクロソフトのJVM等はあきらめるというのも、
一つの考えかたかもしれない。
かなしいが、OSX以外のMacで動く、最新のJVMなんてなさそうだしなあ。
579デフォルトの名無しさん:04/09/18 16:51:24
Javaつかえねー
580デフォルトの名無しさん:04/09/18 16:54:05
>>579
       |
       |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ   そんなエサで(ry
 _ ム::::(,,゚∀゚)::|   
ヽツ.(ノ:::::::::.:::::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
581デフォルトの名無しさん:04/09/18 17:56:58
macのvmはapple製なの?そこで信用できないんだけどまた独自仕様満載なわけ?
582デフォルトの名無しさん:04/09/18 19:10:53
???
583デフォルトの名無しさん:04/09/18 20:17:01
ちょっと知恵を貸してください。

MVCモデルに基づいてプログラムを作ろうと、まずMODELから作り始めました。
そしてMODELの中で、
System.out.println("処理中です\n");
みたいな感じでメッセージがコンソールで出るようになってたんです。

プログラムが一通りできて、swingでVIEWを作り始めたのですが、
先ほどの、「System.out.println("処理中です\n");」をJTextAreaにログみたいに表示させることにしました。

ここで、問題が・・・
最初、staticなメソッドで
public static PrintText(String message);
みたいなメソッドを作って、先ほどの、「System.out.println("処理中です\n");」
をそのまま
「Hoge.PrintText(("処理中です\n");」
と置き換えて作りました。

しかし、後に、VIEWにstaticにMODELがアクセスする構造だと、
複数のインスタンスを作るような状況だと困る状況が出来たのです。
(すべてのVIEWインスタンスで、JTextAreaが共通になる)

さて、
public static PrintText(String message);
メソッドを何とかしなくてはならない訳ですが、
MODELの中の該当クラスに全てVIEWへの参照を持たせてTextAreaへアクセスをするようにするとかなり汚い作りですよね?
こういう場合どうすればいいと思いますか?

困っています。アドバイスお願いします。
584デフォルトの名無しさん:04/09/18 20:24:44
>>583
>public static PrintText(String message);
>メソッドを何とかしなくてはならない訳ですが、
>MODELの中の該当クラスに全てVIEWへの参照を持たせてTextAreaへアクセスをするようにするとかなり汚い作りですよね?

なぜ汚いと思うのかが謎。
それよりもPが大文字な方が汚いと俺には思える。

それにしても処理中ですというログが出るということは
モデルだけでなくコントローラも含んでると思われる。
ログをビューと思うのもおかしいしそもそものMVCとしての設計もおかしい。
585デフォルトの名無しさん:04/09/18 20:25:05
>>583
>System.out.println("処理中です\n");
とか
>「System.out.println("処理中です\n");」をJTextAreaにログみたいに表示
とかのコードをモデルの中に埋め込むという時点で道を誤ってないかな。
586583:04/09/18 20:39:20
う〜ん(汗)やっぱ汚い作りですよね。
実はコントローラの概念がはっきり分かってないせいもあります。

>>584
>なぜ汚いと思うのかが謎。
>それよりもPが大文字な方が汚いと俺には思える。

すみません。元のコードはPは小文字です。
だってほぼ全てのMODELにVIEWへの参照が埋め込まれるんですよ?
という事はMODEL単体では動かない訳ですよ。汚いと思います。

ログをVIEWに乗せる前に「ログのモデル」が必要な気がしてきました。


>>585
じゃあ、ログ的なメッセージを出力するにはどうしますか?
587デフォルトの名無しさん:04/09/18 20:43:59
JAVA Applet と JAVA Script の違いを教えてください
588デフォルトの名無しさん:04/09/18 20:46:56
ジャイアント馬場とジャイアントコーンくらい違います。
589583:04/09/18 20:47:00
あ、ひょっとしてlog4jみたいに、
ログ専用クラスを作って、それから出力先への参照を持たせればいいのかな?
その場合ログ専用クラスはstaticになっちゃう結果は同じか・・(汗)
どうすればいいかわからないです。
590デフォルトの名無しさん:04/09/18 20:51:01
portlet と sqlet の違いを教えてください。
591デフォルトの名無しさん:04/09/18 20:55:38
デフォルト と デフォルメ の違いを教えてください。
592デフォルトの名無しさん:04/09/18 21:13:50
>>583
なんだかよくわかりませんがMVCに拘りたいのなら、
イベントとリスナーの仕組みを使って、
イベントクラスでラップしたログをModelからViewへと飛ばしてみてはどうでしょうか。
593デフォルトの名無しさん:04/09/18 21:47:35
>>583
public interface Logger {
public void printMessage(String s);
}
public class SystemOutLogger implements Logger{
....
}
public class TextAreaLogger implements Logger{
....
}

interface Loggee {
public void setLogger(Logger logger);
}
public class LoggeeObject implements Loggee {
private Logger logger;
public void setLogger(Logger logger){ this.logger = logger; }
void log(String s){ if (logger != null) logger.printMessage(s); }
}

public class AnyModel extends LoggeeObject {
anyMethod(){
....
log("ぬるぽ");
}
}
594デフォルトの名無しさん:04/09/18 22:33:41
>>593
きれいだなあ。
少なくとも俺には汚くは見えない。
595583:04/09/18 22:39:32
明快なお答えありがとうございます。
でも回答を待っている間にMODELに全部VIEWの参照を埋め込んじゃいました(汗)
すっげー汚いです・・。

>>592
ログを飛ばすという事は、やはりMODELが飛ばし先の参照を持つことになります。
ログクラスをMODELで持って、ログクラスの変更をviewに通知することで、
viewがログクラスを読みに行って画面更新されるのが理想的なMVCモデルな気がします。が、面倒です。

>>593
ありがとうございます。
綺麗な設計ですね。参考にさせていただきます。

というか、私はまだまだ勉強が必要ですね(´∀`;)MVC関連の資料をあさって見ます。
596592:04/09/18 23:12:47
>>595
抽象的なイベントリスナをModelに登録するようにすれば、
それほどは汚くはならないとおもうよ。
ただ、あなたにはそれが汚く感じられているのかもしれないが。
597デフォルトの名無しさん:04/09/18 23:34:05
http://www.jaga.jpn.org/game/BTank/
このゲームでチートをしようと思ってるんですが、書き換えた時にフリーズして無理でした
どうしてですか?ヒントだけでもいいので教えて下さい
598デフォルトの名無しさん:04/09/18 23:43:53
>>597
氏んで詫びろ
ここをそんな下らないことで汚すな
599デフォルトの名無しさん:04/09/19 01:02:40
http://www.bomberman-online.com/
ここのチートを教えて下さい
600デフォルトの名無しさん:04/09/19 02:01:09
windowsでantを使っています。

antでビルドを行う際、jarファイルが別パーティションにあるので、classpathに
F:\Program Files\hoge.jar
といったように絶対パス指定を行いたいと思っているのですが
どのように記述すればよいでしょう?

<classpath>
<pathelemant path="F:\Program Files\hoge.jar"/>
</classpath>

だとエラーが出てしまいます…
601デフォルトの名無しさん:04/09/19 05:35:13
Apacheの Axis で 簡単なWebサービスをテストしているのですが、
jwsファイルでextendsは使えないのでしょうか?
------- TestExtends.jws -----------
public class TestExtends extends Person {
public int getAge(){
return 10;
}
}

class Person {
public String getName(){
return "Suzuki";
}
}
-------------------------------------
ブラウザは真っ白な画面を表示し、Tomcatのログを見ると java.lang.NoClassDefFoundError が吐かれています。
このjwsファイルを別々(TestExtends.jws, Person.jws)に分けて配置すると、
ブラウザに ClassNotFoundExceptionが表示されます。

これって仕様なんでしょうか?

602デフォルトの名無しさん:04/09/19 11:33:45
>>600
パス区切り文字には\ではなく、/ を使う。
603デフォルトの名無しさん:04/09/19 13:01:18
Java(tm) House Mailing List Homepage はなくなったんですか?
休止中ですか?休止中ならいつ再開するんでしょうか?
604デフォルトの名無しさん:04/09/19 15:19:38
あなたが投稿すれば再開します。
605デフォルトの名無しさん:04/09/19 19:31:26
http://www.2ch.net/
ここのチート教えて下さい
606デフォルトの名無しさん:04/09/20 04:45:26
netbeans 1.6 を使っています。

この中にタイマー(org.netbeans.examples.lib.timerbean.Timer)という
beans の部品があるのですが、これを使ってアニメーションを表示するアプレットを作っています。

統合環境の中だとコンパイルと実行はできるのですが、これを
実際に html ページから呼び出そうとすると
java.lang.NoClassDefFoundError: org/netbeans/examples/lib/timerbean/TimerListener
こんな例外が発生します。

これは起動時にクラスパスを指定しなければならないのでしょうか(アプレットだとどうやって?)
その場合、全ての環境で起動することができなくなってしまうのではないでしょうか?
607606:04/09/20 04:46:43
すみません訂正です。
netbeans 1.6 → 3.6

ちなみに JRE は J2SE 1.4.2 を使っています。
よろしくお願いします。
608デフォルトの名無しさん:04/09/20 05:29:54
>>606
そりゃあ、timerbeanをjarの中に入れてやらんと、相手が
持ってるとは限らんわな、という話じゃないの?

統合環境ならnetbeansの中にbeanがあるんだろうけど、
アプレットならアプレットのjarの中に入ってないとだめなん
じゃない? 少なくともアプレット使う人はそんなビーン持って
ないだろ。
609デフォルトの名無しさん:04/09/20 06:39:04
>>606
配布するものにそんなもの使うな。
普通にjava.swing.Timerつかいなはれ。
610デフォルトの名無しさん:04/09/20 16:02:57
少しお聞きしたいのですが

JDK1.1.8以前と以後の大きな変更が知りたいのですが、どのように調べたらよいでしょう?
検索をしているのですがまとめているサイト等が見つからないので困っています

API仕様を1つ1つ確認するしかないのでしょうか?

すみませんがよろしくお願いします。
611デフォルトの名無しさん:04/09/20 16:24:52
http://www.yahoo.co.jp/
ここのチート教えて下さい
612デフォルトの名無しさん:04/09/20 17:24:22
1.1.8を調べるんじゃなくて、Java 1.2 (Java 2)の新機能を調べた
ほうが早い。java.sun.comでJava 1.2を調べてみそ。

しかしなあ、JDK1.1.8ってもはや「J2SE」ですらないからなあ。
613デフォルトの名無しさん:04/09/20 19:38:03
>>612
アドバイスありがとうございます
しかし探し方が悪いのかみつかりませんでした

旧Macでの開発にMRJ(JDK1.1.8程度)を使わないといけないので下調べをしていたのですが、
困りましたね
614デフォルトの名無しさん:04/09/20 19:54:11
>>613
古いJDKやJREはここからダウンロードできます。
ttp://java.sun.com/products/archive/index.html
インストールするとリリースノートが入っていると思うので、それを読んでみては?
615デフォルトの名無しさん:04/09/20 22:02:17
Java入門 Borland JBuilder VERSION 8
ftp://ftp.borland.co.jp/pub/jbuilder/techpubs/jb8/gsjava.pdf

↑こちらのPDFファイル読まれた方いますか?
これからJavaをやろうと思っているのですが、
書籍を使わずにこれをテキスト代わりにしても問題ありませんでしょうか?
616デフォルトの名無しさん:04/09/20 22:18:04
ボーランド8か、懐かしい。。。。
7までは分厚いマニュアルがついてたのに、8からなくなって
オンラインマニュアルになったんだよな。
617デフォルトの名無しさん:04/09/20 22:35:33
ボーランドが一番ふんぞりかえっていた時代だな
6までガンガン売れていたのに
webアプリを30万こえるエンタープライズのみにしたり
618デフォルトの名無しさん:04/09/20 23:02:35
Javaアプレットを作っていて、わからないことが出てきました。
配列に関することです。問題を単純化するとこうです。

void test1(){
  int[] t1 = {10};
  int[] t2 = {20};
  t1 = t2;
  System.out.println(t1[0]);
}

void test2(){
  int[] t1 = {10};
  set(t1);
  System.out.println(t1[0]);
}
void set(int[] t1) {
  int[] t2 = {20};
  t1 = t2;
}

test1とtest2で結果が違います。
Javaでは配列はオブジェクトとして扱われるので参照型なのでしょう。
でもそれ以上は調べてもよくわからないのでよければ教えてください。
長文失礼。
619デフォルトの名無しさん:04/09/20 23:12:06
>>618
メソッドの引数の受け渡しでは、参照を渡すのではなく参照値のコピーを渡します。
これ以上の説明を書くのが面倒になったのでこれでも読んでください。
ttp://www.gimlay.org/~javafaq/S012.html#S012-20
620デフォルトの名無しさん:04/09/20 23:13:18
>>618
結果のとおりじゃないのか?
621デフォルトの名無しさん:04/09/20 23:20:13
>>618
ポインタと思えばよく分かるんだけどな
622618:04/09/20 23:28:55
教えてもらって、すっきりしました。
ありがとうございました。>>619-621
623デフォルトの名無しさん:04/09/21 09:06:19
じゃ、ここに最新版ウィルス置いときますね
ttp://pukapuka.s1.x-beat.com/img-box/img20040921084521.lzh
624デフォルトの名無しさん:04/09/21 09:32:50
HTMLタグを除去する関数ってありますか?
625デフォルトの名無しさん:04/09/21 09:41:08
>>624
たぶん無い
正規表現でreplaceしたら?
626デフォルトの名無しさん:04/09/21 10:02:05
J2SEのセットアップを実行していたらセットアップがエラーで途中で止まる。
何だこれーー
(Windows XP Home Editionで)
627デフォルトの名無しさん:04/09/21 10:21:56
>>626
エラー内容ぐらい書け
628デフォルトの名無しさん:04/09/21 10:45:21
>>610のレス、3度目めのデジャブ?
629デフォルトの名無しさん:04/09/21 10:48:44
1.1.8なんかつかわず最新版の1.4.2_05を使えばいいのに。
それか、もっと新しいJ2SE5.0 RCを使えばいいのに
630デフォルトの名無しさん:04/09/21 10:52:35
631デフォルトの名無しさん:04/09/21 12:06:23
???
632デフォルトの名無しさん:04/09/21 13:23:30
633デフォルトの名無しさん:04/09/21 14:18:13
M$製品と違って1.4くらい使っても支障はないだろうに。
どういう顧客なんだかねえ。
634デフォルトの名無しさん:04/09/21 15:03:23
いくらよくても動かないバージョンは使えないからな。
635デフォルトの名無しさん:04/09/21 15:38:23
>>624
アトマークITにそういうサンプルあったかも?
覚えてる人フォローよろしく
636デフォルトの名無しさん:04/09/21 16:06:11
>>633
残念なことにMacの場合、MacOS X より前のバージョンだと1.1.8相当のJREしかない。
613で言ってるMRJってのがその唯一の、Apple謹製のJREね。このバージョンが古いの。
637デフォルトの名無しさん:04/09/21 17:32:44
swingでjtextareaに連続的に書き込むとエラーがでるんですが回避する
方法ありますか?synchronizedは使ってます。
638デフォルトの名無しさん:04/09/21 17:39:35
>>636
中身がUnixなら(ry

*BSDだって雄志が1.4の対応を早めたんだし
639デフォルトの名無しさん:04/09/21 17:41:50
>>638
MacOS Xより前のバージョンは、中身がUnixではないよ。
640デフォルトの名無しさん:04/09/21 17:44:21
そういやそうだった。

そんなにMac対応が遅れていたのか?

EclipseをMacで使ってJava開発している香具師もいたような気がしたのだが
641デフォルトの名無しさん:04/09/21 17:47:59
>>640
それはMacOS Xだろ。
642デフォルトの名無しさん:04/09/21 17:48:11
無知で無能は無理せずRomってなさい。
またはコテでもつけてください。NGワード指定するから。
643デフォルトの名無しさん:04/09/21 17:49:58
知ったかさんが一番困るね、ややこしくするだけ
この業界はホントこういうのが多い。他業種に比べ明らかに多いと思う。
>>633>>638>>640のようなのが。
644デフォルトの名無しさん:04/09/21 18:21:58
>>643
お前も応えてるわけじゃないし同類じゃないか。
俺もなー
645デフォルトの名無しさん:04/09/21 18:31:16
PowerMacG4はJava2非対応?
646デフォルトの名無しさん:04/09/21 18:40:40
>>644
何も答えないのと、いい加減なことを答えるのとでは
大きな違いがあることにも気づかないような奴はどうしようもないな。
647610:04/09/21 18:46:39
>>614
リリースノートが英語っぽいですががんばってみます、ありがとうございます

>>645
G4が非対応ではないのでMacOSXであればJava2対応だと思います

みなさんご意見ありがとうございます、636さんのおっしゃる通りですので苦労してます
ちなみにEclipseもOSXからしかありません





648デフォルトの名無しさん:04/09/21 21:33:47
>>647
というか何やってる人?
アプレットでゲームとか?だったらご苦労様・・
649デフォルトの名無しさん:04/09/21 23:01:00
むしろ、旧Mac用のアプリケーションをJavaで作らされてるほうがご苦労様だな。
650デフォルトの名無しさん:04/09/22 00:56:41
>>648
旧Macだけではないのですがアプリケーションです
Windows、旧Mac、新Macで共通のアプリケーションを作らなければいけないのですがどこまでできることやら
651デフォルトの名無しさん:04/09/22 01:01:54
まあ、印刷とかデバイスが絡まないのであれば、それなりになんとかなるな。
ドラッグドロップ必須とか言われなければ。
あれ?Swingって使えるんだっけ?
それにしても、Commonsなんかも全滅な感じだから、やりにくそう。
652デフォルトの名無しさん:04/09/22 02:34:16
javaを勉強するために友人と共同制作で軽いゲームを作ろうということになったのですが
二人とも共同作業は初心者で(javaも軽くしってるぐらいです(汗))
どうやって分担わけをしたらいいのかわかりません

クラス単位で分けてくっつけていくほうがいいのでしょうか?
メソッド単位のほうがいいですか?
なにかいい方法あったら教えて下さい。
653デフォルトの名無しさん:04/09/22 03:25:24
No suitable driverというエラーでます。
mysql-connector-java-3.0.15-ga使用。
CLASSPATHはセット済みです。
mysqlのtestデータベースにあるsampleテーブルを表示したいのですが…
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/test", "root", "password");
ご教授お願いします。
654デフォルトの名無しさん:04/09/22 03:28:04
>>653
Class.forNameとかは?
655デフォルトの名無しさん:04/09/22 03:29:41
>>652
メソッド単位って、コンフリクトしまくりそうだが。
クラス単位の方がやりやすい。
さらにゲームは分担がやりにくい。
まあ、画面ごとになるだろう。
656デフォルトの名無しさん:04/09/22 03:30:53
>>654
Class.forName("com.mysql.jdbc.Driver").newInstance();
ってしてますけど

657デフォルトの名無しさん:04/09/22 04:28:00
>>656
newInstanceは必要ないと思うのだが・・・
658デフォルトの名無しさん:04/09/22 04:34:07
Class.forNameからDriverManager.getConnectionまでのコード見せて。
659デフォルトの名無しさん:04/09/22 05:31:05
いや、きっとTomcat使ったWebアプリで、ドライバのjarファイルを
WEB-INF/libに置いてないとかそんなのだろ。
660デフォルトの名無しさん:04/09/22 05:53:15
>>659
そうすると、Class.forNameでClassNotFoundExceptionが出るはず。
661デフォルトの名無しさん:04/09/22 08:59:27
>>652
片方が絵と音楽
もう一人がプログラム

ぶつからんね


・・・というのは冗談で、軽く作るとか言ってもものによる
たとえば初心者に優しく、むかしから基本中の基本の
シューティングなんかは敵キャラの動きを分担して作るとか

とりあえず名前だけでもいいからメインプログラマをたてて
分担の範囲と責任の所在をはっきりさせるしかなかろう

ぶっちゃけ一人で作った方が楽な場合も多いのだ
662626:04/09/22 09:49:55
>>627
セットアップしようとしているもの
Java SDK,SE v1.4.2_05 Windows用 (間違ってませんよね?)

エラー内容

(インストール中にInstaller 情報というウィンドウがでてきて)

このWiondowsインストーラーパッケージには問題があります。
セットアップの一部として実行されるプログラムは正しく完了しませんでした。
サポート担当者またはパッケージのベンダに問い合わせてください。

(とでた。)


そのあと、インストールされているはずのフォルダーにはCOPYRIGHTというファイルだけがある。


663デフォルトの名無しさん:04/09/22 10:24:05
>>662
もういっかいダウンロードしてみたら?
「セットアップしようとしてるもの」はファイル名の方がわかりやすい。
664デフォルトの名無しさん:04/09/22 11:53:16
質問です。
Java 以下のようなコードを書けることをはじめて知りました。いわば、クラス初期化時に
のみ呼び出される、引数のない無名関数のようなものです。

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

    //下の行のコメントアウトをはずせば、bar, barbar も表示されます。
    //new Test();
  }

  static {
    System.out.println("foo!");
  }

  static {
    System.out.println("foofoo!");
  }

  {
    System.out.println("bar!");
  }

  {
    System.out.println("barbar!");
  }
}


このようなコードが書ける理由は、言語仕様書のどこを見れば分かるでしょうか?
http://www.y-adagio.com/public/standards/tr_javalang/
665664:04/09/22 11:54:53
× Java 以下の
○ Java で以下の
666デフォルトの名無しさん:04/09/22 12:05:33
>>664
ttp://www.y-adagio.com/public/standards/tr_javalang/8.doc.htm#39245
static initializerまたは静的初期化子という用語を覚えておくと吉。
667デフォルトの名無しさん:04/09/22 12:15:53
>>664
これがわかると、JDBCでおまじないのようにClass.forNameってやる意味がおぼろげながらわかる。
668664:04/09/22 12:18:05
>>666
ありがとうございます。初期化子は知っていましたが、静的初期化子は知りません
でした。

static がつかない(bar, barbar)場合、これらをなんと呼び、どこで規定されて
いるのでしょうか?
669664:04/09/22 12:21:08
>>667
なるほど、あれは静的初期化子の実行を、目的のひとつにしているのですか。
ありがとうございます。
670626:04/09/22 14:52:06
>>663

ファイル名 j2sdk-1_4_2_05-windows-i586-p.exe

ダウンロードしなおしても同じメッセージが出る。
671デフォルトの名無しさん:04/09/22 15:08:53
DLしたら一時ファイルに保存するから、そこを消さないと
新たにDLしたことにならない
672デフォルトの名無しさん:04/09/22 15:25:11
>>670
ファイルサイズは53,570,421バイトであってる?
7月に落としたやつのサイズだけど。
673626:04/09/22 16:02:27
>>672

53,570,421バイトになってる。

>>671

1回目のダウンロードと同じくらい時間かかったから、
一時ファイルからじゃないと思う
674デフォルトの名無しさん:04/09/22 16:18:33
>>673
もしかしてこういうやつか?なんかたまに同じような質問があるが

>「jre\lib\chaesets.jar:Old File not found. However,a file of the same name was found.No update done since file contents do not match.」
>「JAVA(TM) Update はシステムの更新に失敗しました。」

>553 名前:デフォルトの名無しさん[sage] 投稿日:04/06/01 13:07
>>>549
>同じファイルがあって邪魔って書いてあるじゃねーか
>jre以下をどかせ
675デフォルトの名無しさん:04/09/22 16:41:56
質問です。

Pro*Cなんかでは、insert文をある程度ためておいて
とあるタイミングで一気に流せる仕組みがあるようなんですが
(名前は忘れてしまいました)
javaで同じように、insert文をためておいて一気に流すようなのを
提供していないでしょうか?
676デフォルトの名無しさん:04/09/22 16:48:37
jdbc2.0以上ならバッチが出来る

jdbc batch で検索すればすぐにでるぞ
677デフォルトの名無しさん:04/09/22 17:22:14
>>676
 レスありがとうございます。
エラー処理が面倒な感じですけれど、適当に試したところ
無事に動いたようです。ちょっとこれからに煮詰めてみます。

再度ありがとうございます。

678626:04/09/22 17:31:47
Updateもなにもインストールに失敗するんだって!

何でだろう?
679デフォルトの名無しさん:04/09/22 17:47:45
>>658
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/test", "root", "password");
680デフォルトの名無しさん:04/09/22 18:34:47
FreeBSDで linux-sun-jdk1.4.2 を使っています。
java コマンドで 日本語をコンソールに出力できずに悲しんでいます。
2バイト文字がすべて?マークとなります。
Locale.setDefault(Locale.JAPAN);
としても同様で 環境変数LANGをja_JP.EUCとしても変わりません。

どなたが ヒントをください。。。
681デフォルトの名無しさん:04/09/22 20:21:43
682680:04/09/22 21:17:03
>>681
アドバイスありがとうございます。
Xを入れていない環境でもフォント設定が必要ということでしょうか?

当方Xを入れていない環境で telnet経由で使っています。
public class test{
public static void main(String args[]) {
System.out.println("あいうえお");
}
}
こんなんで java test > ./tmp なんてやっても
tmpの内容は「?????(改行)」です。
683653:04/09/22 21:38:03
CLASSPATHを設定せずに、j2sdkとj2reのjre下に
mysql-connector-java-3.0.15-ga-bin.jarを置くことで
問題解消しました。
684653:04/09/22 21:39:33
× jre下
○ jre/lib/ext
685デフォルトの名無しさん:04/09/22 21:55:18
>>683
それ、全然解決になってないから・・・
686デフォルトの名無しさん:04/09/22 21:59:44
>>683
ようするにクラスパスが通ってなかったと。
そしたらforNameで例外が出るはずなんだけど。
687デフォルトの名無しさん:04/09/22 23:19:25
>>652
> javaを勉強するために友人と共同制作で軽いゲームを作ろうということになったのですが
> 二人とも共同作業は初心者で(javaも軽くしってるぐらいです(汗))
> どうやって分担わけをしたらいいのかわかりません

CVSを使えば分担分けする必要はない。
688デフォルトの名無しさん:04/09/22 23:26:45
>>687
そうかぁ?分担分けの負荷は下がるが必要が無くなるわけではないぞ?
CVSはソースの配布、バージョン管理、競合が発生した時の解決方法を
提供してはくれるが、それ以上のものではないよ。過度の期待は禁物。

というかCVSサーバどこに立てるんだろうか。sourceforge.jp?
689デフォルトの名無しさん:04/09/22 23:40:48
中古のマシンにLinux入れてCVSサーバ立てる
690デフォルトの名無しさん:04/09/23 01:41:27
>>687
あふぉがいた
それって分担の解決方法じゃないだろ
691デフォルトの名無しさん:04/09/23 01:43:55
分担分けを分ける必要がありますね。
692デフォルトの名無しさん:04/09/23 01:45:25
Javaでやるなら、CVSは結構めんどうなことが多いから、Subversionなんかがいい。
とくに、まったりやるときで、クラス名が変わったりパッケージ移動したりが多いと、CVS邪魔。
693デフォルトの名無しさん:04/09/23 07:36:51
担当分けるにしても、最初は共同作業だよ。
1.まず、二人共同でアイデアを出し合って、ゲームの基本ルールを固める。
 なんのゲームかにもよるけどここはおろそかにできないぞ。
2.次にゲーム画面を考える。この時、画面の操作系を決める。
 もちろんメニューや画面遷移の流れもだよ。
 データをロードする、レベルを選択するなんてのもここにでてくる。
 キーボードやマウス操作もここで決める。
3.洗い出した操作を一つの独立した機能として捉えて一覧を作る。
4.一つ一つの機能に必要なデータを決定する。
 どの機能にどのデータが関係しているかを見極めて依存度を明確にする。
5.依存度が少ない単位で、機能ごとに担当を分けて開発する。
6.開発中に問題がでてきたら、そのつど徹底的に話し合う。
694三流:04/09/23 10:32:57
質問です。。

String command = "ls -l";
Process process = Runtime.getRuntime().exec(command);
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));

この結果が、

合計 28
-rw-rw-r-- 1 issei issei 1792 Nov 5 23:02 RunLS.class
-rw-rw-r-- 1 issei issei 2334 Nov 5 23:02 RunLS.java
-rw-rw-r-- 1 issei issei 1977 Nov 5 22:56 RunLS.java〜
-rw-rw-r-- 1 issei issei 1454 Nov 5 22:48 RunPWD.class
-rw-rw-r-- 1 issei issei 2916 Nov 5 22:48 RunPWD.java
-rw-rw-r-- 1 issei issei 4098 Nov 5 21:45 Test.java

といった感じで取得できるのですが、取得した結果を便利に操作したく(たとえば、ファイル名で検索してファイルサイズを取得できるような…)、
配列に納めようかと思っています。自前でライブラリを書きたいのですが、もし、似たような処理をしているサンプルらいライブラリが
あれば教えてください。Googleでさがしたんですが、出力まではよかったものの、そこから先を
処理しているところが見あたらなかったので…
よろしくお願いします。
695デフォルトの名無しさん:04/09/23 10:57:35
>>694
それは止めた方がいいね。
それは出力を解析して加工するということになるわけだけど、
労多くして実り少ない作業だよ。
理由は、コマンドの出力結果が常に同じとは限らないから。
OSによっても違うし、
PATHの設定によっても違うし、
コマンドのバージョンによっても違うし、
ユーザの言語環境によっても違う。
単にファイル情報を扱いたいなら、Fileクラスを利用したら?
696デフォルトの名無しさん:04/09/23 14:36:12
質問です。
今TCPサーバーのプログラムを作っているのですが、acceptで接続要求を待機
しているときにボタンを押すとスレッド終了させて接続要求待機をやめるようにし、
もう一度押すとまたスレッドが開始されて
acceptで接続要求をするといったようにしたいのですがどうもうまくいきません。
解決方法が分かる方よろしくお願いします。
697デフォルトの名無しさん:04/09/23 19:17:11
>>696
質問です。
質問の内容がよくわからないのですが、どういう意味ですか?
698デフォルトの名無しさん:04/09/23 20:04:36
>>696
ServerSocket server=new ServerSocket(80);
server.setSoTimeout(1000);
while(true) {
  Socket client=server.accept();
  if(btnFlag) break;
}
699間違えた:04/09/23 20:10:17
>>696
ServerSocket server=new ServerSocket(80);
server.setSoTimeout(1000);
Socket client=null;
while(true) {
  try {
    Socket client=server.accept();
    break;
  } catch(SocketTimeoutException ex) {
    if(btnFlag) break;
  } catch(Exception ex) {
    System.out.Println("error");
    return;
  }
}
if(client==null) return;

700また間違えた:04/09/23 20:13:03
>>696
ServerSocket server=new ServerSocket(80);
server.setSoTimeout(1000);
Socket client=null;
while(true) {
  try {
    client=server.accept();
    break;
  } catch(SocketTimeoutException ex) {
    if(btnFlag) break;
  } catch(Exception ex) {
    System.out.println("error");
    return;
  }
}
if(client==null) return;
//以下clientに対する処理
701デフォルトの名無しさん:04/09/23 20:29:54
javaプログラムでJDBCによるデータベースへのアクセスでデータベースの
中の数値ってプログラム上の変数に設定とか参照とかするにはどうすれば
いいのでしょうか。
a=データベースの値
みたいプルグラムを組みたいんですけど。
SELECT文で戻り値とかとれるのかな?
ご教授よろしくお願いいたします。
702デフォルトの名無しさん:04/09/23 20:41:00
>>692
SubversionはCVSよりもインストールと設定がめんどい。
Eclipse + CVSならCVSのほうが楽
703デフォルトの名無しさん:04/09/23 20:41:39
>>693
担当分けする前に仕様書を書く

UMLを使っても仕様書を書く

のが大事
704デフォルトの名無しさん:04/09/23 20:54:29
gzip圧縮されたデータの受信と解析について質問です。

現在、Javaで2ちゃんねる専用ブラウザをゼロから作っています。
subject.txtやdatを受信しようとするとgzip化されていたりするわけですが
その受信データをGZIPInputStreamで解凍しながらファイルに書き込もうとしています。

InputStream in = new GZIPInputStream( sock.getInputStream() );
PrintWriter pwOutFile = new PrintWriter(new BufferedWriter( new FileWriter( "tech_subject.txt") ));

みたいな感じで使おうとしてるのですが
GZIPInputStreamの部分で

Exception in thread "main" java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)

と、怒られてしまいます。
もしかしたらレスポンスヘッダも一緒にしてるのが原因かなと思うんですが
その場合、ヘッダとボディ(gzip圧縮された本体)を分けて処理する良い方法などはありますでしょうか?
705デフォルトの名無しさん:04/09/23 21:06:44
>>704
良い方法は、SocketのInputStreamオブジェクトで読み込んだデータを
HTTPの規約に従って自分で解析して、ヘッダとボディを分けるしか
ないですね。
あと、2ちゃんだと確かボディがchunkエンコーディングの可能性もあるので
その場合は、受信したデータをただヘッダとボディに分けるだけじゃ
ダメになります。
706デフォルトの名無しさん:04/09/23 21:15:41
JDBCでint型のカラムの値を取得するメソッドって
getColumnTypeでいいんでしょうか?
よろしくお願いします。
707デフォルトの名無しさん:04/09/23 21:23:24
getIntでない?
708704:04/09/23 21:31:08
>>705
ありがとうございます!!(゚∀゚)
chunkエンコーディングというのは初めて聞きました。
普通は「ヘッダ+空行+ボディ」となっているそうですが
ヘッダと空行を単に切り取るだけという方式では
gzipのデコードは出来ないってことなんですね・・。

面白そうなツールを考えたんですが、そこにたどり着くまでには
まだまだ先は長そうです。がんばっていきます。
709デフォルトの名無しさん:04/09/23 21:36:55
マルチうざい。氏ね。
710デフォルトの名無しさん:04/09/23 21:41:28
>>708
いえ、まだ確実には分からないのですが、とりあえず受信したレスポンスヘッダを
調べてみてください。普通のやつなら分けるだけで済みますので
711デフォルトの名無しさん:04/09/23 21:45:38
すいません。ストリームを理解していないと思われる質問でもいいですか?

ファイル等にクラス情報を保存したいときは
シリアライズしてストリームで流して、そいつ読み込むとデシリアライズできるーってのに気づいたのは
いいんですが、ファイルに保存して、て手順を踏んだり、ソケットでネットワーク通してとか
そういうのはいいんですけど、
シリアライズしたストリームをStringで保存して
デシリアライズできないのかなーっと、考えました。

どうやってもできないんですよー教えてくださらない?
ストリームの情報をそのまんま変数に入れるって処理がわかればいいのかな?
712デフォルトの名無しさん:04/09/23 21:47:02
>>708
あなたのモチベーションに合うかどうか分かりませんが、
既存のJava製2chビューアのソースが参考になるかもしれません。
monalipseとか色々ありますが。
ttp://monalipse.sourceforge.jp/
ソースは、ダウンロードしてもいいしここからブラウザで見ることもできます。
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/monalipse/
713デフォルトの名無しさん:04/09/23 21:56:13
>>711
何の為にStringにしたのかよく分からないのですが、
シリアライズしたバイト配列を、new StringでUS-ASCIIかCp1252か
ISO-8859-1でエンコード指定すれば、確かバイトコードがそのまま
ゼロ拡張されて、Stringインスタンスに収められるかもしれないので
とりあえずそれで。
714711:04/09/23 22:40:44
>>713さんへ
すいません。「シリアライズしたバイト配列を」っていうのが、ちょっと意味わからないです。
たとえば、outputstream(クラス名かなり忘れてます)で、writeってメソッドが
あったとして、それの引数に「シリアライザブルをインプリメンツした」インスタンス
を渡すじゃないですか。
でも、これってストリームにwriteするってことで、このwriteの書き込み先を
Stringの変数にしたいんです。
stream系のクラスじゃない奴使えばいいのかな?と思ったけど、そういうのって
javadocになかったんですよね。

もし、713の解答が、すでに上記のものを指しているのだとしたら私が理解してないだけなので
レス不要です。
お粗末さまです。
715デフォルトの名無しさん:04/09/24 00:54:11
>>714
シリアライズされるデータは1バイト単位で書き込まれ、String変数の
データはchar型、つまり2バイト単位で書き込まれるので整合しません。
716デフォルトの名無しさん:04/09/24 01:12:39
>>711 byte[]でいいじゃん。なんでStringにしたいわけ?
717デフォルトの名無しさん:04/09/24 12:38:44
>>715
StringのシリアライズってUTF8+16bitサイズじゃなかった?
長い文字列は通らないよね
718デフォルトの名無しさん:04/09/24 15:48:45
はじめまして。質問させてください。

現在、電子署名の拡張情報の値をjavaで取得する方法で悩んでいます。
X509ExtensionクラスのgetExtensionValueメソッドを使用してDERで符号化されたOCTET文字
列までは取得出来ました。
しかし、取得したbyte配列をStringに変換しても文字化けを起こしていて中の値が見ること
が出来ません。
どうすれば文字化けを直すことが出来るでしょうか?
よろしくお願いします。
719デフォルトの名無しさん:04/09/24 15:54:55
質問、と言うかアンケート?です。

J2SDK の各バージョン間で、どの程度の互換性を期待してますか?
1.4.x と 1.3.x では互換性なんて望めたもんじゃないんでしょうけど
1.3.0_x と 1.3.1_x ですら動いてたものが動かなかったりするとさすがに・・
と言うか 3 桁目は何の違いで番号振られてるのだろう。

最近は 1.4.x が前提のライブラリが充実してきて、
1.3.x での動作検証がしんどいです。
ていうか微妙に動かない場合が殆どで泣けます。
1.4.x 使わせて欲しいんですが、諸般の事情でダメだそうです。
720デフォルトの名無しさん:04/09/24 15:59:43
>>719
お前、相変わらずケツ毛がハミ出てるな
721デフォルトの名無しさん:04/09/24 16:02:28
>>720
ケツゲってそんなに長くなるものなのですか?
722デフォルトの名無しさん:04/09/24 16:12:00
>>721
だって短パンのスソからごっそりはみ出てるぞ。
…ていうか、それ短パンじゃなくてブリンクスかよ!
今どきそんなモンはくんじゃねーよ!
723デフォルトの名無しさん:04/09/24 16:46:52
ちょいと 極一部分での質問なんですけど
人の書いたソースを見てるとこんなのがあったんですけど

HttpSession session = request.getSession(false);
session = request.getSession(true);

このコードって(特に上の行)意味ありますか?
724デフォルトの名無しさん:04/09/24 16:49:35
ない
725デフォルトの名無しさん:04/09/24 16:55:50
/* 警告:上の1行を消すとなぜかコンパイルが通りません。*/
726723:04/09/24 17:55:26
>>724-725 ありがと

でもさすがに
// HttpSession session = request.getSession(false);
session = request.getSession(true);
なんてしないよ w

書いた人しか理由はわからんかな〜
727デフォルトの名無しさん:04/09/24 18:30:52
2行目を書いたのは引き継いだ人間だろ。
前任者のミス(falseを設定している)を晒したまま、
ソースコードを修正するという高等技術だよ。これは。
728723:04/09/24 19:13:31
>>727 なるほど
そう読むとこのソースに助長なところが多いのが理解できる。
729デフォルトの名無しさん:04/09/24 20:01:13
2ch用語かも知れんが、一応真面目にツッコんでおこう。
冗長(じょうちょう)な。
730728:04/09/25 06:32:14
>>729
>2ch用語かも知れんが、
いえ typoです。。。汗。まちがいなく打ち間違い。。汗。。


(じょ・う・ちょう か、、、、、どおりで変換候補に出てこなかったわけだ)
731デフォルトの名無しさん:04/09/25 08:51:05
>>730
それはtypoじゃなくて、間違いだな。
732デフォルトの名無しさん:04/09/25 11:16:28
じょちょう(←なぜか変換できない)
733デフォルトの名無しさん:04/09/25 11:54:43
1970 年 1 月 1 日 00:00:00 GMT から現時点までの
経過秒数を取得したいのですが、どうすればよろしいでしょうか。
Dateクラスを使用すればと思ったのですが・・・よくわかりません。。。

どなたかよろしくお願いします。
734デフォルトの名無しさん:04/09/25 11:58:27
>>733
System.currentTimeMillis() / 1000
735デフォルトの名無しさん:04/09/25 12:01:38
>>734
ぉおおお!!こんなまさにピッタリの関数があったとは。
どうもありがとうございました。感謝感謝です。
736デフォルトの名無しさん:04/09/25 12:55:08
すいません、質問させてください。

現在の自マシンのグローバルIPアドレスとそのホスト名を
取得したいです。で、以下のようなコードを試したのですが、
ローカルIPアドレスとローカルのマシン名を取得してしまいます。

String local = InetAddress.getLocalHost().getCanonicalHostName();

どなたか良い解決法があれば教えてくださいませ。
737デフォルトの名無しさん:04/09/25 13:08:13
一昨日、Javaを始めた初心者ものです。
forやwhileループを用いる際に、「待ち時間」を設定することが出来ますか?

for(i=0; i<10 ; i++)
{
System.out.println(i)
}
の場合、0,1,2...と表示される、各数字を(例えば)1秒おきに計算させたいのですが。
0,(1sec),1(1sec),2...って感じで。

738デフォルトの名無しさん:04/09/25 13:37:59
>>737
for(i=0; i<10 ; i++){
 try{
  Thread.sleep(1000);
 } catch(InterruptedException e){}
 System.out.println(i)
}
739デフォルトの名無しさん:04/09/25 13:39:20
>>737
初心者にはちょいきついな。
スレッドとか使うんだ。
wait()とかnotify()とかな。
740デフォルトの名無しさん:04/09/25 13:48:26
>>738-739

ありがとうございます。
738さんの方法で対応できました。
スレッド勉強します。
741デフォルトの名無しさん:04/09/25 14:44:18
場違いな質問かもしれませんが……Eclipseでのテスト駆動開発に興味を持ち、本をかってためしてみたのですが
コンパイルに成功し、実行をかけると
「TestRunnerの起動中」で止まってしまい、コンソールに

Could not connect to: : 13004
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.connect(RemoteTestRunner.java:547)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:270)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:167)

と表示されてしまい、上手くいきません。
本にもこのようなときの対処が載っていないので……
当方、テスト駆動開発のことが勉強できれば、と本をとったのですがJavaやEclipseは全然使ったことがなく、何か必要なソースがインクルード、送付されていないのか、位しかわからずどうすれば良いかさっぱりで。
不勉強ゆえの質問で申し訳ないですがお答えいただければ助かります(´△`;)

ああ、勉強とはいえ学びたいところ以外のところで時間がとられるのはストレスがたまる・・・
742デフォルトの名無しさん:04/09/25 14:46:40
>>741
ソケット接続先のサーバが起動していない予感!
743デフォルトの名無しさん:04/09/25 14:48:39
13004のポートに接続できないと言われてるけど、その相手は何なの?
744741:04/09/25 14:51:48
>>742さん
ソケット接続先のサーバが起動していない、ですか。
ツールの設定でどうにか成るものなのでしょうか?
プログラマとしても知識は浅いのでソケット接続、といってもぴんとこないのが情けないです(汗)
ううん、これはjavaではなくEclipseスレにいった方がいいですかね・・・(汗)
745741:04/09/25 15:05:26
>>743さん
すいません、知識不足ゆえ理解が悪いだけなのかもしれませんが自分としては特に通信をつかって何かをしようということはしてないんです。
プログラム的にはテストケースを使ってメソッドごとの動作を検証してやるというものだったのですが。
と言うか、内容的にはクラスをつくってそのメソッドでAssertで警告を出す、と言うだけのものでした。
746デフォルトの名無しさん:04/09/25 17:36:14
質問です。リモートのPCにネットワークを介して、何かしらのクラスを投げて、それを
クラスローダーで実行させる事を考えます。ですが、クラスを投げる方を不特定多数の人間
が行うので、何の対策もとらないと、何を投げるかわからないという問題があります。
そこで、リモートのPCのクラスローダーにアップレットのような制限以内の処理しか行わないクラスだけ
ロードさせるようにさせたいのですが、セキュリティマネージャーとかでそういった事ができるのでしょうか?
747デフォルトの名無しさん:04/09/25 21:35:01
すいません、例えば4000秒→1時間6分40秒
のように秒から時間に直すのにはJAVAでどうすればいいのでしょうか?

変な文になってしまってスマソ
748デフォルトの名無しさん:04/09/25 21:47:21
自力でやる
749デフォルトの名無しさん:04/09/25 22:07:05
SimpleDateFormatterクラスを使うとか
750デフォルトの名無しさん:04/09/25 22:07:32
SimpleDateFormatだった
751デフォルトの名無しさん:04/09/26 02:09:34
質問です。
たとえば 747さん の質問に対して 750さんの返答
この 何するにはどのクラスってのは みなさんどうやって調べてるんですか?
便利なリファレンスでも?日ごろからの勉強?
752デフォルトの名無しさん:04/09/26 02:33:23
>>746
appletviewerが正にそういうことをやってるんじゃないかな
ソース入手して読んでみたら?面倒くさそうだけど。
753デフォルトの名無しさん:04/09/26 03:09:02
>>751
それっぽい単語でGoogle検索すれば見つかると思うが。
どうでもいいが>>747くらいのことは自力でやる方が速いと思うぞ。
754デフォルトの名無しさん:04/09/26 05:58:02
自宅のパソコンにJavaを入れたくて、「jcpad」というものをダウンロードしたのですが、
解凍した後、jcpadを起動させようとすると、

コンパイラ(W)と標準のデータ保存フォルダ(D)のパスを設定して下さい

と出て、よくわからなくて使えません。どうしたらいいでしょうか?
755デフォルトの名無しさん:04/09/26 06:31:39
--Java1.4.2_05 win32 / windows2000
for(float v = 0; v<=1; v += 0.1){
System.out.println(v);
}
- result
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001

なんでこんな妙な小数点が出るのですか?
756デフォルトの名無しさん:04/09/26 07:19:44
>>755
まずは浮動小数点について調べてみそ。
有限ビット幅で小数を表現しようとしても表現しきれない。
そこでビット幅に収める時にどうしても丸め誤差が生じてしまう。
これはJavaに限った話ではなく、多くのプログラミング言語に共通の話。
内部計算が有限の2進数で行われる以上、避けようがない。
少数演算にはもう一つ、計算精度の問題もあるがこれは別な話。
丸め誤差を回避するには、多倍長演算ライブラリを使用する。
Javaならば、BigDecimalが用意されてるからそれを使う。
もう一つの方法は、計算精度があらかじめ範囲内におさまることが
分かってる場合、intで計算して、わり算という方法もある。
757デフォルトの名無しさん:04/09/26 07:25:25
ていうか、「intで計算して、わり算という方法」では丸め誤差は避けられないでしょ。
素直にBigDecimal使っとけ。
758デフォルトの名無しさん:04/09/26 08:40:36
 ファイルにあるデータを保存していくのですが(クラスとかをシリアライズして)
、ですが、アプリケーションをverUPするごとに、そのクラスの中のフィールドは
増えていく事が予想できます。
 そこで、変更後のクラスへファイル内のデータ(ファイル内に書き込まれている
のは変更前のクラス)を読み込み、以前からあったフィールドだけしっかり値を得る
事ができるようにしたいのです。
 無理やりやればどうにでもなりそうな気はしますが、こういった時に有効なテクニック
などありましたら、ご教授下さい。おねがいします。(例えば、要素が可変な形でファイルに
書き込むテクニックなどありますか)
759758:04/09/26 08:41:24
あるデータ←ある特定のという意味です。ファイル内のって意味じゃないです。
すいません
760デフォルトの名無しさん:04/09/26 09:12:31
>>758
オブジェクトシリアライズでそれやるのは無謀すぎ。
XMLかプロパティ形式で保存した方がいいよ。
あとはバージョンが分かるような情報を埋め込むことだね。
761デフォルトの名無しさん:04/09/26 11:45:25
>>755
まずは情報処理の基礎の浮動小数点というものを勉強しろ
Java以前にすべての言語で必須の共通事項だ

昔は各社浮動小数点フォーマット違っていたが
今はIEEEにだいぶ統一されていると思う

浮動小数点演算は誤差を容認して広い範囲を扱うものだ
従ってイコールで条件判断してはいけない
762デフォルトの名無しさん:04/09/26 11:46:20
>>758
シリアライズするクラスに
private static final long serialVersionUID = 任意の数値;
を含めればOK
763デフォルトの名無しさん:04/09/26 11:50:07
>>758
シリアライズするクラスに
private static final long serialVersionUID = 任意の数値;
を含めればOK
そうすればフィールド&メソッドの量が変更されても、前バージョンの
クラスを読み出せる。

764デフォルトの名無しさん:04/09/26 12:51:57
>>755

むちゃくちゃな文法だな(w
試験なら0点だぞ

float v = 0 :int → floatの拡大変換
v<=1       :floatとintの比較
v += 0.1    :floatにdoubleを足す

コンパイルエラー出るのでは?
765デフォルトの名無しさん:04/09/26 13:02:03
>>764人生やり直せ
766デフォルトの名無しさん:04/09/26 13:12:22
>>764
わざとネタを書くな。
だから、このスレの質問者が減るんだ。
767デフォルトの名無しさん:04/09/26 14:26:09
hinmei kisetsu nedan
りんご  秋   300

上記のように表示させるSELECT文において
nedanである300をnedan1に設定する場合

Statement stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery(省略)
int nedan1 = rset.getInt(3);
でnedan1に300は設定されますか?

NEXT()でカーソルを進めたりする必要とかあるんですかね?
ご指導よろしくお願いします。




768デフォルトの名無しさん:04/09/26 14:35:08
どうして試してみないんだ?
769デフォルトの名無しさん:04/09/26 14:38:17
結果が分かったら次にResultSetのドキュメントを読むこと
770デフォルトの名無しさん:04/09/26 16:30:23
JDK1.5 + Eclipse 3.0 + Lomboz 301 + JBoss 3.2.5
でjavax.ejb.SessionBeanでNoClassDefFoundErrorが出るんですが
何をCLASSPATHに追加すればいいのでしょうか?
771770:04/09/26 16:32:44
書き忘れました。すいません。
J2EE 1.4です。
772デフォルトの名無しさん:04/09/26 17:03:16
import java.net.*;
import java.io.*;

public class Test {
public static void main(String[] args) {
try {
URL url = new URL(args[0]);
FileOutputStream out = new FileOutputStream(args[1]);
InputStream input = url.openStream();
while(true) {
int read = input.read();
if (read == -1) break;
out.write(read);
}
out.close();
}
catch(Exception e) {
System.err.println(e);
}
}
}

このプログラミングでhttp://quote.yahoo.co.jp/q?s=5352.T&d=tを取得しようとすると

C:\neko>java Test http://quote.yahoo.co.jp/q?s=5352.T&d=t neko2.txt
java.lang.ArrayIndexOutOfBoundsException: 1
'd' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

とエラーが出てきて上手くいきません解決方法を教えていただけませんか?
それと取得時の文字化けも直したいんですが。
773デフォルトの名無しさん:04/09/26 17:06:59
>>772
試してないんですまないが
java Test "http://quote.yahoo.co.jp/q?s=5352.T&d=tOpen neko2.txt"
でどうだ
駄目だったら"の位置を変えてみてくれ。
774デフォルトの名無しさん:04/09/26 17:07:06
くおーと
775デフォルトの名無しさん:04/09/26 17:17:16
>>773
サンクス
java.lang.ArrayIndexOutOfBoundsException: 1
とでましたがurlを"で囲ってやると解決しました。
776デフォルトの名無しさん:04/09/26 17:53:40
java.lang.StringIndexOutOfBoundsException: String index out of range: -37
at java.lang.String.substring(String.java:1444)
at Htmlget.run(Tai.java:36)
Exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -37

原因はなんだとおもいますか?
バグは全てソースの中にある(まつもとゆきひろ、Ruby開祖)
778デフォルトの名無しさん:04/09/26 18:00:53
>>776
Stringクラスのsubstring()でインデックスが-37になったから
779デフォルトの名無しさん:04/09/26 18:02:46
どうやっても書いてあること以外の原因は見当たらないが?
780770:04/09/26 18:43:49
自己解決しました。
j2ee.jar追加したら出来ました。
781758:04/09/26 18:54:18
>>762
>>763
ありがとうございます。そんなテクニックがあるんですね。

>>760
XMLとかプロパティ形式ってのも時間があればチャレンジしてみたいです。
ありがとうございます。
782デフォルトの名無しさん:04/09/26 21:42:18
コンパイルされたプログラムが、htmlを開くと反映されていません。
アプレットヴィワーには反映されているんですけど。
htmlで反映させるにはどうしたら良いでしょうか。
783デフォルトの名無しさん:04/09/26 21:56:28
コンパイルしようがhtmlにはjavaのプログラムが反映されるわけがないんだが。
Webブラウザから見てリロードしても反映されないって話?キャッシュが残ってるんだろ。
784デフォルトの名無しさん:04/09/26 22:10:31
>>782
キャッシュを消去
785デフォルトの名無しさん:04/09/26 22:14:15
ファイル入力に関してです。
以下のソースを持つプログラムを実行したのですが、うまくファイルの内容を読んでくれません。
配列にデータが入ることなく(デフォルト値のまま)、プログラムは最後まで実行されます。

試しに、ファイル入力をやめて、直接プログラム内で初期化すると、正しく動くので、やはりここが問題なのかと。
まだJavaは始めたばかりで、参考書のプログラムをかなり参考にしましたが・・・。
よろしくお願いします。
public void PlaneModel()
{
try
{

BufferedReader br = new BufferedReader(new FileReader("scenario1.txt"));
String str;

for (int i = 0; i < plane.length; i++)
{
str = br.readLine();
plane[0][i] = (double)Integer.parseInt(str);
plane[1][i] = (double)Integer.parseInt(str);
}

br.close();
}

catch(IOException e)
{
System.out.println("Failed to read a File.");
}

}
786デフォルトの名無しさん:04/09/26 22:22:46
>>785
(double)Integer.parseInt(str) ってギャグか何か?
787デフォルトの名無しさん:04/09/26 22:33:42
>>785
for (int i = 0; i < plane.length; i++)

for (int i = 0; i < plane[0].length; i++)
とする。
ただし、double[]型のplane[1]のサイズがplane[0]と
同じ以上でなきゃダメです。
788デフォルトの名無しさん:04/09/26 22:35:01
>>785
for (int i = 0; i < plane.length; i++)
{
str = br.readLine();
plane[0][i] = (double)Integer.parseInt(str);
plane[1][i] = (double)Integer.parseInt(str);
}
planeて配列の宣言と生成はどこでやってるの?
あと、どうみてもループカウンタと配列要素の参照の仕方が合ってないよ。
789デフォルトの名無しさん:04/09/26 22:36:58
>>785
for (int i = 0; i < plane.length; i++)

for (int i = 0; i < Math.min(plane[0].length, plane[1].length); i++)
とする。
790デフォルトの名無しさん:04/09/26 22:42:54
ありがとうございます。
plane.length に関しては、おかしいですね。
ただ、この部分を配列サイズにあった定数にしても駄目ですね。

配列は、このクラスの頭、どのメソッドにも属していないところで宣言してます。
もしかしてそこですか・・・
791デフォルトの名無しさん:04/09/26 23:59:02
http://ews2.cc.niigata-u.ac.jp/~takeuchi/tbasic/
ここを見てbasicを学んでいるんですが、
普通のユークリッド互除法はマスターしたんですが、
拡張ユークリッド互除法と再帰ユー(ryがさっぱり分かりません。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
例えば,GCD(13,5) を計算するのに,

13=2*5+3  
5=1*3+2   
3=1*2+1
2=2*1     

を求めて,GCD(13,5)=1 とするものでした。今の場合この計算は,全く自明で,互除法は不要な感じがします。しかし,少し視点を変えるとそうとも言えません。上の式のうち最後の項を除いて,それぞれ,移項すると,

13-2*5=3
5-1*3=2
3-1*2=1

が得られます。ここで,3行目の式の2の所に,2行目の式を代入して,5と3に注目してくくると,
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
と、あるんですが、ここから先の説明がイミフです。
1=3-1*2=3-1*(5-1*3)=2*3-1*5

ここでイミフです。
1
=3-1*2
=3-1*(5-1*3) ←代入しました
=2*3-1*5 ←ここでわりません。
なぜこんな式になるのか教えてください、おねがいしますm(_ _)m
792デフォルトの名無しさん:04/09/27 00:05:57
↑ タイトルのjavaの 字 を見逃してました(^^||)
すみませんでした。
793デフォルトの名無しさん:04/09/27 00:12:17
えっと見た感じ

1=3-1*(5-1*3)
の左から2番目の3に
1番目の式3=13-2*5を代入して整理したと思われ

ただこれは何故こんなややこしいことをするのかは
多分、結論から逆に辿った感があり、説明出来ないと思う
794デフォルトの名無しさん:04/09/27 00:34:16
>ただこれは何故こんなややこしいことをするのかは
>多分、結論から逆に辿った感があり、説明出来ないと思う

これが拡張ユークリッドの互除法のアルゴリズムだから。
795デフォルトの名無しさん:04/09/27 00:34:43
>>792
説明の通りだがや。

1
=3-1*2
=3-1*(5-1*3)
=3-1*5+1*1*3←5と3に注目してくくる
=3-5+3
=3+3-5
=2*3-1*5
796792:04/09/27 01:24:37
>>793さん
すみません、イミフ…です(汗

>>794さん
後に理解が出来そうな予感がします…

>>795さん
=3-1*(5-1*3)
=3-1*5-1*1*3
=3-5+3
=3+3-5
なるほど…ここで最後に素数に変換してるんですね。
=2*3-1*5…_〆(.. )メモメモ

検索しても分からないし、誰にも聞けなくて絶望していたところでした。
間違いの書き込みなのに、怒られると思ったのに。
まさか回答をしてくれるとは思いませんでした。ほんとに嬉しいです。
やっと、やっと、先に進めます!真剣に考えてくれた皆さん
ありがとうございました!!
797デフォルトの名無しさん:04/09/27 02:42:22
>>796
> ここで最後に素数に変換してるんですね。

なんで素数?変換?
単に被除算数に注目してくくりだしてるだけだと思う
798デフォルトの名無しさん:04/09/27 04:05:06
JavaBeanってあるんですが、なんでpublicなフィールドじゃだめなんでしょう?
透過的なセッターゲッターをめくらめっぽう作成するのならpublicなフィールドで十分だと思うのですが。
799デフォルトの名無しさん:04/09/27 10:13:13
>>798
たとえばあるプロパティは10〜20の値しか取ってはいけないとする
そういう場合どうするかね?

それを操作するプログラムのミスで違う値が設定されるかもしれない

結局自分のフィールドは自分のクラスが直接扱うのが信頼性がある
800デフォルトの名無しさん:04/09/27 10:36:20
>>798
「オブジェクト指向」「カプセル化」で調べてみれ。
簡単に言えば自クラスの与り知らぬところで好き勝手されないようにそうなってる。
801デフォルトの名無しさん:04/09/27 11:52:53
>>799-800

「透過的なセッターゲッターをめくらめっぽう作成するのなら」
802デフォルトの名無しさん:04/09/27 12:11:34
>>801
拡張性とか考えれ
あとはツールがサポートするとか
803デフォルトの名無しさん:04/09/27 12:16:15

クラスAの非staticメンバクラスBを、クラスA以外の場所で
インスタンス化したいのですが、
クラスAのインスタンス変数ainsがあるとして、このainsを用いて
メンバクラスBを、クラスA以外の場所でインスタンス化する
文法を教えてください。
804デフォルトの名無しさん:04/09/27 12:34:17
>>803
A a = new A();
A.B = a. new B();
インナークラスは「A以外で使うな」という開発者の意思表示だと思うので
しないほうがいい。
805758:04/09/27 12:49:50
>>763
ネットでserialVersionUIDを探してみたのですが、あまり情報がみあたりません。
 具体的なやり方、または、解説を行っているサイトを教えていただけるとありがたい
です。
 ちなみに、UIDというクラスについての情報は見つけましたが、今回どう使うか
は理解できませんでした(汗
806デフォルトの名無しさん:04/09/27 12:50:40
ありがとうございます。
807デフォルトの名無しさん:04/09/27 13:07:28
>>805
APIリファレンスのJava オブジェクト直列化仕様の4.6 ストリーム固有識別子
の項目にあります。
具体的なやり方は本当にただクラス内に
private static final long serialVersionUID = 任意のlong値;
のフィールドを含めるだけです。
これでクラスのフィールド&メソッドを追加しても、前バージョンの
クラスがデシリアライズできます。
808807:04/09/27 13:08:34
お願いです。信じてください。
809デフォルトの名無しさん:04/09/27 13:10:03
>>804
ありがとうございました。
810デフォルトの名無しさん:04/09/27 13:10:30
>>805
Googleで探せば見つかるよ。「serialVersionUID java」で探してみよう。

それともあれか?top 10だけ探して諦めるタイプ?
811758:04/09/27 13:42:42
>>807
なるほど、変更前も、変更後も同じ値を設定しておけば、ファイル内に書き込まれている
データが変更後のクラスとしてデシリアライズできるんですね(ちょっと言葉の使い方が意味不明
ですか)。うーむ、不思議だぁ


>>810
いや、ちゃんと探したんですよ。2時間ぐらい、ですが、そのキーワードだとサーブレットだのとか
関係ないのばっかり当たって、核心を突く情報が見当たらないんです。とりあえず、
もう一度探してみます。
812758:04/09/27 13:50:04
>>810
あれれ、探してみたら結構当たりますね。java serialVersionUID serialize
とかで探してたからだめだったのかな・・・・・・
いいのが見つかったので、せっかくなのでアドさらしておきます。
ttp://cm55.cool.ne.jp/vsd/expanded/manual/serialize1.html
813デフォルトの名無しさん:04/09/27 14:16:53
ソースファイルの分割の仕方がわかりません。
814デフォルトの名無しさん:04/09/27 14:36:14
まず、はさみを用意して、真ん中から切ればOK
815デフォルトの名無しさん:04/09/27 14:44:08
>>814
一旦プリントアウトしなくちゃならないから、かなり面倒・・・・
816デフォルトの名無しさん:04/09/27 15:22:36
>>802
別に考える必要があるときばかりじゃないと思うんだけど。
範囲チェックが必要になったときにセッター作ればいいだけで。
ゲッターで処理することなんかほとんどないし。
継承して使うこともあまりないし。それはそれで継承するときにセッターゲッター作ればいいし。
変更の反映はツールがやってくれるし。
817デフォルトの名無しさん:04/09/27 15:23:33
>>815
プリントアウトするだけで、何枚かの紙に分割されるよ。
818デフォルトの名無しさん:04/09/27 15:30:12
ひとつお聞きしたい事が。。。
例えば、ゲームのアプレットを作っています。
テトリスをやっていて、次にぷよぷよを同じ画面でやりたい時は、どう書く
んでしょうか?
一つのアプレットの中に二つのゲームを突っ込んでもいいのですが、もっと
すっきり書く方法は無いのですか?
819デフォルトの名無しさん:04/09/27 15:33:11
>>816
すでにJavaBeansの仕様がそうなっているから、
setXyz/getXyzがあることが前提で作られているツールや
フレームワークやライブラリが多い。
逆に言うとアクセッサ作った方が便利に使える世の中ってこと。
820デフォルトの名無しさん:04/09/27 15:37:38
>>819
ツールやライブラリに通さないんだったり、ツールやライブラリがセッターゲッターがなくてもそれなりに動いてくれるんだったら不要ってことでOK?
821デフォルトの名無しさん:04/09/27 15:48:15
>>820
おまい一人で開発し、未来永劫他人がメンテしないことが保証できるんだったら勝手にすれば?
俺だったらそんなソース見たくないけどね。
822デフォルトの名無しさん:04/09/27 15:52:45
>>821
なんで?
セッターゲッターもってないことなんか一目瞭然だし、無駄なセッターゲッターなければコード行数も少なくて見やすいし。
823デフォルトの名無しさん:04/09/27 16:06:03
pが整数ならば、つまり、下記のようにやりたいのですがいい方法(メソッド)ないですか?

if(P == 整数){
・・・・・・・
}
824デフォルトの名無しさん:04/09/27 16:08:11
byte a,b;
a=b+2;
とかだと精度が落ちてるとか言われます。
どうしたらいいですか?
825デフォルトの名無しさん:04/09/27 16:08:28
お馬鹿さんには何を言っても無駄。
826デフォルトの名無しさん:04/09/27 16:15:54
>>823
Pの型が整数かどうか知りたいの?
だったら宣言した時に解かるじゃないか。
827823:04/09/27 16:21:15
>>826
ですよねw
言い直します。

qは整数とし、q/(q-1)が整数ならば・・・、とやりたいのです。


828デフォルトの名無しさん:04/09/27 16:23:29
プロパティがフィールドとしては存在しない場合や、
プロパティの値そのものとは異なる形で存在している場合もある。

例が悪そうだが、
class Foo {
 int x;
 int y;
 // その他フィールド

 Point getLocation() {
  return new Point(x, y);
 }

 public void setLocation(Point p) {
  this.x = p.x;
  this.y = p.y;
 }
 // その他メソッド
}

class FooBeanInfo implements BeanInfo {
 public PropertyDescriptor[] getPropertyDescriptors() {
  PropertyDescriptor[] propDescs = new PropertyDescriptor[] {
   new PropertyDescriptor("location", Foo.class);
  };
 }
 // 以下略
}
829デフォルトの名無しさん:04/09/27 16:31:00
>816
範囲チェック後から実装したとして、
そのときにpublicなフィールドの値が範囲内だと信頼できるのか?
できないだろ?
そのときになってprivateにして膨大な数のソース書き直すぐらいなら
はじめからgetterやsetter作っておいた方がいい。
830デフォルトの名無しさん:04/09/27 16:35:04
>>824
JAVAでは、short型とbyte型の数値を計算する時は、int型に
拡張してしまいますので、b+2はint型の数値になってしまうのです。
よって a=(byte)b+2 とすればOK
831823:04/09/27 16:39:52
すみません。解決しました。
q/(q-1)が割り切れる時 = 余りrが0の時
って感じでやったら、うまくいきました。どうもです。
832デフォルトの名無しさん:04/09/27 17:01:57
>>829
> そのときになってprivateにして膨大な数のソース書き直すぐらいなら

Eclipseがやってくれるから無問題。
833デフォルトの名無しさん:04/09/27 17:12:24
>>832
自分が書いたライブラリを利用するコードの全てが
自分の手元にあるわけではない。
834デフォルトの名無しさん:04/09/27 17:13:46
>816 後になって遅延生成入れときゃよかったとか
悩むくらいなら最初からgetter入れておくな、俺は。
835デフォルトの名無しさん:04/09/27 17:22:38
VBのコントロール配列みたいに、javaでコンポーネントを配列化できますか?
836デフォルトの名無しさん:04/09/27 17:25:16
>>835
Objectはすべて参照なのでいくらでも
837デフォルトの名無しさん:04/09/27 17:27:21
>>816がだだをこねて暴れるスレはここですか?
838デフォルトの名無しさん:04/09/27 17:32:39
>>835
できるよ
Frame[] frame = new Frame[100];
JButton[] button = new JButton[100];

ただ、コンポーネント配列の初期化はこの時点では中身が殻なので注意してね。
個別に初期化するか、既にインスタンス化されてるオブジェクトを代入するか。
839デフォルトの名無しさん:04/09/27 17:33:42
あげちゃった、ごめん(´・ω・`)
840デフォルトの名無しさん:04/09/27 17:36:05
getFrames()って使ってる香具師いる?JFrameに継承されてるくせに、なぜFrameを返すのか・・・orz
しかもJFrame→Frameへのキャストは無理だし
ぶっちゃけ、使い物にならん気がする
841デフォルトの名無しさん:04/09/27 17:49:06
>>840
Javaをもうちっと勉強してみてね
842 :04/09/27 17:54:37
アプレットからアプレットを呼ぶには、
どのようにすれば良いのでしょうか。
843デフォルトの名無しさん:04/09/27 17:58:52
>>842 「呼ぶ」の具体的動作を説明希望。
ブラウザで次のURLを開けばいいだけなら
AppletContext取得してそれ使う。
844  :04/09/27 18:03:05
今、アプレットが動作してる領域に、別のアプレットを呼ぶ。
ということをやろうとしています。
845デフォルトの名無しさん:04/09/27 18:40:58
たぶん842の目的はアプレット二つに分けなくてもいいんじゃねーか
という気がする。まあ呼ばれるほうが自分が書いたコードじゃなくて
他からぱくってきたとかそういう事情があるのかもしれんが。
846デフォルトの名無しさん:04/09/27 18:45:44
JMSってなんなのか簡単に教えてください

メッセージ待ちのものに対して、メッセージ投げるメッセンジャーのようなイメージなのか
動いてるプログラムに対してイベントを投げて例外発生させたりできるようなものなのか
よくわからないのですが、どっちも違う?
847デフォルトの名無しさん:04/09/27 19:34:26
ユーザーがリンクをクリックしたとき、javaサーブレットを使った場合
動的なhtmlを表示することは、今日勉強して分かりました。
動的なhtml以外のファイルをユーザーに送るのって、
どうやってやるんですか?doget()をいじるのですか?
848デフォルトの名無しさん:04/09/27 19:46:36
>>847
リンクなら直リンク貼れば?
動的に作成したものを出すならcontentTypeいじればいいかと
849847:04/09/27 19:55:03
>848
ユーザーがリンクをクリックして、
サーバーが最初にユーザーに送ったファイルをユーザーは
手に入れず(送られたことに気が付かず)、
そのあと、ユーザーに見えない形で、
ユーザー側からサーバーにファイル(xml)が送られ、
さらにそれに対してサーバーはユーザーにファイル(xml)
を送るのです。それをユーザーは必要としています。
その場合直リンクでもいいのですか?
850デフォルトの名無しさん:04/09/27 20:03:38
ハッキングの相談?
851デフォルトの名無しさん:04/09/27 20:05:03
javaは配列を戻り値にできますか?
852デフォルトの名無しさん:04/09/27 20:18:50
できないと思う根拠は何ですか?
853デフォルトの名無しさん:04/09/27 20:34:49
C言語だと基本的には出来ないね
854デフォルトの名無しさん:04/09/27 20:38:28
SDKがダウンロード不能になってね―かい?
855デフォルトの名無しさん:04/09/27 20:59:10
>>851
試さずに質問すんなうんこもらし
856デフォルトの名無しさん:04/09/27 21:11:16
もう一回質問します。
誰かヒントだけでもお願いします(´Д⊂グスン

はじめまして。質問させてください。

現在、電子署名の拡張情報の値をjavaで取得する方法で悩んでいます。
X509ExtensionクラスのgetExtensionValueメソッドを使用してDERで符号化されたOCTET文字
列までは取得出来ました。
しかし、取得したbyte配列をStringに変換しても文字化けを起こしていて中の値が見ること
が出来ません。
どうすれば文字化けを直すことが出来るでしょうか?
よろしくお願いします。
857デフォルトの名無しさん:04/09/27 21:14:53
ファイルをコピー(または移動)するにはどうすればいい?

http://java.sun.com/docs/books/tutorial/essential/io/filestreams.html
調べてみたところ read と write を使ってコピーする
方法があったけど,それって無駄が多いですよね.

できれば(下で)システムコールを呼んでコピーしてくれる
メソッドが欲しいのですが,ご存知の方教えてください
858デフォルトの名無しさん:04/09/27 21:32:20
ほー最近のUnixはコピーのシステムコールなんてあるノ?
859デフォルトの名無しさん:04/09/27 21:34:46
つーか環境依存しないように作られてるんだから
システムコール呼ぶって考えはやめれ

30分あれば綺麗なライブラリつくれるだろうから
それでさっさと作ればよろし
860デフォルトの名無しさん:04/09/27 21:52:45
>>857
自作するくらいならJakarta Commons IOを使いましょう。
ttp://jakarta.apache.org/commons/io/
ttp://jakarta.apache.org/commons/io/apidocs/org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.File)
861デフォルトの名無しさん:04/09/28 10:09:32
JSPの質問とかってここでさせていただいてもOKですか?
該当スレが見当たらないので。
862デフォルトの名無しさん:04/09/28 10:12:19
>>861

[マジ初心者]JSP/servlet[助けて!!]
http://pc5.2ch.net/test/read.cgi/tech/1059044443/
863デフォルトの名無しさん:04/09/28 10:19:18
>>862
誘導dクス。
864デフォルトの名無しさん:04/09/28 10:25:51
どう違うのかわからんが
■■ Servlet/JSP(EJB含む) 質問スレ Part3 ■■@WebProg
http://pc5.2ch.net/test/read.cgi/php/1087331455/l50


とかもある
865デフォルトの名無しさん:04/09/28 11:50:50
>>777
> バグは全てソースの中にある(まつもとゆきひろ、Ruby開祖)


Code Reading読んだだろ藻前
866デフォルトの名無しさん:04/09/28 11:53:24
>>832
Eclipseがやってくれてもすでに
依存関係にあるコードで
そんなことやっても苦しい
867デフォルトの名無しさん:04/09/28 12:59:26
それに開発環境としてEclipseが使える場合はいいが、
チーム開発とかになってくるとそうもいってられないだろ

そうそう他人のコード部分書き換えるなんてありえんし
868デフォルトの名無しさん:04/09/28 13:25:24
リファクタリング時だけEclipse使えばいいじゃん。
どうせ後付けでセッターゲッターが必要になることも少ないんだし。
とくにゲッター。セッターは百歩譲って、必要になる可能性が高いからあらかじめ用意するでもいいとしても。
あとからゲッターの挙動変更することって、ほとんどない。あるの?頻繁にあるの?
最近はBeanUtilsで右から左へ移動するだけ、表示はJSPかVelocityってことも多くて、getXxxすることも減ってるし。
Strutsのexecuteの中
 BeanUtils.copyProperties(o, form);
 session.save(o);
だけとか
 request.setAttribute("list", session.load(ShohinTable.class, code).list());
だけとかってことも多いし。
869デフォルトの名無しさん:04/09/28 13:39:24
JSPとかBeanUtilsはgetter/setterありきだと思うけど?
870デフォルトの名無しさん:04/09/28 13:48:41
あ、JSPはそうだ。BeanUtilsもそうなんだろう。
ってか、いまんところちゃんとゲッター書いてるから、ゲッター無しでいけると思ってた。
ゲッター書きたくないんだよぉ。めんどくせぇんだよぉ。
871デフォルトの名無しさん:04/09/28 13:55:27
>>870
>ゲッター書きたくないんだよぉ。めんどくせぇんだよぉ。
それこそEclipseの登場だな
872デフォルトの名無しさん:04/09/28 13:57:32
あいかわらず>>798元気だな

リファクタリングといっても他人のコード勝手にいじるわけにいかないだろ
beansってのはライブラリでよく使われるんだしそういうもんだ
チーム開発しているのならツールもすべて指定されることも多い
873デフォルトの名無しさん:04/09/28 14:03:07
>>871
Groovyみたいに、目に付かなくしてくれたらいいのに。
874デフォルトの名無しさん:04/09/28 14:05:08
>>872
他人のコードいじれなかったら、リファクタリングにならんですよ。
というか、そういうレベルのコードの所有権って害にならない?
保守的な理由では利点があるけど。
875デフォルトの名無しさん:04/09/28 14:13:17
あ、保守的というのは、メンテナンス的という意味ではなくて、コンサバティブという意味で。
「人のコードを触ると気を悪くする」とか「エンバグしたときに冤罪になる」とか、あまり建設的ではない利点
876デフォルトの名無しさん:04/09/28 14:51:33
>>874
誰かが開発中のコードに他人が勝手に手を入れたらいかんだろう

昼休み中にリファクタリングしといたからとかいわれたらぶちきれる
877デフォルトの名無しさん:04/09/28 14:57:12
>>876
・・・CVS使うでしょ。
878デフォルトの名無しさん:04/09/28 15:06:42
これ以降はXPスレにでも行ってください
879デフォルトの名無しさん:04/09/28 15:12:23
emacsでいいでしょ
880デフォルトの名無しさん:04/09/28 15:16:41
リファクタリング自体は構わないが、
ゲッターセッター書くことで回避出来るものを、
それを免罪符にあとから修正するのはリファクタリングと言うのは違う。
たとえXPだろうと他に影響がないようにコーディングするのは大前提だろ。
>>868
セッターが許せる・作成するんならゲッター作らないとまったく意味がないことに気づかないか??
881デフォルトの名無しさん:04/09/28 19:15:06
おすすめのフリーのソースエディタを教えてくらはい
882デフォルトの名無しさん:04/09/28 19:25:01
>>881
emacsがとても使いやすいと思うのだけど、
Windowsではxyzzy?かな。
emacsだとほとんどマウスを触らなくても良いし、ほとんどの作業、
コンパイルからメールなども含めて、がemacs上でできる。
883デフォルトの名無しさん:04/09/28 19:26:13
何で板違いな質問に答えようとするんだろう。
884デフォルトの名無しさん:04/09/28 19:26:57
>>883
話の流れで、そうなった。
885デフォルトの名無しさん:04/09/28 21:03:48
そんな流れどこにもない
886デフォルトの名無しさん:04/09/28 22:22:31
質問です。
TOMCATでServletContext#getResource("/WEB-INF")を行うと
"jndi:/localhost/CONTEXT_ROOT/WEB-INF"のURLが得られます。
これをWebSphereで実行すると
"file:/c:/HOGE/CONTEXT_ROOT/WEB-INF"の様に絶対パスのURLが得られます。
TOMCATでも絶対パスのURLが取得できる方法があるのでしょうか。
887デフォルトの名無しさん:04/09/28 22:33:01
新Java言語入門シニア編とやさしいJava及び、やらしいJava活用編を一通りマスターしました。
しかし、まだ、このスレや雑誌なんかを読んでると、こんな文法あるんだ?って感じで、わからないことだらけです。
次に読むオススメの書籍があったら、教えてください。
888デフォルトの名無しさん:04/09/28 22:49:11
>>886
getRealPath()
889デフォルトの名無しさん:04/09/28 22:50:57
>>887
何がしたいの?
890ド素人:04/09/28 22:58:52
ひとつ思ったんですけど、
public paint(Graphics g){
}
ってあるじゃないですか。これを

public paint(){
Graphics g = new Graphics;
}

ってやっちゃだめなんですか?
いいのか、ダメなのか、理由をつけて答えなさい。
891デフォルトの名無しさん:04/09/28 22:59:41
>>887
>次に読むオススメの書籍があったら、教えてください。
もちろん、次は、どすけべJava
892デフォルトの名無しさん:04/09/28 23:01:33
>>889
いや、何がしたいというわけでもないんですけど、基礎を身に着けたいです。
上記三冊で、基礎の部分は十分なんですかね?
893デフォルトの名無しさん:04/09/28 23:02:51
>>887
ぽえりな
894886:04/09/28 23:17:11
ServletContext#getResourceで"jndi:"や"file:"はなにで
決まるんでしょうかね。
895デフォルトの名無しさん:04/09/28 23:31:17
>>890
そもメソッドをどう使うか考える。
896デフォルトの名無しさん:04/09/28 23:32:28
>>890
しってるが、お前の態度が気に入らない。
とりあえず理由の一つはこれだ。public abstract class Graphics
897890=ド素人:04/09/28 23:52:06
Graphicsクラスがアブストラクトであることが関係してるの?
アブストラクトって、メソッドの中身が定義されてないクラスだったっけ?
898890=ド素人:04/09/29 00:13:23
public static int returnx(int x){
return x;
}
みたいに定義みたいなもの?わかんないよー。
899デフォルトの名無しさん:04/09/29 00:16:35
>>898
死ね。
900デフォルトの名無しさん:04/09/29 01:07:36
>>841
Frame→JFrameは出来ないの間違いね
で、getFrames()って使い物になるか?JFrameを返すようにしたいんだけど。
おまいさんはどんなときに使ってるの?
901デフォルトの名無しさん:04/09/29 01:15:06
以前もこういうハンドルあらわれなかったっけ?
902デフォルトの名無しさん:04/09/29 01:16:06
>>900

Frameのメソッドであって
JFrameでオーバーライドしていないからFrame返すのは当たり前
でもそれは問題にならないでしょ

もうちっと勉強しようね
903デフォルトの名無しさん:04/09/29 01:42:11
>>902
いいたいことがわかんない
っていうか質問の答えになってないし
904デフォルトの名無しさん:04/09/29 02:13:34
AWTの機能であるFrame.getFrames()にJFC/SwingのJFrameを返せと
言われても....

1 親クラスは子クラスのことなどしったこっちゃない。ふつうのことだ。
2 AWTはSwingのことなどしったこっちゃない。当然だろ?

ってだけのことじゃないの? getFrames()はJFrameを含め、アプリケーションが作成
したすべてのFrameを返すんだから、戻り値の配列にはJFrameもあればFrameもあるかも
しれん。もしかしたら独自のFrameサブクラスもあるかもしれん。
FrameはJFrameのことなどしったこっちゃないからFrameとして返すだけだ。
キャストしたいならinstanceofでチェックしてからキャスト。JFrameじゃない可能性も
あるからな。

あと、staticなgetFrames()はどのみちオーバーライドできん。
905デフォルトの名無しさん:04/09/29 02:46:23
ここは意地悪な回答者の多いインターネッツですね(怒)
906904:04/09/29 02:58:35
質問したいのは、

1 getFrames()は使い物になるか?
2 JFrameを返すようにはできないのか?

のどっちだ? どっちもか? 質問は明確にせい。

1解答
使えるところで使えばまあ使える。適材適所だな。使えん時は全然使えん。
というか、そんなに多用するもんでもないし。

2解答
getFrames()をオーバーライドするという意味なら無理だが、別に自分で
getJFrames()とかいうユーティリティメソッドを適当に作って、そこで
Frame.getFrames()を呼び出して、返値の配列からinstanceofでJFrame
のインスタンスだけ選び出して別の配列につっこんで返してやれば、望みの
ものになるだろ。
907デフォルトの名無しさん:04/09/29 10:49:18
どなたかお願いします。
マウスイベントで線などを描写しても、最小化したり、
別のウィンドウを前に出すと線が消えてしまうのですが、
どうしたら消えなくなるでしょうか。
座標位置をどこかに保存しておいて、paintメソッドで線を描き直すのは分かるのですが、
なにかそのようなメソッドでもありますか?

908デフォルトの名無しさん:04/09/29 10:55:50
>>907
そんなメソッドは標準APIにはありませんが、あなたのハードディスクの中にヒントがあるでしょう。
%JAVA_HOME%\demo\applets\DrawTest
909907:04/09/29 11:28:44
>>908
Vectorを使うしかないんでしょうか?
一番スマートにいけますか?
910デフォルトの名無しさん:04/09/29 11:55:43
>>909
public void paint(Graphics g)をオーバーライドして
そこに同じ線を書くコードを含めるか、createImage()で
バッファ用のイメージを作成して、そのイメージに線を描くようにし、
オーバーライドしたpaint内で そのバッファイメージをdrawImage()で
コピーしませう。
911907:04/09/29 11:57:10
>>910
ありがとうございます。
試してみます。
912デフォルトの名無しさん:04/09/29 14:27:49
逆コンパイルについての質問です。以下「e-words」ttp://e-words.jp からの
転載:
 Javaで開発されたプログラムは逆コンパイルされやすい構造であることが知ら
 れており、逆コンパイル対策ソフトも開発されている。

となっていますが、逆コンパイル対策の最新技術動向を教えて下さい。
913デフォルトの名無しさん:04/09/29 14:51:46
>>912
新しいものはないんじゃないの?
914デフォルトの名無しさん:04/09/29 15:46:09
ちょっと聞きたいのだが、
「Java 2 プラットフォーム API 仕様」は
前はダウンロードできたんですか?
今できないんですが。
915デフォルトの名無しさん:04/09/29 16:25:29
double[6][5]の配列に
テキストファイルの
***.txt
___________
|0 1 2 3 4
|0 1 2 3 4
|0 1 2 3 4
|0 1 2 3 4
|0 1 2 3 4
|0 1 2 3 4

のようなデータを読ませたいのですが、
コードの書き方が分かりません・・・。

StreamTokenizer等を使うのは想像がつくのですが(これ自体違うかも)。
*データの数字は任意で本当はランダムです。
916デフォルトの名無しさん:04/09/29 17:16:23
BufferedReaderで読んで1行を" "区切りでStringTokenizerで分割、でどうかしら。
917デフォルトの名無しさん:04/09/29 17:32:29
>>914
できます。
918デフォルトの名無しさん:04/09/29 18:03:28
>>915
StreamTokenizer st=new StreamTokenizer(new StringReader(text));
st.eolIsSignificant(true);
double[][] num=new double[6][5];
int x=0, y=0;
loop: while(st.ttype!=StreamTokenizer.TT_EOF) {
  try { st.nextToken(); }
  catch (IOException ex) { break; }
  switch(st.ttype) {
    case StreamTokenizer.TT_EOF: break loop;
    case StreamTokenizer.TT_NUMBER: num[y][x++]=st.nval; break;
    case StreamTokenizer.TT_EOL: ++y; x=0;
  }
}
919間違えた訂正:04/09/29 18:07:04
>>915
StreamTokenizer st=new StreamTokenizer(new FileReader(file));
st.eolIsSignificant(true);
double[][] num=new double[6][5];
int x=0, y=0;
loop: while(true) {
  try { st.nextToken(); }
  catch (IOException ex) { break; }
  switch(st.ttype) {
    case StreamTokenizer.TT_EOF: break loop;
    case StreamTokenizer.TT_NUMBER: num[y][x++]=st.nval; break;
    case StreamTokenizer.TT_EOL: ++y; x=0;
  }
}
920915:04/09/29 18:44:07
>>919,917
ありがとうございます。
「なるほど」と言う感じです。
921912:04/09/29 19:19:31
逆コンパイル防止の常套手段ってありますか?
922デフォルトの名無しさん:04/09/29 19:44:43
>>921
契約。
923デフォルトの名無しさん
>>921
わざとエラーが出るコードにすれば、逆コンパイルされても無問題だ。