【初心者】Java質問・相談スレッド111【大歓迎】at TECH
【初心者】Java質問・相談スレッド111【大歓迎】 - 暇つぶし2ch369:デフォルトの名無しさん
08/01/24 17:22:22
Exception in thread "Thread-6" java.lang.ArrayIndexOutOfBoundsException: 8
at ipmsg.HelloWorldJNI.btoS(HelloWorldJNI.java:35)
at ipmsg.IDManager.getPID(IDManager.java:71)
at MainWindow.makeSortKey(MainWindow.java:270)
at MainWindow$RefreshList.run(MainWindow.java:304)
このエラーの意味がわからなくて困っています。
もしよろしければ教えていただけないでしょうか。

370:デフォルトの名無しさん
08/01/24 17:28:55
java.lang.ArrayIndexOutOfBoundsException

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

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

373:デフォルトの名無しさん
08/01/24 19:42:04
エスパー募集中

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

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

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

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

378:デフォルトの名無しさん
08/01/25 10:53:37
>>377
param
URLリンク(www.jajakarta.org)

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

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

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

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

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

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

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

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

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

とまあ、こんな感じで。

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

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

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

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

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

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


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

392:デフォルトの名無しさん
08/01/25 21:16:55
無いということがわかるだろw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


411:デフォルトの名無しさん
08/01/26 18:52:48
ネット回線が遅いんじゃないのか

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

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

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

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

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

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

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

419:デフォルトの名無しさん
08/01/26 21:52:01
>>410
getInputStream だと確定してるなら、何も言うことは無い。

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

>>418
別にそんな決まりはない。
URLリンク(java.sun.com)

420:デフォルトの名無しさん
08/01/26 22:17:07
Java Media APIsのスレ立てたんでこのスレの範疇を超える以下のAPIは

【JMF】Java Media APIs【JOGL】
スレリンク(tech板)l50

に誘導してください。

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

421:デフォルトの名無しさん
08/01/26 22:21:58
なんでわざわざ糞スレ立てんの?

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

423:デフォルトの名無しさん
08/01/26 22:50:47
おまいみたいな奴のため

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

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

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

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

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

425:デフォルトの名無しさん
08/01/27 01:06:43
\r

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

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

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

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

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

431:デフォルトの名無しさん
08/01/27 06:34:40
\r だろ、フツー。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

recalculateWeightBalance();

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

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

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


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

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

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

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

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

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

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


449:448
08/01/27 19:33:58
すみません誤爆です><

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

URLリンク(java.sun.com)
機能リファレンスガイド > 基本ライブラリ > その他のパッケージ > 国際化 より。
サポートされているエンコーディング
URLリンク(java.sun.com)

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

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

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

スレ汚し、失礼しました

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

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

476:デフォルトの名無しさん
08/01/28 12:20:43
>>474
たぶんこれのことか?自分で数えてくれ
URLリンク(java.sun.com)

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

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

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

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

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

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

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

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

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

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

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

//出力例

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

貴方の年齢は 28才です。

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


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

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

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

486:477
08/01/28 14:13:15
無視してくださいorz

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

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

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

488:477
08/01/28 14:35:29
>>487
ありがとうございます!やってみますw

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

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

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

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

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

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

495:デフォルトの名無しさん
08/01/29 00:52:36
>>494
出来ませんか…
ありがとうございました

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>510
import java.util.Date;
でOK

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

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

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

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

public class CsvSplit {

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


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

