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

このエントリーをはてなブックマークに追加
  _、_
( , ノ` )
  \,;  シュボッ
    (),
    |E|
  _、_      Java質問相談スレ パート13だ…
( ,_ノ` )y━・~~~

関連情報は >>2-20 あたりにあります。

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/

JavaScriptの質問はWeb製作板へどうぞ ⇒ http://pc3.2ch.net/hp/
パソコンの基本操作に関しては、PC初心者板で質問しましょう ⇒ http://pc.2ch.net/pcqa/

『コマンドまたはファイル名が違います』>>2
『'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。』>>2
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』>>2

Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html

基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
■■■ 最近多い質問とその答え ■■■
Q. javac コマンドを実行したときに、
 『コマンドまたはファイル名が違います』や
 『'javac' は、内部コマンドまたは外部コマンド、
  操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
 と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
 http://java.sun.com/j2se/1.4.1/ja/install-windows.html
 を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
 環境変数PATHに追加してください。
 その後、
  Windows98/MEの場合はOSを再起動、
  Windows2000/XPの場合はコマンドプロンプトを新たに立ち上げなおしてください。
 設定したパスが正しければ、javacが使えるようになります。
 それでも同じエラーが出る場合は、設定した値が間違っています。よく見直してください。

Q. javac Hello.java でコンパイルはできるのですが、
 java Hello を実行しようとすると
 『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
 と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
 コマンドプロンプトで、
 set CLASSPATH=%CLASSPATH%;.
 と設定する。最後の「;」と「.」を見落とさないように!
 または、
 http://www.gimlay.org/~javafaq/S004.html#S004-02
 を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。

JavaFAQ 基礎知識
http://www.gimlay.org/~javafaq/S004.html
3デフォルトの名無しさん:02/12/01 17:29
>>1
おツー
モツ
ログ書きプロセスを非同期にしたいのですが
(本処理速度に影響しないように)jdk1.3だと
どうやるのが正しいですか?Pipeがあったけど
1.4からですよね。ServerSocketで待つくらい
しか思いつかないのでよろしくおながいします。
>>5
自由に非同期にすれば?
JakartaのLog4Jだと、非同期オプションついてるよ。
Streamレベルでやりたければ、BufferedOutputStream Extendsした
クラスを、1秒ごとにFlushするスレッド起動する。
これで復帰ははやくなる。あと、PrintStream,PrintWriterみたく、Synchronizedする
のを忘れずに。
otsu
>>5
本処理をするスレッドとは別にログ吐き専用スレッドを立ててやるのが定番。
メモリ上のバッファを経由して出力文字列をやり取りする。本処理に影響
しないので、書き込む都度ファイルのオープン/クローズやっても平気
(これやっとくと実行中にログファイルを消せる)。
>>6
ServerSocket使うと、Synchronized無しでも実装できるかな。
そうすると、その方が速い?
■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php

【Sun ONE Studio 4 (Forte 4)】
http://jp.sun.com/products/software/tools/jde/try/index.html

【NetBeans v3】
http://www.netbeans.jp/dowonload.htm

【JBuilder 7 Personal】
http://www.borland.co.jp/jbuilder/jb7/download/
■■■ Javaの基礎と よくある質問 ■■■
Q. Javaのインストール方法、パスや環境変数の設定方法が分かりません。
A: Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html
http://java.sun.com/j2se/1.4.1/ja/install-windows.html

Q: クラスの使い方が分かりません。
A: Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

Q: SDKの仕様や、Javaの使い方、コマンドの使い方を教えて下さい。
A: Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html

Q: Javaの言語仕様が知りたいです。
A: Java言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

Q: 「僕以外の人も、同じ疑問を持ったはず」と思えるような質問があります。
A: Java House ML Topics / Java FAQ / Java Tips
http://java-house.jp/ml/topics/
http://www.gimlay.org/~javafaq/
http://www.javaworld.com/columns/jw-tips-index.shtml

このほかのFAQ(良くある質問とその回答)はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html
■■■ 過去スレの一覧 (2) ■■■
ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/tech/kako/993/993358225.html
ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/tech/kako/1003/10035/1003569074.html
ネタ心者歓迎! 今更ながらにJava相談室 その2
http://pc.2ch.net/tech/kako/1006/10064/1006408230.html
ネタ心者歓迎!今更ながらにJava相談室 その3
http://pc.2ch.net/tech/kako/1007/10078/1007802486.html
ネタ心者歓迎!今更ながらにJava相談室 その4
http://pc.2ch.net/tech/kako/1010/10105/1010545421.html
初心者歓迎! Java相談室 その5
http://pc.2ch.net/tech/kako/1012/10129/1012968994.html
初心者歓迎! Java相談室 その6
http://pc.2ch.net/tech/kako/1015/10154/1015418174.html
初心者歓迎! Java相談室 その7
http://pc.2ch.net/tech/kako/1018/10186/1018631329.html
初心者歓迎! Java相談室 その8
http://pc.2ch.net/tech/kako/1020/10204/1020453823.html
■■■ 過去スレの一覧 (3) ■■■ (一部 HTML 化待ち)
【初心者・ネタ】Java質問・相談スレ【大歓迎】
http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
【初心者】Java質問・相談スレ2【大歓迎】
http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
【初心者】Java質問・相談スレ3【大歓迎】
http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
【初心者】Java質問・相談スレ4【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1026601774/
【初心者】Java質問・相談スレ5【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1028096225/
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/
【初心者】Java質問・相談スレ6【大歓迎】(本当は7)
http://pc3.2ch.net/test/read.cgi/tech/1031397913/
【初心者】Java質問・相談スレF【大歓迎】(重複の7)
http://pc3.2ch.net/test/read.cgi/tech/1032944182/
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/
【初心者】Java質問・相談スレ9【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1034303501/
【初心者】Java質問・相談スレ10【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1035570359/
【初心者】Java質問・相談スレ11【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1036142056/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/
■■■ Java関連スレいろいろ ■■■ (一部 HTML 化待ち)
【統合開発環境】
[Java]JBuilder5[Java]
http://pc3.2ch.net/test/read.cgi/tech/995044723/
JBuilder 7日本語版発売、Personal無償7月中
http://pc3.2ch.net/test/read.cgi/tech/1023102379/
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc3.2ch.net/test/read.cgi/tech/1017214967/
Forte for Java
http://pc3.2ch.net/test/read.cgi/tech/1016161880/
【Java/C/他】統合開発環境Eclipse GM3
http://pc3.2ch.net/test/read.cgi/tech/1033079172/

【サーバサイド】
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html

【携帯】
携帯JAVAのスレッド
http://pc3.2ch.net/test/read.cgi/tech/1011977260/
iアプリ
http://pc3.2ch.net/test/read.cgi/tech/1000723476/
i‐MODEのJAVA
http://piza2.2ch.net/tech/kako/975/975428633.html
iアプリでゲーム
http://game.2ch.net/test/read.cgi/gamedev/1005042631/
■■■ 民間サイト ■■■
巨大なJavaリンク集
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html

※2chではないので暴れないように。
■■■ 撲滅させたいかた、死滅を心配してるかた ■■■

CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html

Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html

●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
●●JAVAって死滅しちゃうの???? PART3●●
http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
19デフォルトの名無しさん:02/12/01 18:27
>>9はなにがしたいんだ?Socketなんか挟んだら、
SendBufとRecvBuf間の転送分だけ無駄にコスト
でそうだが・・・

ログバッファの永続化を行うだけのデーモンス
レッドをプライオリティ最低で起動しといたら
十分かと。
20初心者:02/12/01 18:28
JAVAで

map[][] ={{0,0},{0,0},{0,0}};
で初期化した配列に値を入れる場合、

例えばmap[1][1]=0;のようには代入できますが、
map[][] ={{1,1},{2,2},{3,3}};
のようにまとめて入れることができません。
一度にまとめて値を代入することは可能ですか。
お願いします。

21デフォルトの名無しさん:02/12/01 18:32
map[1]={1,1}とか
map={{1,1},{2,2},{3,3}}とか。

配列オブジェクトインスタンスの差し替えになるけど。
221:02/12/01 18:32
>>10-18
おつかれさまです。
関連情報が >>2-20 に収まらないんじゃないかとヒヤヒヤしたっすよ。
>>9
ServerSocket 使ってログ吐きサーバ立ててやるつもりかもしれんが、どの道
サーバ側で全部同期取ってれば本処理側もソケットの I/O ウェイトを食らうぞ。
どうやってもこういう形に落ち着くと思う (10 スレッド程度なら全部同期
とってもさして変わらないだろうけど)。

・同期取る部分は最小限に ⇒ メモリ上のバッファを使用
・ディスクの I/O ウェイトは本処理に影響ないように ⇒ ログ出力専用スレッド
24なんとでも:02/12/01 18:34
>>20
int[][] map;
map = new int[][]{{0,0},{0,0},{0,0}};
map = new int[][]{{0,0},{1,1},{2,2}};
...
2521:02/12/01 18:41
>>24
あそか。しもた。
初期化時以外はアレイインスタンス生成せにゃナランね。

map[0]= new int[]{1,1};

もオケということでお許しを。
実験したら、>>20
map[][] ={{1,1},{2,2},{3,3}};
ができちゃったのだが、どうしよう。
Javaの引数はコピーが渡されているみたいですが、
実体を渡すにはどうするのでしょうか?
(C言語で言うポインタを渡す)

void setString(String msg) {
msg = "Hello";
}

これだとmsgを渡した側では書き換わってくれません。
よろしくお願いします
281:02/12/01 19:01
>>27
素直に return で String 返せば良くないか?
>>27
ポインタみたいにしたいなら
void setString(String[] msg) {
 msg[0] = "Hello";
}
とか やる方法もあるけど…
>>28 のが良さげ。
Windows XPでJavaが「1年半」復活へ

マイクロソフトは6月18日、180度方向転換して、
Windows XPでのJavaネイティブサポートを復活させることを明らかにした。

同社は、夏末頃にリリース予定のWindows XPのService Pack 1(SP1)に、
独自のJavaソフトを含める予定だとしている。

しかし同社は、長期的にはWindowsからJavaを一切削除する計画だ。

http://www.zdnet.co.jp/enterprise/0206/19/02061906.html

今から勉強しても使えるようになった頃にはなくなってしまうのでしょうか?
>>30
1.1.4ベースなら、「復活」はむしろ悪いニュースのように聞こえる。
>>30
M$ は IE4.0 の頃にも同じ事を言ったことがあったよ。別に使えなくなる
わけじゃないし、IE なら Flash や Acrobat みたいなプラグイン扱いに
なるだけ。
>>31
1.1 ベースで作れるなら MS JVM の方がはるかに速い (特に GUI 周り)。
Java Web Startがデフォで入って欲しい、というのは贅沢かな。
正直、今更1.xベースだと非常に迷惑。
javaは、もうだめぽ・・?
この先、携帯で生き残るぐらいしかないのかな・・。
3735:02/12/01 19:56
1.1ベースの間違い。
何が迷惑なのですか?
3927 ◆x.foYHo1R2 :02/12/01 20:10
>>28 >>29
戻り値はbooleanとかにしたい場合なのですが。

boolean setString(String msg) {

if(XXXXX){
msg = "aaa";
return true;
}

return false;
}

こうゆう場合にmsgの中身を書き換えたいのですが。
Javaじゃ無理なんでしょうか?
>>39 こんなんどう?
boolean isClazz(Clazz c){ // Clazzは、msgを持っているクラス
 if (XXXXX){
  c.meg = "aaa";
  return true;
 }
 return false;
}
> 今から勉強しても使えるようになった頃にはなくなってしまうのでしょうか?

SUN や多くのベンダが注力し続けたから今の Java がある。
MS が独自の Java を作るのを止めただけで、Java が無くなることはありません。
>>30
半年も前のネタを持ち出して釣りかよ。
それに、普通はいまさら、MSのJavaなんか見向きもしない。
なぜなら、AppletとしてのJavaは終わっているから、
1.1系の存在意義は既にない。

.NET対応のアセンブリを生成するJavaコンパイラとかだったら
ちょっと脅威だが、CLIからJava2のライブラリは使えないだろうから
当面はほっておいてもいいしね。
M$にとっては、サンのJVM乗せるぐらいなら、旧い独自JVM乗せる方が有利なんでしょうな。
「長期的」ってのは、訴訟が終わるまでだな。
4439:02/12/01 20:32
>>40
ご教授ありがとうございます。
やはりそのやり方しかないのでしょうか・・・・(゚д゚)



45前スレ974:02/12/01 20:34
関連リンク追加してくれた人に感謝。出かけてました
4630:02/12/01 20:45
無くならないんですね?

>>42
釣りではありません。これから仕事でjavaをやるそうなので
プロジェクト終わったあとに使用価値がなくなったらいやだな〜と不安になったものでして・・。
あんがとさんでした。
1.1系のJavaはまだ現役ですよ。
勘違い厨房は先走りしすぎ。
Windows だけでシコシコ Java やってる奴は死滅するかも知れない。
商用 Unix で RDBMS 絡めて Java やってる奴はしばらく生き残りそう。
ただコーダーレベルの人間はもう飽和状態なのよね。設計まで出来る奴は
かなり少ないけど。
>>44
Javaには、暗黙のポインタに対してアクセスする手段はないけど、
>>40のように、明示的なポインタを作ることはできる。
つまり、それをふまえたクラス設計が必要になると思う。
かったるいだろうが、たとえば以下のように

boolean isValid(String msg) {
if(XXXXX){
return true;
}
return false;
}
String convertString(String msg) {
return "aaa";
}

とかで、
if (isValid(msg)) convertString(msg);

するのがJavaでは一般的。
いまちょっと調べてみた。jview.exe ってコマンドが Sun の java.exe
みたいにコマンドラインで動くわけね。昔作った 1.1 の GUI アプリ動かして
みたらたしかに jview の方が軽いですわ。
51 :02/12/01 20:59
>map={{1,1},{2,2},{3,3}}とか。

コンパイル時に「文ではありません。」というエラーが
出てしまいます。
>>47
では聞くけど、Applet以外でどこで使われているの?
しかも、MS Javaがらみで、、、。
うちでは、サーバサイドの開発案件がほとんどなんで、管理用の
アプリもほとんどJava2だけど、世の中広いからなぁ。
5344:02/12/01 21:17
>>49

>Javaには、暗黙のポインタに対してアクセスする手段はないけど、

アクセスできないのですね。
勉強になりました。
ありがとうございました。
54初心者:02/12/01 21:30
>map={{1,1},{2,2},{3,3}}とか。

コンパイル時に「文ではありません。」というエラーが
出てしまいます。

いろいろ調べた結果、JAVAの文法が糞すぎて
直感的に分かりずらいことが分かりました。
やはりJAVAはやめてC++に戻ります。

本当にJAVAとかLINUXとかって糞ですね。
だからぜんぜんはやらないんですね。
>>54
試してみたんだが、そのエラーは出ない。
前後のコードを見せてくれる?
わかった。
○通る
int[][] map = {{1,1},{2,2},{3,3}};

×通らない
int[][] map;
map = {{1,1},{2,2},{3,3}};
1.1系がMS Javaだけだと思ってる馬鹿がいるスレはここですか?
初心者には有害だな。
初心者のFAQに答えなくてはいけなくなる我々にも有害だな。
>>54が何故Linuxを否定するのかわからん
すっぱいリンゴだろ。
また〜り いきましょ。
>>57
>1.1系がMS Javaだけだと思ってる馬鹿がいるスレはここですか?

どこからそんな話が出たんですか?
自分の頭が悪いことを認められず、使っている道具に責任転嫁している馬鹿がいるスレはここですか?
int[][] map;
map = new int[][]{{11, 12}, {21, 22}, {31, 32}};
>>59
たんなるこのスレへの煽りかとおもったが、
Javaとは関係のないLinuxを持ち出したということは、
過去にLinuxでも挫折したことがあるおかたなのでしょう。

FreeBSDなどではちょっと前まで1.1.8がよく使われていました。
いまは1.3もあるし先日1.4のパッチも開発されましたが。
BSDにしても色々あるし、
世の中にOSもまたいろいろあるので、
1.1系のJavaも私が知らないところで色々使われているのでしょう。
>>54

そうだね。君みたいな人にはういんどうずでVC++がぴったりだね。

僕は頭が弱いんでLinuxでJavaやってますが。
>>54

そうだね。君みたいな人にはういんどうずでVBAがぴったりだね。

僕は頭が弱いんでLinuxでJavaやってますが。
> LinuxでJavaやってますが。

そりゃ頭弱すぎ。もう少し賢くなろうぜ。
69this != 66:02/12/01 22:21
>>68
いやけっこうLinuxのJava快適。
うちのパソコンはWindowsとのデュアルブートだけど、
スレッドのあつかいの関係なのかWindowsより高速に感じる。

高速に感じるのは俺の気の牲かもしれないが、
少なくともWindowsと遜色なく動作するのだけは確か。
>>69
わかってねえなあ。帰っていいよ。
>>44
いまさら手続き指向ですか?W
class Clazz {
String state;
private boolean execute() {
}
public String getState() {
return state;
}
}
7244:02/12/01 22:45
>>71
いまいちJavaが理解できないので、すいません。
735:02/12/01 23:03
>>8
>>23
どもです、非同期ログうまくいきますた。
ログ管理クラス(実行時にログファイルを
追加/削除)で内部クラス(スレッド)を走ら
せてキューを読むようにしてみますた。
745:02/12/01 23:21
>>6
log4jとはちょっと用途が違ったんですが
debugとかのフラグの判断がif(debug)より
速いっていうとこだけ真似したいんで

(妄想)
初回だけフラグ判断して関数ポインタに
突っ込む、
if(debug)
this.func = debug_func;
else
this.func = normal_func;
みたいなことってjavaでできますか?
>>74
オブジェクト指向の基礎とポリモーフィズム勉強しなさい。
関数ポインタはJavaにはありません。
anonymous class等で小汚いwrapperを作ってください。
C#(.NET)ならdelegateでスマートに書けるのにね。
>>73
ちなみにそのキューはどうやって実装した?
非同期にして余計に遅くなってなきゃいいが。。。
>>76
解ってない人は黙ってなさい
79デフォルトの名無しさん:02/12/01 23:38
http://mentholm.hp.infoseek.co.jp/cgi-bin/max150/img-box/xxx
このURLは自動的にisweb内の404ページへ飛ぶんですが、
URLクラスを使って、HTTPのステータスコード302を取得するにはどうやれば
良いのでしょうか?

HttpURLConnectionオブジェクトのsetFollowRedirectsメソッドをfalseに設定しても、
ステータスコードは200を返してしまいます。
Socketクラスを使えば302を取得出来るんですが…
>>76
78は、やさしくああ言ってくれてるが、不愉快だから、マジレスする。
なぜ、.NET Framework 1.1でAnonymous Methodなんていうもんを導入する必要が
あるか、考えて見ろ。関連ある処理をいちいちクソ離れた場所に記述しなければ
使えない、delegateこそクソ丸出し。
>>80
初心者向けスレで馬鹿丸出しのflameごっこはやらんでくれ。
あとお前は知識無さ過ぎ。
8273:02/12/01 23:56
>>77
キューはArrayList型で入れる部分は同期で
addで、デキュー+出力をスレッドからという
感じにしますた。
>>82
LinkedListにした方がいい。どうせシーケンシャルアクセスのみだし。

とは言え、BufferedOutputStreamのみで非同期I/Oを実装した場合と
性能差を比べた方がいい(10万回くらいループして性能を取る)。
8474:02/12/02 00:16
>>75
> ポリモーフィズム
ifで分岐するより速いものでしょうか?振る舞いを
変えるというより、ある文字列を出力するかしないか
程度の違いの関数を呼び分けたいというのが目的の場合
>>73
キューというかバッファは StringBuffer 使わないで独自に実装しろよ。
StringBuffer は一時的に内部バッファが大きくなってもあとで縮小するようには
出来てない ⇒ メモリ無駄に食うから。
8685:02/12/02 00:20
あ、ArrayList でやってるのか、失礼。
87デフォルトの名無しさん:02/12/02 00:21
int型で√演算が肢体です。
えーお約束ですが、

「教えてください」
88デフォルトの名無しさん:02/12/02 00:23
sqrt()があった。ゴメソ
int value = 100;
double result = Math.sqrt(value);
90名無しさん@Emacs:02/12/02 00:29
interface Logger{
public void log(String message);
}
class NoLogger implements Logger{
public void log(String message){}//何もしない
}
class SimpleLogger implements Logger{
public void log (String message){
System.out.println(message);//stdoutへ出力
}
}
として、
Logger logger;
if (debug){
this.logger = new SimpleLogger();
} else {
this.logger = new NoLogger();
}
とする。
9190@Emacs:02/12/02 00:30
>>90は、>>84に対するレス
92こんばんわ:02/12/02 00:31
218.43.192.205
       >>92

  ∧_∧ ッパシャ ッパシャ
  (   )】
  /  /┘
 ノ ̄ゝ
9484:02/12/02 00:35
ようやく理解できますた。
delegate は良くない。
スマートじゃない。
goto文の悲劇を思い出す。
9682:02/12/02 00:40
>>83
BufferedOutputStreamから読み出すのが
分かりません。PipedOutputStreamなら
漏れでもファイルとか介さないで読めそう
ですが..
>>95
なるほろ。そういう意見があったか。
確かに汚いソースになる元凶を作りそう。
9890@Emacs:02/12/02 00:57
>>96

BufferedOutputStreamにそのまま書けばいい。
flushしなきゃI/Oしないから非同期になる。
(>>6を見てるよね?)
flushはバッファのサイズを超えて書き込もうとした
ときに勝手にflushされる。
9996:02/12/02 01:31
>>98
なるほどキュー員具のじゃなくて
出力のとこですね。
10090@Emacs:02/12/02 01:43
>>99
キューイングせずに、直にwriteメソッドを実行する場合と、君の作った
非同期と性能を比べてみろって言ってるんだが。
さらに言えば、log4jとも比べるべき(これが一番おすすめ)。

結論から言うと、君みたいな素人が作った物より、既存の物の方がずっと
優れてるから、早く気付けと言いたいだけ。
君はポリモーフィズムも知らない*超ド*素人だろ。LinkedListじゃなくて
ArrayList使ってるあたりからもデキューは絶亡的な性能だろうし、仕様
変更にも弱いだろう。
第一I/Oのバッファリングなんて、IO系クラスでも、JavaVMでも、OS(Unix系)
でもするんだから、さらに君の作ったクラスでキューイングするのは無駄で
しょ。
>>100
FileInputStream/FileOutputStream/RandomAccessFile
って int read() だけで読み込むとメチャクチャ重いけど
アレってバッファリングしてんすか?
>>101
してないっすね。バイト単位のreadごとにI/O発生してる。
10399:02/12/02 02:30
>>100
log4jが使えなかった理由は、やりたいことが
もう少し複雑だったんですね。
メッセージを実行時に指定された複数のラベルで
フィルタリングしてそれぞれの出力先をファイルや
画面に振り分けするやつです。

んでLinkedListを使わなかった理由というのは
ですね、APIリファレンスを読み違えてなければ
indexでゲットするような場合はArrayListを
使え、と書いてあったんですね、今回はキュー
だから0から読んでいくのでArrayListの方かなと。
LinkedListはIterator使ってなぞってくような
時に使うもんだと思ってましたが、今回はIterator
作成後にがんがんListの内容が変わってしまうんで
まずいと重いますた。
104103:02/12/02 02:32
Iterator
s/作成後/取得後
10599:02/12/02 02:36
>>100
>I/Oのバッファリングなんて
はもともと気にしてなかったす。振り分け処理が
重いんで、本処理がそれを待ちたくなかっただけ。
10699:02/12/02 04:29
行: 100, 1000, 10000 ループ
列: new, add, get(0)&remove(0), itr.next()&itr.remove()

LinkedList:329282
434326
3925424

ArrayList:127262
1333515
070409384

indexでアクセスする場合でもリストのサイズが1000超えると
LinkedListのが全然速いという結果。Iteratorでなぞるか
うんぬんは関係なかったらしいんでスマソ.

今回のキューはあくまで非同期処理時の遅延バッファなんで
100も溜まるようだとヤバイのですが、損はなさげなので
LinkedListにしときますた。
107スマソ:02/12/02 04:31
LinkedList:
3 29 28 2
4 34 32 6
3 92 54 24

ArrayList:
1 27 26 2
1 33 35 15
0 70 409 384
108コレクションの基本講座:02/12/02 04:51
LinkedList:内部的に次/前のエントリオブジェクトのポインタを持つオブジェクト
を次々とリンクして作るリスト。LinkedListクラス自体はそのリストの先頭へのポイ
ンタを持っていて、先頭オブジェクトの前エントリには、リスト最後尾のオブジェク
トがはいってる。
先頭、最後尾の頻繁な追加削除を行う、スタックやキューを実現するには最適。
リストの真中あたりをインデックスで取り出すのは糞遅い。
エントリごとにオブジェクトインスタンスを一個消費するので、ちょっとメモリ
消費量が多い。

ArrayList:長さが足りなくなったら自動拡張する機能を追加した、単なる配列。
削除や追加を行うと、今まであった参照の保存位置をずらす作業をそのたびに行
うので、追加削除を頻繁に行うのは不向き。インデックスで取り出すのコストは、
単なる配列に添字で取り出すのと殆ど変わらない。
メモリ消費量はコレクション中最低。配列+状態情報ちょっとだけ。
更新がなくてインデックスで参照することだけが多いコレクションに向いてる。

インデックスが数値以外の何かになる場合は、ハッシュテーブルかツリーを使う
べし。
>>95
>delegate は良くない。
>スマートじゃない。
>goto文の悲劇を思い出す。

これはなかなか核心をついた意見のような気が
>>109
理由も書いてないのに核心も無いだろ。
ただの言いがかり。 >>95=97=109か?
111デフォルトの名無しさん:02/12/02 08:27
>>103
> メッセージを実行時に指定された複数のラベルで
> フィルタリングしてそれぞれの出力先をファイルや
> 画面に振り分けするやつです。

log4jでできるけどね。少なくともlog4jにラッパかませば
できる。
112109:02/12/02 08:41
>>110
確かに理由は書いてないが、VJ++の独自拡張delegateに関する過去の議論を
踏まえていれば、それらを総括して端的にdelegateの欠点を言い表した言葉として
非情に簡潔で分かりやすい。背景を知らない初心者にも理解しやすいだろう。

