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

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

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

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

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

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

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

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

次スレは>>980あたりでお願いしまする。
2デフォルトの名無しさん:2005/09/23(金) 23:59:22
おk
3デフォルトの名無しさん:2005/09/24(土) 00:15:02
*スレルール*

   ・困ったらグーグル

   ・他人に頼らない

   ・回答は3ヶ月待ち

   ・初心者お断り
4デフォルトの名無しさん:2005/09/24(土) 00:26:25
初心者お断りってことでw書きづらいんですが。。
Javaの実行画面のMS-DOS プロンプトってゆうんですかね、あの黒い画面です
この実行画面の文字をコピーしたいんですが、
右クリック→すべて選択をやると、なかなか成功せず30回くらいやってます。。orz
楽にコピーできる方法ありますか?
5デフォルトの名無しさん:2005/09/24(土) 00:36:54
スレ違い

やりたいことは範囲指定-Enterじゃないの?
6デフォルトの名無しさん:2005/09/24(土) 00:39:03
Enterを押すんですか。。
すべて選択してからCtrl+Cでやっているんですが、
ことごとくコピーに失敗します。。

というかスレ違いとは知らず。。申し訳ないです
7デフォルトの名無しさん:2005/09/24(土) 01:28:22
次スレから以下も追加

            「APIすら読めねえのか。」
                       ∩   っ
                     ,-―――-、
                    ∨∨∨∨.| |
               ⌒     | +_(。) U | |
             (   =  ( `T`    6)
                こ  ,- l ) ̄二ヽ_ノ-、
                 /    ̄|_|_ノ    \
                 |  |    o     |  |
                 |__ |    o      |__|
                (__ |__o___ (-  )
                   |    ∩    |  ̄
                    |__| |__|
          ⌒       (__|  |__)
  ,−、   (     )   __
     \_ ___ /⌒―、ヾ
  / \/# / #  Σ| 〉 ○| ミ         へ、
    ̄ |  |#  / #.人_〉_'±ミ/       ┌―OO
  ――└ ξ_ヾ /
  「初心者っていえば何でも教えてもらえると思ったら大間違いだ。」
8デフォルトの名無しさん:2005/09/24(土) 01:30:16
Apiってなに
9デフォルトの名無しさん:2005/09/24(土) 01:44:26
>>8
思いっきりスレ違いだけど教えてあげる優しさ (´・ω・)っ ttp://www.api.org/
10デフォルトの名無しさん:2005/09/24(土) 04:01:32
読むのは API リファレンスだろう。厨臭い略し方すんな。
つか、初心者お断りなら初心者無視スレでも復活させろよ。>>1
11やっちゃん ◆jKwdOs3LE2 :2005/09/24(土) 11:57:18
eclipseなんですが、最初のヤリ方がよくわかりません。どうやるのですか?パスの設定かな?jcpad入れてると起動しないのですか?
12デフォルトの名無しさん:2005/09/24(土) 12:09:01
最初のヤリ方って何よ?
もう少し詳しく書けよ
13デフォルトの名無しさん:2005/09/24(土) 12:10:04
Javaパースペクティブを出したいんじゃないかな
最初ってリソースパースペクティブだし
14やっちゃん ◆jKwdOs3LE2 :2005/09/24(土) 12:16:02
できました!迷惑かけてスマン
15デフォルトの名無しさん:2005/09/24(土) 12:26:40
*推奨NGネーム*

やっちゃん ◆jKwdOs3LE2
16デフォルトの名無しさん:2005/09/24(土) 13:11:28
最初のやり方
できた方法
すべて謎だ

やっちゃん ◆jKwdOs3LE2
17デフォルトの名無しさん:2005/09/24(土) 18:57:31
vine linux3.1を使用しているのですが、
telnet で他のホストに入って、javacでコンパイルしようとしても、コマンドが認識されません。
自分のホストではいけるのにどうしてでしょうか?
18デフォルトの名無しさん:2005/09/24(土) 19:02:25
パスが通ってないんだろ
19デフォルトの名無しさん:2005/09/24(土) 19:04:22
インストールされていないんだろ
20デフォルトの名無しさん:2005/09/24(土) 19:04:38
パスってどうやって設定するのですか?
21デフォルトの名無しさん:2005/09/24(土) 19:06:53
>>17
スレ違い
他ホストの管理者に聞け
22デフォルトの名無しさん:2005/09/24(土) 21:51:08
あるフォルダのなかにあるファイル名を
全て取得したいのですがどうしたらよいのですか?
ファイル検索ソフトを作ろうとしているのですが。
23デフォルトの名無しさん:2005/09/24(土) 21:59:49
>>22
APIリファレンスを読む。
24デフォルトの名無しさん:2005/09/24(土) 22:10:29
どこを見ればいいのか少しでも勘が働けば
初心者脱出だな
25デフォルトの名無しさん:2005/09/24(土) 22:11:10
java.ioパッケージを探そう
26デフォルトの名無しさん:2005/09/24(土) 22:12:19
>>25
見つかりました
で、これからどうしましょう
27デフォルトの名無しさん:2005/09/24(土) 22:33:24
夜も遅いしとりあえず寝よっか
28デフォルトの名無しさん:2005/09/24(土) 22:39:57
File[] とか listRoots() とか listFiles とか
29デフォルトの名無しさん:2005/09/24(土) 22:55:45
パッケージまで分かっていればクラスの説明をだらだらみてわかるだろうし、そもそも検索すればいくらでも
30デフォルトの名無しさん:2005/09/24(土) 23:21:24
プログラムを書け、間違えても書け、解らなくても書け、指や
手首が痛くなるまで書け、コンパイルなんか通らないでも書け
気合で動かせ、涙でフローチャートを書け、太陽が昇るのを
見ながら書け!
31デフォルトの名無しさん:2005/09/24(土) 23:40:50
>>30 普通これくらいは書き続けるだろ。
http://blogs.sun.com/roller/resources/monma/love_your_job.gif
32デフォルトの名無しさん:2005/09/24(土) 23:52:49
あるインスタンスなオブジェクの中のメソッドが動的に他のメソッドを呼び出すにはどうすればよいでしょうか?
メソッド名をHashMap等に複数入れておいて、それに対応したメソッドを実行したいと思ってます。
よろしくです。
33デフォルトの名無しさん:2005/09/24(土) 23:57:38
>>31 私、プログラマを辞めさせて頂きます。
つ 辞表
34デフォルトの名無しさん:2005/09/25(日) 00:04:34
>>32
クラスをいっぱい作るか、リフレクションでゴニョゴニョするか。

public class Foo {
public static interface Dispatcher {
void dispatch();
}
static Map<String,Dispatcher>dispatcher = new HashMap<String,Dispatcher>();
static {
dispatcher.put("foo", new Dipatcher() { public void dispatch() { foo(); } } );
dispatcher.put("bar", new Dipatcher() { public void dispatch() { bar(); } } );
dispatcher.put("baz", new Dipatcher() { public void dispatch() { baz(); } } );
}
public void foo() { .... };
public void bar() { .... };
public void baz() { .... };
}
35デフォルトの名無しさん:2005/09/25(日) 00:04:48
>>32
SEに転向してよかったと正直思った。
36デフォルトの名無しさん:2005/09/25(日) 00:10:06
わかった。鉄やで書きまくる。
VB→VCと挫折の道をたどってきたが今回は本気なんだ
俺はかならずJAVAマスターになる。
37デフォルトの名無しさん:2005/09/25(日) 00:14:15
>>36
まずはサンボマスターからはじめよう
38デフォルトの名無しさん:2005/09/25(日) 00:17:05
>>36
プロフェッサーにはなれないな
3932:2005/09/25(日) 00:25:15
>>34
サンプルありがとう。
Cの関数ポインタかdelegateみたいなのがあればラクなんだろうけど、
やっぱ結構生々しいコード書かないといけないのね。
40デフォルトの名無しさん:2005/09/25(日) 00:30:44
>>39
Javaにもdelegateがあれば便利なんだけど、意地でも実装されることはないんだろうな。
ttp://java.sun.com/docs/white/delegates.html
41デフォルトの名無しさん:2005/09/25(日) 01:11:09
リフレクション使うのが一番楽そうだな
42デフォルトの名無しさん:2005/09/25(日) 01:14:57
なんか魔法を跳ね返せそうだね
43デフォルトの名無しさん:2005/09/25(日) 02:12:45
>>32
StrutsのLookupDispatchActionは、まさにそんな感じのクラス。
実装は、
>>41氏のいわれるように、リフレクションを使った実装
(上位クラスのDispatchAction#dispatchMethod()
でMethod#invoke()をやってる)

ただ、この方法は引数と返値が同じでないとできない。
まぁ、引数・返値ともMapにすれば問題ないんだろうけど、
バグの温床になりそうな・・・
4432:2005/09/25(日) 03:18:32
>>43
やはりStrutsとかになるんだなぁ。Strutsすごいなぁ。

自前でMethod#invoke()をやろうとしたら漏れのスキルが足らんので、
サーブレットとは別のインスタンスになってしもた。

やはりJSP+Bean+DBのシンプルな実装って限界があるんだろうか。
生産性を上げるために新技術を学んで学習コストで生産性が落ちる、、
うーん正解が見えにくいなぁ。考え出したら負けなんだろうか。

とりあえずStrutsを勉強します。ありがとう。

45デフォルトの名無しさん:2005/09/25(日) 03:20:25
32のやりたいことをやるためだけにStrutsをやるのは本末転倒のような気がするが。
4642:2005/09/25(日) 03:27:02
俺へのレス忘れてるよ
47デフォルトの名無しさん:2005/09/25(日) 03:35:55
>>44
仕事か?
仕事じゃないならStrutsはとばしてJSFとかその先に行ったほうが良いぞ
48デフォルトの名無しさん:2005/09/25(日) 03:53:41
>>40
インナークラスつかえば十分じゃん
とか書かれているような気がするが
なんて書かれているか誰か要約して下さい>エロイ人

たしかに、型さえ一致すればどんなメソッドでも呼び出せるというのは、
Javaの保守的な立場からみると、いい加減に感じる
49デフォルトの名無しさん:2005/09/25(日) 05:54:13
>>39
っつか、>>32 の用途なら delegate あってもなくても大して楽にならんと思われ。
50デフォルトの名無しさん:2005/09/25(日) 12:53:18
ビット演算は速いと聞きますが a &= ~b などと複数の演算を組み合わせても+-の一回の演算より速いのですか?
51デフォルトの名無しさん:2005/09/25(日) 13:05:20
JSPでエラーが合った場合、表示されるエラー行番号が変換後のサーブレットのものみたいなのですが、
これだとJSPのどこでエラーが起こったかすごくわかりずらいです。
エラーがあった場合に、サーブレットの行番号ではなく、JSPファイルの行番号を表示させることはできますか。
52デフォルトの名無しさん:2005/09/25(日) 13:21:58
>>51
JSP2.0を使ってみれば
53デフォルトの名無しさん:2005/09/25(日) 13:47:33
>>32
C言語の関数ポインタをやりたいってことかなって>>39でいってるなorz
同じインターフェース実装したクラスをその処理数用意してHashMapにいれりゃいいんでないの?
リフレクションなんて使わなくていいとおもうけど
Map map=new HashMap();
map.put("methodA",new A());
map.put("methodB",new B());
・・・
((MyIF)map.get("methodA")).do();

interface MyIF {
void do();
}
class A implements MyIF{
void do(){System.out.println("A");
}
class B implements MyIF{
void do(){System.out.println("B");
}
54デフォルトの名無しさん:2005/09/25(日) 14:30:10
関数ポインタが欲しいというやつはインターフェースが分かってないやつ
55デフォルトの名無しさん:2005/09/25(日) 14:41:53
わかってねぇからきいてぇンだろが
56デフォルトの名無しさん:2005/09/25(日) 15:38:43
プッ
57デフォルトの名無しさん:2005/09/25(日) 16:15:04
>>52
回答ありがとうございます。
JSP2.0だとJSPファイルの行番号が表示されるのでしょうか。
またJSP2.0ということは、Tomcat5.0を使えばいいということでしょうか。
58デフォルトの名無しさん:2005/09/25(日) 16:21:11
みんなでJAVAの応援ソング作ろうよ
59デフォルトの名無しさん:2005/09/25(日) 16:21:50
JAVAでネットワークのルーティングプロトコルをシミュレーションするにはどういうフローチャートにしたらよいでしょうか?
60デフォルトの名無しさん:2005/09/25(日) 16:29:25
そんな横文字ばかり並べ立てて
かっこいいつもりか?日本人なら日本人らしくしろ
61デフォルトの名無しさん:2005/09/25(日) 16:37:10
邪刃で電子空間の通信経路規約を模擬実験するにはどういう流れ図にしたらよいでしょうか?
62デフォルトの名無しさん:2005/09/25(日) 21:53:01
JFrameでフルスクリーンモードから戻ってきた際、
setUndecorated(false)とすると以下の例外が発生します。
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is displayable.

ウィンドウモードに戻るにはどうしたら良いのでしょうか?
63デフォルトの名無しさん:2005/09/25(日) 22:06:34
>>62
java.awt.Component#isDisplayable() が true を返している場合は
setUndecorated()は IllegalComponentStateException を投げるとAPI仕様で決まってる。

表示不能にしてからフレームの装飾を外すしかないと思われ。
具体的にはいったん dispose() して setUndecorated(false) その後 setVisible() で再表示。
64デフォルトの名無しさん:2005/09/25(日) 22:23:26
>>63
バッチシできました。分かりやすい説明ありがとう。
65デフォルトの名無しさん:2005/09/25(日) 22:26:39
つーか、APIマニュアルくらいよんでくれ
66デフォルトの名無しさん:2005/09/25(日) 22:30:24
>>65
うるせーハゲ
67デフォルトの名無しさん:2005/09/25(日) 22:49:09
マニュアル読まずに質問してるほうがアレだな。
68デフォルトの名無しさん:2005/09/25(日) 22:52:52
>>65
ひっこんでろハゲ
69デフォルトの名無しさん:2005/09/25(日) 22:57:08
>>63
dispose() した後、復活できるんか。シランカッタ…
70デフォルトの名無しさん:2005/09/25(日) 22:57:22
javaをダウンロードしようとしたら、インストールパッケージを開くことができませんでした
。パッケージが存在し、アクセスできことを確認してください。
またはアプリケーション ベンダに問い合わせ、このパッケージが有効な
windowsインストーラパッケージであることを確認してください。 というのが
出てきて、ダウンロードできません。どうしたら良いのでしょうか??
71デフォルトの名無しさん:2005/09/25(日) 22:59:58
>>66,68
前スレあたりからでてるへんな人お前か
72デフォルトの名無しさん:2005/09/25(日) 23:00:07
>>69
ノ 何気にトリビアネタだったw
73デフォルトの名無しさん:2005/09/25(日) 23:01:11
>>70
IBM?
74デフォルトの名無しさん:2005/09/25(日) 23:03:37
public void dispose()この Window、そのサブコンポーネントと、その所有されたすべての子によって使用されているすべてのネイティブスクリーンリソースを解放します。
つまり、これらの Component のリソースが破棄され、それらの消費するメモリが OS に戻ります。
Window、そのサブコンポーネントと、その所有されたすべての子は、表示不可能としてマークされます。
Window およびそのサブコンポーネントは、pack または show を呼び出してネイティブリソースを再構築すれば再び表示可能にできます。
再生された Window およびそのサブコンポーネントの状態は、Window が破棄された時点のそれらのオブジェクトの状態と同じです。破棄と再生の間の追加変更は考慮されません。
75デフォルトの名無しさん:2005/09/25(日) 23:03:44
>>70
現在配布停止中
76デフォルトの名無しさん:2005/09/25(日) 23:05:12
>>69
APIリファレンス読め

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Window.html#dispose()
> この Window、そのサブコンポーネントと、その所有されたすべての子によって
> 使用されているすべてのネイティブスクリーンリソースを解放します。
> つまり、これらの Component のリソースが破棄され、それらの消費するメモリが OS に戻ります。
> Window、そのサブコンポーネントと、その所有されたすべての子は、表示不可能としてマークされます。

> Window およびそのサブコンポーネントは、pack または show を呼び出して
> ネイティブリソースを再構築すれば再び表示可能にできます。
> 再生された Window およびそのサブコンポーネントの状態は、
> Window が破棄された時点のそれらのオブジェクトの状態と同じです。
> 破棄と再生の間の追加変更は考慮されません。
77デフォルトの名無しさん:2005/09/25(日) 23:05:59
>>76
俺と同じ行動すんなって
78デフォルトの名無しさん:2005/09/25(日) 23:06:51
回答できない奴は来ないでほしい
79デフォルトの名無しさん:2005/09/25(日) 23:08:51
>>78
質問する人間は来るなって事?
80デフォルトの名無しさん:2005/09/25(日) 23:34:14
>>51,>>57
使用するJSPコンテナによる。
Tomcat5.xなら表示されるよ。
81デフォルトの名無しさん:2005/09/25(日) 23:44:47
>>76
読んだ上での書き込みだ ハゲ
82デフォルトの名無しさん:2005/09/25(日) 23:48:53
自分のうんちくを強調したかっただけと思われw
83前スレ914:2005/09/26(月) 00:03:21
・jdk1.5でコンパイルしてSunVMで実行したら正常に動いたのに
  jdk1.1.8でコンパイルしてMSVMで実行したら画像が表示されなくなりテキストエリアの背景が黄色くなった。
  (jdk1.1.8によるコンパイル時、コンパイルエラーは出ていない)
  どうしたらMSVMでも正常に動かせるか教えて欲しい。

TextArea TA = new TextArea("",2,30,1);
Image img;
try{
img = getImage(new URL("http","domain","file address"));
}catch(MalformedURLException e){
}
MediaTracker mt = new MediaTracker(this);
mt.addImage( img, 0);
try {
mt.waitForAll();
} catch (Exception e) { System.out.println("ERROR!!"); }

こうして作ったimgをGraphics.drawImage()で利用しています。
8432:2005/09/26(月) 00:10:20
もう少し詳しく言うと、
オフショアに近い人材(CGI屋さん定時組)を集めたWeb系案件を任される事になりましたが、
StrutsなどのJ2EEフレームワークがどれも学習コストが高いので
多少トロくても一定レベルが維持できる枠組みが必要になりました。
(ちなみに有償ツールは使えない状況)

そこでフローだけでも統一できればと思い、
JSP(View) → Sevlet(Controler) → Model(Bean)
な仕組みを極めて学習コストの少ない手法で実現したいと思ってます。

HttpServletを継承した抽象クラスをベースに考えていて、
セッション属性"action"の内容に対応したメソッドを自動的に実行させようとしてます。

jspをいっぱい作ってそこではセッション属性actionをセットし、
前述のクラスを継承したServletに<jsp:forward/>してBeanをブリブリ動せたらと思います。
85デフォルトの名無しさん:2005/09/26(月) 00:15:23
それStrutsが出る前に誰もが考えてやっていた手法だよ
何も知らずにそこまで考え付くのは結構向いているかもしれない
頑張ってください
86デフォルトの名無しさん:2005/09/26(月) 00:26:27
JSPが最初なの?
87デフォルトの名無しさん:2005/09/26(月) 00:31:07
HTMLにリンクする感覚をイメージしたら、そっちのが能動的じゃない?
8832:2005/09/26(月) 00:33:26
ServletのメソッドをPerlの関数見立てて「簡単にこう書いて下さい」って指示するつもりっす。
ざっくりと設計までやってクラス単位で作業分担する事になると思います。

環境のセットアップまでは私がやって、例の抽象クラスを継承したソースを開いて
「ここにこれこれの機能が出来るコード書いてください」ってPGに仕事振り出す流れかなぁ。
PL/SE兼任なんでテストは私がやります。
やるまえから鬱になりそうな話だなぁ。
89デフォルトの名無しさん:2005/09/26(月) 00:36:25
>>32
つー話になってくると
DBアクセス部分も固めたほうがよくないか?DBあるのか知らんけど
90デフォルトの名無しさん:2005/09/26(月) 00:37:02
サーブレットなんか学生のアルバイトで十分でしょ
91デフォルトの名無しさん:2005/09/26(月) 00:39:16
>>90
システム的なトランザクションの話になると学生・新人は途端に設計できなくなるからね
JSP・Servlet部分だけならイイケド
92デフォルトの名無しさん:2005/09/26(月) 00:40:20
JVMTIとかJDIとかを使ってVMから各種情報を得ようとしたとします。
そのときVMで動かすクラスファイルはやはり-gオプションをつけてコンパイルした
ものでないとだめなのでしょうか?
-gオプションをつけないと得られない情報があるというだけでは済まされないのでしょうか?
どなたか教えて下さい。
9332:2005/09/26(月) 00:41:16
>>89
MySQL4.1が2機レプリケーションで動きます。
過去にB2Bの顧客情報のせたPerlベースのシステムでDB操作だけaxisで実装して
マシン自体を別にしてSOAP on https経由(F/Wで443番しか空けずに)で作った事ありました。

今回も結構ヤバい情報が乗っかるんでDBまわりはSOAP化してラッパクラス叩かせようかと思ってます。

みなさん、親身なアドバイスを頂いて本当にありがとうございます。
94デフォルトの名無しさん:2005/09/26(月) 00:43:39
-gオプションつけてデバッグ情報取得?
何を取得したいのかいまいちよくわかんないんだけど
ロギングとかのことを言っているのか?
もしくはJMXとか?
95デフォルトの名無しさん:2005/09/26(月) 00:47:00
>>94
できるのかわからないですが、実行時状態を取り出すようなことができれば
いいなと思っています。VMWareのスナップショット機能みたいな感じですかね。
後でそれをセットし直して実行すると。
96デフォルトの名無しさん:2005/09/26(月) 00:47:03
>>32
DBサーバが外にあるなら(外にしか置けないもしくは他社のDBサーバ)SOAP HTTPSでもいいけど
鼻っからイントラにあるDBサーバをSOAPにより外に出すことによって逆に危険だと思いませんか?
97デフォルトの名無しさん:2005/09/26(月) 00:47:51
>>95
間違いなくJMXだなそれは
-gデバッグオプションではない
98デフォルトの名無しさん:2005/09/26(月) 00:49:30
>>95
オブジェクトをシリアライズしておくとか・・・
99デフォルトの名無しさん:2005/09/26(月) 00:55:01
>>98
考え方としては近いですね。
ただ、プログラム側には何の変更も加えることなく、VMから内部の状態とか
オブジェクトを取り出したいんです。
こういうことがJVMではできるのでしょうか?
100デフォルトの名無しさん:2005/09/26(月) 00:57:22
内部の状態参照、内部の値変更
JMXなら出来る
ただ、最初はそれなりにプログラムに入り口作る必要あるわな
一回作れば変更はないけど・・・
10132:2005/09/26(月) 01:01:24
>>96
んー、あんまり話せないんですけどSOAP=DBが外部ネットワークってわけじゃないですよ。
同じセグメントのローカルネットワークに何箇所か関所としてF/Wを設置してデータの流れる経路を制御しました。
なのでSOAPいってもイントラ内で通信してるだけですよ。

セキュリティに関する意識が非常に低い学生と変わらんようなPGに
DBアカウント教えて部分的な設計とチューニングやってもらう必要があったんで
損害が発生るい

零細企業でJ2EEやろうとしても要件はころころ動くしPGは案件ルール無視とかって
日常茶飯事なんで思い切って物理的な制限をしました。
102デフォルトの名無しさん:2005/09/26(月) 01:02:22
>>100
JBossとかがMBeanだったかな?とかを使ってそういうのをやっているそうですね。
ただ、そういうのもできればやりたくないです。どうにかJVMTIとかJDIで し^−^)
10383:2005/09/26(月) 12:34:55
drawImageで (描画開始位置-描画終了位置)<0 となる様に指定する事で反転表示させるのって
MSVMでは出来ない?
10483:2005/09/26(月) 12:53:24
自己解決しました。
1.1.8だとpng形式の画像は読み込めないようで、それが原因でした。
テキストエリアは背景色を改めて指定し直す事で対処出来ました。
10583:2005/09/26(月) 13:33:27
三連投しちゃいます。
話題が変わりますが、
java2ではURLEncoderに文字コードを指定する事が出来ますが、
1.1.8ではもしかして無理ですか?
EUC_JPとしてエンコードしたいのですが、1.1.8の仕様では文字コードを指定出来ないようだし、
デフォルトでは別の文字コードで変換されているようで。
自前の関数を書くしか無い?
10692:2005/09/26(月) 13:38:48
結局、-gオプションをつけてコンパイルされたクラスファイルじゃないと
JVMTIとかJDIは使うことができないという認識でよいのでしょうか。
掘り返しスマソ。よろしくおねがいします。
107デフォルトの名無しさん:2005/09/26(月) 13:39:12
>>105
1.1 の APIリファレンス読めよ。

> To convert a String, each character is examined in turn:
> * The ASCII characters 'a' through 'z', 'A' through 'Z', and '0' through '9' remain the same.
> * The space character ' ' is converted into a plus sign '+'.
> * All other characters are converted into the 3-character string "%xy",
>  where xy is the two-digit hexadecimal representation of the lower 8-bits of the character.
108デフォルトの名無しさん:2005/09/26(月) 14:39:01
コンボボックスのついたダイヤログを表示させるために、
7つの引数を持つshowInputDialogメソッドをしようしました。

このとき、「了解」、「キャンセル」ボタンが作成されたのですが、
「キャンセル」ボタンは作成したくありません。
了解ボタンだけにするには、どうしたらよいのでしょうか?
109105:2005/09/26(月) 14:54:53
>>107
そもそもエンコードのアルゴリズムを知らないので
それを読んでも意味が分からないのですが・・。
110デフォルトの名無しさん:2005/09/26(月) 14:58:39
変数の種類について質問です。
intやlongはなんとなくわかるんですが
byteって使う必要あるんでしょうか?なんか本の説明みるかぎりintやlongでいいような気がします。
おなじくshortもいまいち要らない気がします。

同じくfloat doubleは扱える桁が7か16の違いだけみたいですが
これもなぜ分かれてるのでしょうか?doubleだけでいいような気がします。
111デフォルトの名無しさん:2005/09/26(月) 15:00:44
MEで、byte型変数2つを上位・下位ビットとして1つの整数にする処理なのですが

Byte b = new Byte( byteData[i] ); // 下位ビット
intData[i] = Integer.parseInt( b.toString(),16 );
b = new Byte( byteData[i+1] ); // 上位ビット
intData[i] += Integer.parseInt( b.toString(),16 )*16*16;
b = null;

こんな無理矢理感が否めない処理しか思いつかなかったのですが、
もっと気の利いた方法とかありませんでしょうか。
ご指南お願いします。
112デフォルトの名無しさん:2005/09/26(月) 15:06:41
>>108
showInputDialog みたいなメソッド使わずに、自分で
new JOptionPane()、setWantsInput(true)、setSelectionValues()、
とか組み合わせれば良いのでは?
了解ボタンだけ出すには setOptionType(JOptionPane.DEFAULT_OPTION) だっけか?
113デフォルトの名無しさん:2005/09/26(月) 15:09:51
>>110
通信を例にして考えてみてください。
int32ビット・long64ビットに対して、byte8ビットです。
16ビット程度で表現できる値を送るとすると、intは16ビット・longは48ビットも表現できる部分が余ります。
これに対してbyteなら、上位8ビット下位8ビットに分けて送れば、無駄なくきっちりスマートに送れます。
114デフォルトの名無しさん:2005/09/26(月) 15:13:44
>>111
リトルエンディアンで読み込みたいって話?

ビッグエンディアンで読み込んで Short.reverseBytes(); するか
((byteData[i + 1] & 0xFF) << 8) | (byteData[i] & 0xFF)

Byte#toString() は符号付き10進数の文字列に変換するから
> intData[i] = Integer.parseInt( b.toString(),16 );
だとダメなはず。
115デフォルトの名無しさん:2005/09/26(月) 15:13:58
難しいっすね。。
つまり節約みたいな感じでしょうか? 適材適所というか。
116デフォルトの名無しさん:2005/09/26(月) 15:20:04
>>114
Σ(゚Д゚;≡;゚д゚)
byte扱ってるはずなのに、ビット演算失念してました。orzナニヤッテンダ

Short#reverseBytes() はMEには無いようなので、下の演算を試してみます。
ありがとうございました。
117デフォルトの名無しさん:2005/09/26(月) 16:52:56
>>111
NIO使えば?
118デフォルトの名無しさん:2005/09/26(月) 18:20:58
メニューバー使うとかフレームを移動させたり
とかすると画面に灰色が残ったり
メニューバーやラベルの文字が表示されたりされなかったり
するのです。これを普通になるようにするにはどうすればよいのですか?
入門書に書いてるようなものなのですが。
119デフォルトの名無しさん:2005/09/26(月) 18:43:14
>>118
エスパー募集すんなよ。

OS や JDKのバージョンとか実際のソースの内容とか、
他に常駐してるソフトとか情報が全く無いのでは
何が起こってるのかわからんし答えようもない。
120デフォルトの名無しさん:2005/09/26(月) 18:43:32
>>4
メニューバーの「編集」から

>>17
その「他のホスト」にJavaが入ってない可能性あり
121デフォルトの名無しさん:2005/09/26(月) 19:23:37
>>119
OS 窓二千 Ver 1_04 or 1_04_02
C:\の中見たら二つあった
ソースの内容
JFrame f = new JFrame();
JMenuBar jm = new JMenuBar();
(中身)
f.setJMenuBar(jm);
f.show();

中身はただアイテムを定義してaddしてるだけです。
常駐ソフトは特にありません。起動してすぐ実行しても起きました。
122デフォルトの名無しさん:2005/09/26(月) 19:32:15
>>121
1.4.2の後の数字は?
123デフォルトの名無しさん:2005/09/26(月) 19:58:37
>>122
よく見たら
1.4.2と1.4.2_04でした。
すみません。
124デフォルトの名無しさん:2005/09/26(月) 20:07:58
>>121
たぶんオマエのプログラムがダメなんだろ。
とりあえずメニューの使い方はここを参照。
http://java.sun.com/doc/books/tutorial/uiswing/components/menu.html

フレーム移動させると云々、に関してもうちでは全く再現しない。
とりあえず 1.4.2系は 1.4.2_09 が出てるからそれを試せば?

それでもダメなら
・ver で得られる詳細なWindows のバージョン、
・java -version で得られる詳細なJREのバージョン
・ビデオカードとドライバのバージョン
・灰色云々のスクリーンショット
やら諸々用意して BugParade に投稿すれ。
125デフォルトの名無しさん:2005/09/26(月) 20:30:23
実際お前らSwing可視にするときにちゃんと決められた手順スレッドでsetVisible(true)しているか?
126デフォルトの名無しさん:2005/09/26(月) 20:57:25
ファイル圧縮について質問させてください。
サイズの小さいファイルや、
特定のサイズのファイル(13k程度)を対象とした時、
高い確率で、空の圧縮ファイルが作成される事があります。

ログを出力しながら確認すると、このような現象が起きた場合、
圧縮ファイルをcloseする直前では作成されたファイルはサイズがあるのですが、
圧縮ファイルをcloseした直後ではファイルのサイズが0になってしまいます。
また、2台あるサーバの内、1台だけでこの現象が起こっています。

javaのバージョンは1.3です。

何故このような現象が起こってしまうのか、
ご存知の方がいらっしゃいましたら教えていただけないでしょうか。
宜しくお願いします。
127デフォルトの名無しさん:2005/09/26(月) 21:02:33
>>125
まぁゆっくりしてけ

  §
つ 旦
128デフォルトの名無しさん:2005/09/26(月) 21:18:02
>>126
とりあえず、2台のサーバの JRE のバージョンがビルドナンバーまで同じかとか、
実行してるコードが全く同じか、とかを確認すれば?
たぶんどっちかのコードが正しくてどっちかのコードが間違ってるとかいうオチだと思われ。

それでも原因が分らなければ現象が再現する最低限のソースを晒すか、
ソース晒せないなら、物理的に近くにいる人に泣きついたほうが早い。
129デフォルトの名無しさん:2005/09/26(月) 21:25:01
>>121
その(中身)なんだが、
setContentPane(myPane); とかしちゃうとうまくいかないみたいよ。
(勉強不足なので理由は知らない)

getContentPane().setLayout(new BorderLayout());
getContentPane().add(myPane, BorderLayout.CENTER);
して myPane だけに add していったとき、(つまり add( ... , ... .SOUTH) とかもしない)
はじめていい感じになることがある
130126:2005/09/26(月) 21:29:44
>>128
今ざっと作成した簡易ソースです。ソース見た感じだとどうでしょう?
//変数宣言部省略
try {
fos = new FileOutputStream(strZipFileName);
zos = new ZipOutputStream(fos);
for (i = 0; i < strFiles.length(); i++) {
fis = new FileInputStream(strFiles[i]);
zent = new ZipEntry(strFiles[i]);
zos.putNextEntry(zent);
while (-1 != (iLen = fis.read(buf))) {
zos.write(buf, 0, iLen);
}
zos.flush();
zos.closeEntry();
fis.close();
}
} catch(Exception e) {
System.err.println(e);
} finally {
try {
zos.close();
fos.close();
} catch(Exception e) {
System.err.println(e);
}
131デフォルトの名無しさん:2005/09/26(月) 21:49:12
>>130
ソース貼るのは良いんだけどさ、これで「空の圧縮ファイル」が出来るって事は確認したの?

あと、strFiles[i] とかで自分の環境にしかないファイルを読み込んでたら
他人の環境で再現できんと思うが。
空の圧縮ファイルが出来るデータを埋め込んでおかんと
(サイズだけが問題なら new byte[問題のサイズ] とかで良いんだし)
132デフォルトの名無しさん:2005/09/26(月) 21:55:20
>>130
> for (i = 0; i < strFiles.length(); i++) {
コンパイルエラー
133デフォルトの名無しさん:2005/09/26(月) 21:57:34
おまえらカッコイイな。ソースとかあっさり書いちゃってさ。
でもあんまりお調子にのるなよ?
あと3ヶ月もしたら俺がNO1だって思い知らせてやるからね。
134126:2005/09/26(月) 22:06:58
>>131

> ソース貼るのは良いんだけどさ、これで「空の圧縮ファイル」が出来るって事は確認したの?

確認はしていないです。というより、気軽に動作の確認が出来ない環境なんです。
質問しておいて申し訳ないです。
自分のパソコンで擬似的に簡単な環境を作成して、
動作させても同様な症状は再現しませんでした。

> 空の圧縮ファイルが出来るデータを埋め込んでおかんと

今現在確認できている現象は、
サイズの小さいファイル(1k以下)で高い確率(「絶対」にではなく)で
この症状が起きるということです。
特定のファイルというわけではありません。

特殊な症状のようで、ソースにも間違いはなさそうなので、
今までにこの様にファイルに対してcloseを行ったらサイズが0になった等
似た様な現象を経験した方がいらっしゃらないかなと思いまして。

135デフォルトの名無しさん:2005/09/26(月) 22:07:04
とりあえずNo1は日本にいないんじゃね
136126:2005/09/26(月) 22:10:43
>>132

>> for (i = 0; i < strFiles.length(); i++) {
> コンパイルエラー

失礼しました。
for (i = 0; i < strFiles.length; i++) {
137デフォルトの名無しさん:2005/09/26(月) 22:40:22
>>134
close() をした瞬間に同じファイル名で new FileOutputStream() とかしてると、
「close を行ったらサイズが 0 になる」ように見えるかもしれない。
複数のスレッドとか複数のプロセスで同じファイル名使ってたりとかしてないか?

> 圧縮ファイルをcloseする直前では作成されたファイルはサイズがあるのですが、
って書いてあるので、たぶん ZipOutputStream とか圧縮のせいじゃないと思う。
OutputStream では、一般的には一旦出力したデータを削除する方法は無いし
ZipOutputStream は OutputStream にデータを出力してるから。
138デフォルトの名無しさん:2005/09/26(月) 22:49:48
ちと疑問ZipOutputStreamってスレッドセーフだっけ?
139デフォルトの名無しさん:2005/09/26(月) 23:15:47
>>138
write(byte[],int,int) は syncronized されてる。

圧縮に使うバッファは ZipOutputStream 毎に生成されるから
複数の ZipOutputStream を同時に使用しても大丈夫。
140ぷろぐらま6ヶ月:2005/09/27(火) 00:08:42
すいませぬが質問します

文字列の桁数チェックを行おうと思っています。

String Str = "あいう";
int i = Str.length();

で実行すると
iには「3」が格納されてしまいます。
全角だろうが半角だろうが1文字として扱われているようで困っています。
全角は2桁とカウントしたいのですが、良い方法ありませんか?
調べたけどわかりませんねんでした。。。
ご教授お願いします
141デフォルトの名無しさん:2005/09/27(火) 00:22:17
>>130
関係ないかも知れんがクローズ前に ZipOutputStream#finish() を呼べ。
というかまた船頭が多くなってきた悪寒
142デフォルトの名無しさん:2005/09/27(火) 00:22:44
Str.getBytes().length;
143デフォルトの名無しさん:2005/09/27(火) 00:23:39
>>140
調べず書くけどgetBytesして.lengthで取れん?
144デフォルトの名無しさん:2005/09/27(火) 00:23:49
>>140
Str.getBytes().length
145デフォルトの名無しさん:2005/09/27(火) 00:24:55
いいかげんかぶりまくったなこりゃw
146デフォルトの名無しさん:2005/09/27(火) 00:29:12
>>141
ここがお前の尊厳回復の場だから奪わないでって?
147デフォルトの名無しさん:2005/09/27(火) 00:41:48
>>141
関係ないと思われ。
ZipOutputStream#close() 呼んでるなら間接的に close 内で finish 呼んでる。

BufferedOutputStream とかで close 前に flush 呼んでみろってのと同じ。
148デフォルトの名無しさん:2005/09/27(火) 07:14:03
関係ないとは思うけど close 2回は意味ないね
149118:2005/09/27(火) 08:32:28
JFrame作ってラベル貼って
showするだけでも同じことが
起こるので、versionを
更新してやってみます。
ちなみにsetcontentPaneは使ってません。
15016:2005/09/27(火) 10:48:05
140 です
ご教授ありがとうございます。
試してみましたが、「len()を配列方byte[]で起動できません」とのエラーが出ます。
eclipseで作成しています。
すいません、単純なことなのでしょうか?
151150:2005/09/27(火) 10:57:31
150です
すいませんできました。
いつもの癖でlength()としてしまっていました
Str.getBytes().length();
ご迷惑おかけしました。
ありがとうございました。
152デフォルトの名無しさん:2005/09/27(火) 11:04:14
propertiesファイル読み込んだら
コンソールにこんなのが・・・

java.sql.SQLException: I/O例外です。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=168821248)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

パスワード、IDはあっている筈なのに
何か足りないのかな?

ちなみに実環境はOracle接続にて

どなたかご教授おながい(つдT)
153デフォルトの名無しさん:2005/09/27(火) 11:11:35
答え書いてあるじゃん

ORA-12505: TNS: リスナーは接続記述子で指定されたSIDを現在認識していません
原因: データベースまたは他のサービスとの接続を確立する要求を、リスナーが受信しました。
リスナーが受信した接続記述子では、リスナーに動的に登録されていないか、
リスナーに対して静的に構成されていないインスタンス(通常はデータベース・インスタンス)の
SIDが指定されていました。これは一時的な状況である可能性があります。
たとえば、リスナーが起動してからデータベース・インスタンスがリスナーに登録されるまでの間などです。
処置:
- 少し待って、もう一度接続してください。

- lsnrctl services <listener name>を実行して、リスナーで現在認識されているインスタンスを確認してください。

- 接続記述子のSIDパラメータで、リスナーに認識されるインスタンスが指定されていることを確認してください。

- listener.logファイルにイベントがあるか確認してください。

154デフォルトの名無しさん:2005/09/27(火) 14:49:10
プログラムの質問してもいいですか?(チョット長いです。。。)
155デフォルトの名無しさん:2005/09/27(火) 14:54:36
駄目です
156デフォルトの名無しさん:2005/09/27(火) 14:57:13
?!の、NOっすか?。。
じゃあ、どこで聞けばいいんでしょう。。(−U−;)
157デフォルトの名無しさん:2005/09/27(火) 15:02:36
158デフォルトの名無しさん:2005/09/27(火) 15:05:23
ちょっと今まじで行っちゃいましたよっ!笑

。。。あの〜。。。 張っちゃいますね。。。:


↓のプログラムは、リカージョンを使ってハノイのタワーの解決法をかいてあります。
このプログラムより短くイタレーションを使ってハノイのタワーの解決法をかきなさい。

public class iteration
{
public static void main(String args[])throws IOException
{
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
int disks=Integer.parseInt(input.readLine());
solveHanoi('A','B','C',disks);
System.out.println("/n/nEXECUTION TERMINATED");
}

public static void solveHanoi(char s, char t, char d, int n)
{
if(n!=0)
{
solveHanoi(s,d,t,n-1);
System.out.println("Move Disk" + n + " From Peg" + s + " to Peg " + d);
solveHanoi(t,s,d,n-1);
}
}
}
159デフォルトの名無しさん:2005/09/27(火) 15:16:13
宿題は宿題スレへどうぞ
160152:2005/09/27(火) 16:23:31
調べてみたら、無事につながったけど
struts上でpropertiesファイルでの置くディレクトリが何処だか
わからなくなった・・・

classesでもなさそうだし・・・
161デフォルトの名無しさん:2005/09/27(火) 16:27:06
>>160
ベースネームの設定によるから、一概に何とも言えない。
Struts設定ファイルの<message-resouces>要素のparameter属性の設定値はどうなってる?
162152:2005/09/27(火) 16:32:05
>>161
デフォのままでMessageResources。
163デフォルトの名無しさん:2005/09/27(火) 16:37:02
質問失礼します。

catch( StringIndexOutOfBoundsException e )
でエラーを捕まえました。
が、charAt等を多くの場所で使用している為、どこで落ちているか分かりません。

どこで落ちたのか特定したいのですが、どうやれば良いでしょうか?
(「○行目で落ちてる」とか出力できれば最高なのですが、、、)
164デフォルトの名無しさん:2005/09/27(火) 16:43:52
>>162
言っておくが、そこにはデフォルト値なんかないぞ?

parameter="MessageResources"
とあるのなら、
/WEB-INF/classes 直下に MessageResources.properties というファイルを作成する。
日本語ロケール専用ならMessageResources_ja.properties。

java.util.ResourceBundleと同じルールだ。
165デフォルトの名無しさん:2005/09/27(火) 16:44:54
>>163
デバッグモードonでコンパイルして、スタックトレースを出力。
166デフォルトの名無しさん:2005/09/27(火) 16:47:09
簡単にやろうと思ったら、NetbeanとかEclipseの統合開発環境使うのがいちばん。
それでステップ実行すればいいだけ。
167163:2005/09/27(火) 16:55:30
ありがとうございました。
168152:2005/09/27(火) 17:05:14
>>164
Thanks
解決したのでどうもです。
169152:2005/09/27(火) 17:52:59
さっきの続きでまたもう1つ問題が浮上・・・。
読み込ませているはずのOracleのドライバーがどうも読み込んでくれなくて
ClassNotFoundExceptionを吐いてしまってる・・・orz

アドバイスおながいしまつ・・・。;_;
170デフォルトの名無しさん:2005/09/27(火) 17:57:52
tomcatでJNDIに登録してるんなら、server/common/libとかその辺にもclassファイルが無いと動かんな
171152:2005/09/27(火) 18:08:40
>>170
現在の状況としては
ただ拡張していないJavaクラスのmainメソッド内→正常に取れる
Action拡張クラス内のexecuteメソッド内     →ClassNotFoundExceptionを吐き出してしまう
172デフォルトの名無しさん:2005/09/27(火) 18:10:29
サーブレットでCSVをダウンロードするようなプログラムを作ってるんですが、
なぜかダウンロードダイアログと同時に真っ白い画面が表示されてしまいます。

元画面→CSV作成クラスはPOSTでリクエストを飛ばしてて、
ヘッダには
res.setContentType( "Application/Octet-Stream-Dummy" );
res.setHeader("Content-Disposition","attachment; filename=\"aaaa.csv\"");
を記述してます。
どこの記述がマズいのでしょうか?
ちなみにブラウザはIE6.0SP2
サーバはXPSP1+Tomcatです。
173デフォルトの名無しさん:2005/09/27(火) 18:17:22
>>172
POSTした結果がCSVファイルだとしたら、サーバからブラウザに返された内容はCSVファイルとしてファイルに保存しますよね
そうしたらブラウザには何が残るでしょうか?
174デフォルトの名無しさん:2005/09/27(火) 18:29:13
真っ白な画面が表示されるって事は、空のCSVファイルが送信されてるんでないの?

原因はキャッシュ設定だと思う。
175172:2005/09/27(火) 19:01:23
>>173-174
ちょいと補足というか訂正です。
元画面で検索条件を入力して、それをCSV作成クラスで受け取って
検索条件を元にCSVに出力します。
ヘッダにContentTypeを記述してるのでダウンロードダイアログも上がってくるし
そこで「開く」や「保存」を押すと確かにデータも出力されているのですが、
ダイアログと同時に真っ白な画面も上がってきてしまいます。
その画面のHTMLを見ると
<HTML><HEAD></HTAD><BODY></BODY></HTML>
が勝手に記述されているのですが、
これを書き出してるのは誰なのでしょうか?
176デフォルトの名無しさん:2005/09/27(火) 19:03:20
>>175
IEかな
177デフォルトの名無しさん:2005/09/27(火) 19:28:25
swingをつかったGUIプログラムで
paint関数で文字列を表示したりすると
メニューバーが消えてしまうんですがどうしたらいいでしょうか?
一応マウスでクリックすると描画されるんですが

178デフォルトの名無しさん:2005/09/27(火) 19:29:29
>>177
paint 使うな、paintComponent 使え。
179デフォルトの名無しさん:2005/09/27(火) 19:41:41
>178
速レスありがとうございます
さっそくやってみます
180デフォルトの名無しさん:2005/09/28(水) 00:08:32
log4jを使って、ケースによって別々のファイルにロギングすることはできますか?

プロパティファイルを2つ作って、loggerを2つ作成し、やってみたのですが、
はじめはうまくいってるように見えるのですが、
片方のファイルにログ書き込みが発生すると、以後、
そのファイルのみに書き込まれてしまいます。
181デフォルトの名無しさん:2005/09/28(水) 00:31:57
>>180
何をどうしたのかさっぱりわからんから何とも答えようがないな
182180:2005/09/28(水) 00:45:14
えーとですね。

static logger a;
static logger b;
・・・
a = ****.getLogger ("LOGFILE_A");
b = ****.getLogger ("LOGFILE_B");

という感じで定義しておいて、要件に応じて、
a.log (******); もしくは b.log (*****)ってな感じでやりたいんです。
つまり、ログがごっちゃになるのがいやなので、ログファイルA、ログファイルB
と分けたいんです。
183180:2005/09/28(水) 00:59:27
log4jをあんま使ったことなくてカンでやったのですが、
ヘマしなければ、なんら問題のないことなのでしょうか。
それとも、log4jの作り上、上記のやり方では2つのログファイルに出力できない
のでしょうか。
184デフォルトの名無しさん:2005/09/28(水) 02:56:48
俺詳しくないんだけど言わせて頂く
まず言うべき部分はaとbの各々の位置関係とかそこらじゃないのかな?

お願いだ、ログはなるべくわけないであげて、頼む。
数箇所にログ吐くシステムに携わった事あるけど、地獄ね
ログを信じられなくなるんだね、驚異的本末転倒。
わけるにしても1箇所だけは全て流してあげてくれないか
185デフォルトの名無しさん:2005/09/28(水) 07:08:02
>>184
そりゃおまいさんの探索能力が無いだk
186デフォルトの名無しさん:2005/09/28(水) 11:08:39
strutsで、SQLの結果を配列形のデータを
JSPに表示するような一例がなかなか見つからずに悶絶中orz

アドバイスおながいしまつ.・゜・(´д`)・゜・.
187デフォルトの名無しさん:2005/09/28(水) 11:15:46
>>186
日本語を勉強してきてくれ
話はそれからだ
188デフォルトの名無しさん:2005/09/28(水) 14:26:47
Java1.1.8を使用してます。
アプリケーションの二重起動を防止したくていろいろ調べたんですが、大体以下の2つの方法があるみたいです。
 1.ロックファイル作成→起動時にファイルの有無を判断
 2.使用しないポートでSocketを作成し、接続→当該ポートへの接続可否を判断

で、2の方法を採ることにしたんですが、エラーが出る場合と出ない場合があり、困っています。
Socketは接続時間の制限などがあるのでしょうか?
コードを載せておきますので、何かアドバイスがあったらお願いします。

 public static void main(String args[]){
   if (appliLockCheck()){
    MainMenu mainmenu = new MainMenu();
   }else{
    System.exit(0);
   }
 }

 public boolean appliLockCheck(){
   try {
    ServerSocket socket = new ServerSocket(3776);
   }catch (BindException exception){
    System.out.println("プログラムは既に開始されています。");
    return false;
   }catch (Exception exception){
    exception.printStackTrace();
    System.out.println("プログラムは既に開始されています。");
    return false;
   }
   return true;
 }
189デフォルトの名無しさん:2005/09/28(水) 15:13:04
>>188
ServerSocket がガベージコレクタに回収されるときに close() されてるとか?
190デフォルトの名無しさん:2005/09/28(水) 15:54:26
サーバーソケットのスコープがおかしいな
191デフォルトの名無しさん:2005/09/28(水) 16:29:19
>>189
ServerSocketがポートを掴んでいる状態で、GCに回収されることがあるんでしょうか?
そうすると、アプリが起動している時は常にServerSocketを参照した状態にすればいい……のか?

>>190
この書き方だと、AppliLock()メソッド内でしかServerSocketが存在しないですよね。。。
で、各画面を表示する時に、必ずServerSocketを作るようにしたんですが、
ServerSocketの作成に失敗する時と成功する時があるようです。
今度はStaticなServerSocketを作って、
アプリ起動時は常にServerSocketが存在するように変えてみたいと思います。
192デフォルトの名無しさん:2005/09/28(水) 16:42:43
>>191
static にする意味無し。
190が書いた意味をもう一度考え直せ。
ServerSocketが何なのかを知っていればすぐわかると思うが。
Socketプログラミングしたことない?
193デフォルトの名無しさん:2005/09/28(水) 16:44:38
>>191
> ServerSocketがポートを掴んでいる状態で、GCに回収されることがあるんでしょうか?
回収されてはいけない、とはどこにも書いてない。
どっからも参照されてないんだから普通は回収されるだろ。

問題はGCに回収された時に close されるか、だけど……
close するとも、絶対に close されないとも書いてないんだよね。SocketImpl の実装次第。
ちなみに、Sun の java.net.PlainSocketImpl の実装では finalize 時に close される。
194191=188:2005/09/28(水) 16:53:14
>>192
良く考えたらStaticで作ったらダメですね。。。
常に存在してたら必ずエラーってことになってしまう。

Socketのプログラミングはしたことないんです、すいません。
APIを見たところ、
・ポートを開いてネットワーク越しの要求を待つ。
・要求があった時に記述された処理をする。
ってことだと思うんですが。

起動時のmainメソッドの中でServerSocketが作られれば、終了まで存在する……?
もう少し考えてみます。
もしヒントがあれば、どうか教えてください。
よろしくお願いします。
195188:2005/09/28(水) 16:55:51
>>193
なるほど、ポートを掴んでいようが何しようが、参照されていない以上GCの対象になる、ってことですね。
だとするとあやふやな実装に頼る訳にはいかないです。
ありがとうございました。
196デフォルトの名無しさん:2005/09/28(水) 17:09:32
>>194
> 起動時のmainメソッドの中でServerSocketが作られれば、終了まで存在する……?
しない。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/doc-files/AWTThreadIssues.html
197デフォルトの名無しさん:2005/09/28(水) 17:09:56
>>181,191,194
まず最初に提示したソースだが、
そこを見てわかっているかちょっと疑問になる部分があるので
確認をしてみて欲しい

mainメソッドが一番最初に呼ばれるのか?
このmainメソッドがあるクラスをインスタンス化せずに呼んでいる。
これは問題ないとすると、
appliLockCheckメソッドは実はstaticメソッドで無いとおかしい。

まぁ書き方見るとどっかでインスタンス化しているはずなんだよな?

>起動時のmainメソッドの中でServerSocketが作られれば、終了まで存在する……?
このクラスのインスタンスがある限り終了まで存在すればいいすれば、
自ずと何処にどう書けば良いかがわかると思うが。
198デフォルトの名無しさん:2005/09/28(水) 17:11:15
訂正
×このクラスのインスタンスがある限り終了まで存在すればいいすれば
○このクラスのインスタンスがある限り存在すればいいとすれば

失礼しました。
199デフォルトの名無しさん:2005/09/28(水) 17:17:28
> まぁ書き方見るとどっかでインスタンス化しているはずなんだよな?
appliLockCheck に static 付け忘れただけなんでは?
200デフォルトの名無しさん:2005/09/28(水) 17:26:15
200
201デフォルトの名無しさん:2005/09/28(水) 17:31:35
>>199
そうすると、
   if (appliLockCheck()){

   if (Hoge.appliLockCheck()){
って書くはず

まぁ、本人じゃないとわからないわけだが。
あ、Warning無視してるのか?
202デフォルトの名無しさん:2005/09/28(水) 17:38:28
>    if (Hoge.appliLockCheck()){
> って書くはず
そんなんコーディング規約依存だろ。

> あ、Warning無視してるのか?
少なくとも javac では警告出ないよ。
203デフォルトの名無しさん:2005/09/28(水) 18:10:24
Struts上でArrayListの中の配列を
JSPで表示しようとすると・・・

javax.servlet.ServletException: どのスコープにもBean DispenseErrorCheckActionForm がありません

と表示されてしまう。

ヒントお願いします。

204デフォルトの名無しさん:2005/09/28(水) 18:12:28
>>203
>ArrayListの中の配列をJSPで表示しようとすると・・・
関係ない情報だね
205203:2005/09/28(水) 18:18:17
>>204
ちなみに参考にしていた箇所はここ。
ttp://www.res-system.com/weblog/item/242/catid/31#comment

「iterate」タグ内でループさせて表示させようと思っいるのだが・・・。

筆不精でスマンorz
206デフォルトの名無しさん:2005/09/28(水) 18:44:05
StrutsってJ2EEのフレームワークで
Javaやってる人共通の話題ではないんだよねぇ。
どっか別のスレのほうが適当じゃないかな?

ココなんてどうだろう。
    JAVA+JSP+Struts+Tomcat    
http://pc8.2ch.net/test/read.cgi/tech/1123605954/l50
207203:2005/09/28(水) 18:48:51
>>206
豚クス。
そっちのスレのほうがよかったかもね。
ちょっとそこのスレで質問投げてみる。
208188:2005/09/28(水) 19:15:11
みなさん、お世話になりました。
>>197 >>199 >>201
staticの付け忘れです。
混乱させてすみません。

で、結論から言ってServerSocketをクラスのStaticメンバ変数にし、
AppliLockCheck()メソッドからポートを掴みに行くことで何とかうまくいきました。

限りなく不正解に近い気もしますが。。。
とにかく、元のコードではAppliLockCheck()メソッドを抜けると
ServerSocketはスコープから外れて死ぬので、
ServerSocketをメンバ変数にして、インスタンス化されている間はServerSocketが生き残る
ようにしなければ、ロック制御はできない。
という風に考えたんですが、どうでしょうか。

あと、直接的な回答ではなく、考えるように誘導してくださった回答者のみなさま、
ありがとうございました。
209デフォルトの名無しさん:2005/09/28(水) 20:08:10
すいませんが、あなたは最初に以下の2つの方法がありますと言って
ファイルロックの方法と、ダミーのサーバソケットを作る方法があるようだといいました
ファイルのロックはいいのですが
サーバソケットを作る方法って結構標準的なやり方なんでしょうか?
どこでそのような情報手に入れたのか詳しく知りたいです
ちょっとびっくりしましたよ
210188:2005/09/28(水) 20:18:10
>>209
情報源はGoogle先生です。
「Java 二重起動 防止」とかのキーワードでぐぐったら出てきました。

ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5471&forum=12

とか。
他にも幾つかのページで紹介されていたので、同じことをしようとしている人にとっては
意外とメジャーな方法なのかも知れませんね。
211デフォルトの名無しさん:2005/09/28(水) 20:53:37
そのページ見る限りでは、Preference API(レジストリ)方法選ぶよ俺は
212デフォルトの名無しさん:2005/09/28(水) 21:21:59
バージョンが
>Java1.1.8を使用してます。
だからなぁ。
213デフォルトの名無しさん:2005/09/28(水) 21:46:24
質問です。
AWTのイベントリスナが複数ある場合、片方のイベントが発生したら他のイベントを発生させないようにするには、どうしたらいいでしょう?
ボタンアクションを動かしているときにはマウスイベントは動かさないようにする、といった感じです。
お願いします。
214デフォルトの名無しさん:2005/09/28(水) 21:50:30
>>213
スマートにやるなら
removeListener
ゴリゴリ書きたいのならコールバックメソッドにフラグ制御
215デフォルトの名無しさん:2005/09/28(水) 22:14:38
>>214
ありがとうございます。
removeListenerでやってみます。
自分自身のリスナー、>>213の例ならボタンアクションを動かしてるときにボタンアクションリスナも含めて全部削除しても問題ないんでしょうか。
216デフォルトの名無しさん:2005/09/28(水) 22:33:46
ボタンは setEnabled する方がいいでしょう。
押せるけど別段反応無い、っていうのより、押せないって方が分かりやすくない?
217180:2005/09/28(水) 22:59:14
>>184
全く相関関係のないログなので分けました。
多分、log4jは内部情報を一部staticで管理している為の現象と推測しました。
結局、時間(とマニュアル読む気)がなかったのでlog4jの使用はやめました。
218デフォルトの名無しさん:2005/09/28(水) 23:01:47
要ははログ出力レベルを整数とif句で調節してるだけのprintlnだろ?<log4j
悩むくらいなら自分で実装
219180:2005/09/28(水) 23:32:23
スピードや、スレッド同期、ログローテートを求められる状況だったので、
定評のあるlog4jにしようと思って・・・途中から意地になってるのもありましたが。
結局、自前で実装しました。(大したことはやってませんが)

ところで別件ですが、

class Foo
{
static private String XXX = "not initialized."; // <-[A]
static private Foo foo = new Foo ();

private Foo ()
{
XXX = "initialized.";
}

static public void Func ()
{
System.out.println (XXX);
}
}

みたいなコードで、
Foo.Func ();
を実行し、
not initialized.
と表示される場合ってあるでしょうか??
220デフォルトの名無しさん:2005/09/28(水) 23:38:26
>>219
あるだろ。

Log4jのことだが
DOMConfigurator.configure()
とかちゃんとやってて出来ないのがわからん。
221180:2005/09/28(水) 23:43:37
>>220
え?なぜ??


log4jは、

PropertyConfigurator.configure("a.property"); // 1
・・・
PropertyConfigurator.configure("b.property"); // 2

てな感じでやってました。
2のタイミングで、1の情報が、上書きされてしまったのではと思ってます。
222デフォルトの名無しさん:2005/09/28(水) 23:45:48
ポカーン
223デフォルトの名無しさん:2005/09/29(木) 00:14:54
>>221
まぁプロパティーファイル使ったのならそう書くんだけどさ、
おまえLog4jについて何も調べなかっただろ。
サンプルソース読んでわかった気になってただけだな。

プライオリティごとに別ファイルに出来るんだが、
そういう事までわかってる?本来の使い方とは違うが、それだけでも別ファイルに吐くことが出来るぞ。
224180:2005/09/29(木) 00:28:16
>>223
まぁ、図星。

>プライオリティごとに別ファイルに出来るんだが、
>そういう事までわかってる?本来の使い方とは違うが、それだけでも別ファイルに吐くことが出来るぞ。
さんきゅ。
225デフォルトの名無しさん:2005/09/29(木) 02:25:28
>220
219じゃないけど、>219のnot initialized.表示される場合ってありえるの?
屁理屈抜きだとnot initialized表示される場合が思い浮かばないんだけど
しかし219の初期化手段大人気ない感じだね
226デフォルトの名無しさん:2005/09/29(木) 02:29:26
ねぇよ
227デフォルトの名無しさん:2005/09/29(木) 02:35:32
複数スレッドがからんでたらありえるんじゃね?
228デフォルトの名無しさん:2005/09/29(木) 02:43:36
マルチスレッド環境で初期化に失敗するようなヘボ言語なわけねーだろが ヴォケ
229デフォルトの名無しさん:2005/09/29(木) 02:53:49
俺はスタティックイニシャライザじゃないと保証されないって思ってた。
230デフォルトの名無しさん:2005/09/29(木) 03:06:46
>>228
double-checked lockingイディオムとか知ってる?
231デフォルトの名無しさん:2005/09/29(木) 03:20:24
 6:一見関係ありそうで関係ない話を始める
     「ところで、カモノハシが卵を産むのは知っている?」
232デフォルトの名無しさん:2005/09/29(木) 04:39:17
(1)クラスの初期化が終わるまで、クラスオブジェクトはロックされ、
他のスレッドはそのクラスにアクセスできない
(2)ロックが解放されるとき、そのスレッドのキャッシュはメインメモリに書き込まれる
(3)スレッドがはじめての「変数」(記憶領域)にアクセスするときは、メインメモリから読まれる

以上の3点から、初期化したスレッドと異なるスレッドが
(もうそれ以上変わらない)フィールドにアクセスした場合、
正しくアクセスできると思われる。

ダブルチェックの話は、
オブジェクトの保持するデータがまだメインメモリに書き込まれていないのに、
オブジェクトへの参照がメインメモリに書き込まれたときに
(データの書き込みの前後逆転は、最適化の余地のために残されている)、
他のスレッドから、その参照からオブジェクトの保有データにアクセスすると
未初期化状態のものにアクセスできてしまうことを言うのだと思う。
233デフォルトの名無しさん:2005/09/29(木) 07:27:59
数と重さを入力すると、
数*重さ*重さ1ポンドに対しての価格 = 合計価格 が出て、
その合計価格に消費税を足した物を出力(入力した数、重さも一緒に)するというプログラムを作っています。
消費税を、7.25%に設定して、コンパイルしてみたのですが表示は「0.0725%」となってしまいます。
↓にソースを晒すので、どうすれば7.25%と表示されるのかご教授をお願いします。
234デフォルトの名無しさん:2005/09/29(木) 07:32:09
package totalpricepractice;

/**
*合計価格+消費税を表示するプログラムです。
*/
import javax.swing.*;
import java.util.*;
import java.text.*;

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

final double taxRate = 7.25 / 100, pricePerLb = 5.99;

double bagWeight, numberofBags, TotalPrice, TotalPriceWithTax;

String strsold, struwob;

DecimalFormat df = new DecimalFormat("0.00");
DecimalFormat df2 = new DecimalFormat("0");
235デフォルトの名無しさん:2005/09/29(木) 07:32:59

strsold = JOptionPane.showInputDialog(null, "売れたバッグの数を入力してください");
struwob = JOptionPane.showInputDialog(null, "バッグの重さを入力してください");

numberofBags = Double.parseDouble(strsold);
bagWeight = Double.parseDouble(struwob);

TotalPrice = bagWeight * numberofBags * pricePerLb;
TotalPriceWithTax = TotalPrice + TotalPrice * taxRate;

System.out.println("The number of bags sold is " +df2.format(numberofBags));
System.out.println("The weight per bag is " +df2.format(bagWeight));
System.out.println("The price per pound is " +pricePerLb);
System.out.println("The sales tax is " +taxRate+ "%");
System.out.println("Total price is " +df.format(TotalPriceWithTax));
}
}
236デフォルトの名無しさん:2005/09/29(木) 07:33:56
売れたバッグの数を32、バッグの重さを5ポンドと入力した場合の出力結果。

The number of bags sold is 32
The weight per bag is 5
The price per pound is 5.99
The sales tax is 0.0725%
Total price is 1027.88
237デフォルトの名無しさん:2005/09/29(木) 07:34:54
>>233
下手な釣り
238デフォルトの名無しさん:2005/09/29(木) 07:36:23
final double taxRate = 7.25 / 100
239デフォルトの名無しさん:2005/09/29(木) 07:47:28
>>238
7.25 / 100 をしないと、%にならないので、
合計価格がとんでもないことになってしまうのです…
240デフォルトの名無しさん:2005/09/29(木) 07:50:51
いやいや釣りじゃなくて本気か?w
taxRateを7.25として使いたければ計算のときに100で割ればいいし
taxRateを0.0725として使いたければ%で表示するときに100掛ければいいじゃん
241デフォルトの名無しさん:2005/09/29(木) 07:57:55
>>240
final double taxRate = 7.25 / 100 という風に、100で割っているのですが、
出力された時に、7.25を100で割った数字が出てくるので、
それを0.0725ではなく、7.25と表示出来るようにしたいのです。
DecimalFormatをいじればどうにかなりそうな気がして、色々やっていたのですが、
いつのまにか朝になっちゃいました・・・orz
242デフォルトの名無しさん:2005/09/29(木) 08:56:36
>>240の言ってること全くわかってねーな
寝た方がいいんじゃねーの
243デフォルトの名無しさん:2005/09/29(木) 09:16:53
>>241
( 'A`) 人('A` ) ナカーマ

いや、いつのまにか朝になっちゃったとこだけな。
244デフォルトの名無しさん:2005/09/29(木) 09:37:30
Javaでの動画再生について質問します。

今はQT for Javaを利用しているのですが、WMP形式の動画が再生できない
ため他のものを使えないという問題があります。
QTの他にはJMFなどがありますが、JMFのページを見てもJMF自体ではWMP
はサポートしていないと書いていました。

WMPは是非サポートしたい形式なのですが、JavaでWMPを再生する方法はな
にかありますか?もし知っている方がいたら教えてください。
245デフォルトの名無しさん:2005/09/29(木) 09:51:58
taxRate * 100
246デフォルトの名無しさん:2005/09/29(木) 10:16:31
質問者じゃないが、つまるところ>219のコードは変な事になる可能性があるってことなのね
class Foo {
static {
//ここでやればいいの?
xxx=null;
}
}
それともFoo#getInstance()みたいなのこしらえて徹底するの?
247デフォルトの名無しさん:2005/09/29(木) 10:25:55
で、double checked locking がこの件にどう関係するかの説明はまだですか?
ダブルチェックとか言いたかっただけと違いますか?
248デフォルトの名無しさん:2005/09/29(木) 10:26:54
めんどくさいからそれでいいや
249デフォルトの名無しさん:2005/09/29(木) 12:43:38
>>246
変なコードのような気がするが
変な事にはならない気がする
250デフォルトの名無しさん:2005/09/29(木) 13:38:53
旧漢字を常用漢字に変換するのは、どうやるのでしょう?
「はしごタカ」を「高」に、など。
251デフォルトの名無しさん:2005/09/29(木) 13:43:40
>>250
変換表を作って1文字ずつ置き換える
252デフォルトの名無しさん:2005/09/29(木) 15:19:34
>>251
d
253デフォルトの名無しさん:2005/09/29(木) 20:33:42
Log4jについて教えてください。
システム上、ログファイル名を任意にプログラミング上変更する必要があります。
xmlにファイル名を記述するとファイル名が固定になってしまいます。
どのような対処法があるのでしょうか。
宜しくお願いします。
254デフォルトの名無しさん:2005/09/29(木) 20:36:44
自分で Appender を作る。
255180:2005/09/29(木) 23:16:38
>>232
解説ありがとうございます。
つまり、Foo.Func()では、
initialized.
と出力されることが保障されるはずですよね。


ダブルチェックについても調べてみたところ、
http://www-6.ibm.com/jp/developerworks/java/020726/j_j-dcl.html
をみつけました。
非常に興味深い話題でけど関係ないなと思いつつ読みましたが、一点気にかかる
ところがありました。

上記HPの"リスト10"に関するものです。

static getInstance() メソッドへの呼び出しが行われるまでは Singleton オブジェクトを作成しないようになっています。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

私の考えでは、リスト10中のSingletonオブジェクトは、プログラムのロード時に1回のみ作成されるもの、と思っていたのですが、
実際は、getInstance()中にて、変数instanceへの参照が発生したときに(1回のみ)初めて作成されるのでしょうか??
256デフォルトの名無しさん:2005/09/30(金) 00:02:06
>>255
getInstance()が呼ばれるまでSingletonクラスはロードされない。
もうちょっと正確に言うと、最初にSingletonクラスで何かしようとするまで
Singletonクラスはロードされない。例えばinstanceof演算子とか。
257デフォルトの名無しさん:2005/09/30(金) 00:07:04
インタフェースとクラスのinstanceofって速度が違うの?
インタフェースでしか使っちゃダメって話聞くけど
258256:2005/09/30(金) 00:10:38
すまん。今、自分で試してみたらinstanceofではロードされなかった。VM依存とかある?
Class.forNameならロードされた。あたりまえだけど。
259デフォルトの名無しさん:2005/09/30(金) 00:11:46
> Class.forNameならロードされた。あたりまえだけど。
そらそうだろw
260デフォルトの名無しさん:2005/09/30(金) 00:24:21
最初の参照でロードされる (初期化される) ってのは仕様とかになってたっけか?
クラスローダーの実装如何で JAR の読み込みと同時にロードも出来るし。
JDK 0.9/1.0 とか初期の実装は、クラスから静的に参照されている別クラスも
同時にロードされてたような気がするし。

クラスのアンロードの規定もなんかあったような気がするが忘れた。
static フィールドを持つクラスはアンロードしちゃだめとか何とか。
つーか、適当な話ばっかだな >> 俺
261180:2005/09/30(金) 00:30:58
>>256
ありがとうございます。
Singletonクラス自体は、そのプロパティ/メソッドが参照されるまでロードされない。
従って、getInstance()コール時に、ロードされ、その際、Singletonオブジェクトが作成される。
そしてgetInstance()中のコードが実行され、instance変数がリターンされる。
ということですね。納得しました。
262180:2005/09/30(金) 00:34:44
>>260
>クラスのアンロードの規定もなんかあったような気がするが忘れた。
>static フィールドを持つクラスはアンロードしちゃだめとか何とか。
おー、ここら辺の話が実に気になりますね〜。
でも、static フィールドを持つクラスをアンロードしちゃう言語なんて、
そもそもstaticっていう言葉の定義自体がちがっちゃう言語なんでしょうね。

263デフォルトの名無しさん:2005/09/30(金) 00:58:31
GIF 形式の出力のサポートはまだなんかね。
264デフォルトの名無しさん:2005/09/30(金) 01:01:06
>>262
1.0だか1.1の頃はstaticフィールドなんか関係なくクラスがアンロードされることがあった。
265180:2005/09/30(金) 01:03:06
>>264
マジっすか??
それってバグでしょ??

勉強になりました。
266デフォルトの名無しさん:2005/09/30(金) 01:14:35
>>260
12.7 クラス及びインタフェースのアンロード
http://www.y-adagio.com/public/standards/tr_javalang2/execution.doc.html#74294
> Javaプログラム言語の処理系は,クラスを アンロード(unloaded) してもよい。
> クラス又はインタフェースは,それを定義しているクラスローダが12.6で示されるとおりに
> ガーベジコレクションによって再利用される場合に限り,アンロードしてもよい。
> ブートストラップローダによってロードされるクラス及びインタフェースは,アンロードしてはならない。

って書いてあるけど。
staticフィールド持ってる場合はアンロードしちゃダメってのはどこに書いてあった?
267デフォルトの名無しさん:2005/09/30(金) 01:25:21
>>266
どこに書いてあるかまで明確に覚えてたらそう書いてるよw
多分その下の

・(状態が失われる)静的変数。

とかが頭の片隅にあったんだろう。
268デフォルトの名無しさん:2005/09/30(金) 01:47:39
以下のようなテストプログラム書いて試してみたけど、staticフィールド持っててもアンロードされたぞ。

import java.net.*;
import java.lang.ref.*;
public class test {
  public static void main(String[] args) throws Exception {
    String url = "file:///C:/hogehoge/"; // 最後に / を入れる。test と同じディレクトリはじゃないほうが良いかも?
    Class stype = new URLClassLoader( new URL[]{ new URL( url ) } ).loadClass("Singleton");
    WeakReference s = new WeakReference( stype.getMethod("getInstance", null).invoke(null, null) );
    System.out.println(s.get());
    stype = null; System.gc();
    System.out.println(s.get());
  }
}

//この例では C:/hogehoge/Singleton.javaね
public class Singleton{
  private static Singleton instance = new Singleton();
  private Singleton(){ }
  public static Singleton getInstance(){
    return instance;
  }
}
269デフォルトの名無しさん:2005/09/30(金) 01:58:56
>>267
その部分見ても「staticフィールド持ってる場合はアンロードしちゃダメ」とは読めないんだが。
270デフォルトの名無しさん:2005/09/30(金) 02:11:36
最初からうろ覚え程度の適当話だっつってんのに
なんで鬼の首取ったかのような奴が紛れてんのか。
271デフォルトの名無しさん:2005/09/30(金) 02:21:07
どの初心者スレにも揚げ足を取ることで自己の存在理由を主張しようとする派遣が常駐しています。
272デフォルトの名無しさん:2005/09/30(金) 02:38:14
>>263
Mustang だと ImageIO で GIF 使えるよ。
273デフォルトの名無しさん:2005/09/30(金) 02:56:49
>>241
★★ Java の宿題ここで答えます ★★で聞いた方がいいと思われ。

http://pc8.2ch.net/test/read.cgi/tech/1123639475/l50
274デフォルトの名無しさん:2005/09/30(金) 03:17:59
>>241
new DecimalFormat("0.00%").format(7.25 / 100);
275デフォルトの名無しさん:2005/09/30(金) 03:44:09
Java で作表ソフトを作りたいと思っています。

JTable のようなコントロールを使おうと思ってるんですが、
Windows でいうところのオーナードローみたいなことは
できますか?

罫線とか網掛けとかを表現したいもので。

276デフォルトの名無しさん:2005/09/30(金) 03:50:52
>>275
sunのswingチュートリアルに載ってるよ

>>271
派遣にいじめられたのか?
277デフォルトの名無しさん:2005/09/30(金) 03:56:44
>>275
javax.swing.table.TableCellRenderer 実装する。

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer
Using Custom Renderers とか参照。
278デフォルトの名無しさん:2005/09/30(金) 05:00:32
>>241
final double taxRate = 7.25 / 100, pricePerLb = 5.99;

DecimalFormat df = new DecimalFormat("0.00");

と先に書いてるんだから、outputの時に

System.out.println("The sales tax is " +df.format(taxRate * 100));

としてやればいい。
279デフォルトの名無しさん:2005/09/30(金) 15:27:27
VMオプションで 「-Xss30m」としても「-Xss10m」としたときと
StackOverflowErrorが起きるまでに呼び出せるmethodの回数が
変わりません。
どのようにしたら回数を増やすことできるのでしょうか?

[環境]
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
280デフォルトの名無しさん:2005/09/30(金) 17:16:11
>>279
-Xoss<size> 任意スレッドの最大 Java スタック・サイズを設定します
-Xss<size> 任意スレッドの最大ネイティブ・スタック・サイズを設定します

StackOverFlowを起こすのはJavaスタック
281デフォルトの名無しさん:2005/09/30(金) 18:00:31
JInternalFrame でアプリケーションを作りかけてて、メニューかボタンで
タブブラウザのような UI に切り替えたいんだけど、JInternalFrame の
タイトルバーやボーダーって動的に消す方法ありますか? 何か良い方法ないかな?
282デフォルトの名無しさん:2005/09/30(金) 18:10:17
ちょうど俺も俺なりにつくってるところだ。
各 JPanel を JInternalFrame から剥奪して JTabbedPane に載せかえて、
JDesktopPane ごと差替えればいい

283デフォルトの名無しさん:2005/09/30(金) 18:20:16
>>282
うーん、やっぱりそんな感じになるのかなぁ。俺も途中まで作りかけてて、
CardLayout で JDesktopPane と JTabbedPane を切り替えて、ついで
トップの JPanel を remove→add とか。でも JInternalFrame に仕掛けた
JInternalFrameListener への通知どうしようかとか、JTabbedPane じゃ
タブを消すボタンをどこかに作らなきゃとか、考えてたら、タブ部分だけ
自作して JInternalFrame のタイトルバーと境界線を消して重ねた方が
設計は楽かな、と思ったしだいで。
284やっちゃん ◆jKwdOs3LE2 :2005/09/30(金) 18:38:32
package pka.pkasub;
public class Pk4cls{
public void disp(){System.out.println("ddddd");}
}

パッケージなんですが、これと
package pkb;
public class Pk4prg{
public static void main(String args[]){
pka.pkasub.Pk4cls a=new pka.pkasub.Pk4cls();
a.disp();
}
}
これで、Pk4prg.java:4: パッケージ pka.pkasub は存在しません。
pka.pkasub.Pk4cls a=new pka.pkasub.Pk4cls();
^
Pk4prg.java:4: パッケージ pka.pkasub は存在しません。
pka.pkasub.Pk4cls a=new pka.pkasub.Pk4cls();
^
エラー 2 個
こうなっちゃいます。誰かパッケージのヤリ方教えて下さい
285やっちゃん ◆jKwdOs3LE2 :2005/09/30(金) 18:40:41
解決しましたwwwすみませんでした
286デフォルトの名無しさん:2005/09/30(金) 18:47:15
>>280
「-Xoss」としても「-Xss」としても、両方指定しても変化ありません。

コマンドは例えば下のようにしています。
java -Xss10m Hoge
287デフォルトの名無しさん:2005/09/30(金) 18:54:22
スレ違いかもしれませんが、質問していいでしょうか。
ネットワークのループバックデバイスってwinXPでは標準装備じゃないんでしょうか?
また、この機能はJAVAやCで自作可能なんでしょうか?
288デフォルトの名無しさん:2005/09/30(金) 19:36:15
ワロスw
289デフォルトの名無しさん:2005/09/30(金) 22:27:34
javaではexeが作れないんですか?
290デフォルトの名無しさん:2005/09/30(金) 22:34:40
作れるけど特殊なコンパイラになる。探すが良い。
291デフォルトの名無しさん:2005/09/30(金) 22:35:25
GCJ
292デフォルトの名無しさん:2005/09/30(金) 22:53:52
ループバックデバイスのドライバでもつくるか
293275:2005/09/30(金) 23:04:04
>>276-277
勉強になりました。
swing でオーナードローっぽいことできるのは
わかったんですが、swt でも同様のことを可能にする
コントロールありますか?
(教えて君ですみません)
294デフォルトの名無しさん:2005/09/30(金) 23:06:32
eclipseとかってjavaでできてるんですよね。
そういうのもそのGCJって奴で作るんですか?
295デフォルトの名無しさん:2005/09/30(金) 23:09:25
奴はexeの中でjava -jar [option] eclipse.jarみたいなことしてるだけ
多分
296デフォルトの名無しさん:2005/09/30(金) 23:11:17
最近eclipseが使いにくいと思い始めてきた
NetBeansいいよ、個人的に
297デフォルトの名無しさん:2005/09/30(金) 23:13:35
javaでソフト作って配布しても
.jarじゃハァ?ってなりそう
298デフォルトの名無しさん:2005/09/30(金) 23:15:47
>>297
バッチファイル起動でコンソールも出っ放しとかのアプリが氾濫するjavaだからOK
299デフォルトの名無しさん:2005/09/30(金) 23:18:44
画面非表示の透明exeとか使えばいいじゃん。
300デフォルトの名無しさん:2005/09/30(金) 23:20:41
>>299
詳しくお願いします
301デフォルトの名無しさん:2005/09/30(金) 23:23:15
exeからsystem("java -jar SUGEEE.jar");とかしてみたら?
302デフォルトの名無しさん:2005/09/30(金) 23:23:16
linuxのどれか知らないけどgcj使用のeclipseがあるとか
tomcatもネイティブとか聞いたけどどれだろ
303デフォルトの名無しさん:2005/09/30(金) 23:25:49
>>301
つまり別の言語で.jar実行用のプログラムを作れということですか。
304デフォルトの名無しさん:2005/09/30(金) 23:26:39
>.jarじゃハァ?ってなりそう
そんなこと気にするのはJava開発者ぐらいだ

>バッチファイル起動でコンソールも出っ放しとかのアプリが氾濫するjavaだからOK
「氾濫」って悪い意味で使っているのか?
「バッチファイル起動でコンソールも出っ放し」のどこがいけないのか・・・
305デフォルトの名無しさん:2005/09/30(金) 23:27:53
複数ウィンドウ開いてるのにひとつだけゴミ蒔き散らかしてたらヤだろw
306デフォルトの名無しさん:2005/09/30(金) 23:28:30
>>304
exeじゃないと、
ユーザがこれをプログラムだと
認識してくれないということです。
307デフォルトの名無しさん:2005/09/30(金) 23:31:41

ショートカットの名前にexeを付加して下さい
308デフォルトの名無しさん:2005/09/30(金) 23:31:54
>複数ウィンドウ開いてるのにひとつだけゴミ蒔き散らかしてたらヤだろw
たとえがよくわからん
文脈からして「複数ウィンドウ開いてるのに」は関係無さそう
309デフォルトの名無しさん:2005/09/30(金) 23:33:24
>>307
www
310デフォルトの名無しさん:2005/09/30(金) 23:33:42
関係あるだろゴミのつもりで消したらプログラムが終了しましたってなんじゃそりゃ
311デフォルトの名無しさん:2005/09/30(金) 23:33:56
>exeじゃないと、
>ユーザがこれをプログラムだと
>認識してくれないということです。
まったくもって意味が分からん
exeであること、jarであることを一般ユーザにわざわざ見せる必要ないじゃん
312デフォルトの名無しさん:2005/09/30(金) 23:35:41
マジで意味分からん
「ゴミのつもりで消したら」
↑の言いたい事は分かるが、

最初の
「ゴミ蒔き散らかしてたら」
と、つながらない
313デフォルトの名無しさん:2005/09/30(金) 23:37:22
exeはプログラムと知っているけど
ごみウインドウを消すとアプリが落ちることに驚く、スキル不明のパソコンユーザ
314デフォルトの名無しさん:2005/09/30(金) 23:38:15
つながらないって思ってるだけだろw
315デフォルトの名無しさん:2005/09/30(金) 23:41:06
jagoとかexeでごまかしてるな
316デフォルトの名無しさん:2005/09/30(金) 23:42:23
>>313
実際.jarなフリーソフトとかあるんですかね。
てかJavaのフリーソフトってアプレットとEclipseしかしらない
317デフォルトの名無しさん:2005/09/30(金) 23:44:39
>>316
ある。
318デフォルトの名無しさん:2005/09/30(金) 23:47:04
そのjagoってやつがJava製なんですね。
319デフォルトの名無しさん:2005/09/30(金) 23:49:24
物理シミュレーション作ろうと思ってるんですけど、
といっても、おもちゃっぽい感じのですけど、計算量はかなりありそう
Javaじゃやっぱダメですかね
320デフォルトの名無しさん:2005/09/30(金) 23:50:06
>>318
OSネイティブの実行ファイルをJavaを介してGUI化し、その起動に実行ファイルを使う離れ業だったとおもう。
321デフォルトの名無しさん:2005/09/30(金) 23:52:04
よく分からんが凄そう。
322デフォルトの名無しさん:2005/10/01(土) 00:18:43
全くわからんけど凄そう
323デフォルトの名無しさん:2005/10/01(土) 00:23:51
jagoってのは碁を遊ぶゲームで、思考ルーチンは無く、ただのGUIの碁盤。
でもインストーラがあったり、実行ファイルから起動したりする。
そしてgnugoというこれまた実行ファイル形式の碁エンジンをホストにさせて対戦できる。
324デフォルトの名無しさん:2005/10/01(土) 00:24:23
>>319
大丈夫、当分はJavaの限界が来る前にお前の限界に当たるよ
Javaが良いのか悪いのかその時考えれば良い
325デフォルトの名無しさん:2005/10/01(土) 00:25:48
依存性のないCコードならJITに対応できるようにして欲しいな
326デフォルトの名無しさん:2005/10/01(土) 04:11:54
バッチファイルの中で java でなく javaw で起動すればコンソールは出ないだろ?
それとも直接バッチファイルをダブルクリックしたらこれでも出たっけ?
327デフォルトの名無しさん:2005/10/01(土) 09:49:02
ファイル貰ったんですけどどうしたらいいのか分かりません。
そのファイルには拡張子が bat class MF のものが含まれているんですが、
どうしたら実行できますか??
328窓際に追いやられた素人さん:2005/10/01(土) 09:49:50
現在、荒らし対策でクッキーを設定していないと書きこみできないようにしています
ってこのまえ別のスレで書き込もうと思ったらでたんですけどクッキーって何ですか?
329デフォルトの名無しさん:2005/10/01(土) 10:10:32
小麦粉バターとか
330デフォルトの名無しさん:2005/10/01(土) 10:12:28
>>328
ブラウザーがWebサーバより受け取った情報を一時的/永続的に記憶していく方法だな
詳しい事はRFC2109を見ると良い
331デフォルトの名無しさん:2005/10/01(土) 10:23:10
>>289
私はコレ使ってます
ttp://jsmooth.sourceforge.net/
332デフォルトの名無しさん:2005/10/01(土) 11:55:16
>>306
普通のユーザーは拡張子すら気にしませんからー
333デフォルトの名無しさん:2005/10/01(土) 12:17:13
エライ限定的な「普通のユーザ」だな。
334デフォルトの名無しさん:2005/10/01(土) 12:43:39
.NETだとクリックすれば必要なもの全てインストールしてくれるのにね
335デフォルトの名無しさん:2005/10/01(土) 12:50:59
実際Javaで組んだソフトはどうやってリリースするの?
.classファイルを配布するんじゃないんだ・・・
336デフォルトの名無しさん:2005/10/01(土) 13:05:31
拡張子はみえないしね
337デフォルトの名無しさん:2005/10/01(土) 13:39:45
うちはNSISでインストーラー作ってる。起動用ショートカットの登録とか
プライベートJREのインストールとかもやってるから普通のWinアプリとなんら変わらん。
少なくともjar単独配付はVMパラメータの設定とかちゃんと出来ないし実用にはならないね。
JWSは複数環境対応の仕事やったことないしよくわからん。
338デフォルトの名無しさん:2005/10/01(土) 13:43:05
>>335
.class のままで配布するくらいだったら、フツーは jar で固める。
つか、他人がどうやってリリースしてるか参考にしたらよくね?
339デフォルトの名無しさん:2005/10/01(土) 13:50:20
>>337
それが現実的な解だと思う
俺はずっとそうしてきてるが問題が出てない

HDDは確かに食うけどB5ファイルサイズノートでも60GB〜が普通になってきてるし
サイズに関しては文句言われなくなってきた

昔はJREも大分小さかったけどねー
1.4も今見ると5.0に比べてすごく小さいと感じる
340デフォルトの名無しさん:2005/10/01(土) 13:52:50
35才、ダメダメプログラマーです。
今までJSPとサーブレットで開発してきたんだけど、
最近『フレームワーク』『DIコンテナ』『AOP』を使うとかなんとか
上が話しているのを聞きました。
基本的にJAPやサーブレットと全然違うものなんでしょうか。
341デフォルトの名無しさん:2005/10/01(土) 14:01:27
>>340
サーブレットJSPもTomcatとかいろんなサーブレットコンテナの上で動くでしょ?
サーブレットはWEBアプリに特化したフレームワークを提供するコンテナ
つまりすでにフレームワークは触っているということ

DIコンテナはロジック部分のコンテナ
シンプルなEJBだと思っていい

AOPに関しては必要になったとき覚えればいい
コアのロジックに対して使う技術ではないし、なくてもいいmのだと俺は思ってるが

んで、最近EJB3がDIコンテナのようにシンプルなのが追加されてるのが注目されてるところ
DIコンテナは使うライブラリによって操作抱負とかがばらばらでコンテナ依存してしまうのが
問題になyりやすかったけど、EJBということで標準化されればOracleだろうがIBMだろうが
JBossだろうが動く、って話ね
342デフォルトの名無しさん:2005/10/01(土) 15:26:44
>>340
「フレームワーク」は「ライブラリ」と逆の概念
フレームワークは貴方のコードを呼び出し、貴方のコードはライブラリを呼び出す。
JavaのAWT/Swingだってフレームワークで、
例えばいつpaint メソッドが呼び出されるかは自分で制御するわけではない。

フレームワークは、当然ながらそのままでは自分が何を呼び出すべきか分からないので、
予め、なんらかの仕様(インタフェース)を実装したオブジェクトへのアクセス方法を
登録しておく必要がある。

この、仕様と実装の分離という機能を抽出したものが、「DIコンテナ」
(フレームワーク→ユーザ実装、という制御の流れに限定しない)。
「DIコンテナ」は、ここ2,3年流行りっぽい(?)。略して「ダイコン」(大根?)と呼ぶらしい

「AOP」は、アスペクト指向プログラミングの略で、
オブジェクト指向とは互いに”横断”的な関係らしい。

オブジェクト指向は、そのオブジェクトに関連付けられた操作を内部に配置するが、
その操作が固有のオブジェクトには強く関連せず、むしろ、
例えば外部のクラスの静的メソッドを作って、みんなでそれを呼び出せばいいじゃないか、
みたいに感じたら、そこが「AOP」という概念が導入されたきっかけだと思う。

が、むしろ使い方・利用の方法が未成熟であるという話も昔聞いた。
利用方法としてログやプーリングくらいしか、パッと思いつかないし。

私も、35才っぽいダメダメプログラマー
最近、やっと Javaのお仕事貰いました。サーバサイドの仕事は回ってこないし
343342:2005/10/01(土) 15:55:39
AOPについての自己レス

呼び出される方でなく、
呼び出す方(場所、方法)を別のところに定義するのがポイント

普通は、
 hogehoge();
と書かなければ、hogehoge は呼び出されないが、
そこを無理やり呼び出す。

扱い方によっては滅茶苦茶になるので、
ロジックに影響を与えないログやプーリングなど以外への
適用方法は思いつかない。

あとのことは識者にお任せ
344デフォルトの名無しさん:2005/10/01(土) 17:28:54
AOPの醍醐味はトランザクションだ!

と自負する
345デフォルトの名無しさん:2005/10/01(土) 17:47:14
DIに関してはJavaでは今後どんどん使われていくと思うよ、デバッグや単純な機能追加にも使えそうな感じ
中間コードを馬鹿にしてきた奴らが驚くような使い方が出来そうw
346デフォルトの名無しさん:2005/10/01(土) 18:09:00
public class Value {

private int count = 0;

public void add() {
int a = count;
a++;
for(int i = 0; i < 1000; i++){
for(int j = 0; j < 1000; j++){
}

}
count = a;
System.out.println("value = " + count);
}
}
347デフォルトの名無しさん:2005/10/01(土) 18:09:30
> DIコンテナはロジック部分のコンテナ
> シンプルなEJBだと思っていい

でたらめもいいところだな
348デフォルトの名無しさん:2005/10/01(土) 18:10:00
public class PrintNunber extends Thread{
private Value obj;

public PrintNunber(Value o) {
obj = o;
}

public void run() {
for(int i = 0; i < 50; i++) {
synchronized(obj){
obj.add();
}
}
}
}
349デフォルトの名無しさん:2005/10/01(土) 18:12:10
こういった場合PrintNumberクラスのフィールドは
スーパークラスであるValue型の変数objということになるんでしょうか?
クラス型の変数というのがいまいち理解できないのでどうか教えてください。
350デフォルトの名無しさん:2005/10/01(土) 18:16:27
> こういった場合PrintNumberクラスのフィールドは
> スーパークラスであるValue型の変数objということになるんでしょうか?
???

> > public class PrintNunber extends Thread{
PrintNumber と Value には継承関係はないみたいだが。
351デフォルトの名無しさん:2005/10/01(土) 18:22:54
ポリシーファイルでCodebaseのURLにjarファイルのパスを与えることはできるのでしょうか?
(一応やってみたら駄目だったのですが、やり方が間違っているかもしれないので一応質問)

教えて下さい。

また、もし駄目だったら、Jarファイル内のクラスにPermissionを適用するにはどうすればよいのでしょう?
(jarファイルの置いてあるディレクトリを指定してみたところ駄目なようでした)
352デフォルトの名無しさん:2005/10/01(土) 18:23:34
>>347
フレームワークも分からない初心者に説明するのに一番わかりやすい説明ではないか?
もしかしていろんな掲示板で暴れるS2の人?
353349:2005/10/01(土) 18:25:26
失礼しました。
そういえばそうですね・・・。
ということはどういうことなんでしょう・・・。
Value型というものがあるのでしょうか?
それともクラスVlueのオブジェクト参照なんでしょうか?
354デフォルトの名無しさん:2005/10/01(土) 20:14:40
>>349
かいつまんで言うと、一文字目が大文字はクラス(型)、小文字になったらインスタンス(変数)
355デフォルトの名無しさん:2005/10/01(土) 21:26:58
Javaの入門書を一通り読んだのですが、本を読みながらでも
プログラムを書ける気がしません。今後どのようなことに
重点を置いて勉強すればよいのでしょうか?
あとクラスライブラリのドキュメントがかなり意味不明です。
ドキュメントのための「辞書」的なものはあるのでしょうか?
356デフォルトの名無しさん:2005/10/01(土) 21:35:19
何も考えずにPHPから始めたほうがいい。
ある時、分かるようになるから。
急いでいるならあきらめれ。
357デフォルトの名無しさん:2005/10/01(土) 21:41:26
>356
PHPとはHypertext Preprocessorのことでよいのでしょうか?
358デフォルトの名無しさん:2005/10/01(土) 21:53:39
ぜんぜんおもしろくない
359デフォルトの名無しさん:2005/10/01(土) 22:28:54
なんか足りない
360デフォルトの名無しさん:2005/10/01(土) 23:52:46
>>355
プログラミングの入門書といわれている物の殆どはプログラム言語の文法(プログラムの書き方)については説明するがソフトウェアを作る方法は説明しない

ソフトウェアのライフサイクルを考えるとプログラミング(コーディング)は全体の内の半分にも満たない作業に過ぎない
プログラミングについて一定以上のスキルを得られたと思ったら次は設計手法について勉強をするべき
361デフォルトの名無しさん:2005/10/02(日) 00:07:55
>360
プログラミングができてない人に
「プログラミングについて一定以上のスキルを得られたと思ったら」って話しても
意味なくね?
362デフォルトの名無しさん:2005/10/02(日) 00:22:37
>>361
プログラムを書けないのが設計を(無意識に)できないのかどうかはこちらからは全く解らない
無駄に余計な知識を入れるくらいなら理想論でも設計技法に走ったほうが良くないか?
363355:2005/10/02(日) 01:12:04
いろいろすみません。
Javaのプログラミングに関してはフィールド、メッソド
やクラスライブラリの利用など基本的なことは理解しましたが、
その先が見えてこないのです。
364デフォルトの名無しさん:2005/10/02(日) 01:57:07
すみません、既出なのかもしれませんが、
色々検索しても分からないので教えてください。
J2SE SDKをサンのhpからダウンロードしたのですが
インストールできません。なぜでしょうか・・・。
365デフォルトの名無しさん:2005/10/02(日) 02:07:12
その文章だけでは理解不能
366デフォルトの名無しさん:2005/10/02(日) 02:07:48
>>364
あんたの環境がわからないけどダウンロードしたファイルが壊れてるんじゃない?
367364:2005/10/02(日) 03:07:46
れすありがとうございます。
ダウンロードしたファイルが壊れてるってことは、
私のダウンロードのやり方がおかしかったってことでしょうか?
また、環境とはなんでしぉうか・・・って、
なさけないしつもんですみません・・・。
デスクトップに表示されているショートカットをダブルクリックしても、
error reading setup initialization file
とでてしまいます。

368デフォルトの名無しさん:2005/10/02(日) 03:51:41
>>367
確実に壊れてると思う
PC内にあるファイルのサイズはダウンロードサイトに書いてある数字と一緒か?
369 :2005/10/02(日) 06:07:17
JEditorPaneじゃなくてdllをつかったIEコンポーネントをウェブブラウザコントロールのライブラリみたいなのが(Swing)で使えるのがあると聞いたことがあるような気がするのですが、もしあるなら名称かそれに関するホームページアドレスを教えていただけないでしょうか。
370 :2005/10/02(日) 06:09:38
すいません、日本語がへたで意味がわかりにくかったです。
IEコンポーネントをJavaプログラムからつかえるようにするライブラリがあると聞いた気がするのです。Swingから。
371デフォルトの名無しさん:2005/10/02(日) 06:25:01
>>369
JDIC の Browser コンポーネントか?
372369:2005/10/02(日) 06:47:46
>>371
それでした。どうもありがとう。
でも今はJDICの公式ページが落ちてる。
373デフォルトの名無しさん:2005/10/02(日) 10:56:49
カーソルを、setCursor()メソッドとかで
自作のアニメーションカーソルに設定できないでしょうか?
374デフォルトの名無しさん:2005/10/02(日) 11:53:52
テキストを読み込んで、各行に対して順番に処理を行っています。

で、各行を処理するときに、JTextAreaに文字列を表示しようと
しているのですが、全行に対しての処理が終わった後にしか
表示されません。以下の内容で、処理中でも表示内容を最新化する
方法をお教えください。よろしくお願いします。


private JTextArea console; //実行結果表示エリア
private UnkoInfo unko;

private void parse() {
(途中略)
  while ((line = br.readLine()) != null) {
    //以下の内容が出力されない
    console.setText("Now Parsing : " + line);
    //以下の処理に数秒〜10秒程度かかる。
    unko = ClassA.parse(line);
    //別エリアに実行結果を表示
    print(unko);
  }
}
375Java初心者:2005/10/02(日) 12:12:47
CSPGenという名前のパッケージにVariable.java、BinaryConstraint.java、Problem.javaを入れました。
一括コンパイルの仕方がわかりません。
親ディレクトリからするのでしょうか?
コマンドをおしえてください。
376デフォルトの名無しさん:2005/10/02(日) 12:14:18
>>375
yes CSPGenにクラスパスを通せばok
377Java初心者:2005/10/02(日) 12:20:56
ありがとうございます。クラスパスの通し方をおしえてください
378デフォルトの名無しさん:2005/10/02(日) 12:29:38
>>374
そのメソッドどこに書いてるの?
イベントディスパッチスレッド以外からさわるときは
ちゃんとinvokeLaterすれ

SwingUtilities.invokeLater(new Runnable(){
public void run() { クラス名.this.console.setText("Now Parsing : " + line);}
});
379374:2005/10/02(日) 12:39:35
>>378
レスありがとうございます。
ビックリするほど、貴殿が仰ることが理解できませんが、
このメソッドはmain関数を書いているファイル中に、
別クラスで書いています。察するに、Actionリスナーで
処理を振り分けるメソッドをイベントディスパッチスレッドと
考えると、それ以外からまた別メソッドを呼ぶ・・・うぁああ

うーん、意味不明。。もう一度、本を読んで、
そのinvokeなんちゃらとかを勉強してみます。
380デフォルトの名無しさん:2005/10/02(日) 12:47:42
やりたいことはどちらかといえばinvokeAndWaitだろ

381デフォルトの名無しさん:2005/10/02(日) 15:59:19
Foo foo = new Foo[5];
ってclass Fooを参照する変数を5個つくるってことですよね?
Fooのオブジェクトを5個作るにはどうするのでしょうか?
この文章で伝わるでしょうか?
下記のコードのようなことをしたいのですが・・・
アホすぎる質問かもしれませんが、よろしくお願いします。

class Foo {
 int a;
 void setA(int a) {
  this.a = a;
 }
}

class Test {
 public static void main(String args[]) {
  Foo foo[] = new Foo[5];
  foo[0].setA(1);
  foo[1].setA(2);
  ...
 }
}
382デフォルトの名無しさん:2005/10/02(日) 16:00:31
>>381
for(int i=0; i<foo.length; i++) {
 foo[i] = new Foo();
}
383381:2005/10/02(日) 16:19:17
>>382
できました。ありがとうございました。素早い回答に感謝します。
384UDP:2005/10/02(日) 16:56:03
下記のプログラムにIPv6のアドレス(例えば::1とか)を突っ込んで実行し、文字を入力すると
エラーが出てしまいます。エラー内容は
「Exception in thread "main" java.net.SocketException: Protocol not allowed
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(Unknown Source)
at Greeting.main(Greeting.java:16)」
です。どなたか助けていただけませんか?お願いします。

[プログラム]
import java.net.*;

public class HelloWorldUDPSender {
public static void main(String[] args) {
try{
byte buf[] = "IPv4からIPv6に移行する".getBytes();
/** データを送信 **/
// データグラムソケットを作成
DatagramSocket socket = new DatagramSocket();
// 送信するデータグラムパケットを作成(アドレスとポート番号を指定)
DatagramPacket packet = new DatagramPacket(buf,
buf.length,
InetAddress.getByName("::1"),
49152);
// データを送信します。
socket.send(packet);
System.out.println("\"" + new String(buf) + "\"を送信しました");
}catch(Exception e){
e.printStackTrace();
}
}
}
385UDP:2005/10/02(日) 17:01:15
>>384
一部訂正です。
下記のプログラムを実行するとエラーが出てしまいます。エラー内容は
「Exception in thread "main" java.net.SocketException: Protocol not allowed
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(Unknown Source)
at Greeting.main(Greeting.java:16)」
です。IPv4のアドレスなら問題なく動くのですが、IPv6にすると
エラーになってしまいます。原因を教えてくれませんか?お願いします。
[プログラム] UDP通信をするプログラム(送信のみ)
import java.net.*;
public class HelloWorldUDPSender {
public static void main(String[] args) {
try{
byte buf[] = "IPv4からIPv6に移行する".getBytes();
/** データを送信 **/
// データグラムソケットを作成
DatagramSocket socket = new DatagramSocket();
// 送信するデータグラムパケットを作成(アドレスとポート番号を指定)
DatagramPacket packet = new DatagramPacket(buf,
buf.length,
InetAddress.getByName("::1"),
49152);
// データを送信します。
socket.send(packet);
System.out.println("\"" + new String(buf) + "\"を送信しました");
}catch(Exception e){
e.printStackTrace();
}
}
}
386デフォルトの名無しさん:2005/10/02(日) 17:01:18
>382
つかぬ事をお聞きします、
それって1.5でもそうしないとダメ?
1.5未開拓なので何の根拠もないんですが、気になって
387デフォルトの名無しさん:2005/10/02(日) 17:05:01
これからJAVAを基礎から学ぼうと思っていて、購入した参考書がJAVA1.4というバージョンに対応してました。
しかし聞いたとこによると、今の最新のバージョンはJAVA1.5らしいのですが、基礎を学ぶという点だけなら、JAVA1.4でも問題ないでしょうか?
ちなみに購入した参考書は「独習JAVA」で、基礎というのはこの本に書かれている内容のレベルを指すとします。
388デフォルトの名無しさん:2005/10/02(日) 17:12:26
> 基礎を学ぶという点だけなら、JAVA1.4でも問題ないでしょうか?
大まかに、問題はない。1.4対応で学習して、1.5(5.0)でどこが変わったかを
差分として勉強する方法もあり。
ただし、Java SE5.0で非推奨になった記述方法やクラスなどがある。
JDK1.5の環境でその本の内容を試すとコンパイル時に警告等出るよ。
389デフォルトの名無しさん:2005/10/02(日) 17:27:10
javaで使える構文解析器ってありますか?
390デフォルトの名無しさん:2005/10/02(日) 17:31:15
>>384
そのマシンにIPv6がネットワークプロトコルとしてインストールされていないと思う。

Windows XPならここを参考に設定をしてください。
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/plan/FAQIPV6.mspx
391390:2005/10/02(日) 17:42:36
そのプログラムは Windows XP + jre1.5.0_02で動作するのは確認できました。
確認した手段は2つ
コンソール上に "IPv4からIPv6に移行する"を送信しました というのが表示される。
netstat -sp udpv6 で Datagrams Sent と No Ports の値が増えている。
392デフォルトの名無しさん:2005/10/02(日) 17:48:37
>>389
javacc とか?
393デフォルトの名無しさん:2005/10/02(日) 18:17:07
今までPerlとVBの仕事ばっかりだったのですが、
Javaの仕事が入ってきたので、Javaを覚える事になりました。
プログラムの根本は一緒だと思って受注したのですが、
上記プログラムと結構違って取っ付きにくいとかありますかねぇ?
さっき本を購入して変数に代入とか見てみた限り、
何とか大丈夫かなぁって甘い考えを持ってしまったんですが・・・。

同じような順番でJavaを覚えた方居たら、アドバイスキボン
394デフォルトの名無しさん:2005/10/02(日) 18:25:08
オブジェクト指向は大丈夫か?
継承やポリモーフィズムでつまづかないようにね。
395393:2005/10/02(日) 18:35:27
>>394
やっぱりそこですよね・・・。
取り合えず、プログラムがどんどん違う場所に飛んでいく感じで開発してれば
オブジェクト指向に近づいてるのかなぁって変な理解してるので、まずはココからですね・・・。
396デフォルトの名無しさん:2005/10/02(日) 18:37:28
>>393
オブジェクト指向な考え方が無い人がいきなりオブジェクト指向+Java言語で開発を同時にやろうとすると結構はまる
とりあえずはJavaは構造型言語だと思って道具としてのJavaとJavaの環境を覚えてしまうのがラク
その後ゆっくりオブジェクト指向を勉強していけば良い

どんな仕事か知らないがgive upして予算無しのまま別会社へ丸投げとならない事を祈る
397デフォルトの名無しさん:2005/10/02(日) 18:39:44
発注元悲惨だね
398393:2005/10/02(日) 18:44:03
何かかなりヤバそうですね(^^;;;
取り合えず>>396さんのやり方で頑張ります。

>>397
気合で完成はさせる・・・つもり・・・・・・なんだけどね。。。
399デフォルトの名無しさん:2005/10/02(日) 18:57:37
Javaってダブルクリックして起動させるようなソフトって作れますか?
一々コマンドラインからjavaコマンド打たせるのってなんか変な気がして
400デフォルトの名無しさん:2005/10/02(日) 19:08:17
>>399
jarファイルにその機能がある
jreをインストールしてないとダメだけど
ちなみに外部のjarを参照する事も可能らしい(個人的には上手く行った事が無い)ので大体の用途に使える
401デフォルトの名無しさん:2005/10/02(日) 19:14:11
javawでbatファイルつくってそのショートカットでええやんけ
402デフォルトの名無しさん:2005/10/02(日) 19:14:41
>>400
なるほど,よく見るjarってそういう役割を持ってたんですね
403デフォルトの名無しさん:2005/10/02(日) 19:55:22
文字列の大きさきっちりのRectangleを取得する方法はありませんか?
404デフォルトの名無しさん:2005/10/02(日) 21:00:20
>>395

> 取り合えず、プログラムがどんどん違う場所に飛んでいく感じで開発してれば
goto 文が使えなくても、
メソッドの終わりで他のメソッドを呼び出すことを繰り返す事により、
根性で?ほぼ同等なスパゲッティーなプログラムを作れることに
驚いた経験がある orz
405デフォルトの名無しさん:2005/10/02(日) 21:24:06
new って、C++と違ってオブジェクトそのものが返されるって感じでいいのか?
406デフォルトの名無しさん:2005/10/02(日) 21:43:25
じゃあC++のnewは何返すの?
407デフォルトの名無しさん:2005/10/02(日) 21:45:24
>>405
オブジェクトへの参照が返る
408デフォルトの名無しさん:2005/10/02(日) 21:48:24
てことは、結局、ポインタが返ってくるのと同じ感覚でOKなのだな
409デフォルトの名無しさん:2005/10/02(日) 21:51:53
>>408
実体はどっかで適当に出来ていていらなくなったら、GCで消えてくれる
410デフォルトの名無しさん:2005/10/02(日) 22:28:24
>>403
GlyphVector などを使えばよろし
LogicalBounds と VisualBounds とあるから、
自分でそれぞれ描画してみて確認するよろしあるね
2D がいやなら、
FontMetrics から ascent, descent, height, stringWidth を計算して自分で作るしかないと思うあるのことよ
しぇしぇ
411デフォルトの名無しさん:2005/10/02(日) 22:33:38
Shift_JISで記述されたWebページのデータをJavaで取得したときに、
チルダ"〜"が化ける問題はどのように解決しればよいのでしょうか?
また、こちらからShift_JISな掲示板などへ”〜”を含んだ文字列をPOSTして
正しく”〜”が表示されるようにしたいのですが、どのようにすればよいのでしょうか?
412デフォルトの名無しさん:2005/10/02(日) 23:06:14
MS932やWindows31JってのがWindows用のマッピング
SHIFT_JISは汎用SJISを返す
413411:2005/10/02(日) 23:40:33
>>412
ありがとうございました!
414UDP:2005/10/03(月) 00:29:10
>>390
助言ありがとうございます。私の環境はwin2k、java1.5です。IPv6のモジュールみたいなのを
インストールしたので、対応していると思ってましたが大分詰めが甘かったようです。
今から確認してみますね。本当にありがとうございます。
415デフォルトの名無しさん:2005/10/03(月) 01:15:47
>>396
> >>393
> オブジェクト指向な考え方が無い人がいきなりオブジェクト指向+Java言語で開発を同時にやろうとすると結構はまる
> とりあえずはJavaは構造型言語だと思って道具としてのJavaとJavaの環境を覚えてしまうのがラク
> その後ゆっくりオブジェクト指向を勉強していけば良い
>
> どんな仕事か知らないがgive upして予算無しのまま別会社へ丸投げとならない事を祈る

まってくれ>>393には時間とコストをかけてでもしっかりとオブジェクト指向を理解して
オブジェクト指向でしっかりとコーディングしてもらいたいぞ。

以前Cしかできない奴がJava + Servlet + Velocityをやり出して
Velocityまで使えるほどになったことは大したもんだと思えたが、
それが実体を見るととんでもない現実がコードとなって現れた。
そいつはすべて一人でコードを書いたが、
それを引き継ぐことになったうちのバイト先回やでは
社員がそれで苦しむ羽目に。漏れも参加したが
もうさすがにウンザリした。そのコードを一人で書いたそこの
会社の人間を恨んだ。社員一人の会社で社長をやっている
名前も顔も知っているがためにそいつに出会ったらぶん殴ってやりたいくらいに
恨んだ。同時に、普段から社員から嫌われている、取締役も兼ねた糞営業を恨んだ。
そのコードを我らエンジニアと相談もせずに金払って買い取って
しまった糞営業に対する恨みがさらに増大した。
416デフォルトの名無しさん:2005/10/03(月) 01:16:23
>>396

取締役糞営業よりも低い立場にいるマネージャも○○さん(糞コードを書いたムカツク香具師)の
せいでめちゃくちゃだと愚痴をこぼした(本当はというと取締役糞営業のせいでもあるが口にはできないようだ)。

オブジェクト指向をしらない、あるいはオブジェクト指向を勘違いしている
とああいうコードになることがよくわかった。よくある、ひたすら継承さえすれば
拡張性と再利用性が上がると勘違いしてオブジェクト指向しているつもりになっている
イタイ奴だった。40代の男が書いたコードで、一つのServletクラスは数万行、
ひとつのServlet内に100近くのメソッド、そしてservice(), doGet()メソッドの行数は
5000行を超えた。もうむかついた。しかも他のメソッド/クラス名の命名方法は
まずXServletというクラスがありそのServletにちょっと機能を追加するかテスト用
クラスをつくるたびにXServlet2, XServlet3という命名を使っていた。
メソッドも同様に、あるメソッド名が doX()だとすると、それにちょっと機能を
加えたメソッドの名前はdoX2(), doX3(), doX4() もうむかついた。ざけんなと。
コードの解析だけで何週間もかかった。本当は1週間以内に完成させるという
納期を取締役糞営業が勝手にきめてしまったのも問題だが、
そういうコードを書いて高い金貰ってる40代の社内一人社員社長がかなりウザかった。
もし漏れがこの会社の社員だったらそいつのクビを締め上げてやりたいくらい。

>>393がその40代オヤヂと同じようなバカをしてそのコードを他人に丸投げなんて
ことをしないことを祈る。というか、そういうバカなことをしてうちのところに糞コードが
投げ込まれたしたらぶっ頃しますよ。 >>393, 覚悟はいいか?
417デフォルトの名無しさん:2005/10/03(月) 02:24:11
>415
むちゃくちゃ気持ちわかるぞ!!!俺はついこないだまで
丸投げられて半狂乱してた

String a1, a2, b1, c1,c2,c3, ......;
<%
if (a1 == c2)
s = null %><table><%
else if (e3 <= e1)
%>



絶句。こんなんばっか、何をしてるのか全く予想できないjsp。
変数!!おめーはエクセルか!!っあーーぶり返してきたうぜえ
Servlet数個に対しjsp数百。さらにはセッションのない世界。
各々が独立して近い事をしてる。絶句。

コメントにあった名前全部覚えてるからな!!
次目にして同じ惨状だったら家つきとめて燃やす!!

>393
コード書くよりも他人の書いた読め。じゃなきゃ覚悟いいな?
418デフォルトの名無しさん:2005/10/03(月) 02:29:17
ウィンドウを自動的に最小化したり元に戻したりする方法があればご教授ください。
Robot以外の方法でお願いします。
419デフォルトの名無しさん:2005/10/03(月) 02:34:42
>>416
オブジェクト指向以前にcのコードとしてもおわっとるぞ。
420デフォルトの名無しさん:2005/10/03(月) 02:35:27
愚痴はマ板で
421デフォルトの名無しさん:2005/10/03(月) 02:51:40
概してそういう輩ほど、なぜか人に取り入る能力に長け、人から尊敬されている。
そして、まともなプログラマーを無条件に目の敵にするんだな。
やってられん
422デフォルトの名無しさん:2005/10/03(月) 03:59:51
客観的に見れば
動くプログラムは作った「以前Cしかできない奴」=できる人
すでに動くプログラムの引継ぎに手間取ってる>>415=駄目な人
423デフォルトの名無しさん:2005/10/03(月) 04:12:13
じゃ辞めろよw
424デフォルトの名無しさん:2005/10/03(月) 04:13:41
>>422
だからそれのどこが客観的なんだ。
どうみても一面しかみていない主観的意見だろう。

動くプログラムを作って動いたはいいが、
それをリニューアルすると動かないっていうのは
明らかにCしかできない奴の問題。で、そんなのが「できる人」
だとみなすのは問題外。

引き継ぎがうまくいっていないのは営業にも問題がある。
しかも時間がないから解析せずに即座に実装しろととせかしている。
この悪循環だ。部屋を整理整頓せずにいきなり作業しろと
おしつける営業がいるのだ。
まったく同じ環境下なら問題ないが、
拡張に手間取るのはあきらかに「Cしかできない」作った奴のほうが駄目な奴だ。
425デフォルトの名無しさん:2005/10/03(月) 04:15:19
>>421
正体がばれるにつれて尊敬されなくなってくるよ。
ことの発端は営業に問題があるとも言えるが。
営業がそんなバカを相手にしなければ引き継ぎ人は
こんなに苦労しなかった、とね。

426デフォルトの名無しさん:2005/10/03(月) 04:19:59
>>424
ならそれを周りにわかるように説明すれば評価は逆転するんじゃない?
できないなら>>422の通りじゃないかな
427デフォルトの名無しさん:2005/10/03(月) 04:33:15
フリーでやってたときは火消しを何回かやったが
-まあ当然ソースなんかぐちゃぐちゃなわけだが-
>>424みたいなアホなこといってたら仕事にならん。
428デフォルトの名無しさん:2005/10/03(月) 06:25:19
まあ、ソフトウェアの技術を磨きたいなら
仕事にせず、趣味でやれってことだな
429デフォルトの名無しさん:2005/10/03(月) 06:40:31
>コードの解析だけで何週間
もかかるようなやつは趣味でやっても駄目だろ。
430デフォルトの名無しさん:2005/10/03(月) 06:47:37
んー趣味でやってたらデータベースなんて使う機会なんてないな。
クラスタ構成や分散コンピューティングや、SAP なんかとかも無縁だし、
せいぜい自宅で鯖立てて正規化も イラネー ようなテーブルで遊ぶのが
関の山かと。

しがらみのないプログラムを作りたければ、余った時間でプロジェクトで
使えるツールでも作るこったな。
431デフォルトの名無しさん:2005/10/03(月) 07:10:49
余るどころか足りないし、
足りないのに次の仕事が来る orz
432デフォルトの名無しさん:2005/10/03(月) 09:46:34
丸投げされて切れてる香具師は、その丸投げ断ればいいだけでは無いの?
>>393の会社のように仕事で覚えるのが一番って会社もかなりあると思う。
会社にとってそれが一番効率的で、教育時間も無駄にならんからね。

確かに丸投げで濡れも痛い目見てるから、おまいらの気持ちは分かるが、
自分が一番上に立ってみて、>>393の会社のようなやり方が一番効率的だと実感した。
>>393が結果的に上手く出来るか、丸投げで放棄するかは分からんが、
何とか頑張って丸投げにならん事を祈りたいね。

>>393の飛びまくるってのが、gotoで飛びまくってるつもりで書いてるのか分からんが、
違うならとりあえずオブジェクト指向に近い段階にはいると思うぞ。
ガンガレ
433デフォルトの名無しさん:2005/10/03(月) 09:49:50
技術者が飛びまくる(夜逃げしまくる)んだよ
434デフォルトの名無しさん:2005/10/03(月) 10:04:32
// ここまで読んだ
435デフォルトの名無しさん:2005/10/03(月) 11:24:20
>>427
どっちがアホなんだおまいと営業がアホだ。
お前の発言は人を殺すという行為をまるで正当化しているかのような発言だ。
436デフォルトの名無しさん:2005/10/03(月) 11:28:46
>>429
スパゲティコードに加え
使うか使わないコードや重複コードが大量にあると
解析に時間がかかって当然だろうが。
しかもディレクトリやURLも絶対パス文字列に
なっていて環境移行にかなり手間取った。
EcipseのCall Hierarchyを使ったらどこからもアクセスされていないメソッド/クラス
が数百も見つかった。テストコードもJUnitを使わず、実環境に混ぜて書いている。
パッケージ分けも分割統治もできておらずとんでもなくいい加減だ。
こんなコードを書く奴のどこがまともでできる奴なんだと言いたい。
しかもそいつのコード、Eclipseの警告該当項目をすべて有効にしたら
警告数が10万件を超えたんだぞ。
それにCheckstyleプラグインによる警告数を加えたらEclipseがフリーズするくらいだ。


437デフォルトの名無しさん:2005/10/03(月) 11:30:55
>>430
> んー趣味でやってたらデータベースなんて使う機会なんてないな。
あるある。
何もかもデータベースで管理すると非常に楽だ。

趣味でやってたらBREW製品を作って公開することができない、
ハードウェア開発のノウハウを手に入れることができないというのは
非常に残念だが。
438デフォルトの名無しさん:2005/10/03(月) 11:33:20
>>432
> 丸投げされて切れてる香具師は、その丸投げ断ればいいだけでは無いの?

営業が頑固で言うことを聞かないとそれすらもうまくいかないようだ。
無能な営業は何も相談せずに勝手に独断で「できます!」といって
勝手に納期を決めるから皆デスマーチで徹夜で土日も無い。
そして納期が迫って「時間が無いからデバッグするな! JUnitを使うな!」
という悪循環を促すような指示までする始末。もうアホかと。
439デフォルトの名無しさん:2005/10/03(月) 11:37:37
おまいら、続けたいならマ板行ってくれ。
440すみません:2005/10/03(月) 12:21:14
あるところで分割されたファイルを手に入れたんですが、
pdfファイルが22個あります。
動画なんですが、どのソフトを利用して結合すればいいんでしょうか?
441デフォルトの名無しさん:2005/10/03(月) 12:21:56

                  (゚д゚ )
          <⌒/ヽ-、__ノヽノ |
        /<_/____/ < <
         ̄ ̄ ̄ ̄ ̄ ̄ ̄




                      (゚д゚ )
          <⌒ヽ    /ヽ-、__ノヽノ |
        /<___ノ ̄ ̄/____/ < <
442デフォルトの名無しさん:2005/10/03(月) 12:33:07
>>440
Javaに関係あると思った根拠を示してください
443デフォルトの名無しさん:2005/10/03(月) 14:03:22
Javaのinteger型配列の最大数はいくつかわかりますか?

1億個くらい必要なのですが・・・
444デフォルトの名無しさん:2005/10/03(月) 14:04:20
Integer.MAX_VALUE が最大かな
445デフォルトの名無しさん:2005/10/03(月) 14:08:48
int[] act = new int[10000000];

↑これだと要素数が少なくて範囲を超えてしまい駄目だったのですが、
どこにInteger.MAX_VALUEを加えれば良いですか?
446デフォルトの名無しさん:2005/10/03(月) 14:10:46
ちょwwwwwwwおまwwwwwwwwww
2GB×4B = 8G も JVM に割り当てる気かwwwwっうぇwwwwwっうぇwww
447デフォルトの名無しさん:2005/10/03(月) 14:15:17
HDDの空き容量は20Gあるので、何が何でも動かしたいのですが・・・
448デフォルトの名無しさん:2005/10/03(月) 14:16:19
そんなプログラムは動かない
449デフォルトの名無しさん:2005/10/03(月) 14:17:15
設計から見直した方がいいぞ
450デフォルトの名無しさん:2005/10/03(月) 14:18:43
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 10000000

こんなエラーメッセージがでてくるんだけど、
このプログラムもうだめぽ?
451デフォルトの名無しさん:2005/10/03(月) 14:20:33
別に設計から見直さなくても、ディスク使えるなら RandomAccessFile で
seek すりゃ良いじゃん。激糞遅くなるけど。
452デフォルトの名無しさん:2005/10/03(月) 14:21:08
要素数1億で宣言したなら添え字は99999999が最大ジャマイカ
453デフォルトの名無しさん:2005/10/03(月) 14:21:23
デバッグしろよ
454デフォルトの名無しさん:2005/10/03(月) 14:24:06
int[] act = new int[99999999];

↑これだと
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
だったんですけど・・・
455デフォルトの名無しさん:2005/10/03(月) 14:24:08
OS/Javaのバージョン等で変わると思うが-Xmx512mだとnew int[123862071];まで確保できた。
456デフォルトの名無しさん:2005/10/03(月) 14:25:40
話長くなりそうな相手だからダラダラ断片的に答えるのはやめてくれ
457デフォルトの名無しさん:2005/10/03(月) 14:29:44
>>454
じゃあ、ヒープ領域増やせよ
458デフォルトの名無しさん:2005/10/03(月) 14:30:50
>>452を見て>>454なんてやってるようじゃ、答えても意味無いレベルだろ
スルーした方がいいと思うが
459デフォルトの名無しさん:2005/10/03(月) 14:33:08
環境が分からんが、Windowsの場合1プロセスが使えるメモリ空間は最大で2GBまでなので1億個分のメモリーは確保できない
もっと少ないメモリで実行できるように設計を変更すべき
460デフォルトの名無しさん:2005/10/03(月) 14:33:33
RandomAccessFile f = new RandomAccessFile("hoge.swp", "rw");
for(int i=0; i<2000000000; i++){
  f.writeInt(0);
}

// n 番目の int を読み出す
int n = 500;
f.seek(n * 4);
int i500 = f.readInt();

// n 番目に int を書き込む
n = 94858;
f.seek(n * 4);
f.writeInt(100);

遅さが気になるなら 1000 要素ぐらいをページングしてまとめて読み書きせれ。
何を言ってるか分からないなら、遅いのを我慢しろ。
461デフォルトの名無しさん:2005/10/03(月) 14:38:14
>>460
たぶんそれじゃダメ
64bitI/O対応のJava(AIX、Tru64辺り)を使っていないと1億個は使えない
462デフォルトの名無しさん:2005/10/03(月) 14:40:25
1億分も配列作っていったい何がしたいのやら・・・
463デフォルトの名無しさん:2005/10/03(月) 14:42:17
すいません、ヒープ領域の変更方法教えてくれませんか?
-Xmx512mをショートカットのプロパティ"C:\******\eclipse\eclipse.exe"に
加えてみても駄目でした・・・
464デフォルトの名無しさん:2005/10/03(月) 14:42:53
自分で調べろハゲ
465デフォルトの名無しさん:2005/10/03(月) 14:47:49
>>463
それは、Eclipseの実行に使うVMのヒープ領域の指定であって、
アプリケーションの実行に使うVMのヒープ領域の指定ではない。

この程度の質問をしているようだと、先が長すぎで思いやられる。
というか、今のおまいには無理ぽ
466デフォルトの名無しさん:2005/10/03(月) 15:03:02
>>461
Windows で setLength() で 6G のファイル作って 5G+1 バイト目に
書き込み読み込みできたが、そういう意味ではなくて?
つか 1 億要素って 4 バイトかけても signed int の範囲内だが???
467デフォルトの名無しさん:2005/10/03(月) 15:03:12
-Xmx512mをどこで使えばいいかわかりません・・・

誰か教えてください!。
468デフォルトの名無しさん:2005/10/03(月) 15:05:31
[実行]-[実行...] (または [デバッグ...])-[引数]-[VM引数]
469デフォルトの名無しさん:2005/10/03(月) 15:08:09
>>467
Eclipseのメニュー「実行」->「実行」から実行ウィンドウ出して、実行したいプログラムの「引数」タブのVM引数に追加しろハゲ
470デフォルトの名無しさん:2005/10/03(月) 15:12:12
日本語化してないので
「Run」→「Run」で実行ウィンドウ、argumentsタブのVM argumentsのところに
-Xmx512mをいれましたが駄目でした・・・
471デフォルトの名無しさん:2005/10/03(月) 15:25:22
( ´_ゝ`)アッソ
472デフォルトの名無しさん:2005/10/03(月) 15:29:18
>>466
俺数を数え間違えてる?
473デフォルトの名無しさん:2005/10/03(月) 15:35:18
>>443
約21億≒10の31乗 - 1

int型に限らず配列の要素自体がint型なので
どの配列も約21億
474デフォルトの名無しさん:2005/10/03(月) 15:38:18
>>454
何に使うんだ?
とりあえずListでいいんじゃないのか?
475デフォルトの名無しさん:2005/10/03(月) 15:43:15
>>474
100M 個の要素を List なんかにしたら無駄すぎて軽く死ねる
476デフォルトの名無しさん:2005/10/03(月) 16:16:30
>>460によるページング手法もあるが
直列化によるページング手法もありかなと思えたり。
477デフォルトの名無しさん:2005/10/03(月) 16:18:34
100Mがsigned intの範囲内って何夢見てんだ466は
478デフォルトの名無しさん:2005/10/03(月) 16:22:17
>>477
20 年前レス乙
だがすれ違い
つか板違い
479デフォルトの名無しさん:2005/10/03(月) 16:28:10
はいはい、悔しいのはわかったから引っ込んでなさい
480デフォルトの名無しさん:2005/10/03(月) 17:01:41
Hibernateに関連する質問はここでいいの?

マッピングで上手くいかない〜
只今、MappingExceptionを吐いている最中で悶絶中・・・orz
481デフォルトの名無しさん:2005/10/03(月) 17:08:41
ある程度のレベルの質問なら↓で答えてくれる人もいる。
ttp://pc8.2ch.net/test/read.cgi/tech/1090653286/

でももっと具体的じゃないとスルーされるよ。
482カラス:2005/10/03(月) 17:14:46
初めてやります>−<?
483デフォルトの名無しさん:2005/10/03(月) 17:31:14
>>481
Thanks、恩に尽きるぜ!
484デフォルトの名無しさん:2005/10/03(月) 23:16:37
>>479
ちょっとちょっとwww
Integer.MAX_VALUE ≒ 2G になんで 100M×4バイトが収まらないのよ。

ひょっとして 「『C の』 signed int の範囲は ANSI の仕様で 16bit」 って揚げ足取りだったとか?
わざわざ signed 付けたのは 「long すら使わなくても 2G あれば十分」って意味。
勝手に C の話始めてるのはおまえだよw
485デフォルトの名無しさん:2005/10/03(月) 23:34:48
あぁそういう意味か
486デフォルトの名無しさん:2005/10/03(月) 23:42:40
class 中国 {
  Person[] citizen = new Person[13億];
}
487デフォルトの名無しさん:2005/10/03(月) 23:52:10
中国 sinachiku = new 中国();
中国.citizen = null;
System.exit(0);
488デフォルトの名無しさん:2005/10/03(月) 23:52:42
そしてコンパイルエラー
489デフォルトの名無しさん:2005/10/03(月) 23:55:54
俺さ、今までintの限界って0xFFFFだと思ってたんだ。
0xFFFFFFFFだったんだな、unsignedないけど。
490デフォルトの名無しさん:2005/10/03(月) 23:59:51
for(int i=0; i<中国.citizen.length; i++){
  try{
    中国.citizen[i].ビザなし渡航();
    中国.citizen[i].犯罪("金金金キンコ");
  } catch(強制送還Exception ex){
    中国.citizen[i].死刑();
  }
}

491デフォルトの名無しさん:2005/10/04(火) 00:02:05
>>489
Javaはマルチプラットフォームを意識しているかららしい。
Win32とUNIX/Linuxでintのサイズが変わったら問題だということだとさ。
492デフォルトの名無しさん:2005/10/04(火) 00:06:17
>>491
ばか?
493デフォルトの名無しさん:2005/10/04(火) 00:08:48
byteをF shortをFF intをFFFFと思ってたってこと
16進形式で書かれてるのって4桁のがほとんどだから変な勘違いしてた
494デフォルトの名無しさん:2005/10/04(火) 00:10:14
>>493
ばか?
495デフォルトの名無しさん:2005/10/04(火) 00:22:01
>>494
むしろ天才だから、これくらいのうっかりが無いとバランスがとれないす
496デフォルトの名無しさん:2005/10/04(火) 00:25:14
うるせえ、俺が一桁計算間違えたからって50もレス使うな
497デフォルトの名無しさん:2005/10/04(火) 00:29:04
弱いハッシュマップの用途って何?
拡張したpublicフィールドみたいな感じで使えばいいの?
498デフォルトの名無しさん:2005/10/04(火) 00:30:58

                        ,、 '";ィ'
________              /::::::/l:l
─- 、::::;;;;;;;;;`゙゙''‐ 、    __,,,,......,,,,_/:::::::::/: !|
  . : : : : : : `゙'ヽ、:::゙ヾ´ゴールデンレトリバー'、. l|
、、 . : : : : : : : : r'":::::::::::::::::::::::::,r':ぃ::::ヽ::::::::ヽ!
.ヽ:゙ヽ; : : : : : :ノ::::::::::::::::::::-=・=-、゙:::   -=・=-:'、
. \::゙、: : : :./::::::::::::::;、-''"::::::::::   ,...,:::,::., :::':、
   ヽ:ヽ、 /:::::::::::::::::::::::::     _  `゙''‐''"  __,,',,,,___
     `ヽ、:::::::::;;;、、--‐‐'''''',,iニ-    _|  、-l、,},,   ̄""'''¬-
   _,,,、-‐l'''"´:::::::'  ,、-'" ,.X,_,,、-v'"''゙''yr-ヽ / ゙゙'ヽ、, ゴリゴリゴリ・・・
,、-''"    .l:::::::::::;、-''"  ,.-'  ゙、"|   /←>>天才 ヽ、
       l;、-'゙:   ,/      `| /| |   /. \
     ,、‐゙ ヽ:::::..,.r'゙       (( // | |  /    ヽ.
   ,、‐'゙     ン;"::::::.        U  .U  /
  '     //:::::::::            {.
        / ./:::::::::::::            ',
.    /  /:::::::::::::::::.            ',.
499デフォルトの名無しさん:2005/10/04(火) 01:52:04
それ猫にしかみえないんだけど
500デフォルトの名無しさん:2005/10/04(火) 03:27:55
>>497
拡張したpublicフィールドってのが何を言いたいのかさっぱりわからないが
よくある用途はキャッシュ。
501デフォルトの名無しさん:2005/10/04(火) 09:38:54
つーかGCで消えていいmapなんてキャッシュ以外にあんまり用途が見つからない
502デフォルトの名無しさん:2005/10/04(火) 10:09:50
Log4jを使っています。
RollingFileAppenderでは、生成されるログファイルの世代管理ができますが、
DailyRollingFileApenderでも、世代管理ができるんでしょうか?
日が変わる毎にログファイルが切り替わりますが、
これを何日分までは保持して、それ以上は自動削除されるといったように。
503デフォルトの名無しさん:2005/10/04(火) 10:28:29
できません。自作してください。
504デフォルトの名無しさん:2005/10/04(火) 10:59:39
JButtonを押したときに見えるボタンのテキストの枠線を
見えないようにするにはどのようにすればいいのでしょうか?
505デフォルトの名無しさん:2005/10/04(火) 11:02:55
同等品を自作
506デフォルトの名無しさん:2005/10/04(火) 11:39:44
複数のJTextFieldにおなじキーリスナを登録させたいのですけど、
入力の結果がすべてのJTextFieldに反映されてしまいます。
どうしたらよいでしょうか?

for(int i=0;i<textfield.length;ie++){
textfield[i].addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e){
int index;
for(index=0; index<textfield.length; index++){
       if (count == 0){
       switch(e.getKeyChar()){
        case 'a':textfield[index].setText("ア"); break;
        case 'i':textfield[index].setText("イ"); break;
        case 'u':textfield[index].setText("ウ"); break;
        case 'e':textfield[index].setText("エ"); break;
        case 'o':textfield[index].setText("オ"); break;
      }
    }
507デフォルトの名無しさん:2005/10/04(火) 11:40:33
Servletで受け取った、1つのリクエスト(ファイルのダウンロード)に対して、
複数のファイルをブラウザに送信してやることってできますか?
ブラウザ上で、ファイルダウンロードのリンクやボタンを1回だけクリックすると、
ファイル保存ダイアログが複数個開くっていうイメージなのですが。
508デフォルトの名無しさん:2005/10/04(火) 11:50:34
できる
509デフォルトの名無しさん:2005/10/04(火) 12:10:42
>>506
swing使ったことないから知らんけど、
フォーカスのあたってるコンポーネントだけ有効にするか
リスナを追加するようにすればいいんじゃない?
510デフォルトの名無しさん:2005/10/04(火) 12:20:08
>>506
とりあえずそのコードを使うんなら、イベントから
イベント送信元コントロールが、現在入力中のコントロールと同じかどうか
判断して関係ないのをはじけばいける。

俺だったらKeyListenerを実装したクラスを作って、コンストラクタでフィールド入れとく。
511デフォルトの名無しさん:2005/10/04(火) 13:53:47
>>507
HTTPは1リクエストに対して1レスポンスなので、
JavaScriptで複数のリクエストを送るようにすればできる。
512デフォルトの名無しさん:2005/10/04(火) 14:32:07
ウェブサービスに関しては、よその人がやってる実績を示して
「こういうふうなのを実現するにはどうすればいいですか?」
と質問してくれると、答えやすいし理解も早いと思うんだが・・・
そういう質問にはなかなか巡り合わないね
513デフォルトの名無しさん:2005/10/04(火) 14:53:52
JDK 1.5 UP5 で CSVをBufferedReaderを使って行単位で読んでいるんだが、
ある特定のファイルだけ途中で最初にもどってしまうんだけど、
sLine(after)="2004/07/12",1350
sLine(after)= "1999/10/29",2570
な感じになってしまいます。どなたか対策をご存じありませんでしょうか?
514デフォルトの名無しさん:2005/10/04(火) 14:56:38
>>508
>>511
d
ググったら、マルチパートレスポンスとかいうキーワードがあったのですが、
JavaScriptとIFRAME併用で考えます。
515デフォルトの名無しさん:2005/10/04(火) 15:21:02
>>512
なぜ「Webサービス」と限定?
516デフォルトの名無しさん:2005/10/04(火) 15:44:01
いきなり保存先聞いてくる奴らパカパカ開いたらうざくないか?
最近はブロックされるんじゃない?
今どうだか知らないけどどこぞの辞書ツールドメインまるごと127.0.0.1行きにしてる
多重が必要なんだろうけど、うざがる奴は居るんだぞと
517デフォルトの名無しさん:2005/10/04(火) 15:45:10
>>513
肝心のコードは?
518デフォルトの名無しさん:2005/10/04(火) 16:07:38
>>513
CSV扱うんだったら、こんなのはどう?

CSV Tools
http://kasparov.skife.org/csv/
CsvJdbc
http://csvjdbc.sourceforge.net/
519デフォルトの名無しさん:2005/10/04(火) 16:30:57
>517
すいませんです。
変なコード入れているのかと思って削りに削った次のコードでも発生しますorz
CSV3000ファイル読んで加工してDBに入れるだけなのに・・・。
String sLine=null;
oReader = new BufferedReader(new FileReader(oFile));
sLine = null;
sLine = oReader.readLine();
while ( (sLine = oReader.readLine()) != null) {
log.trace("sLine(after)="+sLine);
}

>518
トンクスです。数値列に、なんもない部分が空欄だったり----や(なし)がはいっていたりするので
あえなく書いていました。半角数字は統一されているのがせめてもの救い...
520デフォルトの名無しさん:2005/10/04(火) 16:34:54
>>514
使わないみたいだけどマルチパートレスポンスにIE6.0は対応していません
521デフォルトの名無しさん:2005/10/04(火) 18:06:13
質問です。
今までJ2SEを使用してプログラミングの勉強をしていたのですが、
今までは普通にコンパイルと実行は出来ていたのですが、昨日
から突然下記のエラーが出るようになりました。

Exception in thread "main" java.lang.NoSuchMethodError: main

メインメソッドが見つからないのですが何故でしょうか?
私自身は何の設定も弄っていません。
このようなソースですら実行できなくなりました。
コンパイルは通常通りできます。

class Test
{
    public static void main(String[] args)
    {
        int ia;
        ia = 100;

        System.out.print(ia);
    }
}
522513:2005/10/04(火) 18:29:44
自己解決です。元データが変でした。すみませんでした。<m(__)m>。
523デフォルトの名無しさん:2005/10/04(火) 18:52:19
>>515
よーわーらん質問をするのは
大部分が JSP 初心者だから
524デフォルトの名無しさん:2005/10/04(火) 19:03:40
>>523がWebサービスをわかっていない初心者。
525デフォルトの名無しさん:2005/10/04(火) 19:05:41
つーかJSPならWebProg板でやるもんじゃね?
526デフォルトの名無しさん:2005/10/04(火) 19:20:25
jspは徹底してダメだししてください
被害を被るのはもう嫌です。
527デフォルトの名無しさん:2005/10/04(火) 19:30:01
静的コンテンツまでjspつかって無茶苦茶動作遅いサイトとか見ると
アホjavaSIer氏ねと思うな。あとflushか。
528デフォルトの名無しさん:2005/10/04(火) 19:38:44
それは静的に見えて動的なんじゃ・・・
1度目の起動が遅かったとしても次から遅いとかありえん
529デフォルトの名無しさん:2005/10/04(火) 21:32:52
身近でjspを黙々と書いてる奴いたら危険、早めに洗脳した方がいいよ。
いきなりjspに書かないで最初toString()の中で同じ事書いてもらうと
いい具合に仕上がる。皆、これ嘘じゃないぞ、早期発見早期洗脳だぞ!
530デフォルトの名無しさん:2005/10/04(火) 22:13:02
外部から自分のマシンへの接続要求をキャッチしてログを取るアプリを作成しようと考えています。
ポートへのアクセスを監視するのに適したAPIやライブラリなどがあればご教示いただけまんでしょうか。

531デフォルトの名無しさん:2005/10/04(火) 23:18:28
javaで作られた拡張子が.classのファイルって、そこらの普段プログラミングに関わりのないパソコンでも
動きますか?それともなんか動かすためのソフトを入れなきゃならないのでしょうか。
532デフォルトの名無しさん:2005/10/04(火) 23:28:17
>531
JREというJavaの実行環境が必要。
533デフォルトの名無しさん:2005/10/05(水) 00:10:00
ありがとうですm( __ __ )m
534デフォルトの名無しさん:2005/10/05(水) 01:35:37
最近ふと思ったんだが
引数にfinal指定するって習慣がいまいち浸透していないんだが
自分の周りだけ?

極力finalにしたほうが良いよね?
オレまちがってる??(´・ω・`)
535デフォルトの名無しさん:2005/10/05(水) 01:51:17
自分もそれなりに使うけど
Cのconstと違って中身が変わっちゃうから
あまり意味がないのが悲しい。
536デフォルトの名無しさん:2005/10/05(水) 06:42:37
C の const、少し思い出したぞ。
確か const 宣言すると const 宣言されたメソッドしか呼び出せないようになるが、
データやメソッドを他のオブジェクトへ委譲する場合、
実質的に中身を変えられるので、面倒くさいわりに強制力がなかったような。

引数やローカル変数の final 宣言は、
これからインナークラスを作成してこれを使うぞ〜
という雰囲気が感じられるので、それ以外は使ってないなぁ。
537デフォルトの名無しさん:2005/10/05(水) 07:37:53
何言ってんだコイツ
538デフォルトの名無しさん:2005/10/05(水) 09:14:47
>>521
.classファイルが壊れているか、JREを構成しているjarが壊れたかも
539536:2005/10/05(水) 09:18:51
良く見たら C++ じゃなくて C か
脳内変換で C++ に見えた orz
540デフォルトの名無しさん:2005/10/05(水) 09:29:13
質問をよろしくお願いいたします
Eclipseで作成したアプレットがあるのですが
Eclipseで実行した場合やコマンドプロンプトでアプレットビューアーを起動して実行した場合には
正常に動作するのですがブラウザでHTMLファイルを開いた際には正常に実行が行われません
これはなにか原因があるのでしょうか?
541デフォルトの名無しさん:2005/10/05(水) 09:33:23
Java Pluginが正しくインストールされていないから。
542540:2005/10/05(水) 09:39:30
>>541
サンプルのアプレット等は正常に動作するのでインストールは多分されていると思うのですが・・・
詳しく書きますと
画面の表示などは正常に行われているのですが
あるボタンを押して処理を行う際にテキストファイルを読み込んで処理をするようにしているのですが
そこの処理を行うボタンを押しても処理が行われません
テキストファイルは同じディレクトリに置いているのですが何か問題があるのでしょうか?
よろしくお願いいたします
543デフォルトの名無しさん:2005/10/05(水) 09:42:46
サンドボックスとかアプレットのセキュリティ
モデルとかついて勉強してきてください。
544デフォルトの名無しさん:2005/10/05(水) 11:49:33
'('がありません とはどういう意味でしょうか
545デフォルトの名無しさん:2005/10/05(水) 11:53:52
>>544
'('が無いんだろ。
546デフォルトの名無しさん:2005/10/05(水) 11:55:00
>>545
やはりそうでしたか…ありがとうございます
547デフォルトの名無しさん:2005/10/05(水) 12:07:55
>>542
Javaコンソールみろよ。どうせ例外でてるだろ
まさか、printStackTrace()すら入れてないって事は無いだろ
548デフォルトの名無しさん:2005/10/05(水) 13:29:23
基本的な質問ですみません。

javaのクラスにpublicをつけると、ソースファイル名を同名にする制約が出てくるんで
いつも付けないんですが、これってフォーマルな書き方としては間違ってますか?
549デフォルトの名無しさん:2005/10/05(水) 13:36:04
>>548
間違ってる
550デフォルトの名無しさん:2005/10/05(水) 13:38:13
java超初心者で、質問なのですが・・・

下記のソースで
「012,345,678,9」というようなカンマ区切りのcookieを
取得し、workをそのまま戻り値として返したいです。

ですが、getValueをすると「012」(,で区切られた部分まで)
の値しか取得できません。これをそのまま,付きで値を返す場合には
どうしたらよいでしょうか?getvalueではカンマ付きの値の取得は
できないのでしょうか?




Cookie cookies[] = null, cookie = null;
if ((cookies = req.getCookies()) != null)
{
for (int i=0; i<cookies.length; i++)
{
if (cookies[i].getName().equals(name))
{
String work = "";
work += cookies[i].getValue();
return work;
551デフォルトの名無しさん:2005/10/05(水) 13:45:43
>>549
レス有難うございます。もう一点だけ。
今のところpublicつけなくても実質問題無いのですが、
具体的にどういう場面で問題が起きてくるでしょうか?
552デフォルトの名無しさん:2005/10/05(水) 13:57:59
>>551
public宣言がないとパッケージ外からアクセスできない
パッケージ管理してないソースなんてありえん
553デフォルトの名無しさん:2005/10/05(水) 13:58:40
>>551
publicなクラスにするかどうかはファイル名がどうとかで決めるべき事ではなく
クラス設計をした結果、他のクラスから隠す必要があるときにpublicにしない

ようするに
美しい設計にならない→美しくない設計を元に始める→出来上がるコードも美しくないが容易に想像できる
554デフォルトの名無しさん:2005/10/05(水) 15:09:31
java.util.Listについて質問です。

Hashtable ht = new Hashtable();
List list = new ArrayList();
ht.put("TEST", "TEST01_Value");
list.add(ht);
ht.put("TEST", "TEST02_Value");
list.add(ht);
ht.put("TEST", "TEST03_Value");
list.add(ht);
for (int i = 0; i < list.size(); i++) {
System.out.println(""+(Hashtable)list.get(i));
}

この場合、結果が
{TEST=TEST01_Value}
{TEST=TEST02_Value}
{TEST=TEST03_Value}
となるのを期待しているのですが、何故か
{TEST=TEST03_Value}
{TEST=TEST03_Value}
{TEST=TEST03_Value}
となってしまいます。
list.addでオブジェクトを入れた時点での値が入るのではないのでしょうか?
555デフォルトの名無しさん:2005/10/05(水) 15:21:41
ハッシュのキーと値の関係は一対一
同じキーがaddされたら上書きされる

とかJavaの使用を知らずにいってみる
556デフォルトの名無しさん:2005/10/05(水) 15:36:25
>>555
正解

>>554
つーか、そのコードだとhtはずっと同じインスタンスだから、listの0〜2に入ってるのは全部同じもの。
何をやりたいか分からんが、LinkedHashMapでも使うといいんじゃないかな。
557デフォルトの名無しさん:2005/10/05(水) 15:53:55
javaを学生に教える事になったんですが、awtとswingはどちらを教えた方がいいでしょうか?
558デフォルトの名無しさん:2005/10/05(水) 15:58:43
SWT
559デフォルトの名無しさん:2005/10/05(水) 15:59:25
>>558
エエエエエエw
560デフォルトの名無しさん:2005/10/05(水) 16:02:43
kfc
561デフォルトの名無しさん:2005/10/05(水) 16:11:37
public static void main(Strings[] args){
本文;
}


public static void main(Strings[] args)
{
本文;
}

メソッド書くとき、下みたいに「{」を改行して書いてる人って居ます?
562デフォルトの名無しさん:2005/10/05(水) 16:31:47
Javaのソースから.exeファイルを作るのって無理ですか?釣りじゃないです。
563デフォルトの名無しさん:2005/10/05(水) 16:32:25
聞いてる時点で釣り確定。
564デフォルトの名無しさん:2005/10/05(水) 16:40:44
>>581 いる
565デフォルトの名無しさん:2005/10/05(水) 16:38:28
566デフォルトの名無しさん:2005/10/05(水) 16:40:59
567561:2005/10/05(水) 16:44:15
>>564
俺へのレスですよね?サンクス。
「{」を改行する派と改行しない派の割合って、大体どんなもんでしょうね?
568デフォルトの名無しさん:2005/10/05(水) 16:50:09
>>566
二重に書き込んでしまったorz

で、こっちも質問
SwingのJTableでセルごとまたはcolumnごとに編集不可を設定したいのですが、
どうしたらいいですか?
569デフォルトの名無しさん:2005/10/05(水) 17:20:10
>>568
TableModelを勉強する
カラムごとの編集可能不可能

NetBeansではりつけてみて生成されるコード見るといいよ
570562:2005/10/05(水) 17:37:08
>>566
ありがとーーーーーー!
571デフォルトの名無しさん:2005/10/05(水) 19:33:44
JListの項目を右クリックしたとき、JPopupMenuを表示して、
同時に選択した項目のindexを知りたいのですが、どうすれば良いのでしょうか。
572デフォルトの名無しさん:2005/10/05(水) 19:37:02
>>567
そんなのソースフォーマッタで直ぐ変えられるからどっちでも良い
573540:2005/10/05(水) 20:30:55
遅くなりましたがお答えいただきありがとうございます
>>543
サンドボックスってこういうことだったんですね・・
いまいち理解できていませんでした・・・

6万行ぐらいのデータなのでテキストファイルから必要な部分だけ読み込んで処理をしたいのですが
なんとかテキストファイルを読み込めるようにするやり方はありませんでしょうか?
574デフォルトの名無しさん:2005/10/05(水) 21:05:34
COMMONS とかいくつかの JAR を使ってるアプリケーションを一つの JAR で
配布したいときって、一回全部バラして作り直すのかな? 何かもっと良い方法ある?
575デフォルトの名無しさん:2005/10/05(水) 21:31:08
>>574
http://sourceforge.net/projects/one-jar
ってのがあるけど使った事ない、どうなんだろう
576デフォルトの名無しさん:2005/10/05(水) 21:33:20
ここはツール関係もおk?
常駐させておいて、
PC稼動中に起こした行動(打ち込んだ文字や立ち上げたソフト)
を記録するツールってなんだっけ?
どうしても思い打線
577デフォルトの名無しさん:2005/10/05(水) 21:38:26
キーロガー、キーボードコネクタに取り付けるタイプがお勧め。
578576:2005/10/05(水) 21:41:42
キーロガーだ
ここ3日間ずっと検索しながら悶々してたんだよ。
ありがとちゃん!
579デフォルトの名無しさん:2005/10/05(水) 21:48:26
Windows2000 + J2SDK1.4でネットワークアプリを作成しています。

で、所定のファイルダウンロード&アップロードが終わったら、
自動的に終了するアプリなのですが、時々ダウンロード&アップロード中に
処理が止まってしまいます。タイムアウト時間を指定したりしたのですが、
うまくいかないので、アプリを起動して、15分後に強制的に
プログラムをシャットダウンするようにしたいと思っています。

何か良い方法はありませんでしょうか?
580デフォルトの名無しさん:2005/10/05(水) 21:49:15
>>576
スレ違い
もっと他に適切なスレがあるから探せ
581デフォルトの名無しさん:2005/10/05(水) 22:06:13
>>573 そのアプレットのコードベースがどこに設定されていて、
読み込みたいテキストファイルがどこに置かれているかによって
違う。それは573にしかわからないことだから自分で判断すること。
582デフォルトの名無しさん:2005/10/05(水) 23:16:43

Java初心者です。

圧縮済みの classes.jar を非圧縮の classes.jar に変換したいのですが
jar.exe を使って直接内容を操作することはできますか?
jar ui0 classes.jar
の用にやってみましたがうまくいきませんでした。

ご指導の方よろしくおねがいします。
583540:2005/10/06(木) 00:24:05
>>581
ありがとうございます
自分の知識が不足しているのでもうちょっと学習の必要性を強く感じました(;´Д`)
ちょうどappletにおける file acccessについて というトピックを扱っている掲示板を発見しましたので
そのあたりを参考にいろいろ試してみようと思います

みなさん色々ありがとうございます
また質問に来ることもあるかもしれませんがよろしくお願いいたします

584デフォルトの名無しさん:2005/10/06(木) 00:39:36
>>582
jarではファイル形式の変換は出来ない
いったん展開して、再度アーカイブしろ
585デフォルトの名無しさん:2005/10/06(木) 00:42:32
>>584
ありがとうございます!
586571:2005/10/06(木) 01:07:07
お願いします・・・。

一度MouseEventを受け取って、
Component#dispatchEvent を使ってJListをクリックする方法を考えたのですが、
1クリックと完全に等価なMouseEventを作るにはどうすればいいのでしょうか。
587デフォルトの名無しさん:2005/10/06(木) 01:23:54
これってどうよ?

Amazon.co.jp:洋書: Swing Hacks (Hacks)
"Swing Hacks (Hacks)
Joshua Marinacci (著), Chris Adamson (著)"
http://www.amazon.co.jp/exec/obidos/tg/detail/-/english-books/0596009070/cod-info/249-0903896-7505150
588デフォルトの名無しさん:2005/10/06(木) 02:01:45
>>571=586
JList#locationToIndex
589デフォルトの名無しさん:2005/10/06(木) 02:12:42

Swingで透明ウィンドウを作る方法が解説されてるけど
毎回、ウィンドウの下(周辺)をキャプチャしてそれを透明部分に
貼り付けるという方法をとってる。
これって一般的な方法なのかな?

http://www.javainthebox.net/laboratory/GUI/TransFrame/TransFrame.html
590デフォルトの名無しさん:2005/10/06(木) 02:13:23
>>588
あぁ…完全に見落としてました。orz
本当に有り難う御座いました。
591デフォルトの名無しさん:2005/10/06(木) 03:08:18
JavaOne Tokyo公式ブロガーに選ばれた人だけど

濃いね。
似顔絵が、もしかすると男では? と思ったけど
読んでみると女性っぽい。旦那のことをダソナとか書いたり
キボンヌとか用語つかってあるあたり2ch経験ありと見た。
ドメインがnetbeansって、社員か、かなりnetbeansに影響力のある関係者?
NoniWeblog
http://blog.netbeans.jp/roller/page/Noniko


こちらも選ばれた人らしい。
こちらも女性っぽい。ドメインにsun.comが使われているってことは・・・・こちらも影響力がある関係者?
Cat Typing
http://blogs.sun.com/roller/page/yk/Weblog?catname=%2FJavaOne+Tokyo
592デフォルトの名無しさん:2005/10/06(木) 10:29:16
プロパティファイルの
特定の値に書き込みたいんだけど
やりかたがいまいち解らず・・・。
アドバイスおながいしまう・・・orz

>>490
ループ文内にテラワロス
593デフォルトの名無しさん:2005/10/06(木) 10:36:19
>>569
ありがとうございます。やってみます。
遅レスすみません。
594デフォルトの名無しさん:2005/10/06(木) 10:39:51
>>569
ありがとうございます。早速試してみます。
遅レスすみません
595デフォルトの名無しさん:2005/10/06(木) 12:22:54
>>591
のにタソだろ?
NetBeansやEclipseの書籍出してる人で有名かと思っていたが
596デフォルトの名無しさん:2005/10/06(木) 13:27:56
>>595
そんなに有名だったんだ。
ドメインからしてNetbeans信者かと思ったがEclipseの本もだしてるのか
597デフォルトの名無しさん:2005/10/06(木) 13:28:30
>>592
ResourceBundle, Properties
598592:2005/10/06(木) 14:28:41
>>597
参考になりえるコードもしくは
文献の場所キボンヌ。

JDK1.4のドキュメントの
メソッド一覧のドキュメント見ても解らんですorz
599デフォルトの名無しさん:2005/10/06(木) 15:39:03
スタティックにファイナライズしたいんですが、
そんなやり方ありますか?
クラスローダからのアンロードをフックするような。
static {} の逆みたいな事やりたいんですが、、
600デフォルトの名無しさん:2005/10/06(木) 15:46:46
なんでそんなことやりたいんだ?
601デフォルトの名無しさん:2005/10/06(木) 16:08:43
自動でイニシャライズとターミネートをしたいのです。
誰かがあるクラスの参照をした時にJNI呼び出しで初期化を行う。
参照が終わればJNI呼び出して自動的に終了処理。
602デフォルトの名無しさん:2005/10/06(木) 17:07:27
>>596
NetBeansのメールアドレスでEclipse本のサポート窓口してる不思議な人

基本的にNetBeansでずっと来てる人だよ
過去の記事見てればForteとかでてくるっしょ

NetBeans5になれば今度はプラグイン本だしてくれると期待
603デフォルトの名無しさん:2005/10/06(木) 17:31:12
>>601
設計が悪いんじゃまいか
VM の仕様に任せないで、しっかり管理したら?

急場シノギならこんなのも可能だが。君の設計に合うかどうかは分からん。
package jp.co.tcs_cc.ted.swing.misc;

public class Test {
private static int instanceCount = 0;
private static Object HUGEINSTANCE;
public static void main(String[] args) {
System.out.println(HUGEINSTANCE); //当然無い
new Test();
new Test();
new Test();
new Test();
System.out.println(HUGEINSTANCE); //ある
System.gc();
System.out.println(HUGEINSTANCE); //なくなっている
}
private static void init() {
HUGEINSTANCE = "勝手に消えて欲しいなんか";
}
public Test() {
if (instanceCount == 0) init();
instanceCount++;
}
protected void finalize() throws Throwable {
instanceCount--;
if (instanceCount == 0) HUGEINSTANCE = null;
}
}
604デフォルトの名無しさん:2005/10/06(木) 17:31:44
あ、パッケージ名まで載せちまったw
605デフォルトの名無しさん:2005/10/06(木) 18:49:06
パッケージ名まで晒してもらってすみません。
見なかった事にしますから大丈夫です。

問題なのは、クラスへの参照開始と同時に、ネイティブのプログラムを走ら
せておきたい期間があって、ただそれがオブジェクトへの参照期間ではなく、
クラスそのものに対する参照期間だという事なんですね。
要するに、クラスローダにクラスがロードされている期間なのです。
で、初期化と終了処理を実装者には意識させず、自動的にやりたいと。。。。
でもなんだか無理っぽいですね。
これって完全にVMの仕様に依存しますものね。
606デフォルトの名無しさん:2005/10/06(木) 19:13:16
素朴な質問、

class A {
private static a = new A();
private A() { initialize }
protected void finalize() { terminate }
}

この場合、A がアンロードされる直前に、
馬鹿丁寧にも a が GC に処理されて、
terminate が実行される、なんて事はある?
VMの仕様としてはどうなんだろう?
607デフォルトの名無しさん:2005/10/06(木) 19:16:11
>>603
見つけたぞw
合資会社 テディーズ・コンピュータ・サポート
http://www.tcs-cc.co.jp/

だなw
608デフォルトの名無しさん:2005/10/06(木) 19:19:50
>>602
のに子、kyuka, 二人とも顔写真を載せないのはブスっぽいのか
それとも歳を気にしてて老け顔だからなんだろうか。
609デフォルトの名無しさん:2005/10/06(木) 20:04:57
>> テディーズ・コンピュータ・サポート
javaのfinalizeって呼ばれること保障されてないんじゃないの?
610550:2005/10/06(木) 20:45:40
誰か私にも愛の手を差し伸べてくれませんか・・
611デフォルトの名無しさん:2005/10/06(木) 20:47:03
ところで、Eclipsで
propertyファイル使う場合って
何処において実証するのかい?

なかなかpropertyファイルをうまく読んでくれないや・・・
612デフォルトの名無しさん:2005/10/06(木) 21:03:33
613デフォルトの名無しさん:2005/10/06(木) 23:49:33
string[] args ←これって何を意味してるんでしょうか?
614デフォルトの名無しさん:2005/10/07(金) 00:01:49
>>613
コンパイルエラーの原因となるゴミ
615デフォルトの名無しさん:2005/10/07(金) 00:22:08
d
616デフォルトの名無しさん:2005/10/07(金) 03:57:35
>>606
よくわからんが、普通にあるだろ?
そのクラスをロードしたクラスローダが回収されることが条件
(言語仕様 ver.2 以降)
617デフォルトの名無しさん:2005/10/07(金) 03:59:27
>>611
What? 実証? 何処=開発場所? or ディレクトリパス? どっち?

ソースフォルダ? JARライブラリパス?

618デフォルトの名無しさん:2005/10/07(金) 04:00:40
>>613
stringは何?
C++の型?
それとも自作した型?
619616:2005/10/07(金) 04:16:53
> よくわからんが、普通にあるだろ?
と思ったが、クラスのアンロードに伴うインスタンスの回収の finalizer で
そのインスタンス自身を親クラスローダとかでロードされたクラスの
スタティックなフィールドに設定したら、どうなっちゃうんだろ。

というか普通のインスタンスの回収でも、finalizer で
インスタンスの参照を他にさらすような場合は、どうなっちゃうんだろ。

おしえて エロイ人
620デフォルトの名無しさん:2005/10/07(金) 04:50:30
>616
Effective Java に詳しい解説あったと思うよ。持ってて損は無い本
だから買って読んでみたまへ。日本語訳の初版では20ページの所。
621デフォルトの名無しさん:2005/10/07(金) 08:53:45
クラスがStudent(public) インスタンス変数がname
インスタンスメソッドがprintName

クラスがSeminar
ゼミのメンバーを2人作る(名前を入れる・初期化する)
プリントアウトする

というプログラムを書くことになったのですがやり方がまったくわかりません
教えて君ですみませんがよろしくお願いします
622デフォルトの名無しさん:2005/10/07(金) 09:25:00
>>621
宿題スレに池
623デフォルトの名無しさん:2005/10/07(金) 12:44:11
アルゴリズムの質問なのですが、スレ違いではないですか?
スレ違いならスルーしてください。

フィールドに第1キー(int)と第2キー(int)を持つようなクラスの配列を
キー順にソートしたいのですが、よいアルゴリズムが思いつきません。
できれば、
array[].sort();
のように使えれば嬉しいのですが。
624デフォルトの名無しさん:2005/10/07(金) 12:48:31
ここjavaだけどここでいいの?
625デフォルトの名無しさん:2005/10/07(金) 12:57:20
>>623
Comparable インタフェース
626デフォルトの名無しさん:2005/10/07(金) 13:57:09
ComparatorとGenericsも使用したほうがいい
627デフォルトの名無しさん:2005/10/07(金) 13:58:39
>>625
ありがとうございます!
超初心者でインタフェースとかまだよくわからないのですが、勉強します。
希望の光がみえてきました!
628デフォルトの名無しさん:2005/10/07(金) 14:11:01
安定ソートで2回ソートすればいいじゃない
629デフォルトの名無しさん:2005/10/07(金) 18:56:26
StyledDocument の部分文字列の背景属性値を null にしたい場合はどうすればよいでしょう?
つまり white ではなく透明にし、コンポーネントの背景色に従わせたいのです。

例えば、赤にするときには
SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setBackground(set, Color.red);
document.setCharacterAttributes(offset, length, set, false);

とやっています。同じように setCharacterAttributes を使って解決しようと思ったのですが、

StyleConstants.setBackground(set, null);

ここで NullPointerException が発生してしまいます。
どのように AttributeSet を用意してやればいいでしょう?

それとも new Color(0, true) を指定してやるほかないのでしょうか?
630デフォルトの名無しさん:2005/10/07(金) 19:34:23
background属性を消すんだ
631デフォルトの名無しさん:2005/10/07(金) 21:10:26
>>623
これがシンプルなバブルソート

public class BubbleSorter {
public static void sort(int[] array) {
int index;
do {
for( index = array.length - 1 ; index > 0 ; index-- ) {
if( array[index] < array[index-1] ) {
int temp = array[index];
array[index] = array[index-1];
array[index-1] = temp;
break;
}
}
}
while( index > 0 );
}
}
632デフォルトの名無しさん:2005/10/07(金) 21:17:42
>>623
Keyが2つの場合のバブルソート。
631のようにやりたければ、Keyクラス自身がオブジェクト比較用のメソッドを持てば良い。

public class BubbleSorter {
public static class Keys {
public int x, y;
}
public static void sort(Keys[] array) {
int index;
do {
for( index = array.length - 1 ; index > 0 ; index-- ) {
if( array[index].x < array[index-1].x ) {
Keys temp = array[index];
array[index] = array[index-1];
array[index-1] = temp;
break;
}
if( array[index].x == array[index-1].x ) {
if( array[index].y < array[index-1].y) {
Keys temp = array[index];
array[index] = array[index-1];
array[index-1] = temp;
break;
}
}
}
}
while( index > 0 );
}
}
633デフォルトの名無しさん:2005/10/07(金) 22:53:46
                                           _,,--‐;;:::::::::::::;‐‐ 、   
NARU’s RAIL FAN TRIP FAN’s CLUB         /    ノノノ    ` 、
http://kimunaru.tripod.com/                    /::              ヾ
                                 | ̄|   V::::::::   ,,,,,,,,,,,  ,,,,,,,,,, :::::{
                              | ̄| | ̄|   ナ::::::::i` __,,,,,,,___  __,,,,,_ t;;:ヌ
               / ̄ノノノ ̄\       .|  | |  |  イヘ::::::(ヾ~! ◎ !'''i ◎ )=f }f
              (      / \  )      |  | |  |  i {t)テ" ヘ___,イ ヽ_/ 介'
  ノ ノ ) ミ      |;;;;;   ー◎-◎-.)       |  | |  | _,rヘ_,j|!'     /ー--''!     |'
  ‖ \ /|     (6     (_ _) )       |,.ィ―'''' ̄ /| |       /二ク     !
 c| ─◎-◎      |  ∴ ノ 3   ノ       /;;:::'';;::''::;;:/ { ! 、     ヾニン   ノ\  
 (∵) ∀ )     /\ ____ノ       /'''::::;r|''':::;;;|  | ! \       _,,./|::;;'''\
.  \   . ノ    /     ヽ ........;;;. ヽ    /:;;/ |;;;''::;;|   丶\  `__>-ー´   !;;;:'''::iヽ、
634デフォルトの名無しさん:2005/10/07(金) 23:00:42
CからJavaに転向しようと思っているんですが
共通パラメータなどは今までヘッダファイルに書いていたんですが
Javaではパラメータ専用のクラスを作るのが一般的なんでしょうか?
635デフォルトの名無しさん:2005/10/07(金) 23:11:46
>>634
使うクラス特有の固定値とかならクラス内に
public static final <型> <識別子> = <値>;と定義するのがJavaです。
constでないグローバル変数も基本的にクラス内でやるべきです。
シングルトンというクラスに対して唯一のインスタンス(クラスの実体)しか持てない手法も人気です。
636デフォルトの名無しさん:2005/10/07(金) 23:21:04
>>635
なるほど,レス有り難うございますm(__)m
637デフォルトの名無しさん:2005/10/08(土) 00:33:59
同じクラスにさまざまなメソッド定義をした際に
それらをmainメソッドで呼び出す場合、
すべてのメソッドをstaticにした方がよいのか、
クラス変数を切ったほうがいいのか
どちらのほうがよいのでしょうか?
教えてください

638デフォルトの名無しさん:2005/10/08(土) 00:38:46
自クラスをインスタンス化する
639637:2005/10/08(土) 01:04:30
>>638
ありがとうございます。
できれば理由も知りたいです。
640デフォルトの名無しさん:2005/10/08(土) 01:32:48
クラス変数を切るというのがよくわからんが、
オブジェクト指向の利点を生かしたいならオブジェクトを作る方向で考えてみる。
そこまで手間を掛けるような拡張性がないような単発ものなら、static メソッドで実装
641デフォルトの名無しさん:2005/10/08(土) 01:40:52
>>623
スケッチ:

class MyComperator implements Comperator {
 boolean compare(a, b) {
  for(int i=0; i<size; i++) { if(a[i] != b[i]) { return a[i] - b[i]; } }
  return 0;
 }
}

Arrays.sort(targets, new MyComparator());
642641:2005/10/08(土) 01:43:31
boolean じゃないや orz
643616:2005/10/08(土) 02:02:22
> というか普通のインスタンスの回収でも、finalizer で
> インスタンスの参照を他にさらすような場合は、どうなっちゃうんだろ。

言語仕様読んで自分なりに解釈してみた。

オブジェクトの参照状態とファイナライザの実行状態は実は異なる状態群で、
参照が無くなった⇒ファイナライザ⇒回収、という単純な図式にはならない。

ファイナライザに関しては、(1)ファイナライザされない(2)開始可能(3)完了の3つ(不可逆)、
オブジェクトの参照状態には、(A)参照可能、(C)参照不可の2つの状態のほかに、
(B)ファイナライザ開始可能状態のオブジェクトからのみ参照されているという
中途半端な奇妙な状態がある。

ファイナライザ実行中はそのメソッドを所有するオブジェクトが参照できる(!)ため、
ファイナライザが行われるとそのオブジェクトは(A)参照可能な状態になる。

また、そのオブジェクトから到達できる他のオブジェクトも参照できる(!)ため、
これらも(A)参照可能な状態になる。すなわち、
(B)ファイナライザ開始状態のオブジェクトから参照されている場合は、
たとえ、他から参照がなかったりファイナライザさえ完了していても
回収することができない。

(続く)
644616:2005/10/08(土) 02:03:58
(続き)

オブジェクトの回収は、
(3)ファイナライザが完了し(C)他から完全に参照不可な場合に行われる。
正確には、実行するファイナライザがない(オーバライドされていない)場合は
別に上記の手順を踏んでも問題はないだろうが無駄なので
(C)参照不可になった時点で回収される。

ファイナライザでは自らのオブジェクトだけでなく、
自分からしか参照できなかったオブジェクトを晒すことができるが、
ファイナライザの実行状態は不可逆なので、これをやると、
参照のあるオブジェクトが
突然ファイナライザを実行し始めたりする可能性があって、なかなか素敵。
645637:2005/10/08(土) 02:14:59
>>640
すいません。
「クラス変数を宣言する。」です。
ありがとうございまっした。
単発ものなんですけど、全体でのメモリの使用値
などいろいろあって・・・・。
646616:2005/10/08(土) 02:22:15
ちなみに、Effective Java では「ファイナライザは使うな」まで読んだ。
あとは良く覚えてない。

ところで、何処だったか忘れたがこの本に、
Comparable だったか Comperator だったかの実装で
ClassCastException と NullPointerException はそのまま投げてよいとか書いてあったが、
NullPointerException はダメなんじゃないか?と思っていたことを思い出した。

おしえてエロイ人
647デフォルトの名無しさん:2005/10/08(土) 02:50:39
>>645
状態の保持が必要ならば、普通はインスタンスを作るだろう。

パフォーマンスチューニングは、一般的には(理想的には?)作った後で
プロファイリング等を利用することを考える。
素直に作っておけば、VMが勝手に最適化してくれる。
へんなふうに作ったら、VMも最適化しづらいかも?

SUNのVMの実装だと、生存期間の長いものはGCの対象になりにくいので、
作っては捨て、を繰り返した方がかえってメモリにやさしい場合もあるらしい
(JavaWorld 11月号より)。
648645:2005/10/08(土) 02:58:22
すまん。SUN とは書いてなかった。超一部抜粋:

“現在、JavaのGCは主に「世代別コピー式(Generational Copying)」
と呼ばれる方式を取っているのですが...”

「主に」、らしい。
649647:2005/10/08(土) 02:59:33
ついでに、645 は 647 の間違い。もう寝る orz
650デフォルトの名無しさん:2005/10/08(土) 12:45:45
これから、プログラミング言語勉強したいのですが
JAVAとVBどちらが、勉強しやすいですか?
又、将来性はどちらですか、よろしくお願いします
651デフォルトの名無しさん:2005/10/08(土) 12:47:44
答は両方ともVB。
帰れ。
652デフォルトの名無しさん:2005/10/08(土) 12:59:05
すいません、J2SDKの
javaのコンパイルが上手く行かなくなったので、
SDKをアンインストールして、再インストールしたのですが、
上手く行きません。
すでに消したJDKに関する環境変数も残ってます。

完全なアンインストール方法がありましたら、教えていただけないでしょうか。
653デフォルトの名無しさん:2005/10/08(土) 13:00:36
>652
format c:
654デフォルトの名無しさん:2005/10/08(土) 13:02:08
>>653
ありがとうございます!すぐやってみます!!





だまされない・・・だまされないぞ・・・
655デフォルトの名無しさん:2005/10/08(土) 14:06:20
>javaのコンパイルが上手く行かなくなったので
どううまくいかんの?単なるコンパイルエラーだったらおもしろいのだが
656デフォルトの名無しさん:2005/10/08(土) 14:27:21
どーせライブラリにパスが通ってないとかだろ
657 :2005/10/08(土) 14:38:53
ダウンロードしたソースがログ出力をおこなってるみたいなんですが
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
.....
Log log = LogFactory.getLog(...);

loggingのjarファイルをダウンロードしてクラスパスを設定しました。
しかしlog.traceが出力されません。 レベルをTRACEにしなければいけないことはわかりましたが、どこでどういうふうに設定するのですか?
あと出力先をファイルにしたい場合もどういう風に設定するのですか?
658デフォルトの名無しさん:2005/10/08(土) 14:41:48
commons-loggingはフロントエンドなので、設定はバックエンド側で行う。

Log4Jを使うなら、
log4j-1.2.x.jarもclasspathに加えて、log4j.propertiesかlog4j.xmlを書く。
659637:2005/10/08(土) 15:03:52
>>647
親切にどうもありがとうございました。
私は先に寝てました・・・・。
すいません。
660デフォルトの名無しさん:2005/10/08(土) 15:17:30
JTable で横スクロールしても1列目だけは
常に表示するようには出来ないでしょうか?
Delphi での FixedCols のようにしたいんです。
661657:2005/10/08(土) 15:32:17
>>658

log4jをダウンロードしてクラスパスを設定してlog4j.xmlのサンプルをコピーしてレベル設定してるらしい場所をtraceに変えたら出力できました。
どうもありがとうございまた。
もっと詳しい設定は後ほど勉強します。
662デフォルトの名無しさん:2005/10/08(土) 15:46:21
こんにちは。

servletについてなのですが質問させて下さい。
今、携帯専用コンテンツを作成しているのですが、
じゃばservletでAU端末のサブスクライバID(環境変数'HTTP_X_UP_SUBNO')
を取得する方法はありますか?

ご存知の方いらっしゃいましたらご教授下さいませ。
663デフォルトの名無しさん:2005/10/08(土) 17:14:14
>>660
sunのswingチュートリアルにあるよ。
でも確か簡単というわけにいかん。要コーディング。
664デフォルトの名無しさん:2005/10/08(土) 17:20:34
import java.io.*;

public class Tt
{
public BufferedReader setBf(BufferedReader b)
{

b = new BufferedReader(new InputStreamReader(System.in));

return b;

}

public String getSt(BufferedReader b)
{
String str = new String();
try
{
str = b.readLine();

}
catch(IOException e)
{
this.show4();
}
return str;
}
665デフォルトの名無しさん:2005/10/08(土) 17:21:10
public void show1()
{
System.out.println("名前を入力してください");
}

public void show2()
{
System.out.println("何も入力されていません");
}

public void show5(String str)
{
System.out.println(str + "さん" + "よろしくお願いします!!");
}

public void show3()
{
System.out.println("プログラムを終了します");
}

public void show4()
{
System.out.println("キーボードからの入力エラーが発生しました");
}

public int getAns(String str)
{
int s = str.compareTo("end");
return s;
}
666デフォルトの名無しさん:2005/10/08(土) 17:22:28
public int getAns1(String str)
{
int s = str.length();
return s;
}

public static void main(String args[])
{
Tt tt = new Tt();
BufferedReader b = null;
for(;;)
{
tt.show1();
667デフォルトの名無しさん:2005/10/08(土) 17:23:58
if(tt.getAns(tt.getSt(tt.setBf(b))) == 0)
{
break;
}
if(tt.getAns1(tt.getSt(tt.setBf(b))) == 0)
{
tt.show2();
}
else
{
tt.show5(tt.getSt(tt.setBf(b)));
}
}

tt.show3();

なぜにこいつらは動かないいんでしょうか?
}>>664>>665>>666
}
668デフォルトの名無しさん:2005/10/08(土) 17:39:01
>>664>>665>>666

全く読む気が起こらないソースコードだな。
クラス化しなくて良いから、まずはやりたい事を全部
main()の中に記述してみよう。
669デフォルトの名無しさん:2005/10/08(土) 17:41:26
動く事は動く
ただ変なことしすぎ
670デフォルトの名無しさん:2005/10/08(土) 17:46:01
>>667
getStで呼ぶごとに毎回一々コンソールから入力が必要
show5が呼ばれるまでに最初以外何も聞かれず計3回入力させる意味が?
671デフォルトの名無しさん:2005/10/08(土) 17:47:06
>>668
main()のなかですべてを処理するコードは1回
書いていて、さらにその中で使っているメッソドを
メソッドわけするというものなんですが・・・。
>>669
show5()がスルーされてしまうのですが・・・。
672667:2005/10/08(土) 17:49:46
>>670
ということは、grtSt()をStringクラス変数に
代入してやればいいんでしょうか?
673667:2005/10/08(土) 17:53:03
>>672
すいません。
Stringクラス型です。
674デフォルトの名無しさん:2005/10/08(土) 17:53:27
>>664
典型的なjavaプログラムだなあ
675デフォルトの名無しさん:2005/10/08(土) 17:55:21
getStrではメンバ変数のStrを返すようにすればヨロシ
setBfはいらない,Strに値をセットするときに関数内のローカル変数で十分
676デフォルトの名無しさん:2005/10/08(土) 17:57:21
そもそも、

public BufferedReader setBf(BufferedReader b) {
b = new BufferedReader(new InputStreamReader(System.in));
return b;
}

ってなんだよ。引数のbをどうしたい?
677デフォルトの名無しさん:2005/10/08(土) 17:58:40
セットなのに値を返すのって斬新やん
678デフォルトの名無しさん:2005/10/08(土) 17:59:09
>>674
典型的って何が?
もちろん典型的なアホグラマーが書いたコードって事だよな?
679デフォルトの名無しさん:2005/10/08(土) 17:59:46
>>677
セットなんてできんよ。Cじゃないんだから。
680デフォルトの名無しさん:2005/10/08(土) 17:59:56
>>678
一々釣られるなよ
自演と思われるぞ
681デフォルトの名無しさん:2005/10/08(土) 18:01:11
自演ですが、何か?
682デフォルトの名無しさん:2005/10/08(土) 18:01:28
>>679
JavaにはSetterもGetterも無かったのか!!!
683デフォルトの名無しさん:2005/10/08(土) 18:03:32
679は
public BufferedReader setBf(BufferedReader* b) {
*b = new BufferedReader(new InputStreamReader(System.in));
ってことを言ってるんだろ。
684デフォルトの名無しさん:2005/10/08(土) 18:05:20
で、667のコードを書くような奴にPGとしての未来はあるのかい?
おそらく専門学校生なんだろうけど。
685デフォルトの名無しさん:2005/10/08(土) 18:06:24
PGとしての未来というより
PGに未来は無い
686デフォルトの名無しさん:2005/10/08(土) 18:54:30
662なんですけど・・・
どなたか・・・グフッ
687デフォルトの名無しさん:2005/10/08(土) 19:07:31
>>686
その環境変数がリクエストヘッダに含まれてるなら
getHeader()で取ればいいんじゃないですか?
そういう問題じゃなくて?
688デフォルトの名無しさん:2005/10/08(土) 19:14:06
>>686
ググッたら簡単に出てくるがその方法じゃだめなのか?
(「うまくいかないけどなんでなん?」とは書いてあるが、大分「っぽい」方法に見える)
俺は実機もないしやったことないから知らん。
携帯用Javaは専用スレがあるからそっちできくよろし
689デフォルトの名無しさん:2005/10/08(土) 20:21:22
そうですか、、ありがとうございます・・!
690630:2005/10/08(土) 21:03:22
>>663
すいません、sun のチュートリアルって
↓これでしょうか?
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

書いてないみたいなんですが・・orz
691デフォルトの名無しさん:2005/10/08(土) 21:40:47
なぁ、どうでもいいことなんだが、SUNのjapaneseからJDK5を素直にダウンロードできないのは何故なんだ?
「jdk5 download」でググってもトップにくるリンクのアドレスが文字化けしてるし。
eclipseが台頭してきたおかげでnetbeans売り込みの為に前より酷くなってる。
692デフォルトの名無しさん:2005/10/08(土) 23:12:40
>>691
いまやってみたら普通にダウンロードできたが
693デフォルトの名無しさん:2005/10/08(土) 23:14:38
つーか、検索サイトのトップにきてるやつのアドレスがおかしいのを
Sunのせいにするのか
694カラス  731:2005/10/08(土) 23:20:42
寝る<-> 11:20分 
695デフォルトの名無しさん:2005/10/08(土) 23:23:25
JAVAってヘッダファイルみたいなのは、
存在しないんですか?
696デフォルトの名無しさん:2005/10/08(土) 23:24:08
最近eclipseを使い始めたへたれです。
eclipseでHashMapを使おうと思い、

HashMap<Double,Integer> hmap = new HashMap<Double,Integer>();

と書いてコンパイルしたら、

Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。
トークン "<" に構文エラーがあります。正しくは ( です。
構文エラーがあります。")" を挿入して Expression を完了してください。
トークン "<" に構文エラーがあります。正しくは ( です。
トークン "(" に構文エラーがあります。Expression が無効です。

というエラーがでてしまいコンパイルできません。今までjcpadというソフトプログラミング
していたのですが、jcpadでは問題なくコンパイル、実行できました。どなたか詳しい方、
ぜひともご教授願います。
JavaはJ2SDK1.4.2_09、eclipseは3.0.1を使っています。
宜しくお願いします。
697デフォルトの名無しさん:2005/10/08(土) 23:30:14
( ゚д゚)<・・・
698デフォルトの名無しさん:2005/10/08(土) 23:33:18
Genericsって1.5からじゃなかったのか?
699デフォルトの名無しさん:2005/10/08(土) 23:35:48
java の GUI を使って下のようなウィンドウを作りたいんですが
ウィンドウ下のタブボタンをどうやって作るのかわからなくて困ってます
どなたか教えてください。
http://ame.dip.jp/upload/1128/782064.gif
700699:2005/10/08(土) 23:38:05
画像みれないみたいなので
念のためもう一度別のところにうpします・・・すいません
http://www2.go123.jp/user/dmgx/pictures/69.gif
701デフォルトの名無しさん:2005/10/08(土) 23:49:13
君はコンボボックスをタブボタンと呼ぶことにしているのだな?
702デフォルトの名無しさん:2005/10/08(土) 23:52:43
703699:2005/10/09(日) 00:09:28
>>701
>>702
ありがとうございました

>>702
宿題です
たすかりました
704デフォルトの名無しさん:2005/10/09(日) 00:16:01
今後は宿題スレで。
705デフォルトの名無しさん:2005/10/09(日) 00:18:02
>>695
クラスファイル (*.class)、もしくはそれを収めたライブラリ (*.jar) が、
そのままヘッダファイルの代わりになる
ソース中に宣言を書く必要は無いが、コンパイル時には必要になるので、
クラスやライブラリへのパスを指定してやる(ただし標準APIは扱いが異なる)

という説明で納得できる?
706デフォルトの名無しさん:2005/10/09(日) 00:26:34
例外処理は、例外が発生する可能性があるメソッド内でやるのが
よいのでしょうか?それとも呼び出したところでやるのが
よいのでしょうか?
教えてください。
707デフォルトの名無しさん:2005/10/09(日) 00:29:40
場合による
708デフォルトの名無しさん:2005/10/09(日) 00:34:12
>>707
レスありがとうございます。
どんな場合があるのでしょうか?
簡単で良いんで教えてください
すいません。
709デフォルトの名無しさん:2005/10/09(日) 00:44:35
例外管理でググれ
710デフォルトの名無しさん:2005/10/09(日) 00:45:34
とりあえずメソッドの中に書くことにしとき
711デフォルトの名無しさん:2005/10/09(日) 00:49:15
>>709 >>710
ありがとうございます。
やってみます。
712デフォルトの名無しさん:2005/10/09(日) 00:55:52
java標準スタイル
try{ read() }catch(Exception ex){}
713デフォルトの名無しさん:2005/10/09(日) 01:11:52
String クラスって、特別なの?
なんか特別扱いされてない?
714デフォルトの名無しさん:2005/10/09(日) 01:12:21
>>706
俺には言ってる意味がよく解らない。

レスしてる人は日本語読解力が高いですね。
715デフォルトの名無しさん:2005/10/09(日) 01:16:11
日本語読解力じゃなくて、Java知識の問題だと思うけど。
716デフォルトの名無しさん:2005/10/09(日) 01:20:18
ふうん、じゃ、呼び出したところ って何?
717お願いします。:2005/10/09(日) 01:24:48
Eclipseの日本語化パッチのある場所が分りません。
いろいろ探しては、みたのですが見つかりません。
どなたか、直リンをお願いします。

※Eclipseのバージョンです。
Eclipse SDK

Version: 3.1.1
Build id: M20050929-0840
718デフォルトの名無しさん:2005/10/09(日) 01:25:57
>>713
便利に使われてはいるね。
ものとしては単に char の配列だからね。
719デフォルトの名無しさん:2005/10/09(日) 01:28:09
>>717
3.1の日本語化パッチはオフィシャルではまだ出てない。
eclipsewiki.net/eclipse/で有志が日作った日本語化パッチ置いてあるのでそこへ。

つーか、スレ違い。
720デフォルトの名無しさん:2005/10/09(日) 01:28:19
>>717
Eclipse Wiki に行きなさい。つか、君のおかげで、3.1用のが出たのを今知ったよ。ありがとう。
あと、今後は Eclipseスレに行きなさい。
721717:2005/10/09(日) 01:32:08
>>719,720
ありがとうございます。
移動致します。
722デフォルトの名無しさん:2005/10/09(日) 01:34:42
>>714
706の質問は、例外を投げる可能性があるメソッドa()を呼び出すメソッドb()の中で
例外処理をするのか、b()を呼び出すメソッドc()の中で例外処理をするのか、という
質問でしょうね。「呼び出したところ」とは即ちc()の定義中ということです。
723デフォルトの名無しさん:2005/10/09(日) 01:35:38
>>706 の云ってる事はたぶん、

メソッド内でやる=

public void hoge() {
 try {
  //InputStreamか何か使う
 } catch (IOException ex) {
  //ここで何かする
 }
}

呼び出したところでやる=

public void hoge() throws IOException {
 //InputStreamか何か使う
}

public void hage() {
 try {
  hoge();
 } catch (IOException ex) {
  //ここで何かする
 }
}

hoge と hage の関係は hage と hage を呼ぶやつの関係と
ほとんど一緒だということに、>>706 はまだ気付いていない。
どこで処理するかは、作った各メソッドをどこでどう使っていくかの問題。
724デフォルトの名無しさん:2005/10/09(日) 01:38:22
例外処理は例外をキャッチした時にやったらいいよ。

以上。
725デフォルトの名無しさん:2005/10/09(日) 01:42:01
>>722-723
親切な方々ですね。おまえらに幸あれ。
726デフォルトの名無しさん:2005/10/09(日) 01:45:00
中での例外処理は再利用するとき楽だけど、呼び出し側で、きめ細かい処理(例外処理)ができない。
外での例外処理は再利用するときに面倒だけど、呼び出し側できめ細かい処理(例外処理)ができる。
と俺は勝手に解釈したが、どうよ。いい加減な日本語ですまん。
727デフォルトの名無しさん:2005/10/09(日) 01:54:21
誤解されると困るのでこれだけ。
で と る っ ち ゅ う ね ん
場所はeclipseスレにある。
728デフォルトの名無しさん:2005/10/09(日) 01:54:27

import java.io.*;

public class day5les4 {
public static void main(String[] args){
BufferedReader str = new BufferedReader(new InputStreamReader(System.in));

int point = 0;
int co = 0;


//2次元配列、0:問題 1〜3:選択肢 4:答 です。
String strQuiz[][] = new String[5][5];

//1問目
strQuiz[0][0] = "士郎及びアーチャーの本質を答えよ。";
strQuiz[0][1] = "1:戦う者";
strQuiz[0][2] = "2:生み出す者";
strQuiz[0][3] = "3:癒す者";
strQuiz[0][4] = "2";

//2問目
strQuiz[1][0] = "俺が月姫で一番好きなキャラは誰か。";
strQuiz[1][1] = "1:シオンタン";
strQuiz[1][2] = "2:琥珀さん";
strQuiz[1][3] = "3:さっちん";
strQuiz[1][4] = "2";

//3問目
729デフォルトの名無しさん:2005/10/09(日) 01:55:20
strQuiz[2][0] = "誰を愛するべきか。";
strQuiz[2][1] = "1:セイバー";
strQuiz[2][2] = "2:セイパー";
strQuiz[2][3] = "3:セイ八ー";
strQuiz[2][4] = "1";

try{
System.out.println("Fate/Tsukihime Game");
for(co=0;co<=3;co++){
System.out.println(strQuiz[co][0]);
System.out.println(strQuiz[co][1] + strQuiz[co][2] + strQuiz[co][3]);

String strAnswer = str.readLine();

if(Integer.parseInt(strAnswer) == Integer.parseInt(strQuiz[co][4])){
System.out.println("Correct!!!");
point ++;
System.out.println("今"+point+"点です。");
}

else{
System.out.println("Not good....");
System.out.println("今"+point+"点です。");
}
}
730デフォルトの名無しさん:2005/10/09(日) 01:55:53
switch(point){
case 0:
System.out.println("Fateクリアして来い話はそれからだ。");
break;
case 1:
System.out.println("プラスピリオド買って来い話は(ry");
break;
case 2:
System.out.println("セイバーで(ry");
break;
case 3:
System.out.println("おまいは俺かw");
break;

}



}catch(IOException ioe){
System.out.println("Error.");
}finally{
System.out.println("お疲れ様でした。");
}



}


}
731デフォルトの名無しさん:2005/10/09(日) 01:57:58
スマン動揺した。何のことだがワカランね。
Eclipse3.1 正確には 3.1.1 用日本語パックあるぞ。
お詫びに場所
http://download.eclipse.org/eclipse/downloads/drops/L-3.1.1_Language_Packs-200510051300/index.php
スレ汚しスマンカッタ。
732デフォルトの名無しさん:2005/10/09(日) 01:58:30
初心者です。Eclipse3.1.1を使っています。
>>728-730のようにして、最後に得点別にコメントを表示したいのですが
実行結果が

Fate/Tsukihime Game
士郎及びアーチャーの本質を答えよ。
1:戦う者2:生み出す者3:癒す者
1
Not good....
今0点です。
俺が月姫で一番好きなキャラは誰か。
1:シオンタン2:琥珀さん3:さっちん
2
Correct!!!
今1点です。
誰を愛するべきか。
1:セイバー2:セイパー3:セイ八ー
2
Not good....
今1点です。
null
nullnullnull

となってしまいます。最後のnullnullnull...と変なものが出てしまうのは何が悪いのでしょうか。
目障りなのは重々承知しておりますが、よろしくお願いいたします。
733デフォルトの名無しさん:2005/10/09(日) 01:58:54
出たんや
734デフォルトの名無しさん:2005/10/09(日) 01:59:09
例外処理はその例外を処理できるところでやる
としか言えないなあ、ケースバイケース

例 ファイルから読み込もうとしてファイルが存在しなかった場合

デフォルト値を使うなりファイルを作るなりその場で対処できるなら
catchしていろいろ処理を書いたらいい

どないもならんでユーザーに聞くしかあれへん、というなら
素直にthrowsしておく
735デフォルトの名無しさん:2005/10/09(日) 02:07:10
>>732
他には何も表示されんのけ?
nullnullnullの後にError.とか。

「今1点です。」の表示後、何処に処理が移るか考えればええと思うよ。
736732:2005/10/09(日) 02:14:44
特にエラー!とかは言われてないです。

co=3のときのfor内の作業が終わったら、forブロックから抜けて、次のswitchブロックに行くのではないのですか?(+_+;)
737デフォルトの名無しさん:2005/10/09(日) 02:18:50
>>732,736
基本的な事だけど、

前略

for(int i=0; i<=3; i++){
  System.out.println("Count:" + i.toString());
}

後略

これの出力結果はどうなると思う?
738デフォルトの名無しさん:2005/10/09(日) 02:27:09
>>737
今日はもう寝とけ
739デフォルトの名無しさん:2005/10/09(日) 02:29:18
4問目のクイズが入っていないから。
740732:2005/10/09(日) 02:30:10
わ、わからない・・・orz(ちなみにプログラム初めて5日ほどです。)
.toStringっていうのがよくわからんので調べてみました
(文字列バッファ(StringBuffer)を文字列(String)に変換するにはtoStringメソッドを使用します。 [構文] 文字列バッファ.toString(); )
ばっふぁとかよくわからんので勘で答えますと、

Count:1
Count:2
Count:3

・・・ですか?



741デフォルトの名無しさん:2005/10/09(日) 02:42:57
>>740
配列の要素数は3つ、
即ちインデックスは0, 1, 2が有効。
for( int i = 0 ; i <= 3
というコードだと
インデックスが、0, 1, 2, 3
まで実行されちゃうよね?
だから、正しくは
for( int i = 0 ; i < 3
となるんじゃないかな?
742デフォルトの名無しさん:2005/10/09(日) 02:46:13
>>732,740
ごめん、intのtoString()はC#のメソッドだった...
被ってるけど書いてしまったからそのまま投稿。

で、以下のコードを実行すると、

class ForLoopTest{
public static void main(String[] args){
for(int i=0; i<=3; i++){
System.out.println("Count: " + i);
}
}
}

Count: 0
Count: 1
Count: 2
Count: 3

と出力されます。
forループの判定条件「i<=3」は、iが3の時もtrueとなり、ループ内の処理に移ります。
その為、「Count: 3」まで出力されています。

で、問題のプログラムでも、同じく「co<=3」となっており、coが3の場合も、ループ内の処理へ移ります。
しかし、strQuiz[3]にはオブジェクトが設定されていない(strQuiz[3][0], strQuiz[3][1], strQuiz[3][2], strQuiz[3][3]が全てnull)ので、
null
nullnullnull
と出力されます。

>>738
寝るわ...
743デフォルトの名無しさん:2005/10/09(日) 02:51:08
キタワァ*:.。..。.:*・゚(n‘∀‘)η゚・*:.。..。.:* ミ ☆
本当にありがとうございます!感動しました。
これからも精進していきます。本当にありがとうございました!
744デフォルトの名無しさん:2005/10/09(日) 06:51:05
名前付きパイプを作るにはどうしたらいいですか?
745デフォルトの名無しさん
awtのDialogやWindow、SwingのJDialogやJWindowでは、
オーナーを指定するコンストラクタが用意されてますが、
このオーナーを、コンストラクタで指定するのではなく、
インスタンスを作った後で何かのメソッド等で指定することはできないのでしょうか?