 private ArrayList readCsvFile(String fileName, String charsetName) {

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

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

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

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

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

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

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

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

518:デフォルトの名無しさん
08/01/29 16:51:11
このまま俺らにデバッグしろと言う気か

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

534:デフォルトの名無しさん
08/01/29 23:53:35
>>533
つ Integer.parseInt(String, int)
URLリンク(sdc.sun.co.jp)

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

プロセスサイズ=ヒープサイズ+JVM自身が利用するメモリサイズ
ってことであってますか?

536:533
08/01/29 23:57:21
>>534
parseIntは散々試してみましたけどだめでした。
なむふぉでまくりです。
decodeがまだだったので試してみます。

537:533
08/01/30 00:04:07
うまくいきまんた

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

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


540:デフォルトの名無しさん
08/01/30 00:16:53
>>521
和訳は本しかない
VMの対応バージョンは1.3か1.4あたりだったかな
5.0でバイトコードのフォーマットが変わったから、買おうか悩む

541:デフォルトの名無しさん
08/01/30 00:33:30
伝わりにくいと思うんですが、文字列を相手に入力してもらう方法と、その入力してもらったいくつかの文字列をランダムに組み合わせるってできますかね?

542:デフォルトの名無しさん
08/01/30 00:35:36
>>541
文字列というのは日本語です。

543:デフォルトの名無しさん
08/01/30 00:39:59
伝わりにくいね。
~してもらう方法と、~をランダムに組み合わせるってできますかね?
・・・日本語がおかしいから伝わりにくいんだろうね。

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

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

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

もしくは

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

562:デフォルトの名無しさん
08/01/30 14:03:26
>>557
# "handlers" specifies a comma separated list of log Handler
# classes. These handlers will be installed during VM startup.

Log4j のおっさんがアジ文章で 「JSR47の設定ファイルはハンドラクラスに
1 インスタンスしか指定できねーじゃんよ ファイル分けらんねーよ!!」 と
ブチ切れてるのも見つけた。
URLリンク(www.ingrid.org)

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

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

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

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

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

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

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

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

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

www.beanshell.org/

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

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

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

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

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

572:デフォルトの名無しさん
08/01/31 02:26:07
>>558

プロセスサイズ=ヒープサイズ+スタック+Hotspotってことすね。
thx

ってか今、遊びで作ってるプログラムなんだけど、
プロセスサイズが右肩上がりで肥えていく・・・
ヒープは正常(増減を繰り返す)っぽく見えるのよね・
もうよく分からん。javaは難しいな・・・


573:デフォルトの名無しさん
08/01/31 02:36:01
rt.jar変えずにString.toString()の挙動を
return this;

return "hoge" + this;
に変更したいんだけど、これって可能?
Javassistとかバイトコードいじる以外で。

574:デフォルトの名無しさん
08/01/31 02:43:48
>>573
私は出来る方法を知らない。
が、何に使うのか。そこには興味がある。

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

576:デフォルトの名無しさん
08/01/31 07:59:22
>>575
AOP…
私の知ってるAOPはバイトコードをいじるのですが、何か別の方法があるのでしょうか

577:デフォルトの名無しさん
08/01/31 09:36:44
ちょいと質問です。
TBNって個人のニュースサイトなんですが、
URLリンク(tbn2.blog50.fc2.com)

タブブラウザのJavaScript実行を切ってても
ページが表示されると勝手に実行に切り替わってしまいます。
というかoffにすることが出来ません。
これってどいゆう仕掛けなんでしょう?



578:デフォルトの名無しさん
08/01/31 09:40:44
ここはJavaの質問・相談スレッドだと思う。

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

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

581:デフォルトの名無しさん
08/01/31 10:11:16
ここにいる人は知ってるかもしてないけど、文字列解析の良いロジック思いついたから
晒しとくわ。
String word //解析したい文字列
for(int i=0; i<word.length(); i++){
if(word.startsWith("NGワード",i){
//処理したいロジック
}
else{
}
}
//else ifでNGワード追加していけばいくらでも設定できる
こんなんどうでしょ?
もしかしたら文字列の長さ1からカウントするかもしれないけど例外は出ないし
NGワードが最後にあるってことは少ないと思うのでモウマンタイで。

582:デフォルトの名無しさん
08/01/31 10:13:27
!目から鱗w天才なんじゃね

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

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

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

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

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

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

588:森園くるみ
08/01/31 11:55:10
森園くるみと申します。

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

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


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

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

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

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

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

593:デフォルトの名無しさん
08/01/31 14:43:06
コンストラクタでのthis漏洩ってどれぐらい気をつける/気にするもんでしょうか?
内部クラス経由の暗黙漏洩、thisキーワードでの明示的漏洩を問わず。
class Foo {
 Bar bar;
 public Foo() {
  bar = new Bar(this);
 }
}
みたいな時、new Bar(this)はthis参照を保存するだけで、それを使うことは無い、とわかってれば
安全なんでしょうが、Barのコンストラクタの実装が変わるとFooも危険になる。
Fooの安全性が、Barの実装に依存することになるのが、なんとなく気持ち悪いけど、割り切ればいいものなのかもしれない。
ってのがモヤモヤするところです。
潔癖にするなら、
class Foo {
 Bar bar null;
 public Foo() {
 }
 public void initialize() }
  bar = new Bar(this);
 }
}
みたいな2段階初期化なんでしょうけど。
Swingのソースとか見ると、this漏洩しまくりなんですけどね。

594:591
08/01/31 14:56:18
>>592
簡単に言うと、データフォルダの容量を0byteに出来るようなアプリを作りたいんです。
ただ探してもなかなか見つからないので、
似たようなアプリ、または参考になりそうなサイトがあったら
教えて頂きたいのです

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

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

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

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

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

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

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

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

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

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

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

604:591
08/01/31 17:54:51
わからないなら黙ってろよ

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

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

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

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

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

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

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

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

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

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

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

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

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

CLDC+MIDP+携帯電話用Javaスレッド part 7
スレリンク(tech板)

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

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

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

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

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

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

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

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

621:とりあえず探してみた
08/01/31 19:20:19
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java標準低速GUI 6 AWT/Swing
スレリンク(tech板)l50
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part16
スレリンク(tech板)l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 7
スレリンク(tech板)l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 64 ★★
スレリンク(tech板)l50

622:デフォルトの名無しさん
08/01/31 19:26:05
■ それ以外
URLリンク(life9.2ch.net)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ないはず。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


663:デフォルトの名無しさん
08/02/01 20:01:06
普通に未初期化の null とか 0 とかの値で参照してしまうだけじゃね。

664:デフォルトの名無しさん
08/02/02 02:12:51
JNDIについてわかりやすいサイトがあればおしえてくれませんか。
EJBの勉強で別サーバで動くEJBを動かしたいんですが、JNDIの設定
がわからなくてエラーがでます。

665:デフォルトの名無しさん
08/02/02 02:47:54
>>664
もうちょっとエラーの内容を細かく書いてみるべし。

666:デフォルトの名無しさん
08/02/02 04:10:02
昔の Java からどう変わってきたかざっくり書いてある HP ないですか?

667:デフォルトの名無しさん
08/02/02 04:24:20
>>666
こんなん? まぁキーワードから先は自分で調べれ
URLリンク(lab.moyo.biz)
URLリンク(lab.moyo.biz)

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

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

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

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

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

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

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

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

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

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

676:デフォルトの名無しさん
08/02/02 16:50:47
>>675
ダブルクリッカブルでいいのかそれともネイティブな実行可能ファイルを吐きたいのかによる。
ダブルクリッカブルでいいならjar生成するときにマニフェストでMain-Class指定。
ネイティブならjava, exeなどで検索。

677:デフォルトの名無しさん
08/02/02 17:22:24
最近、ここ一年くらいJava使ってないんだが、
最近のJavaの近況ってどうよ?

SpringとかAjax周りとかO/Rマッピングとか、StrutsとかRoRのJava版とか
昔聞いた記憶があるんだが
そのほか新しいトピックがあるとしたら今は何よ?

678:デフォルトの名無しさん
08/02/02 17:29:28
WicketいいよWicket

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

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

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

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

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

684:デフォルトの名無しさん
08/02/02 21:12:27
URLリンク(www.raw-paradise.com)

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

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

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

# 以下チラ裏
# 後続のために念のため見つけたURL書いときます
# JavaFAQ: Date / Calendar
# URLリンク(javafaq.jp)


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

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

690:デフォルトの名無しさん
08/02/03 04:20:11
わかりにくいボケにわざわざ突っ込んであげる>>689に全俺が感動。


691:デフォルトの名無しさん
08/02/03 16:03:37
664です。質問内容がが不明瞭でした。
EJBを使用する際に、
ObjHome objHome =
(ObjHome)context.lookup("java:comp/env/ejb/test.ObjHome");
でhomeを取得してくるのですが、
これってリモートでEJBをCALLするときにEJBが存在するサーバIPや
ポートの指定などしていないのですが、何故callできるんでしょうか。


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


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

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

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

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

この書き方は、例えば ThreadLocal クラスの
API の 1.4 以降で、使い方の説明に出てきます。
URLリンク(sdc.sun.co.jp)

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

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

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

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

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

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


698:868
08/02/03 20:00:04
誤爆しましたorz


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

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

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

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

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

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

704:デフォルトの名無しさん
08/02/03 22:25:39
>>703

あとは何を書いたらいいのかわかりません。
何を書いたらよろしいでしょうか?

705:デフォルトの名無しさん
08/02/03 23:52:19
java.lang.Process#waitFor()で永久ブロックになってしまうことがあるので
タイムアウトを設定して回避したいのですが、
タイムアウト付のwaitFor代替の方法ってあるのでしょうか?
いちいちTimer設定して破棄するしかないのだろうか・・・


706:デフォルトの名無しさん
08/02/04 00:22:23
>>687
Java FAQも古いな。

Java5以降になってから解決した問題が未だに載っている。
Java5以降の開発では有用性が弱冠下がっている。
Java6以降の対応版Java FAQを作るべき時期に来ているのだろうか?
それとも、すでにそれに相当するサイトによって置き換えられてしまったか?

707:デフォルトの名無しさん
08/02/04 00:22:26
final Process proc = Runtime.getRuntime().exec("/bin/shine");
Thread t = new Thread(){
public void run(){ try{ proc.waitFor(); } catch(InterruptedException ex){/* */}}
};
t.start();
t.join(5 * 1000);
if(t.isAlive()){ proc.destroy();}

708:デフォルトの名無しさん
08/02/04 00:24:31
>>690
URLリンク(www.shiki.gr.jp)

こいつよ

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

スペルが一つ違い。


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


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

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

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

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

712:デフォルトの名無しさん
08/02/04 00:52:55
すみません。
>>709
アドバイスありがとうございます。そのとおりですね。

apache-tomcatとEclipseを使っています。
EclipseにSeaser2プラグインを入れました。
Churaプロジェクトを新規作成、
デフォルトのindex.jspがtomcatで表示されることを確認(localhost)

で、webapp直下にディレクトリを作成してファイルを置きました。
でコンテクスト定義の更新をかけたのですが、
作成したディレクトリが見えません。
ProjectはBuild automatically clean にチェックが入っています。

おそらくweb.xmlを直さないといけないのでしょうが
どこを直したらいいか見当がつきません。
ネットも探してみましたが分かりませんでした。
よろしくお願いいたします。

713:デフォルトの名無しさん
08/02/04 00:57:20
Eclipseの外でディレクトリ作って、Eclipse側で更新かけてないというオチは俺は良くやる。

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

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

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

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

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

これ使う手もあり
URLリンク(ja.wikibooks.org)

719:デフォルトの名無しさん
08/02/04 17:32:20
>>716
まず本屋でパラパラその本を捲ってみろ。

720:デフォルトの名無しさん
08/02/04 19:44:11
パラパラの本か
見た事無いなあ

721:デフォルトの名無しさん
08/02/04 19:50:11
>>692
サンクスです。
リモート呼び出しでも何の設定もしていなければ同一サーバ上のEJBを探しにいく
ということですね。

同一サーバ上で動かしていますが、
Context initial = new InitialContext();
Object objref = initial.lookup("NewSessionRemote");
で、lookupのところで
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

が出ます。何か設定しろということらしいのですが・・・

722:デフォルトの名無しさん
08/02/04 21:05:25
初めまして。Javaを最近になって勉強し始めた者です。
サンプルプログラムを探していて、このようなサイトにたどり着きました。
URLリンク(www.catch.jp)

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

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

723:デフォルトの名無しさん
08/02/04 21:05:25
失礼します。

for(int i=0;i<numChips;i++){
mapChipImages[i]=createImage(chipSize,chipSize);
int x=i%numChipsInRow;
int y=i/numChipsInRow;
Graphics g=mapChipImages[i].getGraphics();
g.drawImage(mapChipImage,0,0,chipSize,chipSize,x*chipSize,y*chipSize,x*chipSize+chipSize,y*chipSize+chipSize,null);
}

numChips=64,chipSize=32,numChipsInRow=8です。
と、このようなものがあるのですがこちらの5行目(Graphics g=...)にて
Exception in thread "main" java.lang.NullPointerException
というエラーが発生してしまい困っております。
URLリンク(javagame.main.jp)
こちらのマップエディタの描画処理をrepaint();ではなく基礎-アクティブレンダリングで紹介されているものに
置き換えようとしたのですが上手く行かず困っています。
よろしくお願いします。

724:デフォルトの名無しさん
08/02/04 21:18:51
マップエディタをアクティブレンダリングにして何の意味があるんだ?

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

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

URLリンク(homepage1.nifty.com)

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

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

729:デフォルトの名無しさん
08/02/05 00:31:24
解放したら自動的にnullになりますか?
これまでずっとCだったので、JAVAはよく分かりません。
URLリンク(www.asahi-net.or.jp)

  }finally{
    try{
      if(rs != null) rs.close();
の部分です。
rsにnullを代入している記述は見つかりませんでした。
JAVAでは一般的に、*.close()すると、*はnullになるように
クラスが設計されているのでしょうか?

730:デフォルトの名無しさん
08/02/05 00:43:22
>>729
> JAVAでは一般的に、*.close()すると、*はnullになるように
ならないよ。

731:デフォルトの名無しさん
08/02/05 00:47:27
>>729
* がnullになる、という状態が上手く理解できていないので、Javaの方だけ説明します。

closeの内部で何をしているかについては実装しだいですが、
API の説明を見る限りでは、「JDBCリソース」を直ちに解放するようです。

try文の外、宣言部分で null 代入してます。
nullチェックをしているのは、値が入る前に例外が発生した時を想定しています。
ヒープからの解放は、GCにお任せなので、制御できません。

732:デフォルトの名無しさん
08/02/05 01:13:45
>>730>>731
それならfinallyで
      if(rs != null) rs.close();
こんなことが書いてあるということは、処理がうまくいった場合は
rs.close();が実行されて、その後にtryを抜けるところで
finallyによってもう一度rs.close();が実行されようとする悪いソースなのでしょうか?

733:デフォルトの名無しさん
08/02/05 01:26:31
close() は 2 回以上呼んでも問題ないという Connection の仕様だから問題ない。
ただそのサイトのソースの書き方

}finally{
try{
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();
}catch(SQLException se){
se.printStackTrace();
}
}

とか文字列連結で SQL パラメータ追加したりとかウンコすぎ。

734:デフォルトの名無しさん
08/02/05 01:29:19
>>733
>}finally{
>try{
>if(rs != null) rs.close();
>if(stmt != null) stmt.close();
>if(con != null) con.close();
>}catch(SQLException se){
>se.printStackTrace();
>}
>}