たぶんに感覚的なものではあるけれど。ニュアンスはぴったり。
言いがかりにしか聞こえないのはセンスの違いかな。

ここで議論するつもりはないからこれで終わるけどね。
delegateに関する過去の議論に興味がある人は「delegate java sun microsoft」でGoogle
最近業界でVectorは遅いから業務で使うなっていうヤツが増えてますが、
気にするほど遅いものなのでしょうか?
また、その解決法や、synchronizedしてないVectorと似た機能もってクラスなどを
教えていただけないでしょうか。お願いします。
log4j って糞だろ。
>>112
delegateが良いか悪いかは好き嫌いの程度の問題だろ。
gotoはほとんどの人が悪と考え使用しないのに対してC#ではdelegateを使用する。
明らかにJava厨の発言であり、ニュアンスは全然違う。
>>95=97=109を否定してないとこを見ると自分すげーこと言ったぜモードに入ってるのかな(w
116デフォルトの名無しさん:02/12/02 12:25
>>112
>踏まえていれば、それらを総括して端的にdelegateの欠点を言い表した言葉として
>非情に簡潔で分かりやすい。

さっぱりわかりませんが?
117109:02/12/02 15:31
>>104
>goto
わざわざ「delegateの『欠点』」と書いているだろうに。
当然delegate/inner class双方に長所も短所もある。

> >>95=97=109を否定してないとこを見ると自分すげーこと言ったぜモードに入ってるのかな(w

そんなに否定して欲しいのか? >>109=112=117だが 95と97は別人だよ。
匿名掲示板でこんな書き込みにどれほど意味があるか知らんがね

これ以上続けたいなら↓こっちで
http://pc3.2ch.net/test/read.cgi/tech/1021555964/
暇なら遊んでやるかもしれないし、他の誰かが相手してくれるかもな
118デフォルトの名無しさん:02/12/02 15:33
>>113
ArrayListがsynchronizedしないVectorだ。
119117:02/12/02 15:33
>>104 じゃなくて >>114 だった
自分でカコワルイ
120117:02/12/02 15:35
>>104 でなくて >>115 鬱だ・・・
>>117
で、どこが核心をついた意見なの? 核心はどこにあるの?
>>121
delegateの欠点とgoto(の欠点)が両方とも「欠点」という点で似てる。
故に核心をついた意見だ。

と言いたいんでしょ。アホだね。
争いはヤメレ
>>118
質問、便乗させてください。
Synchronizedが必要だったらやっぱりVectorつかいますよね?

いまちょうどそこら辺で悩んでたんですよ。
125デフォルトの名無しさん:02/12/02 18:00
ArrayListをVectorと同等にしたいなら、
List list = Collections.synchronizedList(new ArrayList());

ただ、synchronizedListにしたからといって(=Vectorを使ったからといって)同期が
とれるわけではないから、普通は
list = new ArrayList();

synchronized(list) {
 ...listへの操作...
}
>>125
なるほど。わかりました。
となると、私が実装したいのはこんな感じなのですが、
class A() extends Thread{
  Vector q = new Vector();
  for(;;){
    synchronized(q){
     x(buf.remove(0)) こんな感じの処理
    }
  }

  public void addQueue (arg0){ ←非同期の複数のスレッドから呼ばれるメソッド
    synchronized(q){
      buf.add(arg0);
    }
  }
}
実際にはもう少し複雑になるとは思いますが・・・。
これはVectorよりもArrayListを使う方がよいでしょうか?
私の場合にはそれほどパフォーマンスに影響は出ないと思いますが、
>>113の書き込みが気になるもので。
12795:02/12/02 19:14
なんとなく通りすがりで思ったことを書いただけなんだなぁ、これが。
んで、今通りすがってみたらちょっと話題になっていてびっくりしたよ。

>>95に書いたことは深い意味があるわけじゃないよ。
何となく思っただけ。
要するに俺は好きじゃない。
でも、諸事情で使うしか無いときってあるじゃない?
だからちょっと愚痴ってみただけ。
ごめんよ。

あ!
俺がこのスレに書き込むのは二度目ですよ。
これ以降は>>117でお願いします。
いや、俺は逝かないけどね。
>>126
余計なロックがかからないぶんArrayList使ったほうが速いよ。
あといらんお世話かもしんないけど
キューの途中のデータにアクセスする必要がなければLinkedListのほうが速い。
129126:02/12/02 19:50
>>128
ありがとう。
早速LinkedList調べて使ってみまする。
ぱっとみた感じ、ほとんど変更いらなさそうなので。
 大学でJavaを勉強し始めて2ヶ月たらずの初心者です。
 大学の課題でSwingのJTableを使う必要があるのです
が,表示されているテーブルの表示内容を更新する方法が
分かりません。
 今やっているのはAbstractTableModelを継承した自作の
テーブルモデルで配列などからデータを取り出し,JTable
のテーブルに表示させるというプログラムなのですが,元
の配列などに入っているデータの数がユーザの何らかの
操作によって増えたときにテーブルの表示内容を更新した
いのですが,方法が分かりません。
 JTableクラスのオブジェクトのupdateメソッドを呼ぶだけで
はテーブルの行数が増えたりといった変化は起きませんよね?
どうしたらいいのでしょうか? 表示の更新はユーザが何かの
操作をしたときにできさえすれば十分です。

よろしくお願いします。
java半年の初心者なんだけど

コード書くの面倒だから
コードジェネレータ実装して
パターン化してXMLに記述して
動的にソース作成してから
コンパイルしてロードしたいの
JSPがサーブレットクラスになるみたいに

com.sun.tools.javac.Main
上記のクラス使えば良さそうだけど
誰か日本語のドキュメントかサンプル
どこにあるか知らないですか?

UnsupportedClassVersionErrorとか飛んでくるし
ようわからん
132RMI:02/12/02 22:13
RMIで画像データを送受信するには
どのようなリモートオブジェクトを使用するべきでしょうか?

133名無しさん@Emacs:02/12/02 23:05
>>130
fireTableChanged

>>131
> com.sun.tools.javac.Main
> 上記のクラス使えば良さそうだけど

普通にjavacでコンパイルするのと同じようなもんだよ
com.sun.tools.javac で、tomcatとかのソースファイル検索してみ

>>132
Serializableなオブジェクト
134デフォルトの名無しさん:02/12/02 23:10
appletっておもしろいですか?
135デフォルトの名無しさん:02/12/02 23:10
>>131
結局XML記述がJavaコード記述以上に面倒になるだけかモナー。

自動化って、仕事が画一なものじゃなければ単にエンジン作る
コストの無駄だモナー。
136デフォルトの名無しさん:02/12/02 23:11
>>134
今更必要ないです。JavaWebStartにしましょう。
>>131
>パターン化してXMLに記述して動的にソース作成してから
>コンパイルしてロードしたいの
Googleすると幸せになれる予感。
138デフォルトの名無しさん:02/12/02 23:15
RelaxNGCC
WSDLという手も。
140デフォルトの名無しさん:02/12/02 23:20
>>136
なんかわからんけど、すげー、サンクス!
141130:02/12/02 23:23
>>133
うまくいきました。
どうもありがとうございました。
>>136
それってieとかmozでも動くの?
何か追加でインストールしなくても
いいならappletはもう要らないか
>>142
JavaWebStart は Sun 製の JRE をインスコしなきゃ動かん。
win 限定だし、ブラウザ上で動くものでもない。
IE を使っている人が JRE をインストールしてくれるとは思えないので、
JavaWebStart が活躍する場は現状ではかなり限られる。
# 社内でのアプリ配信とか…?

Sun は普及させる気があるのかな?あんまり本気が感じられないのだが。

そんなわけで、多くの人が閲覧可能という点ではまだ applet も
捨てたものではないと思う。

ただし、よほど工夫しないと誰も面白がってくれずにウザがられるだけだし、
仕事ではまず使えないので、趣味で使う人向けだけど。
Macと、RedHatも動くYO!!
>>142
一度見てみたら、どうかの?
145RMI:02/12/03 00:10
>>133 ありがとうございます
146質問:02/12/03 00:11
何層もディレクトリで階層化された状態で
そのすべてのディレクトリにおけるすべてのclassファイルのみを抽出してjarファイルに圧縮したいんで
すがどうすればいいですか?
jarファイル化したときの構造はもとのディレクトリ構造と同じように
格納したいです。
何度も心みてみたもののできません。
Container.add(Component comp, Object constraints);
これしたあとに、constraints を取り出す方法はありまつか?
そういえば、ATI のグラフィックカードで Java1.4.1 を使ってると Win2k/XP
が落ちるバグ、fix したらしいね。

次のリリース (1.4.1_02) が楽しみ。
>>146
エントリ作って、jarファイルに書くだけ
java.util.zip, java.util.jarのjavadoc読め
後、何ができないのか書け

>>147
誰が取り出すの?
150131:02/12/03 00:43
お答えありがとうございます

>133
検索して書いてみたけど
UnsupportedClassVersionErrorとか飛んできて
ショボーン

>135
豆みたいな物から独自実装のDaoクラスにマッピング
するだけなので自動化できそうだったのよ
豆のセッターからdaoのセッターにXMLでマッピングしてるだけ
ゲッターもだけど

>137
幸せになれなかったのでここに書いてみたので

できないので、とりあえず寝ます

>>149
誰?
誰というか、add 時に与えた constraints を、後から取り出そうと思ったけど、
Component にも Container にも LayoutManager にも、getConstraints みたいな
メソッドは見つからなかった。
>>147
つうか何故取り出す必要があるの?

>>150
例外じゃなくて、Errorなんだから、よっぽど非道い事やってんだろ。
Javaのシステムクラスパス上のクラスファイルを、VM実行時に書き替えるとか。
>>151
そのままでは取り出せない。だから取り出せるように実装する必要がある。
>>153
やっぱだめか。
LayoutManager の実装クラス作って対処します。
サンクス。
155デフォルトの名無しさん:02/12/03 09:46
>>154
Componentをキー、Constraintsを値にするMap一個作っとけばいいだけやん。
156デフォルトの名無しさん:02/12/03 09:53
>>150
マメ-DAO間でメンバごとにいちいち入れ替えてるのか?アホだ・・・

setterとgetterの名前工夫して、リフレクションパッケージ使えば
そんな外側での苦労ナシに自動的にいれ替えられるロジックくめる
と思うけど。

そもそも入れ替える必要なんかないと思うけどねえ。
DAOがメンバ変数にマメをもつようにして、DAOにマメのsetter置いて
DAOの処理がマメの変数をいじるようにすれば、簡単じゃ。
大それたシステム組む前に、オブジェクト参照をちゃんと使いこな
せるようになれや。
>>156
通ぶって変な用語多用したばっかりに可読性が損なわれている。

あんたのプログラム、保守する奴かわいそうだわ。
ベジェ曲線上の座標を得ることは可能でしょうか?
ベジェ曲線を描き、その上をなぞる形で画像を動かしたいのですが。
158ですが、自分で計算式を作り、ベジェ曲線を描けば可能でしょうか?
>>159
自分で作るなら可能ですね。
161158:02/12/03 12:48
数学しんどい(泣
162158:02/12/03 13:02
あ、よく読んだら結構簡単、式は全部高校数学レベル。理論はよくわからないけど(w
163158:02/12/03 14:20
できたー!
3点ベジェも4点ベジェも座標を取得することに成功!
誰かほめてください。
>>163
よくやった。
ここに晒せ。
165デフォルトの名無しさん:02/12/03 14:39
文字列がアルファベットかどうかって
どうやるんでしたっけ?
166158:02/12/03 14:49
それでは覚悟して晒すことにします。

double t;int tc;
int[] x={0,160,320,640};
int[] y={240,0,0,240};
int[] b_x=new int [40];
int[] b_y=new int [40];
for (t=0.0,tc=0; t<1.0; t=t+0.025,tc=tc+1)
{
  b_x[tc]=(int)(x[0]*(1-t)*(1-t)*(1-t) + 3*x[1]*t*(1-t)*(1-t) + 3*x[2]*t*t*(1-t) + x[3]*t*t*t);
  b_y[tc]=(int)(y[0]*(1-t)*(1-t)*(1-t) + 3*y[1]*t*(1-t)*(1-t) + 3*y[2]*t*t*(1-t) + y[3]*t*t*t);
}
g.drawPolyline(b_x,b_y,40);

ググってたらC言語だけど、ベジェ曲線を計算して
描いてるソースを見つけられたので楽勝でした。
158はイイヤツ。
168デフォルトの名無しさん:02/12/03 15:12
native2ascii 相当のメソッドの実装をしたいのですが、
方法がわかりません。助けてください。

"システム" -> "\u30b7\u30b9\u30c6\u30e0"
169デフォルトの名無しさん:02/12/03 15:42
HashtableってListにおけるVectorみたいなもんですか?
>>169
そんな感じ。
valueにnull放り込めないのがイライラする。
171169:02/12/03 15:56
ありがとうございます。

ってことは、VectorよりArrayListの方が好まれているように、
HashtableよりHashMapを使った方がいいのれすか?
>>171
「HashMap クラスは Hashtable と同じと見なしてもかまいませんが、
HashMap の方は同期がとられず、null の場合もあります。」

上の通り、同期をとる必要がないならHashMap。
関係ないけど、java.util.HashSetの中を覗くとHashMap使って手抜き
している。
173169:02/12/03 16:13
なるほど。よくわかりました。
ありがとうございます。
>>172
別に手抜きじゃねーよ
Appletを継承したクラス内の任意のメソッドで

Image img = getImage(getDocumentBase(), "image.jpg");
とした場合

imgはImageクラスのインスタンスなんでしょうか?

しかしImageクラスはabstractだし

newで作成したオブジェクトがインスタンスと呼べるのでしょうか?
だれか教えてください。
>>175
>Image img = getImage(getDocumentBase(), "image.jpg");
の場合 img は「Image のインスタンス」を指す、と言える。
実際にどのImageの実装が使われるかは Applet#getImage() の実装次第。
>>176
少なくともImageかそれを親に持つ派生クラスか。ってとこか。
FileReaderクラスでファイルを開いているとき、
別のプロセスから、そのファイルを開いて読み書きすることは
可能なのでしょうか?教えて下さい
>>178
少なくとも非推奨。
>>179
ありがとうございます。
>>178
FileReader で開いてるときって別プロセスから書けたっけか?
182RMI:02/12/03 21:57
>RMIで画像データを送受信するには
>どのようなリモートオブジェクトを使用するべきでしょうか?
という質問をした者です。実装するリモートオブジェクトは
FileOutputStream 及び FileInputStream を使って作成し、
シリアル化すればいいのでしょうか?

184デフォルトの名無しさん:02/12/03 22:00
>>182
パラメータにSerializableなオブジェクト使えという話にみえるが。
画像ファイルをロードして作ったバイトアレイを返せばいいだけかと。
185名無しさん@Emacs:02/12/03 22:57
>>182
何でFileOutputStreamなんだよ。って言うか、RMIを
本当に知ってるのか?
186デフォルトの名無しさん:02/12/03 23:15
インターフェースをどう利用したら言いかがわかりません。
例えばTaxiクラスとBusクラスをつくる場合、
public interface DrivingImpl {
  pubilc abstract void accelerator();
  public abstract void brake();
  public abstract void clutch();
}
のようなインターフェースを作って確実に実装するように両クラスに
インプリメントしたりすればいいんですか?
それならインターフェースをつかわずに抽象クラスに定義してもいいような
気がしますがどのように使っていけばいいのか頭が混乱してわかりません。
手元の本には確実にプログラマがメソッドを定義するような設計・仕様書
的な意味合いが強いと書いてありますが。
>>186
>それならインターフェースをつかわずに抽象クラスに定義してもいいような

その通り。

でも、ファイルを保存できるSerializableとかスレッドにできるRunableとかを考えてみる。
エロ本クラスとファイルクラスと言う全然違う用途のクラスが同じ親を継承しているというのは非常に奇妙だとは思いませんか?

そして、そういうオプション的な機能のためにJavaの1本しかない継承関係を消費するのは非常にもったいない。
188デフォルトの名無しさん:02/12/03 23:59
>>186
interface は、まさに仕様書と言っていい。
提供するサービスを規定するものだ。

よくある構成はこんな感じ。
・interface でメソッドを規定
 ・interface を実装する抽象クラスで共通な処理を記述
 ・抽象クラスを継承するサブクラスで個別の処理を記述
 ・使う側は interface 型の変数を宣言してインスタンスを代入する

interface の使い方に思いをはせるのは、工夫の第一歩だ。がんばれ。
でも、Implで終わる名前は interface を実装するクラスに付けるものだから気をつけれ。


>>150
HighStandardプロジェクトって所に、DynamicCompilerってクラスがあったんだが、
今見たら無くなってるな。
190131:02/12/04 00:38
なんとか動いたっす
>>152
Mainをnewしたら飛んできました
>>156
おまえアホ?豆、及び、抽象化クラス群の実装を自動生成しようとしてるんだぞ
classどころかソースさえないのに、どうやってリフレクションするんだ?
実装の仕様が来る毎に豆作ってテストするの面倒なんだよ

こんな感じでできるみたい
import java.io.*;
// javac -classpath ./;D:\j2sdk1.4.1\lib\tools.jar jc.java // java -cp ./;D:\j2sdk1.4.1\lib\tools.jar jc
interface base { public void print(); }
public class jc {
  static final String javaclass = "public class baseImpl implements base { public void print() { System.out.println(\"ヽ(゚∀゚ )丿\"); } }";
  public static void main(String[] arg) {
    try {
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("./baseImpl.java") ));
      bw.write(javaclass , 0 , javaclass.length());

      Class cls = Class.forName("com.sun.tools.javac.Main");
      com.sun.tools.javac.Main javac = (com.sun.tools.javac.Main)cls.newInstance();

      String[] args = new String[] {"-g","-encoding", "Shift_JIS","-classpath", "./","-d", "./","./baseImpl.java"};
      javac.compile( args );
      cls = Class.forName("baseImpl");
      base bs = (base)cls.newInstance();

      bs.print();
    } catch( Exception e ) { e.printStackTrace(); }
  }
}
191デフォルトの名無しさん:02/12/04 00:41
複数のプロセスが同一データ構造にアクセスしたときに、お互い干渉を受けないように
同一プログラムを実行させられるようにできる制御を組みたいんだけど、
どうやって書いていけばいいかな?

また、そんなことについて書いてある参考書やWebページがあったら教えて欲しい。
Javaで?
OS依存のコードを書くことになると思うけど...
193191:02/12/04 00:53
単に排他制御が出来ればいいというだけなら、スレッドを使ったプログラミングを
すればいいのかな?
>>191 とりあえずAPIマニュアルから. atomicについてちゃんとかいてある。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/File.html#createNewFile()
196RMI:02/12/04 01:51
>>184
ありがとうございます。早速試してみます
>>185
訳のわからないことを書いてすいませんTT
RMIについては最近勉強を始めたところなので・・・
197デフォルトの名無しさん :02/12/04 02:01
誰か居ますか?
質問してもいいですか?
198デフォルトの名無しさん:02/12/04 02:03
>>197
おうよ。仕事か?
いいよ。
200デフォルトの名無しさん:02/12/04 02:04
やっぱだめ
201200:02/12/04 02:06
俺、頭悪いから、
いつもスレみてもチンプンカンプン。
202デフォルトの名無しさん:02/12/04 02:07
>>197
お兄さんの胸に飛び込んできなさい!
はやくぅ〜。
203デフォルトの名無しさん:02/12/04 02:18
これより >>197をよってたかって教え込むスレになりました。

超XPだな
204デフォルトの名無しさん:02/12/04 02:22
>>197
早く質問しろ。
い〜や、して下さい!
205195:02/12/04 04:22
>>190
 ClassGen cg = new ClassGen(
  "HelloWorld", "java.lang.Object", "<generated>"
  , Constants.ACC_PUBLIC | Constants.ACC_SUPER, null
 );
 ConstantPoolGen cp = cg.getConstantPool();
 InstructionList il = new InstructionList();
 MethodGen mg = new MethodGen(
  Constants.ACC_STATIC | Constants.ACC_PUBLIC, Type.VOID, new Type[] {new ArrayType(Type.STRING, 1)}
  , new String[] { "argv" }, "main", "HelloWorld", il, cp
 );
 InstructionFactory factory = new InstructionFactory(cg);
 il.append(factory.createFieldAccess(
  "java.lang.System", "out", new ObjectType("java.io.PrintStream"), Constants.GETSTATIC
 ));
 il.append(new PUSH(cp, "Hello, World"));
 il.append(factory.createInvoke(
  "java.io.PrintStream", "println", Type.VOID, new Type[] { Type.STRING }, Constants.INVOKEVIRTUAL
 ));
 il.append(InstructionConstants.RETURN);

 mg.setMaxStack();
 cg.addMethod(mg.getMethod());
 il.dispose();
 cg.addEmptyConstructor(Constants.ACC_PUBLIC);
206195:02/12/04 04:23
>>190

cg からバイナリを生成し、クラスとしてロードし、main メソッドを呼び出す。

 ByteArrayOutputStream out = new ByteArrayOutputStream();
 try{
  cg.getJavaClass().dump(out);
  Class clazz = new ClassLoader(){
   public Class load(byte[] data){
    return defineClass(null, data, 0, data.length);
   }
  }.load(out.toByteArray());
  new JavaWrapper(clazz.getClassLoader()).runMain(clazz.getName(), new String[0]);
 } catch(Exception anException){
  anException.printStackTrace();
 }
207131:02/12/04 08:08
>>195
お答えありがとうございます

com.sun.tools.javac.Main
を使わずに自分で.class作るとの?
難しすぎます・・・
JVMの仕様など知らないし

でも面白そうだしJVMの勉強になりそうなので
ちょこっと調査してまします
>>207
すべてのぷらっと
209デフォルトの名無しさん:02/12/04 09:38
データベースから取ってきたデータを詰め込むとき、

ArrayList al1 = new ArrayList();
ArrayList al2 = new ArrayList();
while(rs.next()){
al1.add(rs.getString(0));
al2.add(rs.getString(1));
}
String[] data = new String[]{al1,al2};
.......
return data;

みたいな感じでやっているのですが、
変数の宣言が多くてなんか効率が悪いような気がします。
例えば10行10列のデータだと、
ArrayListを10個も作らないといけなくなってしまうし。

皆さんはどんな風にしてますか。
どういう風に書けば効率がいいのでしょうか。
210初心者その1:02/12/04 09:47
HPの閲覧に関してなのですが、
PCから見てる人と携帯から見てる人で表示するページを
切り替えるにはどうすれば良いのですか?
JavaScriptで可能でしょうか?
>>209
なぜ、ビーンを使わないの?
というか、1レコード1オブジェクトにするとすっきりすると思うよ。

ArrayList records = new ArrayList();
while(rs.next()){
XXXRecord rec = new XXXRecord(rs.getString(0),rs.getString(1));
records.add(rec);
}
return records;

212デフォルトの名無しさん:02/12/04 10:02
>>209

>String[] data = new String[]{al1,al2};
これってコンパイル通るの?
というか、普通「行」方向にArrayList使いません?

列数はともかく、行数を知る術がない(知りません)ので、最低
一つはArrayList()が必要だと思います(たぶん)。
自分は下のような方法を良く取ります。

int columSize = rs.getMetadata().getColumCount();
ArrayList ary = new ArrayList();
while( rs.next() ) {
String[] row = new String[columSize];
for(int i = 0; i < columSize; i++) {
row[i] = rs.getString(i);
}
ary.add(row);
}
String[][] data = (String[][])ary.toArray(new String[0][]);
return data;
213デフォルトの名無しさん:02/12/04 10:41
>>210
JavaScriptでも可能だが、
ここはJavaだぜ!混同してねぇか?

サーバーならHTTPのUserAgent見て判断なされよ。
てか、それだったら言語関係ないだろ。
質問するスレ間違ってねぇか?
ネットワークプログラミング相談室 Port4で聞いてこいや!
214209:02/12/04 10:56
どうもです。
今までずっと独学でやってきているので、
変なことやってても矯正してくれる人がいないんですな。

1レコード1オブジェクトですか。勉強になりました。
>>213
ちがうよ!>>210はきっとJSP使ってしたいんだよ!
>>210
携帯でJavaScriptは動かんだろ・・・
213と同じだが
String userAgent = request.getHeader("User-Agent");
で。
画像を読み込むときに、作成したクラスの下にあるフォルダから
読み込むにはどうすればいいんですか?¥を使ってみたらエラーが出ました。
>>217
ギャー¥一個しかつけてなかった。
219デフォルトの名無しさん:02/12/04 13:36
String str = "てすと文字列";

を、実行環境によらず Shift_JIS(あるいは EUC-JP) のファイルで出力するには
どうすればよいのでしょうか?
>>219
java.io.OutputStreamWriter ですな
221デフォルトの名無しさん:02/12/04 13:53
Hashtableのリファレンスを見ると、put(Object key, Object value); とか書いてありますが、
格納するモノの型が不定なので、取り出すときに困る・・・そこで型を明示したものを
一緒に格納しようと考えています。
(つまり、intを入れるときは"int"という文字列を一緒に入れておき、出すときに判別する)

こういうのってアリですか?それとも豪快に勘違いしてます?(´・ω・`)
アリだとしたら、引数はObjectになってますが、複数の違う型を入れることってできるんでしょうか?
222デフォルトの名無しさん:02/12/04 13:56
staticなクラスHogeがgetHoge()というメソッドを持っている場合、
直接、
Hoge.getHoge();
と書くのと、インスタンスを作って
Hoge hoge = new Hoge();
hoge.getHoge();
とするのは、何が違うのですか?
どのように使い分けられているのでしょうか。
223RMI:02/12/04 14:17
>>184
仰るとおりバイトアレイを返すだけでできました。
ありがとうございました
>>221
>intを入れるときは"int"という文字列を一緒に入れておき、出すときに判別する

キーに含めるってこと?ならいいんじゃない。

>引数はObjectになってますが、複数の違う型を入れることってできるんでしょうか?

int型は入らんと思うが。
参照型のデータならなんでも入ると思うけど。
hash.put("Integer",new Integer(5));
hash.put("String","あああ");
ってことでしょ?
225219:02/12/04 14:49
>>220

う〜ん。UNIX 環境だと「@」が文字化けしてしまうのはしょうがないところなのかな。
パラメータは色々試したのですが、何かいい手はないでしょうか?


String str = "てすと文字列\uff5e\u2460";

File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file);

ByteArrayInputStream ins = new ByteArrayInputStream(str.getBytes());

InputStreamReader in = new InputStreamReader(ins, "JISAutoDetect");

OutputStreamWriter out = new OutputStreamWriter(fos, "MS932");

int c;
while ((c = in.read()) != -1) {
out.write(c);
}

out.close();

>>224
Keyに含めるんじゃないです。ユーザが入れたデータをKeyとValueに
関連づけて処理するんですが、Keyの名前(これは文字列)とValueに入るデータの
型が不定なので、Valueを入手してから中身の型を判別できないかなと思ったんです。

put時はString→Objectで入れますが、逆はどうしようってことですね。
227デフォルトの名無しさん:02/12/04 15:08
文字列処理についての質問です
StringからindexOfとsubstringを用いてある部分を取り除きたいのですが、
その部分に空白が含まれていた場合その空白を取り除きたいです。
StringTokenizerを使ってトークンに分解し、連結するしか方法が浮かぶのですが、
他に良い方法はないのでしょうか
228227:02/12/04 15:09
連結するしか方法が浮かぶのですが ×
連結する方法が浮かぶのですが ○

すいません
>>226
instanceof で調べれば?
>>227
s = s.replaceAll("\\s+", "");
231デフォルトの名無しさん:02/12/04 16:01
>>230
正規表現?って1.4のみですね。
232デフォルトの名無しさん:02/12/04 16:09
oro(Jakarta) もありかな。
>>229
うぁっ、そんなのがあったとは。 Σ(・ω・ノ)ノ
サンクス、試してみます。
>>226
要件ってどんな?なんかえらいマズーな
設計のにほひ..
>>227
replaceのcharで空白飛ばせばいいんでないの
236座標などについて:02/12/04 16:42
今チャットを作ってるんですが文字の転送はできたんです。
final BufferedWriter out3 = new BufferedWriter(new OutputStreamWriter(out2.getOutputStream()));
try
     {
out3.write(f3.getText()+"\n");
out3.flush();
こんな感じで。
それで次に、自分の描いた絵を相手に送れるように作りたいのですが、座標を送ったら
いいと思うんですけど座標とかを送るメソッドとかは何を使ったらいいんでしょうか?
237227:02/12/04 17:46
>>230,231,235
ありがとうございます。
replaceAll を利用しました。
1.4使ってるので使えました。
ついでにreplaceも使ってみます。
238デフォルトの名無しさん:02/12/04 17:49
すみません。既出だと思いますが教えて下さい。
Win98+JBuilder5+J2SE1.4.1で作成したクラス(画面)を
linux[Redhat7.3] + J2SE1.4.1で実行してのですが
文字化けが発生しました。
いくつかのWEBサイトで、渡辺フォント?を入れろ(設定しろ)と書いてあったのですが
なぜこのフォントを入れないと日本語が表示出来ないのでしょうか?
またこのフォントを入れなくても表示できる方法はあるのでしょうか?
>>238
論理フォント名使っている?
DialogとかMonospacedとか。
240238:02/12/04 18:31
>239
論理フォント名・・・?
Linux(UNIX)も今回始めて触った程度なので
スミマセン、何の事を言われているか分かりません。
Linuxは別人がインストールしたのでどう言う設定になっているか分かりませんが、
多分、手順に沿って標準インストールだけしてあると思います。
先に書き忘れましたが、WEBサイト参考にして渡辺フォント?を設定したら、
確かに日本語表示出来るようになりました。
けど、なぜそれでOKなのか知りたかっただけです。
241126:02/12/04 19:45
>>236
どんな絵?
もしかして、ベクタグラフィック?
読んでるとそんな気がしたものだから。
>>236
何か仕様に則って作っているの?
もし、そうじゃなくて独自のチャットシステムを作っているなら、
作り急がずに、プロトコルの設計からはじめた方がいいよ。
たとえば、図形の座標を送って描画させるにしても、
別な通信路を用意するのか、同じ通信路でやるのか、
同じ通信路(ここではBufferedWriter)を使う場合は、
通常の会話と図形情報を区別する必要があるよね。
例えば、先頭の文字が'#'だったら、会話ではなく
図形コマンドとする、などの決まりを作ることを、
プロトコルの設計というのだけど、このあたりを
うまく考えておかないと、機能を増やしていった時に
苦しくなるよ。
243デフォルトの名無しさん:02/12/04 21:28
int型とdouble型を組み合わせて計算をする場合に
自動的にint型がdouble型に変換され計算されますが。
コレには型の優先順位みたいなものがあるのですか??
244デフォルトの名無しさん:02/12/04 21:29
double型って何て読むの??
245デフォルトの名無しさん:02/12/04 21:34
>>243
これを読みましょう。
http://www.gimlay.org/~javafaq/S014.html#S014-02

>>244
倍精度浮動小数点数
247デフォルトの名無しさん:02/12/04 21:36
Javaで作ったJavaアプリケーションってどのような形で配布するのですか?
たとえばVBならインストールプログラムを作成して、それを配布すれば
EXEとランタイムがインストールされてVBが入ってなくても実行できますよね。
Javaの場合はどうするのかなぁと思いまして。
誰か教えてください。
>>247
まず検索しろ。

>>247 も FAQ に加えたほうが良いかも。
249デフォルトの名無しさん:02/12/04 21:41
>>245
>>246
なんか難しすぎてよくわからないのですが・・・。
>>247
jar使ってマニフェストファイルもまとめて圧縮せよ。
ついでに署名もいれるとよし。
>>249
そんなんで難しいなんて甘えすぎ、と書かれても怒るな
そこらへんの簡単な本を読めばよし
検索しろ
252デフォルトの名無しさん:02/12/04 21:46
>>251
いま入門書を片手にレスしているのですが
「自動的にint型がdouble型に変換され計算されます。」
としか書かれてないのです(´・ω・`)
253デフォルトの名無しさん:02/12/04 21:47
JAVAだけじゃ転職できませんか?
>>252
intのみでdoubleに変換したくなければ

int i = 10;
double d = 20.2d;

int a = i * (int)d;
255247:02/12/04 21:51
使用するクラス郡をjarやzipに圧縮することは分かりました。
でも実行環境にJVMがない場合JREをインストールしなくちゃいけないんですよね?
結構面倒?ですね。配布ウィザードなんてあったっけ?
>>254
>int a = i * (int)d;
それだったら
int d =(int)20.2;
で良いような気もする。
257デフォルトの名無しさん:02/12/04 21:52
>>254
キャストっていうヤシですね。
そこを学んでいる時に自動的に変換される
ってあるケドどの型に変換されるとかの
法則はあるのかって考えたのですよ。
258デフォルトの名無しさん:02/12/04 21:54
>>254
「 20.2d」のdはなぜついてるのですか??
>>255
Appletならたいていのブラウザは自動downloadで勝手にインストールをやってくれる。

WinならJVMがデフォルトで入っていることがある。
XPにも入っていたかどうかは忘れた。
だがそのJVMはM$独自仕様のMVM(Microsoft VM)でセキュリティ弱し。
>>257
恒等変換(同じ型どうしの変換)と
拡大変換(int->longみたいに大きい型への変換)は キャスト不要。
>>259
MVM ってのは初耳。 普通 MSJVM って書くような。
>>258
doubleならd付けた方がfloatと区別しやすいから、というのが理由だと思った。つけなくてもいい。
C/C++にもにたようなものがある。
263デフォルトの名無しさん:02/12/04 22:00
>>260
メモリが大きい方に変換されるってことなんですか?

>>263
>メモリが大きい
???
265デフォルトの名無しさん:02/12/04 22:02
>>262
20.2dとdが付いていてもコンパイラは20.2と読んで
くれるのですか?
266デフォルトの名無しさん:02/12/04 22:02
tst
267デフォルトの名無しさん:02/12/04 22:04
>>264
え〜型は大きい方(ビット数?)ってことです(*゚ー゚)
>>263
32bitsと64bitsの違いだろ。本に書いてあるはず。
ちゃんと読みましょう。

>>265
それくらい自分でコンパイルして確かめてくれ。
doubleならdをつけるくせ付けた方が無難。
dがないとfloatとみなされると思った。
>>267
だったら却下。
int -> float, long -> double, は同じビット数でも拡大変換。
long -> float に至っては ビット数減ってるのに拡大変換。

プリミティブ型の拡大変換は
>byte から short,int,long,float,又は double への変換。
>short から int,long,float,又は double への変換。
>char から int,long,float,又は double への変換。
>int から long,float,又は double への変換。
>long から float 又は double への変換。
>float から double への変換。
って
http://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#25222
に書いてあるだろが。ちゃんと読めよ…
>>268
http://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#230798
>浮動小数点リテラルは,接尾語にASCII文字の F 又は f が使われている場合は, 型 float とする。
>そうでないときには,型 double とし,ASCII文字 D 又は d を接尾語として使ってもよいが,オプションとする。
だそうです。
>>270
あ、逆だったね。でもおれはつねにdとかfつける癖つけてるんで全然きにしてませんー。
272デフォルトの名無しさん:02/12/04 22:45
>>271
確信の無い事(実はウソ)を教えたって事に関しては
気にしたほうが良いと思われ…
274デフォルトの名無しさん :02/12/04 23:40
ゾーン10進(符号付)の値を文字型に変換したいんですが、どうすればよいですか?
例えばマイナス123ならば、−123と出力。プラス456ならば、456と出力させたいのです。
275デフォルトの名無しさん:02/12/04 23:44
String#valueOf()
276デフォルトの名無しさん:02/12/04 23:48
275さん、ありがとうございます。
もう少し詳しく書くと、
オラクルのvarchar2で定義してある列:金額に、ゾーン10進(符号付)の値が入っています。
これを数値チェックしたいのですが、どうすれば良いですか?
また、−123とか789のように文字型で出力させたいのです。(JAVA)
どなたか、お知恵を!m(__)m
>>272
M$も格好悪い。というかどっちもどっちだ。
スコットマクネリとビルゲイツは仲が悪い。Javaというすばらしい技術を持ちながら、
何を考えているのか、毒舌好きのスコットは短気でM$に対する強烈な憎しみばかりいだいている。
それに比べLinuxのリーナストーバルズは平和って気で攻撃的でなく、憎しみも無い。彼は。ただOSを作ることを楽しんでいるという。

>>276
そのあたりは苦手(というか控えめにしたい)な分野なので、知恵を貸せませんが、ゾーン10進なんて(2進な)難しいもの使わないでStringや数値型そのままでINSERTしておいたほうおが楽でない?
速度とディスク容量節約重視のためそれは許されてない?
つかもうSunはJavaから手を引いたほうがいいと思う
>>276
Stringに基数変換できるメソッドとか使えない?
Stringをそれで変換してビット演算子でどうにかならん?
ゾーン10進の値というのは0と1だけの値で入っているんかい?
それとも10進、16進?
そこら辺はわしは馬鹿なのでゾーンのこともう忘れてしもた。2進数8文字で表現するやつか?
>>278
それはすでにM$がやってるだろ。
というより、その理由は?
281デフォルトの名無しさん:02/12/05 01:21
>>278
ところで、推測かもしれないが、投稿しまくっているあんたも暇だな。人の事いえないけど。もしかして、他のスレッドでJavaの質問を繰り返していたか?
まあIBMがひきとった方がJavaのためにはよさそうだがな
>>282
国連がISO標準として引き取るのが理想だな。
ISOに提出しようとしたが、ヨーロッパなど一部の国はISO標準化を認めたが、アメリカが徹底的に反発したらしい。
それでJavaのISO標準化は駄目になったとさ。背後にM$から賄賂で流れていなかったことを祈る。

その後ECMAに提出しようとしたが、M$が邪魔をしてきた。
M$ が Visual J++ を作り出したたため、 Sun はECMAへの提出を取りやめた。理由はJavaの進化が途絶えるからだそうだ。
VJ++によってプラットフォーム非依存性が約束されなくなることを恐れたのだろう。

M$はなんとかしてJavaを自分のものにしたかった。が、VJ++で裁判にかけられものにできなかった。
そこで仕方が無くC#を作った。
>>276
ゾーン10進って扱ったことがないけど、だいたい以下のような感じかな。
たぶん、ResultSetからgetBytes()でバイト列を取り出せると思うから、
それを渡してみて。

public class ZonedBCD {
public static final int ZONE = 0xF0;
public static final int PLUS = 0xC0;
public static final int MINUS = 0xD0;
public static final int BCD = 0x0F;

private byte[] bcd;

public ZonedBCD(byte[] bytes) {
this.bcd = bytes;
}

public String toString() {
StringBuffer buf = new StringBuffer();
int len = bcd.length;
int sign = ZONE & bcd[len - 1];
if (sign == MINUS) buf.append("-");
for (int i = 0; i < bcd.length; i++) buf.append(BCD & bcd[i]);
return buf.toString();
}
}
クラス構造って何ですか?
>>285
package内のクラスの集まりじゃねえの? クラス図とか?
一口にクラス構造といってもいろいろありそうだが。

http://e-words.jp/ これ使っていろいろ調べろ
質問するならもっと具体的な情報を提供しような。
いくら初心者大歓迎といってもこれはひどすぎる。
メーリングリストでこんな質問の仕方したら教えてクンとして非難されるぞ。
おそらく本を読みながら質問したんだろうけど、本を隅から隅まで読んでもわからなかった質問するのが理想だ。

2chだからどうでもいいだろ、2chだったらほうっておけ、といわれればそれまでだが。
287238,240:02/12/05 09:50
なぜ渡辺フォント入れないと日本語表示出来ないのか、誰か教えてくれませんか?
>>287
さぁ、font.properties でも調べてみれば?
289デフォルトの名無しさん:02/12/05 10:49
サーバにアップロードしたファイルのパーミッションを変更したいのですが、
どうすれば良いのでしょうか?
290デフォルトの名無しさん:02/12/05 12:07
リフレクションいついて質問です。
private Stringのフィールドに値を入れて、
geterで取り出すとnullになってしまいます。
参照が違ってしまっているからなのかななどどかんがえてみましたが、
頭がこんがらがって分かりません。
可能な方法ご存知でしょうか?
291デフォルトの名無しさん:02/12/05 12:09
public final class AccessSupplier {
  public static Object getField(Object obj.String fieldName) {
    try {
      Field field = obj.class().getDeclaredField(fieldName) {
      field.setAccessible(true);
      return field.get(obj);
    } catch(Exception e) {
    }
  }
}

public class Data {
  private String a = null;
  public String getA() {
    return a;
  }
}

public class Main {
  public void execute() {
    try {
      Data data = new Data();
      //フィールドを取得
      String a = (String)AccessSupplier.getField(data,"a");
      //フィールドに値を設定
      a = "a";
      //↓nullが帰ってくる
      System.out.println(data.getA());
    } catch(Exception e) {
    }
  }
}
292デフォルトの名無しさん:02/12/05 12:12
あと引数がないメソッドの呼び出しのばあい、
parametaTypesには何をいれて置けばよいのでしょうか?
↓java.lang.Class
public Method getDeclaredMethod(String name,
Class[] parameterTypes)
throws NoSuchMethodException,
SecurityException
>>291
data.a に値をセットしてないから
null が返るのは当然といえば当然なわけだが…

>>292
null もしくは new Class[0] で良かったような…
>>291
>      //フィールドに値を設定
>      a = "a";
295126:02/12/05 13:15
ちょっと気になったんだけど、
メソッドの引数を加工するのは良くないよね?
例えば、
public void a(byte[] data){
 data[0] = 0x80;
 ...処理
}
こんな感じなんだけど
やっぱりいったんテンポラリかなんかつくって、そっちを操作するのが
基本だよねぇ・・・・。
Javaの作法が今ひとつわからないもんで、教えてください。
296デフォルトの名無しさん:02/12/05 13:19
293
292が自己解決しました。
Class[] parameterTypes =null;
として渡せばOKでした
297デフォルトの名無しさん:02/12/05 14:07
>>293
なんとなく分かってきたかも。
セッターを使わないとだめなんでしょうかね
298デフォルトの名無しさん:02/12/05 14:15
SAXParseException : the root element is required in well-formed document
っていう例外がでるんですが、これってXML文書本体に誤りがあるってことですよね?
でもXML文書本体もスキーマも正しいはずなんですが、どうしてなんでしょうか?
誰かおねがい!!
>>298
本当に正しいならそんな例外は飛ばない
300デフォルトの名無しさん:02/12/05 15:03
>>298
いや、ねんのためにブラウザから閲覧したがエラーでなかったし、
DTDとの整合性を調べるプログラムも書いてチェックしたが問題なかったのよ。
初心者だからサッパリわからんくて困ってます
>>300
肝心のXMLも載せないで誰がどうやって答えんの?
302デフォルトの名無しさん:02/12/05 17:02
yahooのチャットをjavaアプレットで使いたいのですが
java.lang,NoClassDefFoundError=com/yahoo/yacs/lYAEvents
というメッセージが出て使えません。以前は問題なかったのですが・・
プログラムのことは分かりませんがエラーにjavaとあったのでここに
きてみました。お願いします。
JVMのヒープ領域がどれくらい空いているかを、アプリから知る方法ってないですかね?
それから、マニフェストファイルでjava -Xmxみたいな指定はできます?ヒープサイズを指定したいのですが。
よろしく〜。
>>303
>JVMのヒープ領域がどれくらい空いているかを
java.lang.Runtime の freeMemory とか totalMemory とか maxMemory とか。

>マニフェストファイル
マニュアルちゃんと読め。

>よろしく〜。
すげームカツク
>>303です。
>>java.lang.Runtime の freeMemory とか totalMemory とか maxMemory とか。
なるほど、調べてみます。

>>すげームカツク
2ちゃん的反応ありがとう(^^;
306デフォルトの名無しさん:02/12/05 19:05
配列オブジェクトを作るとlengthってオブジェクト変数が使えますが、
オブジェクト変数の一覧ってマニュアルのどこに載ってるのでしょうか?
探してみたんですが
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Object.html
には載ってないし。
>>306
「オブジェクト変数」って何ですか? 初めて聞きました。
フィールドを意図して言ってるなら、Objectクラス自体には
フィールドは存在してませんよ。
308306:02/12/05 19:18
配列オブジェクトのクラスにはフィールドが存在しているということでしょうか?
どこで見られるのですか?
たとえば、TCPでリクエストを送信するクラスがあるとします。
このクラスの中でソケットを作るとき、呼び出されるたびに Socket sock = new Socket していたら、
実体は呼び出された回数だけ別モノが生成されてしまうんですか?

初回呼び出されたらnewしてソケットを作り、次回以降呼び出されたらさっき作ったのを再利用
させたいんですが、このsocketは自分が既に作ったか?というのは調べられるんでしょうか?
>>308
配列は特別なオブジェクトなので…
たぶんAPIドキュメントには書いてないと思う。
言語仕様見るとかしてくれ。
http://www.y-adagio.com/public/standards/tr_javalang/10.doc.htm#11364

ちなみに reflection で配列にアクセスする場合は
java.lang.reflect.Array を使用する。
311306:02/12/05 19:22
>>310
ありがとうです
>>303です。
JVMのヒープサイズはわかったのですが、実行された環境のメモリの大きさを知ることはできないですか?つまり、JVMの最大ヒープサイズではなくて、OSが管理しているメモリの利用可能な最大数というか。
メモリの限界までヒープを取りたいのですが、何か方法があったら教えてくださいm(_ _)m

313デフォルトの名無しさん:02/12/05 20:02
swingでの画像表示方法を教えてください

public void paint(Graphics g)とかじゃダメですよね?
>>313
ラベル。
315デフォルトの名無しさん:02/12/05 22:49
yymmddの日付チェック方法教えれ。
いや教えてくださいませ。
>>315
>日付チェック
はい?
317デフォルトの名無しさん:02/12/05 23:04
入力されたyymmddが妥当かチェックするのでございます。
>>317
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/Calendar.html

で、ちゃんと例外がでるか?とか。
319名無しさん@Emacs:02/12/05 23:27
>>312
> JVMの最大ヒープサイズではなくて、OSが管理しているメモリの利用可能な最大数というか

無理。プログラム中で知ったところで、-XmxはJVM起動中には変更できない。

> メモリの限界までヒープを取りたいのですが、何か方法があったら教えてくださいm(_ _)m

スタックサイズ×スレッド数と、PermSizeと、ヒープサイズ足せばいいだろ。

>>313
Javaインストールフォルダ\demo\jfc\SimpleExample\src\SimpleExample.java
を嫁
321320@Emacs:02/12/05 23:39
失礼。画像だったか。
じゃぁ、SwingSet2でも見てみ。
java -jar JAVA_HOME/demo/jfc/SwingSet2/SwingSet2.jar
322デフォルトの名無しさん:02/12/06 00:20
>>309
ローカル変数じゃなくてインスタンス変数とかクラス変数にSocketの参照格納しとけ。
次回以降nullじゃなければ作成済みだ。
>>322
シングルトン?
324デフォルトの名無しさん:02/12/06 00:47
>>323
いつ切れるか分からなく、1度切れたら再利用不可能なSocketインスタンスに
シングル豚を適用するバカがいたら見てみたい。

最近どこもかしこもシングル豚なプログラムを散見するが、オマエラ本当にその
インスタンスはJVM起動中にゼッタイに一個しか必要ないのか?と小一時間問い
詰めたくなるようなプログラムも多い。ちゃんと考えろ、生兵法のアホどもが!
325323:02/12/06 00:52
>>324

俺が怒られたってことはじゃあ>>322はシングルトンじゃないの?

まぁ。ソケットの使い回しって例えコネクションが無くてもあまり気持ちの良いもんではないね。
と言うか、ソケットの再利用ってできたっけ。。。
ファイルのサイズの取り方おせーて。お願いします。
いわゆるふつうのunixだとできないねえ
シングルトンをグローバル変数の代わりに使うのがナウい
>>326
Fileオブジェクトに必要以上に固執すると良いよ。

>>328
教科書通りですね。
330苦労人:02/12/06 00:57
誰でもどこからでも参照可能で、参照の管理が必要なくて便利だからとい
うアホな理由で安易にシングル豚パターンを使うのはやめれ。
グローバル変数マンセーバカCOBOLER OR BASICERと発想が同レベルだぞ。
特にサーバサイドでの開発はマルチスレッドアクセスが前提なんだから、
そんなもんが散乱してたらどうなるカワカランってのに・・・
できるだけインスタンス参照のライフタイムとアクセス可能なスコープ
範囲はコントロールするようにプログラム組んでくれよ・・・まじで、頼む
から・・・バタンキュー
>>330
この場合、いろんなメソッドに通信処理が分散されてどれがどの順に呼ばれるかが曖昧になるのが怖いですね。
332326:02/12/06 00:59
しまった!! もしかして、File.length()か。ガボーン。
333苦労人:02/12/06 01:00
>>325

すまぬ、あんたに怒ったわけじゃない。日頃の苦労でシングルトン
という単語に過剰反応するようになってしまいました。マ板イッテキマス。
334デフォルトの名無しさん:02/12/06 01:00
Boolean oBoolean = new Boolean(false);
boolean b = oBoolean.booleanValue();



boolean b = new Boolean(false).booleanValue();

↑と同じよーな感じで

Thread thread = new Thread() {
    public void run() {
        ...
    }
};
thread.start();

↑を↓(イメージ)のように書けないでしょうか?

new Thread() {
    public void run() {
        ...
    }
}.start();
>>334
できなかった?
できる。
337334:02/12/06 01:14
ぐはぁっ,で,出来ました m(_ _)m
338 :02/12/06 01:19
JSPなんですけど、Sessionに入れてあるクラスのメソッドに引数を渡して
リターンを得るにはどうすればよいのですか?

スクリプトレットじゃなくてTaglibでやりたいのですが、
参考資料とかだとプロパティの値を取ってくる例は良くあるのに
そういう例が無くて困ってます。
I'm in New York near the Yoshinoya.
Please give order for negidaku and gyoku.
341デフォルトの名無しさん:02/12/06 01:50
>>283
ん?
MSにJavaを遣わせまいと「意地悪」したら、
本当にJava切られちゃって、それは困ると
慌てて法廷に泣きついてる最中だろ?>Sun
342デフォルトの名無しさん:02/12/06 03:51
ボタンは表示されるのですがイメージが表示されません。なぜでしょう?

class ClientFrame extends JFrame
{
public ClientFrame()
{
JPanel jp = (JPanel)getContentPane();
Container cp = getContentPane();

cp.setLayout(null);
cp.setBackground(Color.white);

super.setTitle("The Study.Server");
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton transmitbutton = new JButton("送信");
transmitbutton.setBounds(30, 30,100, 20);

cp.add(transmitbutton);

ImageIcon icon = new ImageIcon("C:/load.jpg");

JLabel label = new JLabel(icon,SwingConstants.CENTER);

cp.add(label);
}
}
343デフォルトの名無しさん:02/12/06 03:52
(つづき)
JButton transmitbutton = new JButton("送信");
transmitbutton.setBounds(30, 30,100, 20);

cp.add(transmitbutton);

ImageIcon icon = new ImageIcon("C:/load.jpg");

JLabel label = new JLabel(icon,SwingConstants.CENTER);

cp.add(label);
}
}
344デフォルトの名無しさん:02/12/06 04:13
EJBを使ってらっしゃる方、どのように勉強したのでしょうか?
何かいい本かHPがあれば教えてください。
>>344
がんばれ。
>>342
直接の原因は、labelにsetBoundsしてないから。
間接的には、レイアウトマネージャの支援を受けてないから。
layoutをnullにせず、LayoutManagerつかってみたらどう?

setTitle("The Study.Server");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton transmitbutton = new JButton("送信");

ImageIcon icon = new ImageIcon("load.jpg");
JLabel label = new JLabel(icon, SwingConstants.CENTER);

Container cp = getContentPane();
cp.setBackground(Color.white);
cp.add(transmitbutton, BorderLayout.NORTH);
cp.add(label, BorderLayout.CENTER);

pack();
>>341 ぬ?じゃぁこの記事はいったいナンダ?
http://japan.cnet.com/Enterprise/News/2002/Item/020619-3.html
>>315
DateFormatのパースを使ってみてエクセプションを投げつけられるかどうかで判定か?
しかし有り得ない日付は勝手に違う日付に解釈される仕様のようだから、
再びDateFormatのフォーマットを使って文字列に戻してから元の文字列を比較して、
違う日付にされてないかも調べないと危ないな。
349デフォルトの名無しさん:02/12/06 10:40
Calendarクラスなんですが、IE 5.50(SP2)のアプレットで実行した場合、
set(Calendar.DAY_OF_MONTH, 2);
で設定した場合、正しく2が入りますが、
set(Calendar.DAY_OF_YEAR, 2);
で設定した場合、無視されてしまいます。

NC 4.75/AppletViewer(JAVA1.1)/AppletViewer(JAVA1.2)
の環境で動かした場合ちゃんと動きます。
VMのバグですか?

とりえあず試せるソース
import java.applet.*;
import java.awt.*;
import java.util.*;
import java.text.*;
public class TestCalender extends Applet
{
public void paint(Graphics g)
{
Calendar A = Calendar.getInstance();
Calendar B = Calendar.getInstance();
SimpleDateFormat F = new SimpleDateFormat("yyyy/MM/dd");
try{
A.setTime(F.parse("2002/1/1"));
B.setTime(F.parse("2002/1/1"));
}catch(Exception e){}
A.set(Calendar.DAY_OF_MONTH, 2);
B.set(Calendar.DAY_OF_YEAR, 2);
g.drawString("A=<" + F.format(A.getTime()) + ">", 20, 30);
g.drawString("B=<" + F.format(B.getTime()) + ">", 20, 50);
}
}
JAVAアプレットについて質問です。
ブラウザで動作するアプレットをつくり、そのアプレットから
インターネット上にあるサーバ内DBにアクセスできるのでしょうか?
アクセスできたとしてその情報をリアルタイムに表示とか出来るんでしょうか?
サーブレット等はサーバに入ってないです。

もし、出来ないとしたらそれはなぜなんでしょうか?
全然JAVAわかってない香具師でごめんなさい;;。
351デフォルトの名無しさん:02/12/06 12:36
class MyCanvas extends Canvas{
private Image image1;
private Graphics graphics;

public void MyCanvas() {
image1 = createImage(100,100);
}

public void paint(Graphics g) {
graphics = image1.getGraphics();

graphics.setColor(new Color(0,0,0));
graphics.drawRect(0,0,10,10);

g.drawImage(image1,10,10,this);
}
}
イメージ作ってから表示するクラス作って
これをインスタンスにしてaddしてみたのですが
ぬるぽぬるぽ言われるんです。
どうすればまともに動きますか?
352342:02/12/06 13:53
>>346
setBoundsしたらできました
ありがとうございます
>>315
>>348
setLenientを知らんのか?
>>351
createImageのAPIドキュメント読め。

class MyCanvas extends Canvas {
private Image image1;

public void MyCanvas() {
}

public void paint(Graphics g) {
if (image1 == null) image1 = createImage(100, 100);
Graphics graphics = image1.getGraphics();

graphics.setColor(new Color(0,0,0));
graphics.drawRect(0,0,10,10);

g.drawImage(image1,10,10,this);
}
}
355351:02/12/06 15:30
>>354
おお、動いた。ありがとうございます。

ただAPIDocument読みましたけど、よくわからないです。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/Component.html#createImage(int, int)
なのでぐぐって調べても手元の本読んでもようわからんので
無い頭捻って色々試してみたところ
コンストラクタのところに書いちゃうと駄目ってのだけがわかりました。

ぼくは馬鹿ですが馬鹿でも考えないで答えだけ聞いてワーイとしてたら
余計馬鹿になるのですいません、ヒントだけください。
よろしくお願いします・・・。
>>355
何がどうわからなくて何を知りたいのかサッパリわかりません。
357351:02/12/06 15:54
public void MyCanvas() {
if (image1 == null) image1 = createImage(100, 100);
}

だとぬるぽになるのがわかりません。
「何が」ぬるぽ?
359357:02/12/06 18:58
漏れの頭が。
360デフォルトの名無しさん:02/12/06 19:12
CCDカメラを使用して画像を取り込むにはどうしたらいいですか?
361デフォルトの名無しさん:02/12/06 19:22
EUCのファイルを読み込んで別のファイルに出力しているのですが
「〜」の文字だけが変換できずに?で出力されてしまいます。
どうすればよいのでしょうか?

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(args[0]), "EUC_JP"));
FileWriter out = new FileWriter(args[1]);