なにがいけないの?
一個目で例外が出ると全部コケる所?

735:デフォルトの名無しさん
08/02/05 02:04:48
>>733
Cでよくあるclose()のように、そのclose()も2回呼んでもエラーにならないと
想像してはいましたが、Cやってる人なら普通はclose()したらその直後にNULL入れるから
そういうソース見るとウンコかと。
でもJAVA知らないのでclose()の内部でnullする処理があるのか気になりました。

736:デフォルトの名無しさん
08/02/05 02:15:09
> Cやってる人なら普通はclose()したらその直後にNULL入れる
そんなことしたことない。

737:デフォルトの名無しさん
08/02/05 02:22:06
文字列を返すというクラスbを作りました。
bは引数が1つあって、引数に与えられた文字の手前に"f"を挿入した文字を返します。
結果は"fh"となることを期待しました。
期待通りになるように修正していただけませんか?

public class a {
 public static void main (String args[]) {
  String g = b("h");
  System.out.println("Hello World!!");
 }
}
public class b {
 b(String c){
  d(c);
 }
 private String d(String c) {
  String e = new String("f" + c);
  return e;
 }
}

738:デフォルトの名無しさん
08/02/05 02:25:07
>>735
それぞれの変数に値入れる前に例外発生してfinallyブロックに行く可能性があるからそういうコードになる。