String line;
while ((line = in.readLine()) != null) {
out.write(line);
out.write("\n");
}
362デフォルトの名無しさん:02/12/06 19:24
Componentの仕様だけ把握してもどうしょうもないだろー
Containerの仕様も把握しとかねば。
363362:02/12/06 19:25
あれ?
>>362>>357へのレスね
Tiger(jdk1.5)用拡張案らしい
http://jcp.org/en/jsr/detail?id=201

enum, (generics用にかなり拡張されてるみたい)
autoboxing,
foreach, (実際には forを拡張するみたい )
static import (コンパイル時にインライン展開するため?)

だそーです。
>>361
>FileWriter out = new FileWriter(args[1]);
Writer out = new OutputStreamWriter( new FileOutputStream(args[1]),"SJIS");
366デフォルトの名無しさん:02/12/06 19:43
public class Applet1 extends Applet
{
public void init()
{
textField1.setText("厨");
add(textField1);
textField1.setBounds(132,36,60,24);
SymText lSymText = new SymText();
textField1.addTextListener(lSymText);
//…としてから、initを終了する前に
textField1.setText("漢");
//…とする1行を加えるだけで、その後のアプレットの挙動が暴走寸前になってしまいますが、
//何かヤバイですか?
//この1行が無ければ何の問題もないのです。
}
}
>>364
usingブロック/java.lang.Disposableもホスィ...
>>355
遅くなったね。
要は、コンポーネントの構築中は、まだ表示されていないから。
おそらく最初の表示時にGraphicsが割り当てられているんだと思うよ。
下記参照のこと。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Component.html#createImage(int,%20int)
糞質問で申し訳ない。