739:デフォルトの名無しさん
08/02/05 02:25:30
Javaの人でも close 直後に null を入れて大丈夫です。
但し、最終的な解放は GC 任せですので、あしからず。

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

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

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

742:デフォルトの名無しさん
08/02/05 02:32:36
>>734
その通り。トランザクションの不整合などで rs.close() が例外になるとステートメントや
コネクションがクローズされない。

>>735
大きな try-finally 節の中で何度もオープン/クローズを繰り返すような時はクローズ後に
null を代入して、finally 節の close() は例外発生時の大域的な保障と位置づけることも
あるが、そのソースのように最後に 1 度だけやれば良いようなときは最後の finally に
任せてわざわざ try 節内ではクローズしない。一回目の close() で失敗したときの予備
としてもう一度試行する意図かもしれないが、DB の問題はもう一度やってうまく行くという
ものでもないし。つーかそのページの趣旨は JDBC コーディングどうあるべきかじゃない
んだからそんなお作法的なところは適当に読め。

743:デフォルトの名無しさん
08/02/05 02:36:15
>>738
それはエラーが発生した場合ですよね。
正常な場合にclose()を2回実行しようとするのはウンコだと思います。

>>739
JAVAは解放をGCがやってくれるらしいですが、Cと違って
やってくれるのはnewに対する解放のみなんでしょうか?