基本情報のためにjava覚えようと思い本を読んだりしてるんだけど
さっぱりやる気が起きません

delphiやvbとかを覚えようとしたときは、自分がよく使うフリーウェアを
まねて作ったりして覚えていったんですが
javaだと凝ったウインドつくったりするだけで少々私には無理があり、
また、実行速度が遅い、とよく聞くのでフリーウェアを作る気も起きません

個人でjavaを使用されてる方は、どのような目的で使われてるのでしょうか?

ほんとにしょうもない質問で、ほんとに申し訳ない
>>366
単に登録したリスナーのバグだろ?
SymTextのソース晒せ。
>>369
iアプリ作れば?
後はサーブレットで掲示板作るとか。
>>369
今は文法覚えてるヒヨッコだけど、
俺の場合、特にオブジェクト指向について勉強したいと思ったから。
デザインパターンやらUMLの本もjavaが多い(と思う)しね。
しかもjavaのアルゴリズム本買っちゃったし。
おいおいC++などにも触れてみたいから。イキナリハ・・・
例外処理書かないと、コンパイルが通らんところとかガベコレやら
面白いとおもった。
俺も基本情報目指してる(w
>>372

調子載って略語使うのや目なさい。
iアプリですか。iアプリ自体使ったことないので眼中に全く無かったのですが
iアプリとは一体どんなものなのか早速今から試してみます
サーブレットとか掲示板とかは全く未知の領域.

>例外処理書かないと、コンパイルが通らんところとかガベコレやら
>面白いとおもった。

凄いですね。全く面白いと思ったことないのですが、なんか文章を見てると
java覚えるのがもの凄く楽しそうで羨ましいです



基本情報の試験にpascalがあれば...ググ..
375351:02/12/06 22:31
>>362さん、>>368さん、ありがとうございます。
Canvasクラスとかでpaintメソッドを使う場合、
paintメソッドが再実装されるってことだから
super.paint(g) が呼び出されてなくちゃいけない。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Container.html#paint(java.awt.Graphics)
ぼくAppletのinitでCanvas呼び出してたのでsuper.paint(g)はAppletのpaintのことだから、
処理はinit終えてからpaintに行くのでsuper.paint(g)はまだ呼び出されてない、だから表示不可能。
よってcreateImageはnullを返すと。。

・・・ええと、こう理解したですが・・・合ってますか?
>>375
というか、表示してみないと必要な大きさも分からないのに、
createImageできるか、ボケ。ってとこだと思うがどうか。
JFrameに対してダブルバッファリングで描写するのはできるんだが、
JPanelに対してダブルバッファリングで描写するのってどうするの?
できないの?
>>377
ふと、そんなにちらついたっけ?と思った。
379プロの逝って良しの1 ◆MvRbZL6NeQ :02/12/06 23:48
>>377
ダブルバッファリングは実は問題の解決になってない。
同期転送や同期切り替えしか正しい解決法は無い。
>>378
赤と白の塗りつぶしを1フレームで交互にやってみれば?
380377:02/12/07 00:39
>>378-379
レス頂いたのに言葉足らずで須磨祖。
ウィンドウに隠れるなどして失われた描画の再描写なんです。
例えばボタンを押すとPanelに図形描写するプログラムで
void jButton1_actionPerformed(ActionEvent e) {
Graphics2D G = (Graphics2D)jPanel1.getGraphics();
G.setColor(Color.cyan);
for(int i=10;i<=100;i=i+5){
Shape S = new Rectangle2D.Double(i,i,i+10,i+10);
G.draw(S);
}
では、隠れると再描写されないので
Dimension mySize = jPanel1.getSize();
Image myImg = createImage(mySize.width, mySize.height);
Graphics2D G = (Graphics2D)myImg.getGraphics();
G.setColor(Color.cyan);
for(int i=10;i<=100;i=i+5){
Shape S = new Rectangle2D.Double(i,i,i+10,i+10);
G.draw(S);
}
としたいのですが、この場合
G.drawImage(myImg,mySize.width,mySize.height,jPanel1);
をどこに記述すればいいのかわからんのれす。
だいたいこれでいいのか???それもわからなくなってきた。。。
ウィンドウの上にあるステータスバーを消去したいのですが どうしたらいいでしょうか?
ヒントとなるキーワードでいいです・・ 教えて下さいませm(_ _)m
382デフォルトの名無しさん:02/12/07 01:54
CCDカメラから画像を取り込むにはどうしたらいいでしょうか?
>>382
JMF
384382:02/12/07 02:59
>>383
ありがとうございます
javacのエラーメッセージは全部でどれぐらいあるのでしょうか?
一覧見たいものがあれば見たいんですけど、無いでしょうか?
プログラムに関する質問でなくてすいません。
tools.jar の
com.sun.tools.javac.v8.resources.javac.properties
com.sun.tools.javac.v8.resourcse.javac_ja.properties
com.sun.tools.javac.v8.resources.compiler.properties
com.sun.tools.javac.v8.resources.compiler_ja.properties
>>380
うーん、普通はActionListenerに描画コードは書かないだろ?
たとえば、380が作っているアプリに将来undo機能をつけようと思ったりしたら、
その方法では破綻するよ。
基本的には、リスナーでは描画に必要な情報(たとえば座標とか)を何らかの仕組みで
追加し、管理するだけにして、
paint(g)の方で、その情報を元に再描画コードを実装するってのが基本かな。
ダブルバッファリングで、途中までのイメージを残しておき、追加された
描画情報の分だけを追加描画して高速化を図るってのもありだと思うが、
その前に、基本的な仕組みを作り上げてからパフォーマンスチューニングに
取り組んだ方が良いと思うよ。
388デフォルトの名無しさん:02/12/07 10:23
awtやswingなどGUI関連をJSPで使用することって可能なのですか?
教えてテレホマン。
<jsp:plugin>とか書くと、アプレットが使えたような。
そこでawtやswingを使えるよ。
参考:JavaServer Pages
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/jsp.html
>>388
JSPはサーバサイドで動いているので、何も考えずに使うとサーバの画面に表示されることになる。
クライアントの画面に表示させたいなら、Appletを使いましょう。HTMLと同じようにApplet関係のタグを埋め込んで普通に使えます。
JSPも、JSPのタグの評価が済んでしまえばHTMLと変わらないんですよ。
>>390
嘘ではないが、極めて不合理的な方法だな。
IEとNetscapeでは、そもそもアプレット用のタグが違う。
<applet... <object... <embed...
こういったケースに個別に対応するよりは、<jsp:plugin type="applet" ...
とJSPの提供する方法を利用して書いたほうがいいと思う。


>>389-391
なんか、議論がかみ合ってないように見えるけど、、、。
要は、Appletでしか使えないってことでしょ。
JSPでAppletの配置をどう書くかってのは、388に対する答えではないと思うよ。

>>388
awt, swingそのものではないけど、そのやり方を利用したHTMLグラフィックを
行う方法はあるよ。Apache XMLプロジェクトのBatikを使って、SVGコードを生成し、
ServletやJSPから利用するんだけど、、。SVGを知らなくても、JavaのGraphicsを
扱うような方法で描画し、SVGを生成できるのが特徴なのだ。
ただし、ブラウザ側にAdobeのSVGプラグインが必要だけどね。

http://xml.apache.org/batik/
http://xml.apache.org/batik/svggen.html
393380:02/12/07 12:06
>>387
>普通はActionListenerに描画コードは書かないだろ?
レスありがとうございます。
「10日で覚えるJava実践教室」のサンプルですが、
再描写について調べてもpaint(g)のオーバーライドしかないのはそういう理由なんですね。
ActionListenerで描画してそれを再描写するのは無理みたいですね。
ちなみに、
.NETではPictureBoxが保持するBitmapクラスに描画して転送する方法で再描写できるんですが、
Javaではこういうことは「しない」と考えた方がいいのですね。
<C#>
private void button1_Click(object sender, System.EventArgs e)
{
Rectangle r = pictureBox1.ClientRectangle;
pictureBox1.Image = new Bitmap(r.Width,r.Height);

Graphics g = Graphics.FromImage(pictureBox1.Image);
Pen p = new Pen(Color.Aquamarine,2);
for(int i=10;i<=100;i=i+5)
{
g.DrawRectangle(p,i,i,i+10,i+10);
}
}
>>393
「できるけどしない」っていうことなら、そうだね。
そのC#のコードだって、undo入れたりするとき苦労するでしょ?
リスナーではモデルに当たるデータを変更することにつとめ、
ビューへの描画ロジックはpaint()に任せることで、モデルと
ビューの分離ができるのさ。こうすることで、ビューの変更、
たとえば、更新履歴をテーブル形式で見たいなど、
ビューの追加や変更に柔軟に対応できるようになる。
395 :02/12/07 13:09
taglibで文字列の比較をやりたいんだけど、
2つの変数同士を比較するにはどーすればよいの?
396380:02/12/07 13:16
>>394
そういった実用上の「作法」を理解してないので、
サンプルに惑わされてしまいました。ありがとうございました。
うんうん、気持ちは分かる。
なんだか俺もプログラムをはじめたときの気持ちを思い出したよ。
ひたすらコーディングするべし。
オンラインで対戦できるホッケーゲームみたいの作ってるんですけど、
データ転送の速度が描画の速度に追いつかず、描画が飛び飛びになってやれたもんじゃありません。
DataInputStream を Socket を連結させて今はやってます。滑らかに描画するにはどうしたらいいんですか?
399JMF@382:02/12/07 14:51
CCDカメラをUSB接続してるんですけど、
MediaLocatorの指定場所はどこになるのでしょうか?
400デフォルトの名無しさん:02/12/07 14:56
switch文は、条件二つ指定できなかったよね?一つだけだよね?
switch(*****) // ←こっちは1つのみ
402デフォルトの名無しさん:02/12/07 15:02
できるの?switchで二つ条件指定できるの?
switch(x){
 case 0:
  // 処理
  break;
 case 1:
  // 処理
  break;
 default:
  // 処理
}
404デフォルトの名無しさん:02/12/07 15:08
ですよねぇ、無理ですよねぇ。素直にif使おう。
>>404 ものによるが代替手段はありそう。
406デフォルトの名無しさん:02/12/07 15:26
よくアプリケーションで設定を変更すると,
「この設定を有効にするためには(アプリケーションを)再起動する必要があります」
なんてことを聞かれ,OKボタンなどを押したのち,
自身で再起動するものがありますが,
この「自身で再起動」をJavaアプリケーションで行おうと思った場合,
一般的にはどのような方法が用いられるのでしょうか?

僕が思うにデーモンスレッドあたりをうまく使うのかなと思うわけですが.
>>406
もう一つ立ち上げて自分は終了したら?
408デフォルトの名無しさん:02/12/07 15:36
>>391のお話に関連して質問したいことがあります。

appletなんて仕事で使ったことないんでいまいち分かってない者なんですが、
<applet>はブラウザ付属のVMを起動してしまい、
<object>や<embed>は、SUNが配布しているplugin(ActiveX経由?)->JRE
を呼び出すためのタグと考えてよろしいのでしょうか?

IEだと<applet>でもSUNのpluginを呼び出すような設定が出来るようですが、
実際に仕事でappletを使用したい場合はどちらが好ましいのでしょうか?
>>399
JMF API Guideの以下の章を読んでみて。
http://java.sun.com/products/java-media/jmf/2.1.1/guide/JMFCapturing.html#98540
環境がないから試せないけど、
1.CaptureDeviceManagerからgetDeviceList()で、認識されているデバイス情報(CaptureDeviceInfo)の
リストを取得
2.取得したデバイス情報から、getLocator()でロケータを取得する、
ということみたいね。
手持ちのカメラが認識されなければ、そのままでは無理そうだね。
できたら、結果教えてね。興味あるから。
410桜庭 葵:02/12/07 16:18
.     l ::::|l .i   ::::::::::;;;',;::;゙、:;;',、:::::;;;;;l ,,、-、'""、;;:;::::;;;',. ヾ;;゙、 ,r<_,.,、、z゙'、、゙;、ヾ;゙、;;;;;;l;;;!;;::::::::::::
      ',::::l ! :.l. . .:::::::::::;;;;',;:;;,゙、;;',゙、::;、rl'"  ,,.゙、',..,゙'、;;;;;;;;゙、   ヾ;、 ,,,;;シ''!"~~゙゙';,ヾx、.゙、;;;!;;l;;;:;::::::::::
       ',:::l ',:;;',.:゙、;;;::::::::;;;;;',;;;;, ヾ;r'、::;;;;!.r'',,、zェュ、. ヾ、;;;;゙、    ヽ''"  l,  ,,、:':'、 ヾ:;、;!;l;;;';;::::::::::
.      ゙、:!. ',:;',、::゙、;;;;:::::;;;;',゙、;;/ヽ.ヾ;;;'ill!'''"゙i ~`   ゙ヾ、゙、.        lr''゙!::li!::;i,  ヾj//;;;;::::::  
       ヾ ゙、:',゙、:゙'、;;;;::::;;;゙、ヾ;、 ヽ;lrヾ、  .,i,       ``       l;;::ゞン;::;j   ツ;/;;;;;;::::;;
        ゙、 ゙、.!:ヽ、ヾ;;;;;;;;;゙;、 ヽ、;ll!. l  ,r';::l,              l;;;. .::: ,;;j  ',;イ:;;;;;;;;::;;;;
           ,'ヽ、;:::l';,、゙、r、;;゙;、. ill!.  ';;:'゙'i,,j;::l,           、,. ゞ--一゙- ,//:;;;;;;;;;;;;;;;
             i ::::;:::!;;;;;;;l゙'',、.゙、ヽll!.  'i;:: ゙''゙:. l、                   ,/'/;;;;;;;;;;;;;;/;;
             ! :::: :::l;;;;;;;;;! l  .゙、. ヾ、.  ゙、;;;;:、‐'''''"                 / /;;;;;;;;;;;;;シツ'
.            |.:::;:: :::l;;;;;;;;;l  、〈゙、   、 '´           ,          ´ ,.';;;;;;、-'" ´
.           l::::; ::i:::l;;;;;;;;;ヽ, ヽ、゙、               ;l           /''" /   藍より青し 公式ホームページ    
            l::::;;:::',::',;;;;;;;;;゙、゙ヽ、. ゙、.             ゙'               ,イ    http://www.aiyoriaoshi.com/index2.html  
          ',:::;;;:::',::',;;;;;;;;;;r'"~゙''ー'、           -‐ '''''"          ,.';;;!     2話 - 夕餉 - 画像
           ゙、:;;;;::;',:゙、'''"      ヽ、            、:::'         /!;;;i!l    http://wqio6xt.hp.infoseek.co.jp/aiao/idx022.html  
>>398
それだけの情報では、何とも答えようがないし、、、。
転送されているデータってどういうものなの?
あと、データの転送タイミングは?
追いつかないほどのデータ量なのか、気になるところ。
データが、座標とかわずかなものなら、原因は別なところにあると思う。
412JMF@382:02/12/07 16:40
>>409
さっそく試してみます
413JMF@382:02/12/07 17:24
デバイスリストの取得プログラムを実行したのですが、
何も引っかかりませんでした。(オーディオ、ビデオ共に)
CCDカメラはドライバをインストールしてPC上では認識されています。

import java.util.*;
import javax.media.*;
import javax.media.format.*;
public class CaptureTest {

public static void main( String[] args ) {

System.out.println( "List of All Capture Divices:" );
Vector list = CaptureDeviceManager.getDeviceList(
new VideoFormat( VideoFormat.YUV ) );
// new AudioFormat( AudioFormat.LINEAR ) );
for( int i=0; i<list.size(); i++ ) {
CaptureDeviceInfo info
= (CaptureDeviceInfo)list.elementAt( i );
MediaLocator locator = info.getLocator();
System.out.println( locator.toString() );
}
}
}
>>413
以下のページを見ると、標準でサポートしているデバイスは以下の通りみたい。
http://java.sun.com/products/java-media/jmf/2.1.1/formats.html#Capturers

それと、JMFの配布パッケージはpure Java/Solaris/Windows版の3種類あるけど、
pure Java版はビデオキャプチャできないから、Windows Performance Packって
いうのを落とす必要があるよ。
それでもだめなら、ちょっとでは対応できないから、残念だけど
あきらめるしかないかもね。
415デフォルトの名無しさん:02/12/07 19:35
これからJAVAを勉強しようかと思っているCOBOLerですが、
初心者でもわかりやすくJAVAが勉強できるようなサイトがあったら教えて下さい。
>>415
本買えよ。
>>415
だからJavaはここだってば。
http://park.ruru.ne.jp/ando/work/who/index.html
418momo:02/12/07 20:10
JEditorPaneに表示したもの全体を、そのままImageオブジェクトとして保存したいのですが、その方法を教えていただけませんか?
419398:02/12/07 20:56
>411 レスありがとうございます。
転送しているデータはStringで、
ボールの座標、相手のバー(ボールを跳ね返すためにつかう)の座標、自分のバーの座標が一緒になって入っています。
(例えば、129,80,20,30,33,280, みたいになってます。)
転送のタイミングは40ミリ秒置きになっています。
>>419
255は1Byteに入る。
"255"は1Byteには入らない。
まぁ、原因はここじゃないだろうけど。

スピードほしいならUDP使えば?別に40ミリ秒毎のデータが1枚届かなかったところで影響は深刻ではないわけで。
421398:02/12/07 21:09
>420
ちょっとUDPにしてやってみます。
レスサンクス。
自分、入門3日目のコボラーなんですが、
JAVAってREADした固定長テキストをデータレイアウトにつっこんで
処理するという概念はないんでしょうか?
無い事はないんでしょうが、本屋のテキストみてもその辺りの記述が見つけられません。
どこかにいい見本は無いでしょうか・・。
>>422
無いです。つぅかすごい教育受けてきたんだなぁと手続き世代の僕は思いました。
>>422
XMLをDOMに読み込んで書き換えて吐き出すのとどう違うの?
>>423
まじっすか。
なんかいきなりでかい壁にぶちあたった気が・・。
汎用機でバッチ流すのがめんどい処理をローカルにしちまおうと思ってたんですが
ちと挫折気味。
>>424
うーん全然わかりません。
>>424
>どう違うの?

入力と出力がXMLではない。
コボラー恐るべし・・・
>>419
エアホッケー?ボールの軌道の計算は、クライアント側に任せられない?
430422:02/12/07 22:50
>>428
脳内プログラム概念の再構築がでんでん進みませんです。
JAVAやC畑の人はシステム乗り換え時のセットアップ用データ受け渡しとか
どうしてるんですか?
DBの情報渡してはいおしまいとか?
コンバータするか、アダプタかます。もしくは、DBの情報渡してはいおしまい。
>>431
なぁ、コンバータするって変だぞ?
バージョン1.4のBufferクラス活躍できるかもの予感
JavaやCやその派生言語って入出力は基本的にストリームじゃないですか。
unixの影響も大きいと思うんですけども。

コボルって入出力がすんげー特殊なんすか?
>>434
なぁ、UNIX作った言語CがUNIXの影響が強いというのはこれ如何に。
標準Cライブラリ(FILE*)やC++のstd::iostreamの話では?
テキストコンポーネントに表示したもの全体を、
そのままImageオブジェクトとして保存したいのですが、
どう実現したらよいのでしょうか?
ImageオブジェクトからGraphicsをゲットしてそこにdrawして差し上げる
439not 437:02/12/07 23:55
>>438
結局,その方法になっちゃうんだろうなぁ.
どうにかして,ComponentのインスタンスからgetImage出来ないものか・・・
AWTのモデルからして描画"した"結果は揮発性な扱いでしょう。
(それゆえexpose/WM_PAINTでpaintが呼ばれるわけですが)

描画内容を保持するモデルならば、コンポーネント自身がImageProducer
になれると思うです。まあ、重いからやんなかったんでしょうね。
>>422
それって、Cでいう共用体みたいな使い方をしたいってことだよね。
Javaでやる場合はクラスを使うんだけど、同じようなことは実現可能だよ。

1.固定長データを1件READ
2.データ(byte配列)を引数に、ビーンを生成。
3.ビーンのgetterメソッドで必要な位置のbyte列を必要な情報に加工したものを取得する。


COBOLやCの共用体のように言語の支援がないので、趣きが異なるように感じるかもしれないけど、
データ1件分を1レコードではなく、1オブジェクトとして扱うだけと考えれば、
そんなに違うわけでもないでしょ?
>>441
>>433が簡潔に述べています。
レコードとクラスのマッピングはどうするの?
と質問してくるに100はらたいら
>>437
java.awt.Robotクラスで似たようなことはできる
445デフォルトの名無しさん:02/12/08 00:18
JFrameではなくてJWindowを継承してGUIを作っているのですが、
JWindowの上にJPanelを貼って、JPanelの上にボタンやらテキストフィールドやら
を貼っています。

Frame上にボタンやらを貼ったら普通に動作しますが、
JWindow上に上記のように貼ってもテキストにカーソルすら置けないし、ボタンも押せるけどアクションが聞きません。
どうすればテキストの中を書き換えたり、ボタンをアクションさせたりできるのでしょうか?
>>445
JWindowの上にJFrame春。
447デフォルトの名無しさん:02/12/08 00:26
>>446
Frameのタイトルバーや管理ボタンを表示させたくないのでWindow継承したのですが・・・・・
そうするとタイトルバーや管理ボタンがでてしまいませんか?
どうなんでしょう?
448デフォルトの名無しさん:02/12/08 00:30
Windowの上にContainer、Panel、Buttonってやっても動かないです。
今、RealPlayerを内蔵したJAVAアプリケーションを作ろうとしているのですが、
どうにもRealPlayerを内臓する方法が見つけられなくて困っています。
もし、参考になるサイト、もしくは書籍がありましたら教えてください。
450デフォルトの名無しさん:02/12/08 00:35
Ja-Jakartaってなんて読むの?じゃじゃかるた?じぇいえーじゃかるた?

あとわかんないのは char。ちゃー?きゃら?
>>449
一行目で正確な漢字使っておいて・・・
452JMF@382:02/12/08 01:19
>>414
JMFはウィンドウズ依存版です。
また、教えて頂いたサポート一覧表を見ると、
僕が使っているカメラはサポートしていないみたいです。

ところでJavaCamっていうのはCCDカメラから画像を
取り込む機構でしょうか?
453437:02/12/08 01:40
<<438 <<439 <<440
レスありがとうございます。
参考になりました。

<<444
これから調べてみます。
ありがとうございました。
454デフォルトの名無しさん:02/12/08 02:58
>>453
がんばれよ
もうだめぽ・・・
誰かバカな私にご指南くださいませ

現在、クライアント班、サーバー班にわかれて通信実験をすることになり、
クライアントのjavaを私ががんばってます。が・・・

socket(host,80)でソケット生成、
"GET ファイル名 http/1.0\n"
にgetBytes[]をして送ると、希望したファイルの内容が
dos窓に表示されるのでこの時点での
私のjavaソースにミスは無いものと思われます。

しかしながら、
"POST サーバー班が指定したcgi名 http/1.0\n"
+"Content-Length: 4\n\n"
+"moe-"
と送信すると、サーバーから返答がありませんし、
期待した成果は得られません。
ちなみにPOSTをGETにしてもまったく変化ありませんでした。

これはクライアントの私のミスなんではないかと思い
色々探したのですが、わからないんです。

私にどうか間違いを教えてください。
456455:02/12/08 04:15
すみません。
色々実験してて、勘違いをしてしまいました。

>>455での相談では、サーバの返答は
HTTP/1.0 400 Bad Request(以下略
が返って来ます。

どうか、間違いを教えてください。
457455:02/12/08 04:17
さらにミスです。
色んなソース書いて、色んなこと実験してたから間違いだらけですみません。

GETの場合はBad Requestで
POSTの場合は返答無しです。
>>455 なんでHttpURLConnection使わないの?
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/net/HttpURLConnection.html

つーか寝る。
459385:02/12/08 08:39
>>386
御指導ありがとうございます。

ZipInputStream等を使ってtools.jarのリストを取得してそれらのファイルの存在を確認できたのですが、
そこからどうすればエラーメッセージを得ることができるのかわかりません。
どうすればよいのでしょうか?
460385:02/12/08 08:44
解凍ソフトで解凍しちまえばとかったですね。すいません。
>>452
もう、ググって分かったと思うけど、僕も興味があったので調べてみたよ。
JavaCamってのは、WebCam32という製品をサーバにしたAppletなんだね。
動画というよりは、静止画を一定時間でリロードしていくようなものみたい。
だから、カメラとのやり取りはWebCam32の方がやっているから、そっちの
製品概要を調べてみるといいよ。
462デフォルトの名無しさん:02/12/08 17:09
javaで0〜23の数字を入力して
0−11ならおはよう
12ならお昼
13−18なら今日は
19−23ならこんばんわ
それ以外なら範囲を超えてます
いうのを作りたいんですけど
if文で作るのはわかるんですが
ユーザに入力させるのはどうすればいいんですか?
readlineって奴ですか?
初心者ですいませんが教えてください。
あと参考になるようなサイトをご存知なら
教えていただけないでしょうか。
463デフォルトの名無しさん:02/12/08 17:14
>>462
Servlet使ってWEBブラウザから入力するってのはどう?
>>462
PC初心者板で答えてやった。マルチか?
465ひよこ名無しさん:02/12/08 17:33
>if文で作るのはわかるんですが

お前ついさっきまでわかってなかっただろ?
文字列検索で、OR検索ってできないの?
イメージでは「ab」か「cd」が最初に出てくる場所を探すのに
int i = str.indexOf("ab"||"cd");
って事をしたいんだけど、||は使えなくてエラーでした。
2回(以上)検索して値の小さい方を選ぶしかないのかな。
467385:02/12/08 18:07
すいませんまだわからないです。
jarファイルを解凍してファイルの中を見ると日本語部分と思われるところが
\u8A00のように文字化けしてしまいます。色々調べたのですがunicodeによる文字化け?
かなというとこまでしかわかりませんでした。どのようにデコードすればよいのでしょうか?
>>466
正規表現使え。
最近は、入門書の始めの方に出て来るようだ。これ
>>462
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();// lineに読み取った文字が入る。
>>467
native2ascii -reverse マニフェストファイル
>>467
native2asciiを使いませう
訂正 s/マニフェストファイル/プロパティファイル/
もう寝る。
473385:02/12/08 18:29
できました。ありがとうございます。
ここの住民の方々すごくやさしいですね。ありがとうございました
474ほんとーに初心者で申し訳ない:02/12/08 18:31
コマンドラインから「java moner」として(もちろんmoner.classはちゃんとある)
System.out.printlnがコンソールに表示されないのですが、どのヘンに理由があるのでしょう?
環境はWin2KSP3+JDK1.2、他に必要な情報があればご指摘を(拝)
たとえば、コンパイルしたクラスファイルが前のバージョンで、
System.out.println文が入っていないとか。
476474:02/12/08 18:43
>>475
それは大丈夫です。なぜかというと、実はこれ、JSPがメインのシステムなんです。
で、JSPやJavaBeansからはちゃんとSystem.out.printlnが(Servletエンジンで
吐き出すシステムログに)出力されています。
んで、たまたまバッチ処理を書かなければならなくなったので、同じ環境でstatic mainな
コードを書いてコンパイルして、現在コンソール上からデバッグ中、上手く言ったらATコマンドで
自動実行、と考えているのですが……

1.System.out.printlnが入ったメソッドが呼ばれていない。
2.System.out.printlnの出力が空文字列
3.System.outがリダイレクトされて、どっかのファイルに出ている
の可能性はないか?特に1.は往々にしてありがち。
>>474
main(String[] args){
  System.out.println("オマエモナー");
}
でも表示されないのかと問い詰めたい。
479JMF@382:02/12/08 19:36
>>461
ある方の協力の下、デバイス情報の取得に成功しました。
解決方法とその結果は以下の通りです。

JMF1.2.1\bin\jmfinitを実行すると、
jmfregistryにPC上にある全てのCaptureDeviceが追加され
JMFから認識可能に。
>>479
すばらしい。よかったね。
ところで、手持ちのカメラは何使ってるの?
481JMF@382:02/12/08 19:53
>>480
I/O DATAのUSB-CCDっていうUSB接続CCDカメラです
(特に名前はなし?みたいです)
>>481
どうもありがとう。
興味があったけど、いろいろ調べるきっかけを作ってくれて
とても参考になったよ。
483JMF@382:02/12/08 20:47
>>482
とんでもないですw
丁寧にご指摘して下さいましてありがとうございました。
484デフォルトの名無しさん:02/12/08 22:06
>>1
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://freeweb.kakiko.com/hiroyuki/
最近の広告は、まぎらわしくなってきた。
486デフォルトの名無しさん:02/12/08 22:30
DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN)
使って以上のような解像度変えようとしても、
java.lang.UnsupportedOperationException
が出てきて変えられない。。。。。。。。。。
サポートされてないってドキュメントにかいてあるぉ・・・・・・・
どうやって変えればいいんだろう・・・
知ってる方ご教授願います。

ちなみにDisplayModes()で確認しますたけど、上記の640×480解像度はうちのマシンでは出せるはずなんすけど
487デフォルトの名無しさん:02/12/08 22:38
わあああああああーい
今まさに初めてJAVAりますた!

結城のプログラミングレッスン上を通学電車で読み今日まさに
Hello
と表示できました・・・涙

本読んでとりあえずHelloを出そうとしたよ。
じゃあそのたった5行のプログラムをどこに書くんだろう、とまずはまった。
友人に聞いたらメモ帳やxyzzyを教えてくれた。

xyyzyをインストールして書いたよ、たった5行をね。
コマンドプロンプトで
javac Hello.java
したけどうんともすんともいわねー。
cd、そうcdでディレクトリを移動するんだーって移動したけど
どうにもならん。
で、また友達に聞いたら問題は>>2に書いてあることだった。




488デフォルトの名無しさん:02/12/08 22:42
Java超初心者です.
今、Applet上でスクロールバーを使って絵を動かすプログラムを作ってます。
リセットボタンを押すと、絵が元の位置に戻るようにしたのですが、
スクロールバーが元に戻りません。これはどうしたらいいでしょうか。
おしえて下さい。
489デフォルトの名無しさん:02/12/08 22:42
path追加しようとしたけど、え、どこにあるのjsdkちゃんは・・・・
って良く見たらJDK(開発用)じゃなくてJRE(実行環境)インストールしてたじゃん。。。

んなわけでJDKをインスコして
http://www.hellohiro.com/appli.htm
ここを見て環境変数の設定をしてやりましたよおおおおおおお

javacすると何やらマスィンが作業して・・・うまくいったか?!
よし
java hello
と思ったがエラー。直後
java Hello
を打つと・・・・感動の・・・・




Hello
>>487,489
質問か相談を書けやヴォケ
なんだと
>>489
その感動を大切に
493486:02/12/08 23:21
>>487,489のせいで俺の質問が流れた・・・・・・・・・
せめてもっと小さく書いてください。
感動の後、今焼肉を食べました。

>>490
java Sorry

>>492
今日は僕にとっての記念日です。
2002.12.8 ディセンバーエイト

>>493
java Sorry
495494:02/12/08 23:32
引き続き、荒らさせてください。
serverVMで-Xmx64mしているのですが、
Runtimeで*Memory見ているとせいぜい
1.4,5メガしか確保されていません。
これは64mまで必要に応じて逐次増えて
いくようなものなのでしょうか?
497398:02/12/08 23:44
>420
UDPにしたら相当改善されました。
さんきゅう。

>429
そうです。エアホッケーもどきです。
ボールの軌道の計算をクライアントにさせる・・・
トライしてみます。レスサンクス。
498デフォルトの名無しさん:02/12/08 23:46
>>496
そうです。
SunのVMは(他はシラン。自分で-verbose:gcして調べてね)その1.5メガの領域が
オブジェクトインスタンス(ゴミふくむ)で一杯になったところで、MajorGC起
動とともに確保領域の拡張を行います。
>>496
そ。
-Xmx は最大ヒープサイズ
-Xms が初期ヒープサイズ
>>498
>>499
有り難う御座いました。
501デフォルトの名無しさん:02/12/09 00:19
Jtreeを使っていて壁にぶつかりました。
+ルートノード
  |_test1
   |_test2
   |_teset3
   |_test4
   |_test5
例えば、このようなツリーがあるとします。
この場合test3のインデックスを知りたい場合どうすればいいのでしょうか??
どなたかご教授お願いします。

   
502デフォルトの名無しさん:02/12/09 00:24
>>501
インデックスって何のこと?
503デフォルトの名無しさん:02/12/09 00:32
例えば、↑の例でいうと、Test3は2ということです。

私がやりたいことは、test3を消したいのです。
で、remove(int index)とやったら消えると思うのですが、
このindexの求め方がわかりません。
504デフォルトの名無しさん:02/12/09 00:58
スレ汚しすまぬ。
自己解決しますた。<<500
505474:02/12/09 00:59
>>477
>1.System.out.printlnが入ったメソッドが呼ばれていない。

>の可能性はないか?特に1.は往々にしてありがち。

ビンゴでした・・・逝ってきます(T_T)


>>478
>main(String[] args){
>  System.out.println("オマエモナー");
>}
>でも表示されないのかと問い詰めたい。

小一時間問い詰めてください(T_T)
506デフォルトの名無しさん:02/12/09 02:40
int p[] = new int[1000];
int rank[] = new int[1000];
int BOX_SIZE = Integer.parseInt(args[0].substring(0, args[0].indexOf('.')));
のように宣言した変数が、後で同クラスのメソッド内で
例えば
rank[x] = 0;
などと書いた時に、rankの元々の宣言を認識してくれてないのか、何なのか、で、動いてくれません。

これって何故でしょうか。
507デフォルトの名無しさん:02/12/09 06:01
>>506
まずコンパイル通ってんの?
順序だてて説明しろ。
>>506
モチツケ。何言ってるかよくわかんねーぞw
ここで聞いてよいかどうかわかりませんが、
JBuilder7 Personalの使用方法についての質問です。

OSはWin2000 personalで、スクロールマウスは他では正常に動作してますが、
JBuilderのソースエディット画面でスクロールしようとグリグリやっても
うんともすんとも、ピクリとも動きやしません。

調べたらJDK1.4からスクロールマウス使えるようになったそうですが、
JDK1.3でコンパイルされてる?っぽい?JBuilder7じゃ駄目なんでしょうか。

510506:02/12/09 09:49
おはようございます。
えっと >>506ですが、コンパイル通ってません。

program.java:52: シンボルを解決できません
シンボル: 変数 rank
場所 : Krus の クラス
rank[x] = 0;
^
というエラーがでます。
どういうことなんだ〜???
>>509
どこでもホイールでもむりぽ
>>509
jbWheel使うか、JBuilderをJVM1.4の上で動かせばOK。jbWheelが無難かな
513509:02/12/09 11:34
>>512
おお、jbWheelすげー。動いてます動いてます。
サンクス!
>>506
>>int rank[] = new int[1000];

int[] rank
が最近の書き方でないかな。
あと、
public int[] rank ...と書いてみてコンパイル通るかためしてみろ。
通ったら自分で原因を考えろ。
>>506
ふつーに変数スコーポだろ
516デフォルトの名無しさん:02/12/09 16:26
UNIX の diff みたいなことをしたいんですが、
どっかに Java に移植したサンプルってありませんか?
517デフォルトの名無しさん:02/12/09 16:29
UNIX の diff みたいなことをしたいんですが、
どっかに Java に移植したサンプルってありませんか?
518516:02/12/09 16:36
>517
誰?
519デフォルトの名無しさん:02/12/09 16:38
UNIX の diff みたいなことをしたいんですが、
どっかに Java に移植したサンプルってありませんか?
520516:02/12/09 16:44
>518
誰?
521519:02/12/09 18:48
>520
誰?
>>521
俺?
>>516-522
あるんだが、どいつにレスすりゃいいんだ?

>>516-522
あるんだが、どいつにレスすりゃいいんだ?
>>523-524
おい。お前は今誰にレスしたんだ?
>525
俺?
528デフォルトの名無しさん:02/12/09 22:48
>>506

>のように宣言した変数が、後で同クラスのメソッド内で
どこで宣言してんの?フィールド?

>例えば
>rank[x] = 0;

rank[x]が初期化されてない可能性大です。
配列の宣言だけでは初期化されないよ
529初心者:02/12/10 01:01
最近Javaを始めたばかりで全然できなくて困ってます。
ax+b=cまたはax-b=cのかたちの一次方程式を解くプログラムをだれか
教えていただけませんか?マジでお願いします。。。
授業の課題なのですがテキストは「やさしいJava」で、授業は
クラスライブラリのとこまでやったのでそれまでの知識でできるはず
なんですが。。。お願いしますm(__)m

x=*******;
にするだけじゃないのか?
int a = 100;
int b = 20;
int c = 222;
x = (c - b) / a;
System.out.println(x);
532初心者:02/12/10 01:34
いや、たぶん違うと思います・・・。。。
くわしくはここに書いてあります。。
http://lecture.ecc.u-tokyo.ac.jp/~chiraki/pro-8.html
開 一夫 さんにメールしました
WebProgのJAVAスレにもポストしてしまったのですが、こちらの方が
早いかもと思い、マルチポストゴメンなさい…

Tomcat4.0.4、PostgreSQL7.3から配列をキャストしたいのですが

String[][] my_Array = (String[][])rs.getArray("name");

等とすると

「この型は declaration には不適合です。
 java.lang.String[][] から java.sql.Array には変換できません。」

と言われてしまいます。SQL配列をキャストする、変換する方法ってないのでせうか?
マルチポスト厨ウザイよ。しねば?
うつだしのう
>535
ハァ?テメーが死ねよ(ワラ
538デフォルトの名無しさん:02/12/10 03:24
Java の質問なんですけど、不要になったオブジェクトって
C++ の delete 演算子のように明示的に破棄できるんですか?

初心者的質問ですみません。
539デフォルトの名無しさん:02/12/10 03:50
nullでも代入汁
>>539
オイオイ
null を代入したら即座に破棄されると勘違いされるぞ。
541デフォルトの名無しさん:02/12/10 05:15
ちょっとSQLも混じってるけど、ここで質問させてもらいます。

DBからSELECTした数字に1足して、DBにUPDATEしようとしています。
以下は、Bean内の記述の一部(UPDATE)です。

int qqq= 3;
sttSql.executeQuery(
"UPDATE sample SET count='qqq' WHERE id=1"
  );

結果、DBにはcountの中に0が入ってしまいます。
3を入れるにはどうしたらいいのですか?
DB内のcountの型はint型です。
UPDATE sample SET count=3 WHERE id=1
543534:02/12/10 06:02
>>541

"UPDATE sample SET count='" & qqq & "' WHERE id=1"
544デフォルトの名無しさん:02/12/10 06:19
>>542
いや、そういうことじゃなくて。。

>>543
レスどうもです。

試してみたのですが、エラーが出ました。

bean_count.java:42: 演算子 & は java.lang.String,int に適用できません。
"UPDATE sample SET count='" & kkk & "' where id=1");
>>541
int qqq= 3;
sttSql.executeQuery(
"UPDATE sample SET count=" + qqq + " WHERE id=1"
  );
ちなみに、0が返っているわけではなく、NULLが返っているんだろ?
APIよめ。
ってオイ、executeQuery じゃなくて executeUpdate だろ。
>>538
できない。できるのは、参照をきること。
オブジェクトへの参照が全てなくなれば、ゴミ収集日に回収されます。
>>546
だね。
>>538
hogehoge.finalize();
hogehoge = null;

これでバッチリ
>>486
32ってのが怪しいけど、、、。
DisplayModes()で取得したやつで、変えてみてできるかどうか見てみたら?
>>549
それって、hogehogeのスーパークラスのfinalize()も呼ばれちゃわねーか?
>>449
なわけない。結局はゴミ集め待ちだが?
>>503
どうやって、そのtest3を特定するつもり?
マウスで選択したらってこと?
その場合、リスナーでタイミングをとるだろ。
リスナーの引数のイベントから選択パスがとれるから、それ使って消せ。
APIにあたれ。
>>549
finalize() は protected だから普通はそーゆー事できんね。
それに finalize() ってガベージコレクタ以外が呼んでも良いんだっけ?
>>532
課題の趣旨を考えろ。
誰も一次方程式の解き方なんか聞いちゃいねぇよ。
入力文字列をどうパースするかってことだろ。
ここまでヒントやるから、あとは自分で解決しろ。
>>554
チッ
じゃあリフレクション使って Method#setAccessible(true) しろ YO!
つーかネタを (ry
557デフォルトの名無しさん:02/12/10 07:22
>>545
541っす。

>ちなみに、0が返っているわけではなく、NULLが返っているんだろ?
>APIよめ。

すまん。そのことは理解してたんだけど、まだjava始めたばっかだから、
0と表現してしまった。

とりあえず、できたよ!ありがとう。
558デフォルトの名無しさん:02/12/10 08:33
強制的にゴミ収集してもらいたかったら
System.gc();
これで即座に破棄される。
559!1-558:02/12/10 08:58
解決しますた。
>>558
>これで即座に破棄される。
なるべく早く回収してね♪じゃなかったっけか?
Javaで簡単なアプリケーションをつくって、shockwaveプラグインを
表示したいのですが、どうやればいいのでしょうか?
よくアーティストのCDの付録でCで書いた、ShockwaveやQuicktimeなどで
プロモーションビデオの再生や簡易ゲームが表示できる簡単なソフトがついてい
ますが、あれのJavaバージョンです。
本にはFlashなどのプラグインの導入はそれほど難しくはないと書いてあっただけで
具体的にどうするのかは書いてありませんでした。
宜しくお願いします。
>>561
「簡単なアプリケーション」をWebアプリケーションにすれば
ふつうにHTMLにうめこむだけですね。
563デフォルトの名無しさん:02/12/10 12:03
わかる人、おすぇてぇ〜。

いきなり、最初でつまづいてます・・・。
サーブレットを学んでいます。
本に書いてあるとおりに指定のフォルダに作成したjavaファイルを置いて、
プロンプトからコンパイルすると、↓エラー(一部)が出ます。

rrv_intro.java:5: シンボルを解釈処理できません。
シンボル: クラス HttpServlet
位置 : srv_intro の クラス
public class srv_intro extends HttpServlet {

コードの内容は、予めCD-ROMにあるサンプルファイをそのまま
コピペしたので間違えてないです。
もしかしたら、サンプルファイルのそのファイルだけ、間違ってると
思ったので、他のサンプルファイルで試してみたのですが、
やっぱりうまくいきません。
前に試したときは、うまくいったのに、サーブレットをコンパイルしようと
するとたまにこういうことがあって、なぜコンパイルできないのか
考えているのですが、わからないです。
>>563
CLASSPATHが通ってない。
いじょ。
>563
classpathのパス名にスペースがあるのに、""で囲っていない
566デフォルトの名無しさん:02/12/10 13:18
Socket接続したStreamからreadLine()をスレッド中で呼んでいるのですが、
スレッドを停止するのにSockt.close()でreadLine()からIOExceptionを
throwさせてcatchしています。

スレッドを停止するのに他にいい方法はないでしょうか?
567初心者:02/12/10 13:25
サーバサイドのプログラミングで煮詰まってます。
ユーザが指定した検索条件から検索結果を表示するページを作成しているのですが、
検索結果が複数ページになった時、前のページ・次のページ等の
リンク(検索処理のURLに"?index=n"を付加)で移動させる為、
検索条件をscope="session"のbeanに格納する事にしました。
が、何故か次のページのリンクをクリックした時、
格納されていた筈のbeanのプロパティの値がnullになってしまいます。
何故でしょうか?
学習する時間が無いまま開発に入っていますので、
基本的な事が抜け落ちている可能性もありますが、
何か思い当たる事がありましたら、よろしくお願いします。
>>566
Socket#setSoTimeout() セットしてループしながらデータ読み込み。
停止する側から Thread#interrupt() で割り込み。
569566:02/12/10 14:23
>568
やってみたんですが、Socket#setSoTimeout() の変更が利きませんでした。
なぜだろう?こんな感じでやったのですが。
class reader extends Thread{
...
run(){
 while(flag)
  try{
   String data= buffer.readLine();//bufferはsocketに接続
   System.out.println(data);
  }catch(Exceptione e){
   flag=false;
  }
}
...止めるルーチン
 socket.setSoTimeout(1);//readerのbufferはsocketに接続
 reader.interrupt();
socketを維持したまま、スレッドを止めたいのです。
Javaを始めて1週間の初心者なので、すみません。
570566:02/12/10 14:27
すみません。上のは
class Reader extends Thread
....
止める側
Reader reader = new Reader(
です。とりあえず、BufferedReaderやInputStreamの仕様を
もっと読んでみます。
571566:02/12/10 14:29
またまたすいません。>569のSocket#setSoTimeout() の変更は、
次回入力では利いていました。
>>569
ちがう。スレッドに割り込みが掛けられていないか定期的に確認するために
setSoTimeout() を設定して I/O ブロックを抜けれって意味。

public void run(){
  Socket socket = new Socket("www.2ch.net", 80);
  socket.setSoTimeout(1000);
  InputStream in = socket.getInputStream();
  byte[] buffer = new byte[1024];
  while(! this.isInterrupt()){
    try{
      int len = in.read(buffer);
      System.out.print(new String(buffer, 0, len));
    } catch(InterruptedIOException ex){/* */}
  }
  return; // クローズとかは自分でヤレ
}
573561:02/12/10 14:57
>>562
それはswfファイルを<object>タグでHTMLファイルにHTMLで埋め込めばいいという意味でしょうか?
いろいろカスタマイズしたいのでできればアプリケーションとして独立させたいのですけど、なにかやり方をご存知でしょうか?
ちなみにswingで<object>タグで埋め込んでみても何も反応はありませんでした。
574566:02/12/10 15:06
>572
どうもありがとうございました。要するに、readLineは使うなということですね。
オライリージャパンのJava ネットワークプログラミングを今よく読んでいたら、
readLineは使うなということが書いてありました。本に改行処理のコード
も書いていたので、572さんのコードと組み合わせてやってみます。

ほんとうに、ありがとう
575デフォルトの名無しさん:02/12/10 15:38
Webアプリケーションに関する質問です。

同一の JVM 上で複数のweb-appを動かしている場合、
例えば「/abc」というコンテキストに属するクラスを
「/def」コンテキストのクラスから使用することは可能
なのでしょうか?
次のような構造の時に、AクラスからBクラスを使えるか
ということです。宜しくお願いします。

/abc
  /WEB-INF
    /classes
      /net
        /2ch
          /abc
            /A.class

/def
  /WEB-INF
    /classes
      /net
        /2ch
          /def
            /B.class
>>573
IEコンポーネントをSwing上で使えるようにがんばってみるとか。
>>575
クラスパス通ってるならできないと困ると思われ。
578デフォルトの名無しさん:02/12/10 17:35
>>563で質問した者ですけど、ご指摘のとおり、
CLASSPATH=.;c:\j2sdk1.4.0\jre\lib;c:\j2sdk1.4.0\lib;c:\j2sdk1.4.0\lib\tools.jar;"C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar";"C:\Program Files\Apache Tomcat 4.0\webapps\jsp10\WEB-INF\classes";
として、classpathのパス名にスペースがあるので、""で囲みました。
で、再起動して、再び、
C:\Program Files\Apache Tomcat 4.0\webapps\jsp10\WEB-INF\classes
にあるjavaファイルをコンパイルしたのですが、まだ同じ
エラーがでます。""の囲み方が間違ってますか?
579デフォルトの名無しさん:02/12/10 17:46
JDIまたはJPDAについて分かりやすい解説のあるHPを教えろ。
580デフォルトの名無しさん:02/12/10 18:31
EditorPaneを使って、簡単なブラウザを作ってみたんだけど、
ときどきエラーが出てくる。

java.lang.NullPointerException
at sun.net.www.http.KeepAliveStream.close(KeepAliveStream.java:63)
at java.io.FilterInputStream.close(FilterInputStream.java:159)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close
(HttpURLConnection.java:1283)
at java.io.FilterInputStream.close(FilterInputStream.java:159)
at javax.swing.JEditorPane.read(JEditorPane.java:514)
at javax.swing.JEditorPane$PageLoader.run(JEditorPane.java:551)

これって、どんなエラーなのか教えれ。
おながいします。
582デフォルトの名無しさん:02/12/10 19:59
>>578誰かわかりませんか?
何かお気づきの点がありましたら、お願いします。
583JAVA初心者のCOBOLERr:02/12/10 20:24
>>580
漏れも同じようなものを作ってます。
ページの取得は多分GETPAGE(URL)で行ってると思うんだけど、
これの読み込み速度に回線の速度が追いついていないんじゃないでしょうか。
解決策は…どっかにバッファとしてURLからの入力ストリームを溜めておいて、
読み込みが終わったら一気に描画するとかでしょうか…。
言ってる本人もよく判ってないのですが(゜Jし゜)
584デフォルトの名無しさん:02/12/10 20:43
一定周期で何かする、というルーチンをどうやって組ンでます?

例えば10秒周期でhoge()を実行する無限ループ、とかだと
for(;;){
 hoge();
 sleep(10000);
}
なンて書き方だと、hoge()の処理時間分だけ
どンどン周期がずれていくから、一日経つと
結構ずれるンだよね。
hoge()の実行時間が一定ならいいンだけど・・・

やっぱ、いちいちカレンダーを見るしかないンでしょうか?
タイマー
>>585
(゚∀゚)サンクスコ
探してたのはまさにコレだった
>>578
CLASSPATHだけど、以下のでいいんじゃない?
"もいらないよ。XPだけど、"で囲んでないよ。
CLASSPATH=.;c:\j2sdk1.4.0\lib\tools.jar;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar
588デフォルトの名無しさん:02/12/10 21:58
java.lang.clone()を使おうとしたら
コンパイルエラーで
The method clone() from the type java.lang.Object is not visible
と出ます。
オーバーライドしているクラスでは
publicで宣言しているのですが・・・
public Object colne() {
try{
return super.clone();
}catch(Exception e) {
return null;
}
}

というか、Clonableをimplementするだけでいいんですね・・・
589デフォルトの名無しさん:02/12/10 22:02
>>587

ありがとう。試してみます。
当方、98SEです。
590デフォルトの名無しさん:02/12/10 22:08
>>587

だめでした。
となると、クラスパス以外に何か原因を考えた方が
いいのでしょうか。わからんです。。
>>590
ほんとにservlet.jarのパスあってる?
コマンドラインの引数でコンパイルしてみたらどうかな?

javac -classpath ".:C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar" *.java
javac -classpath ".;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar" *.java

:と;間違えた。
593588:02/12/10 22:30
で、誰か
The method clone() from the type java.lang.Object is not visible
が出る理由わかりませんか?
>>593
cloneがprotected
>>593
もちろん、API見てから書いてるんだろうな。
もう一回読んでみな、書いてあるから。
596デフォルトの名無しさん:02/12/10 22:52
>>594
じゃあ、clone()ってどうやって使うんだ?
意味ないじゃん。
>>596
オーバーライドする。
>>596
子クラス作って権限緩和。
599デフォルトの名無しさん:02/12/10 22:55
>>597
protectedをpublicでオーバーライドできなかったような・・・
>>600
できるよ。
答えはそこじゃないのに、、、。
マニュアル読めって、、、。
>>599だった。つい、キレがいいので間違った。
602デフォルトの名無しさん:02/12/10 23:00
>>588
のところに書いてある通りでできるけど
603588:02/12/10 23:32
再起動したらできました
IDEのバグですかね・・・

レスどうもです。
604デフォルトの名無しさん:02/12/10 23:50
>>591
ありがとう。
教えてくれた
javac -classpath ".;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar" *.java
のコマンドでコンパイルすると上手くいくみたい。
一部、変なコンパイルエラーがでるファイルがあったけど。
やっぱり、servlet.jarのパスが通ってない見たいですね。
cドライブ直下にある「Autoexec.bat」ファイルを直接いらわずに
システム設定ユーティリティのAutoexec.batタブから
パスの編集したんだけど、どうもうまくいかないみたいです。
鉛筆みたいなマークが出てるのが気になるけど、それは関係ないかな?
そこでいろいろパスを指定してるようだったけど、
順番とか考えずに、classpathって項目を勝手に作ってしまったけど
いいのかな?
最初は「Autoexec.bat」から編集してたんだけど、どんどん汚いファイルに
なってきてるけど。。
>>604
Antの使い方を覚えよう!
システムの環境変数はあまりいじらない方がよろし。
606デフォルトの名無しさん:02/12/10 23:57
>>604

システム設定ユーティリティのAutoexec.batタブから編集しようと
したんだけどそれでいいんだよね?

Antってなんですか?

>>604
悪いこと言わないから、本気でやるんだったら
ant使っておいた方が良いと思う。
>>606
antについては検索して。

別にautoexec.batはメモ帳かなんかで編集すれば良い。
autoexec.batを編集して再起動してるのか?
>>580
前スレ辺りで似た話題あり。

>>604
皆の言うとおり、Antを使うか(おすすめ)、
バッチファイルの使い方がわかるのであれば、
Dosプロンプト起動時にCLASSPATHを作っておいたバッチファイルから
読みこませたりすると、Autoexec.batが汚くならない。
つーか知らないと結構弊害が出てくるようになってるんじゃない。
隣のやつが苦戦してた。
612デフォルトの名無しさん:02/12/11 00:29
>>608

そうです。最初は、直接、書き込んでそれから再起動してました。

>>607-610

ant有名なんですね。610のリンクも参考にさせてもらうよ。
antなんか聞いたことなかったよ。
プログラマやるには覚えることいっぱいあるんだな。
皆はどれくらいでJAVAを使いこなせるというか
苦手意識がなくなったというか、仕事として、プログラマ
やっていけるようになった?
早く上達するには何に注意したらいいかな?
細かな文法の意味は、ほとんど覚えないで、
本見ながらとりあえず組むみたいなプログラムの書き方で
こんなことしてたら、あとあと伸びないかもと思い始めてる。
>>612
個人的な意見だが、
ガタガタ言わず、とにかく速度優先で作りたいものを作る。
理論は後からついてくる。
ハマる量が多ければ多いほど、力になる。

ただし、入門書はとりあえず読んだけどね。
>>576
SWTだとIEコンポーネントを使うのは簡単だけどね
615デフォルトの名無しさん:02/12/11 00:50
>>613
あー、そうなの!?
てっきり、何も考えずに先すすむとあとで壁にぶちあたるみたいな
話があると思ったんだけど、そういう意見もあるんですねん。
>>613
激しく同意。結局本ばっかよんでる奴はプログラムも書かずこんなところで揚げ足取るだけで終わる。
ハマらないと、なぜそれが必要なのか結局理解できない。
WeakReference、listenerリークの回避、poolingなど。
>>615
まず、壁を体験しろ、ということです
>>613,616
うんうん。
いろいろ作っている過程で必要なことが腐るほど出てくるからそれを調べて覚えるのが楽だし、理解が速いと思う。
>>614
どうやって使うの?
>>620
SWTスレへ行け
622デフォルトの名無しさん:02/12/11 02:27
com.oreilly.servlet.MultipartRequestの質問なのですが
どなたかわかりますでしょうか?

MultipartRequest multiRequest =
new MultipartRequest(request, tmpdir.getPath());

・・とすると以下の例外がでます


javax.servlet.ServletException: サーブレットの実行により例外を投げました
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
 :

root cause

java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:109)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:89)
    :
>java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
書いてあるジャン

com.oreilly.servletの.jarはどこに置いてる?まさか jre/lib/ext とかじゃないよな
624デフォルトの名無しさん:02/12/11 15:45
先生!質問!

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

 Hoge() {
  ...
 }
}

みたいな感じで、
mainメソッドにはインスタンス生産だけしか書いておかないっていうのは、多用していいの?

上の書き方のほうが普通にmainメソッドに書いてくよりは便利かな〜と思ったから聞いてみまひた。
>>624
ちっさなさンプルソースか?せめて、
new Hoge().doSomething();

pvivate void doSomething() {
}
にしとけ。
>>625
627デフォルトの名無しさん:02/12/11 16:37
PERLにおける前方参照
/(\w)dad(\w)/
の$1をゲットしたいんだけどどうやるの
>>627
group(1)
629624:02/12/11 16:52
>>625
レスどうもです。

うっとおしいとは思いますけど、
何故そのようにしたほうがいいかを教えていただけると、なるほど!と思えるんで、
教えてくらさい。

×pvivate
○private
630デフォルトの名無しさん:02/12/11 16:56
>>630
ああ、maches()唱えてからじゃないと取り出せないから注意してね。
632デフォルトの名無しさん:02/12/11 17:36
>631
findでもGETできたYO!
引数 int[] data でメソッドに渡されたものを、そのメソッド内で data[i].byteValue(); とかやると
cannot be dereferencedと怒られますが、これは何故なんでしょうか?
(int[]をbyte[]に変換する手段は無いのかな・・・)
634624:02/12/11 19:19
>>633
(byte)でいいんじゃないんですか?

>>625
…ニゲタ?
635624:02/12/11 19:22
>>634
うわっ。なんか違うっぽい。
>>633さん無視してくらはい。よく読んでなかった…。
>>634
いや、そう大きく間違ってはないと思われ。

>>624
Hogeの初期化だけで動くものならもちろん多用してOKだと思うよ。
HogeがたとえばGUIアプリのメインフレームとかならよくあるパターンだと思う。

逆にHogeの初期化以外の処理をHogeのコンストラクタに書く必要があるときは
スマートじゃないと思う。
いま思いつく例だとコマンドラインオプション文字列の解析とか。
638624:02/12/11 21:49
>>637
回答ありがとうございます。
なるほど!と思いました。(・∀・)
639デフォルトの名無しさん:02/12/11 22:42
コンパイラのダウンロードの仕方教えて下さい。
>>639
ダウンロードするコンパイラのURLをブラウザに入力してエンター
641デフォルトの名無しさん:02/12/11 22:53
サンは英語ばっかっりで解らないんです。
>>641
戦う前から負けています。以上。
643デフォルトの名無しさん:02/12/11 23:01
>>642
え、まじで?
>>643
JBuilderには古いJDK付いてくるけど?
645643:02/12/11 23:03
JDK=SDK
なの?
>>645
戦う前の前から負けています。
647デフォルトの名無しさん:02/12/11 23:06
>646
げ、マジ?
冗談でしょ?
>>647
正直、さじを投げた。
適当な入門書くらい読んでからきてくれ。
丸腰じゃ戦えん。
649デフォルトの名無しさん:02/12/11 23:10
>>648
えーー。
そりゃないよーー。
つきあっちくらはい。
>>647
 >>10の上から3番目をクリック汁。
>>649
よく考えたら昔俺も英語苦手だったわ。
だから>>651に書いとく。がんばってくれ。
後、入門書くらいはほんと読んでください・・・。
653デフォルトの名無しさん:02/12/11 23:25
>>652
ええーーー。
654デフォルトの名無しさん:02/12/11 23:29
JREって何?
これだけでも教えてくらはい。
SDKの方ですよね?
>>654
もう死ね。それでいいじゃん。
VBのランタイムみたいなものだ>JRE
誰か別ネタふれよ
>>656
マジ?ダサッ
659デフォルトの名無しさん:02/12/12 00:10
マジ話、なんでJ2SDKインストールするとJREまでインストールされるのかわからん。
LIBをJREにインストールしたいなれj2sdkフォルダにもわざわざインストールしてくれるなと思うが・・

660デフォルトの名無しさん:02/12/12 00:18
>>623
java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:109)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:89)
・・・だからcom.oreilly.servlet.MultipartRequestは識別していると思ったのですが・・
cos.jarは手当たり次第に
j2sdkのlib/ext
jreのlib/ext
Tomcat4.1のcommon/lib
Tomcat4.1のserver/lib
にいれたけどダメでした・・なぜ!?(*_*)
>>660
>java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
思ってるだけですね。クラスパス通す。
例外を出しているのは、
javax/servlet/ServletRequest になっていますよ。落ち着いて。
663デフォルトの名無しさん:02/12/12 00:43
>>662
落ち着いてもわからないワタクシ・・・コード見直しても悪い箇所ないっぽいし・・あるんだろうか?もう一回みてみよ・・
664ほげ:02/12/12 00:57
文字列FFを数字256に変換する関数ありますか?
digitは調べたのですが、charで入力しなければならないので、F,Fは16,16と表現されます。後で掛け合わせて計算してもよいのですが、
楽な方法ないかなって思いまして。
665デフォルトの名無しさん:02/12/12 01:00
1バイトの上位(又は下位)4ビットを2進数で参照するにはどうすれば良い
ですか。
例えば上位4ビットが1111(2進数)ならOKとかしたいのです。
汚いコードですまん。
BigInteger b = new BigInteger("FF", 16);
return b.intValue();
>>665
保守性を考えないのなら〜 &の論理和でGo〜
>>666
Integer.parseInt("FF", 16);の方が良い。
669665 :02/12/12 01:08
667さん、もう少し具体的にお願いできませんでしょうか?
すいません。m(__)m
670ほげ:02/12/12 01:19
>>666,668ありがと。
あとchar型の配列をstringに直すにはどうしたらよいのでしょうか。
671ほげ:02/12/12 01:28
ごめん、String hoge=new String(Char[] char);
でいけた。
672665:02/12/12 01:31
誰か私の質問よろしくです。m(__)m
673デフォルトの名無しさん:02/12/12 01:47
昨日からcom.oreilly.servlet.MultipartRequestの質問をしてる者ですが・・
ようするにHTMLからファイルをアップロードできればいいのですが
みなさんはどうやってやってますか?
JavaMailとか使った方が一般的ですか??
>> 665
boolean hoge( byte b ){
 return ( (b & 0xF0) == 0xF0 )
}
これじゃだめ?
ツーかこれなにやってるかわからないなら、>>2-20参照汁
675 ◆F52DmOxJlc :02/12/12 02:42
>>665
ここ読んでみ。下の方にサンプルもある。
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/bitwise.html
たとえば 169 & 240 は次の通り。

 10101001
& 11110000
---------
 10100000
>>673
servlet.jarをロードしたクラスローダよりも上位のクラスローダがcom.oreillyを読み込んでいるからそうなる。
→javax.serveltからはcom.oreillyが見えるが、com.oreillyからはjavax.servletが見えない。

>cos.jarは手当たり次第に
これが最悪。
手当たり次第に置いたファイルを*全部*削除して、WEB-INF/lib だけに入れとけ

だいたいcom.oreillyなんてパッケージよく使う気になるな。あれはオライリ本買わないと使えないぞ。
ファイルアップロードなら検索すればサンプルがでてくるだろうに。
677288:02/12/12 07:37
CJK互換漢字をJavaMailを使ってISO-2022-JPで送るにはどうしたらよいでしょう?

MimeMessage msg = new MimeMessage(session);
....
String message = " ア リ X ^ u } ~ ゥ ア ウ エ キ モ レ I ";
msg.setText(message,"ISO-2022-JP");
Transport.send(msg);

こんな漢字に送るともう化け化けです。
>>677
自分でエンコードする・
679デフォルトの名無しさん:02/12/12 09:40
メソッドのstatic、非staticって奴は何によって決まるのでしょうか?
>>667
&の論理和って何?意味不明。
age
>>679
staticを使うか使わないかだと思ふ。
683677:02/12/12 12:09
>>678
自分でISO-2022-JPに変換するってことですか??
ちょっとそれはいきなり難しくないですか??

>>679
そのメソッドがインスタンスを必要とするかだろ。

必要としない場合でも、オーバーライドできるようにしたい場合や、
どちらがいいか悩むくらいなら迷わず非static。
685682:02/12/12 12:26
>>684を見ると、自分の読解力の無さがよく分かる…。
鬱。
686デフォルトの名無しさん:02/12/12 15:32
servletではなく、
classから、JSPをdispatchするってことはできるのでしょうか?
687デフォルトの名無しさん:02/12/12 17:12
>>686
マルチポスト氏ね
688デフォルトの名無しさん:02/12/12 19:52
スレッドを停止、開始を行うにはどういった方法がBESTですか?
>>688
wait,notify
690デフォルトの名無しさん:02/12/12 20:12
>>689
ありがとうございました。
それにフラグ一つつけてあげればできそうです。
691689:02/12/12 20:22
>>690
synchronizedも忘れずにチェックしなされ
忘れてました・・・
仕方ない、今日はこれ調べよう・・・
https://211.10.75.189/k-sfa/index.jsp
このページ、i-mode N503iで表示されません。
P504i では表示されるのですが、
表示させる方法をお分かりの人がいたら、教えてください。
サーバー構成は、Apache+SSL(Apache1.3.27 OpenSSL0.9.6g) です。
↑ブラクラ
695初心者:02/12/12 22:41
GOUKEI 2
0 4
0.1 0.2 0.3
0.4 0.5 0.6
0.7 0.8 0.9
1.0 1.1 1.2
1 6
0.1 0.2 0.3
0.4 0.5 0.6
0.7 0.8 0.9
1.0 1.1 1.2
1.3 1.4 1.5

たとえばこのようなファイルがあり
GOUKEIの隣の2がすべてのオブジェクト数を表しているとします
次の行の0 4ってのが1個目のオブジェクトで[4][3]の行列を用意、
その次がデータで
その後にある1 6が2個目のオブジェクトが[6][3]の行列を用意してます
4や6などこれはnumberとしてます。
それで実際はGOUKEIの隣の数もファイルによって違い、オブジェクトの
中身も違ってきます。

続く〜
696初心者:02/12/12 22:41
続き〜

double kekka[][];
int number;
....
//とりあえずgoukeisuu(ここでは2)を最初に読む
for(int i=0;i<goukeisuu;i++){
//i番目のオブジェクトのnumberを読む
kekka =new double[goukeisuu][3];
for(int a=0;a<number;a++){
//nextToken()やnvalなど使って1行づつ読み、以下の三つに入れていきました
kekka[a][0]=...  //1番最初だと0.1が入る
kekka[a][1]=... //1番最初だと0.2が入る
kekka[a][2]=... //1番最初だと0.3が入る
}
}
このような感じで作っていくとkekkaの配列にはgoukeisuu回ほどnewを繰り返してしまうので
ここの例でいうと[6][3]の最後のデータしか残りませんよね?
本当は
kekka0は[4][3]の領域確保してデータを入れる
kekka1は[6][3]の領域確保してデータを入れる
みたいに別々に保持したいんですがここでどういう書き方をすればいいのかわかりません
newのところを kekka(a) =new double[goukeisuua][3]
みたいな感じにしたいんですがなにか良い方法とかありましたらお助けください。
よろしくお願いします。
697デフォルトの名無しさん:02/12/12 22:44
必要な領域を確定させてから生成。
>>695-696
オブジェクトにした方がいろいろ良いと思うけど、
どうしても配列でやりたいなら、以下のような感じだよ。
Javaの配列は、特殊なオブジェクトであることを利用するのさ。

Object[] array = new Object[goukeisuu];

for (int i = 0; i < goukeisuu; i++) {
//i番目のオブジェクトのnumberを読む
double[][] rec = new double[number][3];
for (int j = 0; j < number; j++) {
rec[j][0] = 1;
rec[j][1] = 2;
rec[j][2] = 3;
}
array[i] = rec;
}



で、使う場合は、例えば以下のようにして
目的の配列を取り出せばいいよ。

double[][] anyrec = (double[][])array[1];
System.out.println(anyrec[5][2]);
>>700は、

double[][][] array = new double[2][][];

としても同じだけど、3次元のまま使うのはおすすめできない。
701初心者:02/12/13 00:13
>>699
丁寧にありがとうございましたっ!!
さっそくやってみます
ありがとうございました
>>665は、zoneBCDのヤシとは別人?
もし同じだったら、>>284は参考にならんかった?
703デフォルトの名無しさん:02/12/13 01:13
他スレから誘導されました。

private int DatagramSocket ds;
って宣言の仕方おかしいですか?

Eclipseをつかっていまして
トークン"ds"に構文エラーがあります。正しくは";","."です。と表示されますが、
どういうことでしょうか。

704703:02/12/13 01:15
あ、解決しました。
スマソ
705デフォルトの名無しさん:02/12/13 06:01
Javaの参考書で勉強しているんですが、その中のソースで
ちょっと疑問に思ったことがあったので質問させてください。

public class DBAccess {
/* 〜中略〜 */
// DBから書籍情報を取得する
static BookData getBook(String primary_key) {
BookData bk = null;
// 書籍オブジェクトを生成して、書籍情報を格納する
bk = new BookData();
/* 〜中略〜 */

// 生成した書籍オブジェクトを返す
return bk;
}
/* 〜中略〜 */
}

これを他のクラスから
BookData bk = DBAccess.getBook(primary_key);
として呼び出します。

ここで思ったのですが、DBAccess.getBook()の戻り値である
BookDataオブジェクトはDBAccess.getBook()内で宣言されたものです。
ということは、
BookData bk = DBAccess.getBook();で
bkにBookDataオブジェクトのアドレスが渡されているのだとすれば、
C言語流の考えだとBookDataオブジェクトはDBAccess.getBook()内で
宣言されたオブジェクトですから、DBAccess.getBook()を抜けた時点で
解放されてしまう可能性がありますよね。

ここのところどうなってるんでしょうか・・・。ご存じの方お願いします。
706705:02/12/13 06:28
ああ、なんか自己解決かも (ノД` ;)
static宣言してるから解放はされませんね・・・。
ごめんなさい。

質問を変えます、
BookData bk = DBAccess.getBook(primary_key);
ここで参照ではなくオブジェクトのコピーをbkに渡したい場合どうしたらいいでしょうか?
>>705
まず、705の方。Javaでは強い参照が残っているオブジェクトは解放されない。
オブジェクトを受け取った方がそのオブジェクトに対して、強い参照を持っている。

706の方。Javaの場合、複製をサポートしていないクラスは複製することはできない。
708デフォルトの名無しさん:02/12/13 07:09
>1
なんで基本的にsage進行なんだ.あほか.
>>705
参照と実体の区別を意識した方がいい。staticか否かは関係ないよ。
C流に言うならnewはmallocと同じ。
BookData bk という変数はDBAccess.getBook()メソッドの中でのみ有効で、
そのメソッドが終了すると無くなるけど、
bkが参照しているBookDataオブジェクトはgetBook()終了後も生き続けます。
mallocでメモリリーク起きるようなもの。ただし、Javaではどこからも参照されなく
なったオブジェクトは自動的にそのうち廃棄される。
getBook()メソッドでは毎回別のBookDataオブジェクトを作っているので、
以下のコードを実行すると"違う"と表示される。
BookData bk1 = DBAccess.getBook("a");
BookData bk2 = DBAccess.getBook("b");
if( bk1==bk2){
 System.out.println("同じ");
} else {
 System.out.println("違う");
}
>>705
基本的に、returnで返される値は呼び出し元に戻るまで、
参照が維持されているから、GCの対象にはならないよ。
言語仕様を見てくれ。

>>706
Javaでは、複製は自分で実装することになっている。
基本的に、Cloneableをimplementsして、
clone()をオーバライドするわけだが、super.clone()で
すむと思っているヤシもいるようだけど、
そのオブジェクト固有のフィールドは自前で複製を
作る必要がある。その際、浅いコピーにするか、
深いコピーにするかちゃんと考える必要がある。
フィールドがStringとか値が書き換わらないオブジェクトなら、
浅いコピーで十分だが、setterで値が変更されてしまうような
フィールドは、影響度を検討して、深いコピーにするかどうかを
決める必要がある。

>>709
同じ値として扱うことも可能だよ。
その場合、equals()とhashCode()をオーバライドすることになる。
そのような例としては、Stringなどが代表的だね。
>>709
ごめん、コードをよく見てなかった。==で判定の場合はそうだね。
メモリ上の別な場所を参照しているから当然違うね。
JavaにはGotoはないのかよ!!
>>712
なんの為の例外処理なんだ・・・
>>713 (゚Д゚)ハァ
>>713
本来の使い方ではない&完全なGOTOの代替にはならない。バックジャンプできないし。
716705:02/12/13 11:57
>>709
>>710
なるほど、要するに生成されたオブジェクトはどこからも参照されなくなるまで
廃棄されないってことですね。
丁寧な説明どうもです。すごく助かりました。
717デフォルトの名無しさん:02/12/13 12:15
Win98SE + JDK1.3.1 です。

Frame を幾つか開いていると、
時折、モーダル Dialog が出ているかのように GUI に対する反応がなくなります。
このときには Windows の wav も鳴ります。(Toolkit の beep の時と同じ奴)
Frame は、継承しつつ内部に WindowAdapter を持っている奴ですが、
酷くなると単純に main から Frame を表示するプログラムさえ同様の症状に遭います。
表示させるときは show を使っていますが、setVisible でも起こります。

これは何かのバグでしょうか? 作法のようなものが必要でしょうか?
お教え下さい。
718717:02/12/13 12:21
追加情報を。症状が出ている間は、
Alt + Tab のリストに、無反応な Frame が含まれなくなっています。
>>718
ごちゃごちゃ言わんとソース出した方が早くないか?
720717:02/12/13 13:54
一度起こるとこれでも起こるようになるんです。

import java.awt.*;

public class Tes {
public static void main(String[] args) {
Frame f = new Frame();
f.setSize(200, 120);
f.show();
}
}

WinMe の PC でもたまに起こっています
713は中卒
>>712
ラベル付breakもあるでよ
723デフォルトの名無しさん:02/12/13 15:33
>>721
多重にネストしたループから脱出するためのbreak,continueのラベル移動以外で、
goto使う必要なんてあんの?
724デフォルトの名無しさん:02/12/13 17:41
notify(),wait()を使ってスレッドの停止、再開を行う場合は
スレッドが一つしかない場合では停止はできても再開はできないのでしょうか?
キー入力でそれを実現したいのですが・・・
>>724
>キー入力でそれを実現したいのですが・・・

???
>>724
そらそうだな。キー入力待つ奴を別スレッドにするしか。

っていうか空ループとかじゃだめなの?
>>726
そのてがあったかあぁぁぁ!!!!!!!!!
ありがとうございました。早速試してみますね。
728デフォルトの名無しさん:02/12/13 19:34
どなたかjava.awt.MenuBarの背景色の変更の仕方を教えてください。
出来ないのなら出来ないといってください。
730デフォルトの名無しさん:02/12/13 19:58
Jtreeで最初から子ノードが展開された状態で表示したいのですが
どうすればよろしいでしょうか?
731デフォルトの名無しさん:02/12/13 21:27
>>729
それはもう見ました。
それっぽいメソッドがないんで、何か他に方法が
あるのかと思って聞いてるんです。
わかるんなら教えてください。
てゆーかその中に変更する方法があるんですか?
答え知っててそのリンク貼ってんの?
>>731
>それっぽいメソッドがないんで、何か他に方法があるのかと思って聞いてるんです。

できないことをわざわざ書く奴はいない。アホか。と。
733デフォルトの名無しさん:02/12/13 21:53
>>732
まじで出来るの?
何回読んでもわからないんですけど。
親クラスにも見当たらないし。
勿体つけないで教えてください。(とか書くと教えないんだろーなー)
てか出来ないんでしょ?
>>733
日本語理解できない人には無理です。
>>733
>>732できないって言ってるじゃん。
736デフォルトの名無しさん:02/12/13 22:05
質問です
アクションリスナを載せた内部クラスで
初期化した変数を別のクラスに参照渡したいのですが
どうしたらいいんでしょうか?宜しくお願いします。
IEのツールバーにある戻るボタンのように履歴を実装したいのですが、
何か参考になるものがあったら教えてください。
>>737
Vector
739デフォルトの名無しさん:02/12/13 22:21
クラスパス上に有るクラス一覧を
取得する方法はないでしょうか?
パッケージとインターフェイスのみがわかっている状態で、
そのインターフェイスを実装するクラスをすべて
取得したいのです。
宜しくお願いします
>>739
環境変数読んでそのディレクトリFile#findで列挙すれば?
74177:02/12/13 22:37
最近迷惑メールの中で差出人が自分になってることが多いのですが、それはどうなってるのですか!?
なんか業者はそうなるようなコマンドとかスクリプトとか使ってるのですか?
からくりを教えてください!!
       
>>741
FROMは自己申告。アホか。
配列についての疑問なんですが・・・。

int[] test = new int[3]; とやってから適当な数値を3つ放り込み、
classA.hoge( test ) で classAの中にある

public void hoge(int[] data ) {
    System.out.println( data.length ); }

を呼び出すと、3 が表示されるかなと思ったんですが、出てきたのは 13。
呼び出す前はちゃんと 3 なのですが、何故なんでしょうか・・・。
744 ◆F52DmOxJlc :02/12/13 22:49
>>743
ちゃんとできるよ。あなたのソース見せて。

import java.util.*;

public class hoge {
 public static void main (String args[]) {
 int [] test = new int[3];
 for (int i = 0; i < 3; i ++) {
  test[i] = i;
 }
 System.out.println(test.length);
 hero hero1 = new hero();
 hero1.moe(test);
 }
}

class hero {
 public void moe (int [] data) {
 System.out.println(data.length);
 }
}
745デフォルトの名無しさん:02/12/13 22:49
>>743
ありえん。
746739:02/12/13 22:59
>>740
その方法も考えたのですが、jarとかwarになったときに・・・
でもjava.util.zipを使えって話にもなりそうだが・・・
やっぱり外部ファイルにクラス名を記述するのがいいのかな
>>746
>jarとかwarになったとき

はクラスパスにファイル名まで指定しなくてはいけない。よって問題なし。
748739:02/12/13 23:03
>>747
ん?結局はやっぱりzip解凍してクラス取得ですか?
749デフォルトの名無しさん:02/12/13 23:04
>>730誰かこたえてー。
750743:02/12/13 23:14
>>744-745 ありがとうございます。
すみません、13じゃなくて、3にデバッグ用の文字がくっついてたようです。
お騒がせしました・・・ケーブル抜いてルータ投げて逝ってきます。・゚・(ノД`)・゚・。
>>750
PCは下記住所に送ってくれ。大事にする。
>>740 環境変数だと実行系依存するから危なそう。システムプロパティのほうが
まだましっぽいけど、例えばSunのJ2REだとjava.class.pathにはユーザクラス
パスしか入っていなくて、ブートストラップクラスパスとかはsun.boot.class.path
に入るからこれまた実行系依存だね。だから例えばBeanShellなんかがクラスを
探す方法はSunのJ2REに限定してたきがする。なにか汎用的な方法があったら、
私も知りたいので誰か教えて。
753デフォルトの名無しさん:02/12/13 23:21
なんかこのままスルーされそうなんで
>>736を宜しくお願いします。
>>753
つぅか意味不明でみんな無視を決め込んでるだけかと。
>>753
「内部クラス」と「他のクラス」を具体的に示したほうが分かりやすいと思う
>>752
こういうのってjakartaあたりで作ってないのかな。
757デフォルトの名無しさん:02/12/13 23:31
>>754-755
なるほどwすみませんでした。例えば
class A{
int i;
---
class B implements ActionListener{
---
i=100;
}
のiを別クラスのclassCで使いたいのですが…
初心者なもんでこれ以上うまく説明できないので
理解できた方は翻訳お願いします(ノД` ;)
>>757
class A{
public int i;

new B().iをCに渡せばいいんじゃない?
>>752
ちなみにJava CookBookという本にはこう書いてある。
Q.環境変数はどうやって取ったらいいですか?
A.やるな。
>>730
ち、しかたねぇな。
自分で展開してから表示するしかない。
リスナーとか設定する前にやれよ。

int rc = tree.getRowCount();
for (int i = 0; i < rc; i++) {
tree.expandRow(i);
rc = tree.getRowCount();
}
>>760
環境変数とかってあまり推奨されてないよね。
Class[] classes = HOGE.getClasses("java.lang.*");
みたいなのがあればいいけどなー
763デフォルトの名無しさん:02/12/13 23:50
レス有り難うございます。
new B().iですか。それで出来たんですね。前やったときは
出来なかったのでもう一度ためしてみます。

ActionListenerを載せた内部クラスでiを初期化したから
Aのiにもその値が入ると思っていました。
なんでiをBで初期化したあとでnew A().iしてもnullなんでしょうか?
自分でもなにいってるかわからない・・・意味不明ならスルーしてください。
とりあえず有り難うございました


764デフォルトの名無しさん:02/12/13 23:51
>>761丁寧な答え本当に有難うございます!
助かりますた.
環境変数すら拾えないって不便だねえ。
環境変数LANGでロケールを切り替えたいんですが?みたいな。
>>765
Javaですることでもあるまい。

と、言うかアプリが勝手に環境変数いじるのはどうよ?
>>765
同感。でもロケールは得られたような・・・

環境変数もそうだけど、Javaのこのへんの無理な仕様は、
小事にこわだって大事をおろそかにする馬鹿の典型だね。
768752:02/12/14 00:01
>>760 で、そのやるなって理由が環境変数という仕組み自体が実行系依存だから...
なのよ。ちなみにいま調べてみたけど、j2reだとデフォルトクラス
ローダはsun.misc.Launcherの内部クラスで、URLClassLoaderの
サブクラスになってる。sun.misc.Launcher自体のメソッドからも、
URLClassLoaderのメソッドからも検索パスの取得はできるけど、これなら
システムプロパティからでも実行系への依存度はかわらないね。
>>763
プリミティブ型だとiはnullにはならないよ。
ActionListenerって使ったことないから分らないけど
Bのフィールドが初期化されたことをAは知ることできないんじゃないの?


環境変数に依存してたらマルチプラットフォームは実現できないでしょ。
Cみたいに環境移行するたびにコンパイルしなおさなければいけないし。
でもロケールは取得できるよ。
環境変数に依存してたらマルチプラットフォームは実現できないでしょ。
Cみたいに環境移行するたびにコンパイルしなおさなければいけないし。
でもロケールは取得できるよ。
Javaでマルチプラットフォームってネタだろ。
誰もそんなこと期待してないし。
もしかして、771までの一連の書きこみのは、
クラスパスにあるクラスの情報取ろうとしてるものやったんすか?
なんでまた、環境変数の話題に?
>>773
クラスパスは多くの環境では環境変数に登録されてます。
別に使いたいやつは、java.lang.System.getenv(String name)
使えばいいんじゃねーの。可搬性は自分で判断することで他から
いろいろ言われるすじあいじゃねー。って、Sunのコンパイラからは
文句いわれるか。
>>774 最近ブートストラップパスは環境変数で指定されないから...
話がループしているね。
>>772
私は普段からUNIX上で稼働するシステムをWindows上で開発してますが何か?
WinでearファイルにしてUNIX上にデプロイしてますが何か?
>>772
私は普段からUNIX上で稼働するシステムをWindows上で開発してますが何か?
WinでearファイルにしてUNIX上にデプロイしてますが何か?
おいらも開発はWindowsだけど
実行環境はLinuxだな。
文字コード関係が氏ぬほどウザイ。
んで、結局クラスパス上のクラスを
不完全な名前で取得する方法ってないのかな。
780デフォルトの名無しさん:02/12/14 00:32
earファイルって何ですか?
jarとかwarの仲間?
781773:02/12/14 00:33
クラスファイルの置き場所が知りたいの?
クラスパスが通っているクラスが知りたいの?
後者なら、別の手もあるんじゃない?
>>779 beanshellのソースでも漁れ。
>>780
J2EEアプリケーションのアーカイブ形式。
784779:02/12/14 00:49
>>781
クラスパス上にあるクラスをクラス型で取得したいのです。
具体的に何をやりたいのかというと、
特定のパッケージ内で特定のインターフェイスを実装した
クラスを全取得したいのです。
取得するときは、パッケージ名とインターフェイス名は
知っている状態で、クラス名は何も分らないという状態です。
785782:02/12/14 01:29
なんか煽っているみたいだったから、自分で見てみた。
ttp://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/beanshell/BeanShell/src/bsh/classpath/BshClassPath.java?rev=1.17&content-type=text/vnd.viewcvs-markup
ちゃんとjar/zipの中も見てくれている。あとは、
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Class.html#getInterfaces()
で一個ずつチェック。

>>784 ほんとに条件/目的はそれだけなのか?
746 の「やっぱり外部ファイルにクラス名を記述するのがいいのかな」っての
読む限り、他の条件/目的がありそうだ。例えば、クラスローダ中を一度
通ったクラスだけ調べられればいいとか条件があればより楽な方法はあるやね。
>>784
Javaのクラスって、必要になったときにクラスローダで
動的に読み込まれるはずだから (ネットワーク越しとかも可)、
784 そのままの目的はたぶん達成できないだろうね。
"てすと" == "てす" + "と"
はどうしてtrueになるんですか?

String str = "てす";
"てすと" == str + "と"
はfalseになりました。
>>787
>"てすと" == "てす" + "と"
コンパイルの時点で結合されて
"てすと" == "てすと"
にされてるんじゃないか?

>String str = "てす";
>"てすと" == str + "と"
>はfalseになりました。
final String str ="てす";
"てすと" == str + "と"
にすると true になるみたいだし。
>>787
コンパイラの実装による。
コンパイラが最適化を行った結果そうなることもあるが言語仕様としては
そうなることは保証されていないのでそういった動作を前提にしたプログラムを
作らないように注意しよう。
>>787
コンパイラの実装による。
コンパイラが最適化を行った結果そうなることもあるが言語仕様としては
そうなることは保証されていないのでそういった動作を前提にしたプログラムを
作らないように注意しよう。
791779:02/12/14 09:02
>>782
サンクスコ。
ソースを落としてきたので見てやってみます。
目的って言うのは、あるインターフェイスを実装している
クラスを実行したいのです。。。
プラグインみたいな使い方が出来ないかなと思って・・・
792いよぅ:02/12/14 12:07
Exception in thread "main" java.lang.NoClassDefFoundError:

コンパイルした後、実行したらこんなエラーが出てしまいます。
わかる方は、お願いします。
>>792
>>1。お前はアホなのか?
794いよぅ:02/12/14 12:15
なにぶん初心者なので、、、、
>>794
書いてあること読めないのは初心者以前の問題だろう。
>>794
それ以前に日本人かどうかもあやしいな
797いよぅ:02/12/14 12:23
訳してみると、クラスの定義が見つからないですな?
スタートアップJavaとかいう本に、付属してるCDの中のサンプルを
コンパイルして、実行してみたのですが、このようなエラーが出たので
聞いてみたのです。
>>797
ごちゃごちゃ言わんと>>1ヨメというのが聞こえんか?
どう訳したらそんな日本語になるのだろうか。
ていうか>>1を読めという>>793の親切なレスを無視しているあたり、中学生?
>>797
>>1読めっていわれても読めませんか?
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』>>2

二度と来るな。氏ね。
そして「釣れた」という。
ツレタ(・V・)
803いよぅ:02/12/14 12:28
釣れたw
804いよぅ:02/12/14 12:28
おおー!こんな所に!気が付かなかった。すまそ
>>798
793では、793と1があほだと言っている、と勘違いしたのでしょう。
>>805
名前かくさんでいいぞ(*´・ω・`*)イヨウ
807いよぅ:02/12/14 12:32
>>805
そのとうり!動きましたありがとうございました
808デフォルトの名無しさん:02/12/14 13:38
http://java.sun.com/j2se/1.4/ja/download.htmlの日本語版 J2SE 1.4.0 ドキュメントっていうのDLしたのですが、
インストールの仕方がわかりません。。
誰かこの次にする作業を教えてくださ〜い
809デフォルトの名無しさん:02/12/14 13:47
>>808
ただの「.zip」ファイル。
べらぼうなファイル数なんで解凍場所気をつけれ。
810デフォルトの名無しさん:02/12/14 14:02
ってかこれSDKじゃねーじゃん
いらんもんDLしてしもた〜〜
namazu等で検索できるようにしておくとgood
812デフォルトの名無しさん:02/12/14 14:36
Swingで質問します
JBottun等をクリックした時にブラウザを開き設定されたURLへ
ジャンプする機能をつけたいのですが、方法がわかりません。
よろしくおねがいします
813デフォルトの名無しさん:02/12/14 14:58
>>812
815デフォルトの名無しさん:02/12/14 19:58
基本的なことのような気がするけど、分からないのでお助け下さい。
以下のようなことやりたいんですけど、コンパイルが通りません。
まぁ、確かに危ういことやってるような気もするのですけど、
どういう理由でコンパイルが通らないのかがよく分かりません。
こういう風に、条件によって配列を異なる初期化をしたいとき、
どうするのがいいんでしょう?

int[] hogehoge( int a ){
if( a == 0 ){
int[] b = { 40,90,20, 0, 〜〜〜 };
}
else if( a == 1 ){
int[] b = { 30,30,20, 0, 〜〜〜 };
}
return b;
}
816デフォルトの名無しさん:02/12/14 20:29
>>815
ありがとうございました。よくわかりました。
>>815
コンパイルエラーでエラー内容書かない奴ってアホだと思う。
818デフォルトの名無しさん:02/12/14 20:57
>>816-817
まぁそういわず……ということは、Javaの文法としてはそんなに間違って
ないのかな?
エラー内容さらしますので、よろしくお願いしますです。

--

シンボルを解釈処理できません。
シンボル: 変数 b
位置 : toroChangerCanvas の クラス
return b;
^

やってるのはiアプリです。
iアプリとかあんまり関係ないようかと思ったんでここで聞いてる次第。
819818:02/12/14 20:59
関係ないよう → 関係ない内容
>>815
変数のスコープって知ってる?
ifブロックの中で宣言した変数はそのブロックの中でしか有効でない。
elseブロックも当然同じ。
変数bはメソッド変数として宣言するがよろし。つまりif〜elseブロックの外側ね。
>>815
変数のスコープって知ってる?
ifブロックの中で宣言した変数はそのブロックの中でしか有効でない。
elseブロックも当然同じ。
変数bはメソッド変数として宣言するがよろし。つまりif〜elseブロックの外側ね。
822820/821:02/12/14 21:06
スマソ。某2ちゃんねるビューア使っているんだが、この板に限ってなぜか2重書き込みされてしまう。他意はない。
823820-822:02/12/14 21:07
と思ったら今度は大丈夫ぽ・・・・
824815:02/12/14 21:09
>>820
サンクス。
そういうことですか。理解しました。
んー、では、こういうふうにint配列を、条件によっていろんな値で
初期化するには、要素ひとつひとつ代入するしかないってことですかね。
要素数が多くて大変めんどくさいのだけど・・・
825812:02/12/14 21:12
無視かよ!!もうこねーよ!
826815:02/12/14 21:14
ひらめいた。こうすればいいのか。

int[] hogehoge( int a ){
int[] c = null;
if( a == 0 ){
int[] b = { 40,90,20, 0, 〜〜〜 };
c = b;
}
else if( a == 1 ){
int[] b = { 30,30,20, 0, 〜〜〜 };
c = b;
}
return c;
}

ちょっと回りくどいけど……これが一番いい方法かな?
827デフォルトの名無しさん:02/12/14 21:42
JPDAのいい日本語ページないですか?
グーグルじゃあ、ろくなのひっかかりません。
>>826
int[] hogehoge( int a ){
int[] b = null;
if( a == 0 ){
eb = { 40,90,20, 0, 〜〜〜 };
c = b;
}
else if( a == 1 ){
b = { 30,30,20, 0, 〜〜〜 };
c = b;
}
return c;
}
int[] hogehoge( int a ){
int[] b;

if( a == 0 ){
b = new int[]{ 40,90,20, 0, 〜〜〜 };
}
else if( a == 1 ){
b= new int[]{ 30,30,20, 0, 〜〜〜 };
}
return b;
}
でいいだろ。javaの文法の基本。
830815:02/12/14 22:50
>>828
???
b = { 30,30,20, 0, 〜〜〜 };
のところが通らないかと……

>>829
サンクス。俺が目指していたのはこれだよ。
しかし、
b = new int[]{ 40,90,20, 0, 〜〜〜 };
なんて書き方、うちにある初心者向けの本には載ってない。
とにかく助かった。
>>825
Runtime.exec("explorer http://www.yahoo.co.jp/");
832811:02/12/15 00:06
ナマズで検索できるようになって、楽しくなってアレコレ検索してみたよ。
それで分かったんだが、JDKの日本語訳は糞だな。
>>832
プ。あれほど日本語版日本語版言っといて・・・
>>832
機械翻訳よりはマシだろ。贅沢言うな。
835ほげ:02/12/15 00:16
J2SEで使える赤外線通信用のクラスってありますか?iApply用のはあるみたいですが。
フリーのクラスでも教えてもらえるとうれしいです。
836デフォルトの名無しさん:02/12/15 00:38
>>834
「Serializable=直列化」って訳は意訳だったのか?。
>>836
1:1対応させやすくてよし。

っていうかプログラミング言語に限っては直訳は多いと思われ。名前空間とか。
ハッシュ=連想配列とか変に意訳しようとして死んでる例もある。
もともと連想配列はlispのassociation listのことだったんじゃないかなあ
で機能が似てるからハッシュにも名前を流用したと
英語ドキュメントがなんとか読めるのは、
日本語ドキュメント上で専門用語がほとんど直訳orカタカナ化しただけだから、
とも思える。
public String httpget(URL url) throws Exception{
int character;
String s;

URLConnection urlconnection = url.openConnection();
s="";

int contentlength = urlconnection.getContentLength();

if(contentlength > 0){
InputStream in = urlconnection.getInputStream();

while((character=in.read()) != -1){
s+=(char)character;
}
in.close();
}

return s;
}

こんなんやってJEditorPaneにsettextしてわーい簡易httpクライアントできたー
ってやりたかったんですがなんかうまくいきません。
出力されたのが
<HTML><HEAD><TITLE>2?????????????????±?≫</TITLE>
っていう感じになっちゃいます。

HTML表示させるにはどうしたらいいでしょう。
>>840
>InputStream in = urlconnection.getInputStream();
InputStreamReader in = new InputStreamReader( urlconnection.getInputStream() );
>>841
何が来るかわかんねーならとりあえず "JISAutoDetect" を付けておいた方が
良くないか? まぁちゃんとやるなら Content-Type や <META> タグを見るという
方がいいけど。
>>840
>s+=(char)character;

強烈に遅いはず。
844デフォルトの名無しさん:02/12/15 12:09
下記のようにコードを書いたのですが、何度やっても、内部サーバエラーがでてしまします。
セッションのテストをしていて、1回目の訪問には「aaa」を返して、更新するとそれ以降、「bbb」を返すというようにしようとしてます。
どこが問題かわかるでしょうか??

『jsp』
<%@page contentType="text/html; charset=Shift_JIS"%>
<jsp:useBean id="sess" class="jspbean.JspBean" scope="session" />
<html>
<head><title>JspBean</title></head>
<body>
<%= sess.getset() %>
</body>
</html>

『bean』
package jspbean;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class JspBean
{
private String sval = "aaa";
JspBean(){}
public String getset(){
 if( sval.equals("nothing") ){
  sval ="bbb";
  return "nothing";
 }else{
  return sval;
 }
}
}
845デフォルトの名無しさん:02/12/15 12:14
844です。
すみません。『bean』の下の方の部分間違えました。
正しいのです。↓

private String sval = "aaa";
JspBean(){}
public String getset(){
 if( sval.equals("aaa") ){
  sval ="bbb";
  return "aaa";
 }else{
  return sval;
 }
}
}
で、どんな例外が出てるんですか?
847デフォルトの名無しさん:02/12/15 12:28
こんな例外です。


root couse
java.lang.InstantiationException: class jspbean.JspBean : java.lang.IllegalAccessException: Class java.beans.Beans can not access a member of class jspbean.JspBean with modifiers ""
>>845
コンストラクタをpublicにして試してみて。
849デフォルトの名無しさん:02/12/15 13:16
>>845

ありがとうございます。できた。
たぶん、できないだろうと思ってたんだけど、
コンストラクタにpublic付けないだけで、jspからアクセスできなく
なるんですね。サンクス。
850デフォルトの名無しさん:02/12/15 13:44
12月からJAVAを始めた新人です。
素朴な疑問ですが、教えてください。

ResultSetで取り出した項目「処理年月日」('20021215'のように入っています)を
文字列から数値型へ変換するのに

int SyoriYmdint = Integer.parseInt(rs.getString("SYORI_YMD"));

とした場合、結果は8桁の数値になると思いますが、これはint型の桁数を
超えてしまうのでダメでしょうか?
>>850
intの桁数って何じゃらほい?

intは31bit分の正の整数を扱えます。
852デフォルトの名無しさん:02/12/15 14:09
すいません。short型と間違えてました。
853デフォルトの名無しさん:02/12/15 15:27
byte a;
が16進の0xF0から0xF9の範囲内かチェックするので、
if (a >= 0xF0 && a <= 0xF9) としたのですが、うまく判定されません。
どこが問題でしょうか?
こんにちは、
ほんとに初心者でプログラム組んだ事無いんですが、この度javaを勉強してみたいと思いました。
本屋に行ってjavaの本を一冊と思いましたが多すぎてよくわかりませんでした。
そこで、ここにいる皆さんが初めてjavaをやるときに買った本をお聞きしたいです。
どうか宜しくお願いします
>>854
Sunの売れ残りの本を教科書として買わされた。

でも、さすがオフィシャルで一通りのことは書いてあった。

はっきり言って自分で読んでわかりやすい本。来れにつきる。
856デフォルトの名無しさん:02/12/15 15:35
>>853
よくわからんが・・・単純に1バイトが0〜9の範囲か聞くんじゃダメなのかな?
>>853
何か問題ですか?

858デフォルトの名無しさん:02/12/15 15:39
>>1
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://freeserver.kakiko.com/hiroyuki/
859デフォルトの名無しさん:02/12/15 15:41
class a{
public static void main(String args[])
{
String str="Hello";
String stru=str.toUpperCase();
String strl=str.toLowerCase();
System.out.println("元の文字列"+str+"です");
System.out.println("大文字に変換した文字列"+stru+"です");
System.out.println("小文字に変換した文字列"+strl+"です");
}
}
どうですか?
860デフォルトの名無しさん:02/12/15 15:43
853です。
00Q というような文字列を1byteずつ取り出して判定しています。
1byte目は0なので、これは16進で0xF0なのでokだとおもうのですが、
条件式のelseでエラーになってしまいました。
ちなみに、その内容をSystem.out.printlnで見たところ48となってました。
(何のコードだろう?)
上記例だと、00Q が 48 48 81 ですべてエラーとなっていました。
>>859
public class aの方がいいよ。
>>860
間違いなく'0' == 48ですけど。
863デフォルトの名無しさん:02/12/15 15:47
F0ではないのですか?
865デフォルトの名無しさん:02/12/15 15:58
元データが汎用機(富士通?)からくるのです。
それは符号付10進?というものらしくて、123なら F1 F1 C3 とか
-456なら F4 F5 D6 とかはいっています。
これがそのまま、ORACLE上の文字列に入っており、数値の判断をしたいのです。
うーん。。。
866デフォルトの名無しさん:02/12/15 16:04
System.out.println("Help me !");
System.err.println("Help me !");
両者の違いを教えてください。
>>865
ガイシュツ。>>284見れ。
>>866
標準出力と標準エラー出力
869デフォルトの名無しさん:02/12/15 16:41
何度も申し訳ありません。284を見た上での質問です。
865に書いたデータが実際ORACLE上では、00Qといったように入っています。
これを、byte a[]; 格納後、1byteずつ取り出して、数値チェック(0xF0から0xF9の範囲内かなど)しています。
if (a[i] >= 0xF0 && a[i] <= 0xF9) としたのですが、うまく判定されません。
どこが問題でしょうか?
>>869
だからJavaタンかSQLタンが親切にASCIIに変換してくれてるんだと思われ。
871866:02/12/15 16:44
>>868
標準出力と標準エラー出力の違いを教えてください。
言葉が違うというくだらない答えは却下します。
>>871
標準出力:処理結果などを出力する場合に使用
標準エラー出力:主にエラーを出力する場合に使用


共にデフォルトではコンソール(ディスプレイ)に割り当てられている。
リダイレクトでファイル/スペシャルファイルにアサイン可能。
873866:02/12/15 16:57
>>872
用途の違いだけなのですか?
技術的(仕組み的)には変わらないのですか?

両方とも
共にデフォルトではコンソール(ディスプレイ)に割り当てられている?
リダイレクトでファイル/スペシャルファイルにアサイン可能?
874デフォルトの名無しさん:02/12/15 17:22
>>864
似たような事で悩んでいる奴がいるもんだ。便乗して教えて下され。
漏れはコード変換で悩んでいるのだが、アスキーコードの
0が0x30とういのはわかるが、何故これが48なんだ?
>>874
変換テーブルで変換しています。
876デフォルトの名無しさん:02/12/15 17:28
変換テーブルとは、0x00〜0x7Fを00〜127に自力で変換するのですか?
>>874
0x30 = 3 x 16 + 0

   3
x . 16
---------
   18
   3
---------
   48


0x30 = 48
878デフォルトの名無しさん:02/12/15 17:41
>>869
通りすがりですまんが、2進数でチェックすれば、何のコードかなんて気にしなくて
いい気もするが。
でもoracle上にそういう値が入っているなら同じことか?
879840:02/12/15 17:44
>>841
InputStreamReaderというのを使えばいいんですか。
ありがとうございます。

>>842
getContentType();でとればいいんすね。はい。

>>843
強烈に遅いです。
BufferedReader in= new BufferedReader(new InputStreamReader(urlconnection.getInputStream()));
とやってreadlineで読み込むことにしました。今度は早くなりました。


880デフォルトの名無しさん:02/12/15 18:05
>>878
oracleにはいっている値を16進で見ようが2進で見ようが同じでは?
>>879
StringBufferを使うともう一寸速くなるかもな。
(コンパイラによっては最適化してくれるのか、これ?)
>>881
つぅか内部は全然違うことしてると思われ。
ないぶはだいぶちがう。
>>869
つまり、Oracle上はEBCDICで、RusltSetからgetBytes()するとASCIIが返ってくる
ということでよろしいか。それはOracleのJDBCドライバが自動コード変換を
行っているものと思われる。(NLSがらみね)
で、どうするかだけど、今回たった30文字程度なんだから、自前で変換すれば
すむんじゃないの?
JavaにEBCDICのエンコーディングが用意されていれば、文字列にして
getBytes(エンコーディング名)で取り出すことができそうだけど、
あるのかどうかわからんし、、、。("Cp1026"あたりだろうか。)
>>884
>RusltSetからgetBytes()するとASCIIが返ってくるということでよろしいか。

よろしいかもへったくれも結果がそう語っている。
>>885
だが結果が全てとは限らない
>>886
でも、それを否定すると説明が付かんぞ。
Oracle用JDBCドライバの仕様書を読むしかないんでは。
884の中で仮定されてるのはそこだけだよね。
889デフォルトの名無しさん:02/12/15 19:27
>>869
コード表見ながら、作ってみた。
今回は、こんなので十分じゃないかな。

public static int convertToInt(byte b) throws Exception {
switch (b) {
case 0x30: case 0x7B: case 0x7D: return 0;
case 0x31: case 0x41: case 0x4A: return 1;
case 0x32: case 0x42: case 0x4B: return 2;
case 0x33: case 0x43: case 0x4C: return 3;
case 0x34: case 0x44: case 0x4D: return 4;
case 0x35: case 0x45: case 0x4E: return 5;
case 0x36: case 0x46: case 0x4F: return 6;
case 0x37: case 0x47: case 0x51: return 7;
case 0x38: case 0x48: case 0x52: return 8;
case 0x39: case 0x49: case 0x53: return 9;
default:
throw new Exception();
}
}

public static boolean hasMinusSign(byte b) {
switch (b) {
case 0x7D: case 0x4A: case 0x4B: case 0x4C: case 0x4D:
case 0x4E: case 0x4F: case 0x51: case 0x52: case 0x53:
return true;
default:
return false;
}
}
890デフォルトの名無しさん:02/12/15 19:52
つーか、単純に取り出した1バイトごとにASCII→EBCDIC変換すりゃいーじゃん。
>>890
今回の目的はEBCDICにすることじゃなくて、数値判定したいんだろ?
ASCII->EBCDIC->数値では無駄と思われ。
>>891
じゃあ別にASCIIでもええやん。
>>892
ASCIIで"11Q"と書かれていて、これが118とすぐ分かれば問題ないが?
>>893
853です。
00Q というような文字列を1byteずつ取り出して判定しています。
1byte目は0なので、これは16進で0xF0なのでokだとおもうのですが、
条件式のelseでエラーになってしまいました。
ちなみに、その内容をSystem.out.printlnで見たところ48となってました。
(何のコードだろう?)
上記例だと、00Q が 48 48 81 ですべてエラーとなっていました。


895デフォルトの名無しさん:02/12/15 20:10
>>892
だからASCIIで判定してるやん。(と、突っ込み鋭くあごも鋭い・・・)
896デフォルトの名無しさん:02/12/15 20:14
>>894
議論の内容理解してるか?
F0ってのはEBCDICコードでの話。ASCIIなら0x30
897デフォルトの名無しさん:02/12/15 20:17
質問者のif文ロジックを生かすなら、取り出したbyteをEBCDICに変換する
方法を教えてやるのが一番簡単な方法じゃないの?
この後、EBCDIC使って何かしたいのかも知れないし。
たぶん、この人276と同一人じゃないかな?
898デフォルトの名無しさん:02/12/15 20:19
>>894
>>889を使ってみろ。
if文で書き直せば速くなるぞ。
符号は配列の最後のバイトにしかないので、そこだけ相手にすればOK
残りのバイトは、& 0x0Fで十分だぞ。
>>897
ASCII->EBCDIC変換にif文なんていらないだろ?
256のbyte配列だけでOKだが?
>>899
なる。数字だから嫌でも1;1対応だもんな・・・。
901デフォルトの名無しさん:02/12/15 20:37
符号つきゾーン10進って、、、、懐かしいww
これって確かCOBOLだとS9(5)とかってやつだよね。
だとしたら、たとえば0123Qとか入っていたら、0123まではそのまま数字
で、最後のQだけ見ればよいのでは。つまり最終桁以外は見えてる数字そのものということ。
Qは-7だから、01237のマイナス、すなわち-1237ということでokですか。>皆様
QはEBCDICで0xD8だから、-8じゃないの?
903デフォルトの名無しさん:02/12/15 20:54
何か訳わからなくなってきたぞ。
QはASCIIの0x51ですよね。
これを889さんの記述に当てはめると-7ですよね。
>>903
バグです。2つのコード表比べながら書いたから、ミスった。
0x51, 0x52, 0x53ではなくて0x50, 0x51, 0x52だな、スマソ。
905デフォルトの名無しさん:02/12/15 21:10
ちなみに889さんの表は左の列がプラス0から9、右の列がマイナス0から9
だと思うのですが、真ん中の列は何?(恥ずかしい質問スマソ
906デフォルトの名無しさん:02/12/15 21:19
ftp://ftpd.borland.com/download/jbuilder/jb8enterprise/jbuilder8.zip
130MB
英語/日本語が選択できます
既に海外のteamがkeygenをリリースしておりますので
オーソライズは可能です
ftp://licke.myftp.org/licke's share 2/progs/jbuilder 7 ent/
ftp://licke.myftp.org/licke's share 2/progs/jbuilder 7 ent/jbuilder_7_enterprise_fr.zip
ftp://oth:[email protected]/05 - S O F T -/DEVELOPMENT/Borland Java Builder/jbuilder6.part01.rar
ftp://ratio:[email protected]:812/=[ a p p z ]=/JBuilder Enterprise 5.0/
ftp://ratio:[email protected]:812/=[ a p p z ]=/JBuilder Enterprise 5.0/jbuilder5.rar
ftp://Look:[email protected]:69/PC Apps [ISO]/!! Offline !!/Borland JBuilder 5.0 Enterprise/
ftp://Look:[email protected]:69/PC Apps [ISO]/!! Offline !!/Borland JBuilder 6 Enterprise/
ftp://Look:[email protected]:69/PC Apps [ISO]/!! Offline !!/Borland JBuilder 7 Enterprise/
ftp://lookappz:[email protected]/Appz/Borland Inprise JBuilder 6 Enterprise/
ftp://ratio:[email protected]/c:/ftp/uploads/Linux/J_Builder_for_Linux/JBuilder6.part01.rar
ftp://oth:[email protected]:131/-==Apps==-/B - C/Borland Jbuilder 5 Enterprise/
ftp://oth:[email protected]:131/-==Apps==-/B - C/Borland Jbuilder 5 Enterprise/setup.rar
ftp://look:[email protected]:2000/f:/FTP/Apps/-= APP ISOz =-/-=Offline=-/JBuilder7/
ftp://look:[email protected]/01. -=Apps=-/Bundle of appz, just take a look inside/jbuilder7.zip
ftp://lookmisc:[email protected]/Appz/Borland Inprise JBuilder 6 Enterprise
907java入門:02/12/15 22:33
>>906
漏れも知りたい
908java入門:02/12/15 22:34
しまった、
>>905
だった。。。打つ出し脳
909デフォルトの名無しさん:02/12/15 22:35
初歩的な質問ですが、よろしくお願いします。

JavaでAWTやSWINGを使ってアプリケーションを作りたいと思っているのですが
作成したアプリケーションを、アイコンをWクリックして起動させることは可能なのでしょうか?

よろしくお願いします。
>>909
jarでいけるはず
>>909
てかOSは?
912デフォルトの名無しさん:02/12/15 22:57
>>905
最後尾バイトは符号をかねていて、マイナスなら0xD?だが、
プラスなら0xC0なのだ。
文句があるなら、ゾーンBCD決めたIBM?のヤシにいってくれ。
0xC?だな。っていうか、>>284見れ。
914デフォルトの名無しさん:02/12/16 00:54
途方に暮れてます。
すみませんが、どなたか教えて頂けませんか?
public class Box {
 private static int data;
public Box(){
}
public static int getData() {
return data;
}
public static void setData(int data) {
Box.data = data;
}
}
とやっておいて、
915デフォルトの名無しさん:02/12/16 00:55
import java.util.Enumeration;
import java.util.Vector;
public class VectTest {
public static void main(String[] args) {
Vector dataBox=new Vector();
for(int i=0;i<100;i++){
Box b=new Box();
b.setData(i);
dataBox.addElement(b);
}
Enumeration ea=dataBox.elements();
while(ea.hasMoreElements()){
Box la=(Box)ea.nextElement();
System.out.print(la.getData()+" ");
}
}
}
を実行すると、99が100個並びます。
1 2 3...とする為にはどうしたら良いでしょうか?
916デフォルトの名無しさん:02/12/16 01:10
>>914

class Boxのdataからstaticをはずしてみてください。
917914:02/12/16 01:29
>> 916
早速ありがとうございます。
2行目の事でしょうか?
はずすと、getter, setterの所で
「static 参照は、非staticフィールド dataではできません。」
というコンパイル・エラーが出ます。

918916:02/12/16 01:33
>>917

説明が足りなかった。
Boxからstaticを全部はずしてみて。
919914:02/12/16 01:40
>> 918
ありがとうございました!!!
920デフォルトの名無しさん:02/12/16 01:53
Web上でアプレット見ようとするとclassが見つからないと怒られてしまいます(;;)
・appletviewerでは見れました。
・jviewerではダメ(><)
・バイナリモードにしてます。
・クラス名の大文字小文字を間違えたりはしてません。
何か他にも考えられる原因はあるでしょうか?
921デフォルトの名無しさん:02/12/16 02:03
>>920

applet単体だけのプログラムなの?
他に必要なクラスにクラスパスが通っているかな?
922デフォルトの名無しさん:02/12/16 02:17
JPDAだせ。
923デフォルトの名無しさん:02/12/16 02:27
>>921
クラスはひとつだけで同じディレクトリ内にありますし・・・
>>922
JPDA??
924デフォルトの名無しさん:02/12/16 04:27
>>920
ブラウザで見るとき古いvmが立ち上がってるとか。
>>920
HTMLのコードベースの記述あたりのブラウザ間の解釈の微妙な違いがくさい気がする。
926デフォルトの名無しさん:02/12/16 06:00
自分の家でコンパイルしたクラスファイルを
友達の家で実行できますか?
できるようなことをきいたのですが。
>>926
友達の家に JRE があって、
コンパイルしたクラスファイルを友達の家に持っていけば実行できます。
>>920
JDK 1.4 でコンパイルして IE 標準の JVM で実行させようとしているに
一票。-target 1.1 を付けてコンパイルしてみ。
>>926
実行するにはJRE(ランタイム)が必要です。
友達の家で実行するみたいに不特定多数に配るのが目的なら
ランタイムがいらないDelphiを使ったほうが良いですよ。
930デフォルトの名無しさん:02/12/16 08:00
すみません。JREってなんですか?
友達も自分も普通の一般環境?でJAVAしてます。
大丈夫ですか?
931929:02/12/16 08:03
>>930
友達もやってるならJREは入っていると思いますが
バージョンが違うと不具合が出たりします。
しかも新しいのを入れると前のものに不具合が
発生したりして困る可能性があります。
932デフォルトの名無しさん:02/12/16 08:05
>>931

そうですか。
だったら、ソースファイルだけ持っていくことにしますね。
ありがとう。
>>929
Java Runtime Environment、 Java実行環境
「普通の一般環境」って言われてもなぁ…
933
>>930 だった。
935デフォルトの名無しさん:02/12/16 08:36
>>934
まま、そこはご愛嬌ということで。。
936デフォルトの名無しさん:02/12/16 12:00
Math.roundっていうのは四捨五入なんでしょうか?
937デフォルトの名無しさん:02/12/16 12:48
返り値が配列になっているメソッドから結果を受け取るには
受け側で配列を用意しないといけませんが、それには元々長さを指定して
生成しないといけないですよね。

ピッタリの長さで受け取るのは無理なのでしょうか?
メソッド内で配列作れば?
939デフォルトの名無しさん:02/12/16 12:58
>>937

もともと長さを指定する必要は無いはずだが。
940939:02/12/16 13:07
補足説明をすると、配列を宣言する時にメソッドから配列を取得すれば大丈夫。

でも、これだと宣言したスコープの中でしか使えないから、スコープの外で配列を
使用できないかな。
941920:02/12/16 13:17
>>928
それでした。神認定!

他の皆さんもありがとうございましたm(_)m
>>940
そんなわけない
return new String[] {"1ch", "2ch", "3ch"};
何の問題もなく使える。
>>940
>でも、これだと宣言したスコープの中でしか使えない
… C++ と勘違いしてませんか?
>>936
Math.round()は (long)Math.floor(a + 0.5d) らしいから、ほとんどの場合に四捨五入になる。

ただ、double自体に10進2進の変換誤差が出てくるので、シビアな場面では
最初から最後まで String + BigDecimalで計算するのが無難。

System.out.println(0.6 + 0.3 - 0.4);
System.out.println(Math.round(0.6 + 0.3 - 0.4));
System.out.println(new java.math.BigDecimal(0.6 + 0.3 - 0.4));
>>937
public int[] hoge(){
int[] x = {1,2,3};
return x;
}
受ける側

int[] xx = hoge();
とか
int[] xx;
xx = hoge();
で大丈夫。
946945:02/12/16 21:59
ついでに、
object xx = hoge();
でもいけたような気がする。
リフレクトにあるArrayクラスを使えば
そのまま値も取得できた気がする。
上記の例で言えばIntegerで取れるんじゃなかったかな。
間違ってたらスマソ。
あと、スコープ云々は関係ない話と思われ
>>939
ありがとうです。配列の実体が戻ってくるので、受けるときにnewする必要はないんですね・・・。
hoge()がint[]を返すとき、↓だと信じていました。・゚・(ノД`)・゚・。
obj指向を勉強し直してきます。

public static void main(String[] args) {
 int[] funi; = new int[?];
 funi = hoge();
}
>>947
そんなんOO勉強しても何の意味もない罠(w
とりあえず、逝ってらっしゃ〜いヽ(´ー`)/
949デフォルトの名無しさん:02/12/17 02:11
>>944
どうもです。
すいません、一個質問させて欲しいのですが
今Linux上でCSVファイルを生成しようとしているのですが
Windowsでは文字化けしないのにLinuxだと文字化け
してしまうんですがどうしたらいいでしょうか?
try {
java.io.FileWriter r = new java.io.FileWriter( "/usr/local/uma.csv" );
String str1 = "ウマー";
String str2 = "マズー";
String str3 = "クマー";
r.write( str1 + "," + str2 + "," + str3 + "\n" );
r.close();
}catch( Exception e ) {
e.toString();
}
Stringの変数を
str1 = new String( str1.getBytes("8859_1"), "JISAutoDetect");
str2 = new String( str1.getBytes("8859_1"), "Shift_JIS");
とやっても化けてしまいます。
どうやったら回避できるか教えてください〜
>>950
try {
 OutputStreamWriter w = new OutputStreamWriter(
  new FileOutputStream( "/usr/local/uma.csv" ), "SJIS");
 String str1 = "ウマー";
 String str2 = "マズー";
 String str3 = "クマー";
 w.write( str1 + "," + str2 + "," + str3 + "\n" );
 w.close();
} catch( Exception e ) {
 e.printStackTrace(System.err);
}
とかではどう?
>>950 いろいろ小細工をする前に、まずデフォルトエンコーディングを
確認してごらん。
[既定コンストラクタ]ってなんですか?
>>953
デフォルトコンストラクタとも言います。
プログラマーが自分でコンストラクタをソースに書かなくとも、
Javaのシステムが最初から用意してくれているコンストラクタのことです。
http://www.bohyoh.com/Java/FAQ/FAQ00002.html

このデフォルトコンストラクタというシステムがあるおかげで、
たとえコンストラクタを一つも記述しないクラスを作ったとしても、
そのクラスのインスタンスを生成することができるわけです、

↓コンストラクタはソース中に記述されていないがコンパイル可能。
public class Sample {
 public static void main(String[] args) {
  Sample sam = new Sample();
 }
}
>>954
丁寧な回答ありがとう。
google してもなぜかほとんどヒットしなかったのよね。
「デフォルトコンストラクタ」という名前で覚えておきます。
956950:02/12/17 16:22
>>951 952
ありがとうございます!
稼動しました〜、今回のようにエンコードしながらって場合には
OutputStreamWriterを使うんですね〜・・・
勉強になりました
nioパッケージって何に使うの?
あんまり使い道が浮かばないよ。
活用事例とかある?
>>957
バイトストリームを切り出すとき。
>>957 実装と使い方によっては速い
nioいろいろ便利そう。
http://java.sun.com/j2se/1.4/docs/guide/nio/index.html

ところでそろそろ次スレの準備を・・・。
961vi/vi2:02/12/18 03:59
次スレ
【初心者】Java質問・相談スレ14【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1040150533/

馬鹿に一度邪魔されたのでもう一つは放置で。
962デフォルトの名無しさん:02/12/18 09:07
appletでタイピングソフトを作りたいのですが参考になるソースどっかにありませんか??
教えてください。
>>962
たまには自分の頭で考えてみたらどうだい?
964デフォルトの名無しさん:02/12/23 23:32
で、どうすればいいのかな?
965デフォルトの名無しさん:02/12/23 23:35
>>964
具体的なイメージが浮かばないなら、
まずはJavaの入門書や入門サイトなどをみて勉強するといいかも。
>>965
それ以前の問題だと思うけどな。
まぁ、一つネイティブラングイッジな言語作ってれば便利だわね。
>>962
http://pc3.2ch.net/test/read.cgi/tech/1032944182/356-362n

既出みたい。おんなじ学校のひと?
タイピングが成功していったら脱いでくのはどうかなあ?
>>968
存在してたと記憶。
成功するとゴスリングが一枚いちまい、
Javaティーシャツを脱いで逝くタイピングゲームきぼんぬ。
971965:02/12/23 23:54
>>968
プレイヤーが?

って言うのはジョークで、
>>966
>それ以前の問題だと思うけどな。
何で?
アドレスきぼんぬ
973デフォルトの名無しさん:02/12/24 01:24
はじめに public static void main(〜〜〜
云々って毎回書きますがこれは 何を意味してるのでしょう?
まだ勉強し始めて3日ぐらいなのでわかりません
おしえてください
974デフォルトの名無しさん:02/12/24 01:28
おいおまいら、今売ってる JavaWorld、付属の CD-ROM に 2001/12〜2002/11 までの
記事が全部 PDF で入っとるぞ!

廃刊決定でとりあえず手持ちのネタを金に換える策に走ったか…
975965:02/12/24 01:55
>>973
public : 他のクラスから呼び出せる。
static : 静的である(インスタンスをnewしないでそのまま「クラス名.メソッド」で呼び出せる)←これをクラスメソッドという。
void : 戻り値がない。
main : java Hoge.javaで最初呼び出されるクラスメソッド。
976965:02/12/24 01:58
>>975
>main : java Hoge.javaで最初呼び出されるクラスメソッド。
間違い。
java Hoge
ね。
(int)変数
で変数に少数が入ってる場合は四捨五入されるんでしたっけ?
978デフォルトの名無しさん:02/12/24 02:09
>>977
0方向に丸めた整数になる
あ、切り捨てですかサンクスです。
980973:02/12/24 02:11
>>975
ありがd でも書いている内容が全くわからない^^; あぅぅ
981965:02/12/24 02:15
>>980
どこがわからない?
参考書読んでる?
982965:02/12/24 02:34
>>980
じゃあもっと簡単に書くと、君がAppというクラスを書いたとするでしょ。
そしてコンパイルするとApp.classってファイルができる。
これを、
java App [引数1,引数2...]
で起動するんだけど、
引数1,引数2...はString[]型のオブジェクトまとめられて
最初に
App.main(引数);
って呼び出される。
だから、君はAppクラスにmainクラスメソッドを作っておいてそれを受け止めるんだ。
983965:02/12/24 02:41
>>982
>java App [引数1,引数2...]
java App [引数1 引数2...]
ね。
100%既出な質問なのでもっとよく検索しろと言われるでしょうが…。

ふだんはCやPerl使ってますが、Javaにも足を突っ込んでみようかと。
で、真っ先に困ったのが“sprintf (printf)がない”という事実。
単に(コンソールで)表示数値の右揃えとかがやりたいだけなのにぃィ。
Sunで AS IS な PrintFormat.java は拾ってはきましたが、
jovadoc でドキュメント抜き出しても今ひとつ使い方が読み取れない。
(基礎知識がまだ不足しているからでしょうが…)
できれば日本語でこれを解説している、あるいはサンプルの豊富な
解説ページ等をご存知でしたらお教えください。

#他言語からJavaへ進んだ人はよくケつまづく事象だと思うけど、
#その割りにはぐぐるにもあまりマトモな情報が引っかからん気が…。
>>985
984氏は右揃えと言っていますが。かくいう私も、sprintf(buff, "%08d%-08d", x, y);
相当の処理をTextFormatさんでどう実現すれば良いかわかりません。
987デフォルトの名無しさん:02/12/25 01:48
4つ質問があります。
つまらないことで悩んでますが、おながいします。

response.encodeURL()でURLパラメータにセッションIDを埋め込んだ場合、セッションIDを次のページで取得することはできるのでしょうか?
取得の仕方ってありますか?セッションとセッションIDがちょっとごっちゃになってるんで、混乱してます。。


セッションIDはクッキーが有効になっていないときにだけ、URLパラメータに埋め込まれると何かの本で読んだのですが、
クッキーを有効にしても、セッションIDがURLパラメータに埋め込まれたと友達が主張してました。そんなことってありますか?


あと、携帯電話では、携帯電話でクッキーを無効にしているとき(そんな機能があるかどうかわかりませんが)、
セッションIDはURLパラメータに埋め込まれ、そのセッションIDが埋め込まれた
URLを携帯電話の表示画面から見ることができますか?
もし見ることができるんだったら、セッションIDを使っても、携帯電話でセッションID付きのURLを
打ち込んだら、直接、画面が表示されると思いましたので。
携帯電話はinputタグでgetメソッドしか使えないから、パラメータ付きのURLを直打ちされたら、画面が表示されますよね?
セッションIDもそうなのかなって思って質問しました。


携帯電話では、普通、JavaScriptは使えませんが、これまた、友達が一部のものは使えると言っておりました。
これは本当でしょうか?すみません。携帯電話持ってないので、確かめようがなくて。

以上、ちょっとでもわかることがありましたら、お願いします。
URL?
クッキー!?
携帯電話!!?
>>987
携帯電話にクッキーはないと思うよ。
WAPは知らんが。

あと、POSTメソッドも使えるよ。JPHONEの古い機種はダメだけど。
JavaScriptは無理でしょう。俺は使えるなんて聞いたことない。
>>984
1) ChoiceFormat と DecimalFormat の併用で回避する。
2) 右揃え用 NumberFormat を自作する。
3) DecimalFormat に空白右揃えのための仕様を追加しろと BugParade で RFE。追加されるまで待つ。
4) 986への回答みたいに 0 による右揃えで我慢する。
どれでも好きなようにしてくれ。

>>986
printf( "%08d", x );
みたいに桁が足りない時は '0' で補う場合は
DecimalFormat( "00000000" ).format(...);
みたいのでどーにでもなったり…
991965:02/12/25 02:41
>>984
sprintf()は
Java houseのトピックスの
クラスライブラリ/フレームワーク
で議論されてます。
埋めとくか
>>991
そんなくだらないこと議論してるなんて
Javaはとことん糞ですね
価値の判らない糞にとっては糞ですよw
995965:02/12/25 02:50
>>993
君はずいぶんと悲観的なものの見方をするね。
>>993
真実でも言ってはいけないことがある
 
 
 
  
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。