744:デフォルトの名無しさん
08/02/05 02:39:57
>>743
スタックには参照しか置けねーよ アホ

745:デフォルトの名無しさん
08/02/05 02:42:28
>>740
コンパイルしましたがまだ分かりません。
↓a.java
public class a {
 public static void main (String args[]) {
 String g = new String("");
// g = b("h"); コメントアウトしたらコンパイルできました。
  System.out.println(g);
 }
}
↓b.java
public class b {
 b(String c){
  d(c);
 }
 private String d(String c) {
  String e = new String("f" + c);
  return e;
 }
}

746:デフォルトの名無しさん
08/02/05 02:43:43
そのソース、シャットダウンシーケンス入ると最悪だなw

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

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

749:デフォルトの名無しさん
08/02/05 02:50:58
>>748
ハァ?

ヒント: C はクラスのインスタンスをスタックに置ける

750:デフォルトの名無しさん
08/02/05 02:59:14
>>743
java からJNIなどを使ってネイティブなコードから確保したメモリはGCの対象にはならない。
ネイティブじゃなくても、オブジェクト作成時にJavaやアプリケーションサーバなどで内部的に管理されるようなリソースもGCの対象にならない
(トランザクションとか。アプリ側から参照を外してもJavaVMやAPServerが参照を持っちゃってるからGCの対象にならない)。
こういうのは明示的にcloseを実行することによって管理側から参照が外されてようやくGCの対象になる。
それ以外はアプリ側から参照を無くすだけでGCの対象になる。

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

752:デフォルトの名無しさん
08/02/05 03:16:11
↓a.java
public class a {
 public static void main (String args[]) {
  if(true){//できる。
   b b_ = new b("h");
   String g = b_.d("h");
  }else{//本当はこっっちでやりたい。
   String g = new b("h");
  }
  System.out.println(g);
 }
}
↓b.java
public class b {
 b(String c){
  d(c);
 }
 public String d(String c) {
  String e = new String("f" + c);
  return e;
 }
}

753:デフォルトの名無しさん
08/02/05 03:19:34
public class a{
  public static void main(String[] args){
    System.out.println(b.d("h");
  }
}
public class b{
  public static String d(String c){
    return "f" + c;
  }
}

754:デフォルトの名無しさん
08/02/05 03:26:40
>>752
> //本当はこっっちでやりたい。
> String g = new b("h");

これはbをどう変更してもできない。仕様的に。


755:デフォルトの名無しさん
08/02/05 03:27:55
>>752
String型を返すコンストラクタはString以外には存在しない。

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

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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch