【初心者】 Java質問・相談スレ31 【大歓迎】
1 :
デフォルトの名無しさん :
03/09/01 22:02 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
2 :
デフォルトの名無しさん :03/09/01 22:03
2
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
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の場合はコマンドプロンプトを立ち上げなおしてください
と表示されてコンパイルできません。
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が使えるようになります
と表示されてコンパイルできません。
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が使えるようになります
404 名前:デフォルトの名無しさん :03/09/01 20:37
すみません。
今HSPでノベルゲーム作ってるんですが
文章表示させてると画面に表示されないほどになります。
cls 0で画面クリアするにも話の途中なのでしたくありません。
▼だして次の画面に行くにはどうすればいいですが?
http://www2.tokai.or.jp/M.Ks-Page/plazag/koza_2.htmlに KAIPAGE: とありますがそれを打っても処理エラーってなります。
405 名前:デフォルトの名無しさん :03/09/01 21:24
>>404 テキスト表示部分が透過じゃないなら塗りつぶし。
透過(もしくは絵に直接表示)してるなら画像再読み込み。
一瞬だから気にならないはず。
とりあえず質問するには説明不足。
6:28】クレジットカードのチェックサムの計算方法 1 名前:デフォルトの名無しさん 03/08/30 02:31 教えてください。 別に悪いことに使おうとしてるんじゃないよ。 ほんとだよ。
>>1 が死んだ!
この突然もたらされた吉報はあっという間に日本中をいや、世界中を駆け巡った。
「今日と言う日は人類がこの世に誕生してから、最もめでたい日です。さあ、皆で祝いま
しょう」
そして天皇陛下のそんな一声によって始まった盛大なパーティー。
その歓喜は瞬く間に地球上を覆い尽くし、今や絶頂の極みにあった。
「本当に死んでくれてホッとしてますわ。あの子を産んでからこの三十年、楽しいと思っ
た事など一度たりとも無かったんですもの」
そう喜びの涙を零しながら語ってくれたのは
>>1 の母である夕子さん(54)。
彼女は
>>1 を生んだ責任で一時期、牢獄に囚
前:デフォルトの名無しさん 03/09/01
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います
『'javac' は、内部コマンドまたは外部
操作可能なプログラムまたはバッチ フ
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません
http://java.sun.com/j2se/1.4.1/ja/i を良く読んで、javac.exe のあるディレ
環境変数PATHに追加してください。 そ
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロン
設定したパスが正しければ、javacが使
それでも同じエラーが出る場合は、設定
よく見直してください。
Q. javac Hello.java でコンパイルはで
java Hello を実行しようとすると
『Exception in thread "main" java.l
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパ
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落
または、
http://www.gimlay.org/~javafaq/S004 を読んでカレントディレクトリ「.」を
クラスパスとはなにか(JavaFAQ 基礎知
http://www.gimlay.org/~javafaq/S004
終了〜 邪魔が入ったな ( ´∀`)「Java」だけに・・・ 連打しないでください。もうそろそろ規制リストに入れますよ。。( ̄ー ̄)ニヤリッ 連打しないと邪魔が入っちゃうよっ!!(>_<)
29 :
デフォルトの名無しさん :03/09/01 22:47
初歩的なことかも知れませんが、Stringクラスのメリットと、デメリット。 StringBufferクラスのメリットとデメリットを教えてください。 なんとなく分かるのですが、見当違いな気がするので、ご存じの方がいましたらお願いします。
>>1 まぁこのご時世だし,多少の邪魔入りはしょうがなかよ。
というわけでオツカレサマー。
31 :
デフォルトの名無しさん :03/09/01 23:10
javaでドライブの空き領域を知るにはどう書いたらいいですか?
前スレ973です。 1.2+1.8を3.0じゃなくて3とかで表示するやり方おせーて って書いたのですが、書いていたやり方では出来なかったので 質問させてくらさい。 ちなみに2.3とかはそのまま2.3って表示したいのです。
なんでこういつもJavaスレを荒らす馬鹿がいるんだろね。 荒らす奴は学生か?
34 :
デフォルトの名無しさん :03/09/01 23:30
取得した文字列に全角文字が含まれているかどうかを 判断するにはどうしたらよいですか? よろしくおねがいします。
これからJAVA始めようと思うのですが このソフトの得意分野はなんですか? このソフトはどこで手に入りますか?
37 :
デフォルトの名無しさん :03/09/02 00:21
>>35 メモリ使用量やら、速度も同じなのですか?
そんなことはないとは思いますが、同じならなぜStringクラスとStringBufferクラスがあるんでしょうか?
38 :
デフォルトの名無しさん :03/09/02 00:21
>>36 本気でそんなことも聞かなきゃわからないようならJavaはおろか2ちゃんもやめるべきだと思ふ
>>37 中身を変更できるかできないかというのは非常に大きな問題なわけだが。
中身が変更できない方がいろいろと変な問題を起こさずに済む。
ディープコピーを実装する必要もない。
ただし中身が変更できないと、新しいインスタンスを大量に作らないといけないときに
(よくある例では文字列の結合)
性能が出ないので中身を変更できるものも用意されている。
40 :
デフォルトの名無しさん :03/09/02 00:27
>>34 全角が含まれているかどうかだけ知りたいのなら、Shift_JISのbyte列
に変換して変換前後の長さを比べるって手抜きもあり。位置まで知りたいなら
先頭から一文字ずつチェック。Shift_JISでの判断法はちょっとぐぐれば出てくる
と思う。ちゃんとUnicodeでテーブル作って...っていうまっとうなやり方するなら、
http://www.unicode.org/unicode/reports/tr11/ を参照。自分でつくらんでもICU4Jでプロパティ引けば判別出来そうな気もする。
43 :
デフォルトの名無しさん :03/09/02 00:51
javacの場所は/usr/java/j2sdk1.4.2_01/binです。 それでjavaファイルは/Sampleという階層にmkdirコマンドでフォルダを作ってその中に入れました。 [root@linux root]# cd /Sample [root@linux Sample]# javac Sample1.java で実行したところ bash: javac: command not found というエラーが出てしまいました。 LinuxのPATHのとうし方がわかりませんので教えてください。よろしくおねがいします。
44 :
デフォルトの名無しさん :03/09/02 00:55
保健室で休息中の少女に何が起こったか・・・
当然のようにHな事態に発展していくのですがいやーリアルリアル。
オマンコからダラダラ流れ出るマン汁、青筋の浮き出たチンチン。
現実ではあり得ないシチュエーションにリアルさがある秀作!
エロアニメがいっぱい。セーラー服美少女実写版も大好評。
今すぐ無料ムービーを!!
http://66.40.59.76/index.html
45 :
デフォルトの名無しさん :03/09/02 00:57
>>39 何となく分かったような気がします。
>>40 参考にさせていただきます。
ありがとうございました。
>>42 ありがとうございます!
なんとなく分かりました!
結局全角文字は2バイトだから
取得した文字列が
何文字あるかをみて
それをバイト長にしたときに
文字列数と違えば
全角文字が入っていると判断すればよいのですね!
ありがとうございました!
>>43 googleで、「LinuxのPATHの通し方」を検索すると希望の情報は
出てくるが、「LinuxのPATHのとうし方」では出てこない。日本語は
正しく使おう。
ver1.5っていつ頃でるの?
51 :
デフォルトの名無しさん :03/09/02 03:48
JAVAアプレットのソースをコンパイルして hoge.class を作成したのですが、 IE6で表示しようとするとステータスバーに can't be instantiated と 表示されて、アプレット部分には何も表示されません。 JAVAコンソールを確認すると下記のエラーがでています。 com.ms.security.SecurityExceptionEx[siritori.<init>]: java.io.IOException: bad path: C:\temp\javax\swing\JLabel.class C:\temp フォルダには hoge.class や アプレット呼び出し用のhoge.html が入っているのですが、JLabel.classのパスまでそこになってしまっている のがなぜだかわからず煮詰まってます。原因にお心当たりがあればぜひ教えてください。 ※このアプレットのソースはJBuilder上ではちゃんと動いています。
52 :
デフォルトの名無しさん :03/09/02 04:01
appletで画像表示についてなんですが update(Graphics g)みたいに使いますが gなんて自分で用意してないですよね? これは仕様になってるんでしょうか?
53 :
デフォルトの名無しさん :03/09/02 07:43
しつもーん。 if(!s.equals("answer")) { if(!s.equals("boo")) { if(!s.equals("cresent")) { これってこうやって書いてくと凄いめんどいんですよね。 一つにまとめる事が出来るなら教えて下さい。
54 :
デフォルトの名無しさん :03/09/02 08:16
>>53 Mapに
キー:answer,boo,cresent等
値:動作オブジェクト
↑多少すっきりする
55 :
デフォルトの名無しさん :03/09/02 08:45
>>54 ifの中で一つにまとめる事は出来ないですか?
>>56 しょうがないよ、条件分岐が3本あるなら
その数は減らしようが無い
全体のソース見ればもっといい方法見つかるかもしれないけどね
>>53 とか
すいませーん、誰か分かる人いませんか?
>>60 標準ではそういうのないので
自分で作るしかない
マウスでクリックされた座標をピンポイントではなく 円や多角形の範囲で指定することはできませんか?
>>62 最終的なゴールがわからないけど(ブラシでも作りたいの?)
マウスでクリックされた座標を中心とする円や多角形を計算すればいいんじゃないの?
数学知って無いと厳しいが・・・
GUIを使って簡易的なブラウザを作ったのですが、 HTMLリクエストのuser-agaent のブラウザ名の部分を設定するにはどうしたらどうしたらよいのでしょうか。 例えば、アクセス解析から見たとき、使用ブラウザを「MyBrowser」にしたいのですが。
>>64 知ってるよヤリ方は・・・でもね
なんか、君には教えたくないんだよ
何でそんなコトする必要があるのかなってね?
>>62 レスありがとうございます。実ははずかしながらMMORPGを製作しています…
マップをクリックするとその座標からどの方向に
進むか判定したいのですがなかなか良い案が浮かばなくて…
>>62 「内外判定」で検索汁
ゲ製作板が得意とする分野だな
>>64 RFC嫁
っていうかその前に綴りを直さないと検索できないと思うぞ
あぁ名前とレス間違えた…
>>67 ありがとうございます。検索してみます。
70 :
デフォルトの名無しさん :03/09/02 10:22
JAVAとpostgreSQLの質問なんですがまずはソースを見て頂けますか? import java.sql.*; public class DbOfJava{ public static void main(String[] args){ String driver = "org.postgresql.Driver"; String url = "jdbc:postgresql:java"; try{ Class.forName(driver); Connection con = DriverManager.getConnection(url,"java","java"); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM employee"); System.out.println("emp_code emp_name"); while(rs.next()){ System.out.println(""+rs.getInt("emp_code")+""+rs.getString("emp_name")); } rs.close(); st.close(); con.close(); }catch(SQLException sqlEx){ System.out.println("SQLERROR: " + sqlEx.toString()); }catch(Exception ex){ ex.printStackTrace(); } } } これがソースです。
次にDBの内容です。
create table employee(
emp_code int,
emp_name varchar(20),
emp_department int,
emp_work_tel smallint,
emp_home_tel varchar(20),
emp_mail varchar(30),
emp_salary int[],
emp_comment text[],
primary key(emp_code)
);
insert into employee values(101,'東京 太郎',1,101,NULL,'
[email protected] ');
insert into employee values(102,'大阪 次朗',1,201,NULL,'
[email protected] ');
insert into employee values(103,'福岡 サブロウ',1,301,NULL,'
[email protected] ');
insert into employee values(104,'広島 花子',11,1102,NULL,'
[email protected] ');
insert into employee values(105,'神戸 さゆり',12,1203,NULL,'
[email protected] ');
として実行するとException in thread "main" java.lang.No.Class DefFoundError となってしまいます。店頭に行ってもなかなかPOSTGRESQLとJAVAの 参考書ってないからやっぱりJAVAやるときはPostgreSQL使わない方が 良いんですかね? 長くなってしまってすみません。 どうぞ分かる方ご指導よろしくお願いします!!
>>72 DB+Javaやれるぐらいの経験者(?)なのになんでこんなエラーぐらいで悩むのか不思議・・・
SEXは知ってるけど、日本の首相は知らないOLみたいだ
>として実行すると
↑のコマンドどうやって打ったか教えろ
申し訳ない。。以前はPHPとPostgreSQLでやっていてJAVAは始めてまだ 1週間くらいなもので。。。 コマンドは java DbOfJava として実行しました。間違っているのでしょうか?
じゃあ、 java -classpath . DbOfJava って打て その前に、コンパイルは通ったのか?
わかりました。やってみます。 コンパイルは通ってます。 ところで java -classpath . DbOfJava はどういう意味があるのですか? とりあえずやってみます。
駄目でした。また同じエラーです。
>>77 コマンドのカレントディレクトリに
DbOfJava .classっていうファイル存在するよね?
言語:JSP サーバ:Tomcat4+Apache2 エンコード:UTF-8 背景:JSPファイルから別のJSPファイルをinclude 現象:includeしたソースに存在しない文字がブラウザに表示される (jsp:includeでも@include両方発生) 解析手順: 1.生成された.javaファイルを見る-> JSPにないout.write("i>>?")がincludeファイルの前後に出力されている 2.include先のjspを空にする-> 同じく出力される 3.include元のjspも空にする-> out.write("?")が出力される(ブラウザからソースをみると何も表示されていない) 4.@pageにてcontentTypeのみを指定-> 3と同じだがソースに?が表示される 誰か、この不正な文字を消す方法分かりませんか?
>>77 コンパイルは無事に通ってますのでもちろんDbOfJava.class
は存在してます。
不思議です。。。
>>80 Windows?Linux?
今コマンドのカレントディレクトリはその場所だよね?
ソースのパッケージ名は指定してないよね?
ちゃんと、java -classpath . DbOfJava やった?「ピリオド」つけないとダメダヨ?
>>79 インクルード問題として
文字化けなら何度も遭遇したけどね
どっちにしても、あれ以来インクルードは使わなくなった
どうしてもやりたい時はテンプレート使うようにしている
>>81 Linuxです(RedHat7.3)。
ちゃんとピリオドもつけてるし、カレントディレクトリで実行もしてるんですけどね。どうしてでしょう?
念のためもう一度実行してみますね。
やっぱり何度やっても同じですね。同じエラーしか出ません。 どうしたら良いですかね?
85 :
デフォルトの名無しさん :03/09/02 11:43
セッションでint型配列を別ページに渡して取得するには どのようにすればよいのでしょうか? 送り方はわかるのですが受け取り方がいまいちわからなくて・・ よろしくお願いします。
>>82 そうでつか・・・
とりあえず、JSPはあきらめて別の方法を考えてみることにします。
ありがたう!
すいません、自己解決しました。 (int[])session.getAttribute() でいけました。
おまいら!70の質問だが、どのクラスが見つからないために NoClassDefFoundErrorが出てるのか勘違いしてませんか? PostgreSQLのJDBCドライバが見つからないせいで Class.forName()に失敗しているってことはない?
70はエラーメッセージを全部書こうよ。
おい
>>88 !70の質問だが、どのクラスが見つからないために
NoClassDefFoundErrorが出てるのか勘違いしてませんか?
PostgreSQLのJDBCドライバが見つからないせいで
でるエラーメッセ時はClassNotFoundExceptionですよ!
>>89 いや、エラーメッセージを晒してしまうと
と、と、とんでもないことに;;;ガクガクプルプル
理由が分かりました。。JDBCのインストール後、CLASSPATHの指定を ちゃんとしてませんでした。。 今色々とホームページ等を調べていたら解決しました。。ご迷惑を おかけしました。。
>>93 なに?JDBCのクラスパスって・・・
おまえ最初、Exception in thread "main" java.lang.NoClassDefFoundError
が出たって言ってたじゃん!
おそらく
>>75 の指摘でそれは解決したが今度は
java.lang.ClassNotFoundExceptionと出たので
まだエラーが出る⇒全然解決してない と答えたのかも・・・
95 :
デフォルトの名無しさん :03/09/02 13:42
96 :
デフォルトの名無しさん :03/09/02 13:49
97 :
デフォルトの名無しさん :03/09/02 13:54
助けてください javaで数式電卓作ってこいってイキナリ言われたんですけど、 どうすればいいかサッパリ。誰かソースかいてくだせぇえええ
98 :
デフォルトの名無しさん :03/09/02 14:13
どっかに転がってるだろ。 それをjadで逆コンパイルして完成っていうのでどうだ(w
宿題スレのがいいのでは
何度もすみません。 もう一回だけ質問させてください。 appletで画像表示についてなんですが update(Graphics g)みたいに使いますが gなんて自分で用意してないですよね? これはappletの仕様になってるんでしょうか?
101 :
デフォルトの名無しさん :03/09/02 14:41
>>100 普通のアプレット書いてて、どうしてupdate()メソッドなんて呼び出す必要がある?
paint()メソッドオーバーライドしたらいいだけだろ?
>101 paint()メソッドでもかまわないのですが paint(Graphics g)と書きますよね? このgって言うのが最初から用意されたものなのか と言う事が知りたいのですが。
gはアプレットを呼び出すコンテナが作ってくれる オブジェクトです。 プラットフォームによって実際のインスタンスは異なりますが、 ともかくこれに対して描画しろという感じで、アプレットに 渡してくれるのです。 つまり、自分ではなくてアプレットを動かしているコンテナが 用意してくれるものです。 まあ、仕様といえば仕様ですね。
104 :
デフォルトの名無しさん :03/09/02 15:20
WinXP+IE6+java plug-in1.4.1_02という環境でAppletをうごかしているのですが ブラウザが非アクティブになったときにstop()メソッドが呼ばれないみたいなのです。 具体的にはタイマーでブラウザが非アクティブになったときにカウントがとまるような 動作をさせたいのですが… stop()はちゃんとオーバーライドしてるし、ボタンからstop()を呼べばちゃんと止まります。 ぐぐったらjava-houseにstop/destroyが呼ばれない問題についての記述があるようなのですが java-houseにつながらない… 助けてぷりーず。
>103 やっぱりそうだったんですねぇ なかなかその説明ないんですよね ありがとうございました
106 :
デフォルトの名無しさん :03/09/02 18:01
すいません。質問です。 JSTLで定数を使う方法ってありませんか? public static final int 何とか = 0 という漢字のを参照したいんですけど。。
>>106 public int get何とか(){
return 何とか;
}
>>103 こういうのを「コールバック関数」というのでしょうか?
ときどきコールバックという言葉を聞くけど、良く分かりません。
109 :
デフォルトの名無しさん :03/09/03 01:43
>>53 ポリモーフィズム使えば、if 文なくせるぞ。
キーとクラス名のマッピング情報をどっかにもっておいて、
ファクトリメソッドにキーを渡せば、そのクラスのインスタンスを返すようにしておく。
あとは、strategyパターンだな。
WSAD/WSSDが 5.1 になって、同梱のJava VMがこれまでのいわゆるIBM JRE から J9 に切り替わったね。確かにこれまでちょっとしたベンチマーク かけると J9 のほうが速かったみたいだけど、組み込み用途以外で J9 を持って 来たのは意外といえば意外。WSDD5.xではもう J9 になってたけど、あれ元々J9向け 開発環境だしね。
誤爆、すまん。○| ̄|_
112 :
デフォルトの名無しさん :03/09/03 03:48
アプレットでファミンコンのロードランナー(知ってるかな?)みたいなゲームを作ってます。 24ピクセルごとを矢印キーで動いていくのですが、その動きをなめらかにみせようとしても上手くいきません。 最初暫定的に、キャラクターの座標に24を足したり引いたりして動かしてたのですが、 for(i = 0 ; i < 24 ; i++) { move(); } とやってもなんら変わりない動きになってしまいます。 repaint()して、Thread.sleep()もしてるんですがどうしてでしょう? 似たような形でボールを動かすアプレットを作ってみたんですが、こっちは問題なく綺麗に写りました。 わかるかたいたらご教授ください。
>>112 詳しいことはわからんが
>for(i = 0 ; i < 24 ; i++) { move(); }
これだけだとiの値が変わってもmove()の結果は変わらないんじゃないかな
114 :
デフォルトの名無しさん :03/09/03 10:17
今GUIのアプリケーションを作成しているのですが RunnableとActionListenerは多重継承できないのでしょうか? 多重継承を指定すると(クラス名)はabstractとして宣言しろと出るのですが・・・
EclipseからTomcatを起動してもworkspaceを認識してくれません。 どうしたらいいんでしょうか?
116 :
デフォルトの名無しさん :03/09/03 10:26
>>113 すいません解決しました。
メインのスレッド内部とは別にイベントリスナーで描画していたのが原因でした。
別スレッドにおいて解決しました。
>>114 public void run()
public void actionPerformed(ActionEvent e)
このメソッドをオーバーライドした?
118 :
デフォルトの名無しさん :03/09/03 10:33
>>114 継承(extends)と、実装(implements)は違うよ。
Javaは多重継承はサポートしてないけど、複数のインタフェースを実装することは可能。
> 継承(extends) オイオイ
Javaで多重ループから抜け出すにはどうするんでつか? gotoが使えない・・・。 できればフラグは使いたくないです。
>>120 終了条件以外で抜けるには break;
eclipse2.1 と Tomcat4.1.27 です。 プラグインをよくあるページ通りにインストールして起動できるのですが、 やはりサーブレットのクラスファイルを認識できません。 デバッグウインドウが出てもサーブレットは起動せず、 ブラウザにアドレスを打ち込んでも表示されません。 server.xmlに書き足す必要があるのでしょうか?
>>122 右クリックでserver.xmlの更新でいいんじゃないの?
Tomcatプロジェクトとして作ってあればの話だが
>>123 それもやってたんですけどね・・・。
でもなんかわからんが事故解決できますた。さんくす。
継承と実装間違って覚えていました お恥ずかしい限りです 汗 どうやら問題ないようなので勉強し直して来ます ありがとうございますた
126 :
デフォルトの名無しさん :03/09/03 17:31
トップにランダムに画像が出る様にしたのですが どうしても最後の画像だけが出ません。画像の数もあっているし 画像ファイルの設定もあっています。 ただどの画像にしろ、ファイル名の最後に持ってきた画像が出ないんです。 どうしてでしょうか?
>>126 なんとなくJavaとJavascriptを混同しているような
気がする。もしアプレットでそういうページを作っている
としたら、その程度でアプレットにするなよと。そもそも
Webページの話でいいのだろうか。
>>126 乱数の範囲を勘違いしているんじゃない?あんた
Jakarta Commons-netのFTPClientを利用して Linux(RetHat7.3)→ Windows に対してFTPで ファイル転送することを行っているのですが Linux上の日本語ファイル名(EUC_JP)のものを Windows上(MS932)にFTPで転送する必要があります。 現在、リモートファイル名をMS932の文字列を指定しても 文字化けしてしまいうまくいきません。 どなたか、ご経験がある方、ご教示頂きたく宜しくお願いいたします。
>>126 ファイルの読み込みと画像の表示が逆になってんじゃねーの
>>129 FTPに文字コード変換機能なんて最初から無い
>>129 とりあえず、listFiles()の結果、正しくEUC-JPで
ファイルリストが取得できているかチェック。出来ていない場合は
FTPFileListParserを自分で実装。でもそのあとのretrieveFileが
EUC-JPを受け付けてくれるかどうかはしらん。少なくともMS932で
リモートファイル名指定するのは駄目かと。
>>126 ファイル名は1〜10からだけど配列のインデックスとか乱数が0〜9になってるとか、
そんなん混同してるとかか?
JavaもJavascriptも、乱数は、0.0 以上 1.0「未満」だから、0から9までの乱数が 欲しいと思って9倍しても、決して9にはならないと思う。そのへんじゃないのかな。
136 :
デフォルトの名無しさん :03/09/04 00:25
ドライブの空き容量を取得したいのですがどうやればよいのか 教えてもらえませんか? よろしくお願いします。
>>136 スタート コントロールパネル アプリケーションの追加と削除 Java2 SDK の削除
138 :
デフォルトの名無しさん :03/09/04 00:37
アプレットに関する質問です。 コンパイルはちゃんとできるのですが、アプレットビューアでもブラウザでもどちらでも なにもないただの灰色の画面と、もうひとつふつうに実行できる画面の二つがでてきます。 アプレットは初めてなのでだれか教えてください。 ちなみにタグの部分は <APPLET CODE="Applet.class" WIDTH="750" HEIGHT="340"> </APPLET> です。これは間違ってないような気がするのですが・・・ ということはプログラムの問題でしょうか。 よろしくお願いします。
139 :
デフォルトの名無しさん :03/09/04 00:41
>137 あの、そうでなくて… 説明不足でした。 JAVAのプログラムでドライブの空き容量を取得するメソッドを作りたいのです。
>>139 137 ではないが 皮肉が通じてないようだね
141 :
デフォルトの名無しさん :03/09/04 00:48
>140 javaじゃ不可能ってことですか?
142 :
デフォルトの名無しさん :03/09/04 00:48
すいません、質問させてください。 独習Java第2版の練習問題をやっていたんですが、 メートルとフィートの単位変換を行うプログラムを書いていて、 自分で書いたソースがコンパイルできません。 class LengthConverter { public static void main(String args[]) { double i = Double.valueOf(args[0]).doubleValue(); if (args[1] == "Feet") System.out.println( i / 3.28 + " Meters"); if (args[1] == "Meters") System.out.println( i * 3.28 + " Feet"); else System.out.println( "Error!" ); } } LengthConverter.java:3: 互換性のない型 検出値 : double 期待値 : java.lang.Double Double i = Double.valueOf(args[0]).doubleValue(); ^ LengthConverter.java:5: 演算子 / は java.lang.Double,double に適用できません。 System.out.println( i / 3.28 + " Meters"); ^ LengthConverter.java:7: 演算子 * は java.lang.Double,double に適用できません。 System.out.println( i * 3.28 + " Feet"); ^ エラー 3 個 ちなみに解答のソースをコンパイルしても同じエラーが出ます。 J2SDK 1.4.1_03です。何が悪いのかご教授ください。
double i = Double.valueOf(args[0]).doubleValue(); と Double i = Double.valueOf(args[0]).doubleValue(); は意味が違うわけだが理解してますか?
>>141 機種依存するので、対応させる機種毎に JNI 使ったり、
子プロセスでドライブの空き容量を出力させるようなプログラム走らせて、
標準出力から拾うとかするしかないような。もしくは JConfig 使うとか。
C言語だって「ドライブの空き容量を取得」する関数は機種依存だし。
>>143 上は変数の宣言、
下はDoubleクラスのオブジェクトの宣言、で合ってますか?
自信ないですけど・・・
>>146 どっちも初期化子付きのローカル変数の宣言。
型が違うだけ。
148 :
デフォルトの名無しさん :03/09/04 01:06
>145 なるほど、わかりました。 ありがとうございます。
>>147 それで解決法はわかりました。
でも何故そうなるか、というのが僕にはまだ理解できていないようです。
また勉強しなおしてきます。
どうもありがとうございました。
>>149 アンタ、馬鹿ですね。定義に理屈なんかないだろ。
>>142 もしコンパイルエラーが通っても
args[1] == "Feet" やら "Meters" では正しく動かんよ。
あと Double.valueOf(args[0]).doubleValue() にするくらいなら Double.parseDouble(args[0]) にした方が直感的だ。
>>142 ソースの3行目で、
double i = Double.valueOf(args[0]).doubleValue();
ってなってるのに、なんでエラーメッセージ中でソースの3行目に対して
Double i = Double.valueOf(args[0]).doubleValue();
^
なんてのが出るわけですか?
>>151 昔インスタンスの概念を理解してなかった頃同じようなことやったなあ(・∀・)ニヤニヤ
誰か教えてください>< これって無理ですか? toArrayを使って一度Vectorを正しい順序で保持する配列にする方法を とらないとNGでしょうか Vector vector = new Vector(); String[] string = new String[2]; string[0] = "a"; string[1] = "b"; vector.add(string); string[0] = "c"; string[1] = "d"; vector.add(string); // ↑string[0]とstring[1]が何組か存在して // 随時vectorにaddしています。 // vectorに格納した文字列型配列を取得して、配列に格納します。 for (int i=0; i < vector.size(); i++) { string = (String[])vector.element(i); }
>>155 Vectorに格納されたString配列を上書きしてるね。
2回目以降でこうすればいい。
string = new String[2];
string[0] = "c";
string[1] = "d";
vector.add(string);
ただ、配列の配列が出てくる時点でいやな匂いがするなぁ。
157 :
デフォルトの名無しさん :03/09/04 11:23
マウスで、他のボタン(例えばShift)と一緒に押された時というのは どのように検出すれば良いでしょうか?
>>157 MouseEvent の上位クラスである InputEvent に getModifiers() とか getModifiersEx() とか
isShiftDown() とかあるので それ使って検出してくれ。
>>157 java.awt.event.InputEventの定数を使って、
BUTTON1_MASKなどとのORを取ってマスクする。
SHIFT_MASKやALT_MASKなどが使用可能。
こんなかんじか。
button.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
if((e.getModifiers() ^ (MouseEvent.BUTTON1_MASK | MouseEvent.SHIFT_MASK)) ==0){
button.setBackground(Color.green);
}
}
});
他に何があるか知りたかったらInputEventのjavadoc見れ。
初歩的な質問で恐縮ですが、 Linux環境でServlet使用時の、System.out.println()の 出力先はどこになるのでしょうか? 何か設定を行わねばならないのでしょうか?
>>160 まず、おちつけ
何があったんだ?
出力先は標準出力だ
標準出力がどこに向いているかは環境によって違うけどな
162 :
デフォルトの名無しさん :03/09/04 13:32
Java難しいyo
ブラウザがアクティブになっていた時間を習得するよい方法はありませんか。
はじめは
>>104 のようにやろうと思ったのですがどうにもうまくいきません。
Webページの滞在時間を求めるにあたって、ブラウザがアクティブになっていた時間
というより精度?の高い情報がほしいのです。
>>61 TomcatでServlet使用時System.out.printを行うと、
Win環境ではTomcatのコンソールにSystem.out.printで
引数指定したものが出力されますよね?
Linux環境(RedHat)ではそれが出力されないもので。
というかTomcatのコンソール自体表示されません。
ログファイルかなにかに出力されているのでしょうか?
>>163 それは、そのブラウザが最小化されたり
他のウインドウの後ろに隠れていたりする場合から
復帰するような場合もアクティブってことになるのかな
167 :
デフォルトの名無しさん :03/09/04 13:49
>>164 デフォルトでは、Tomcatインストールディレクトリ/logs/catalina.out に
出力されている。Windowsと同様にリアルタイムで出力を見たかったら
このログファイルをtailで追えばよい。
>>165 そうです。復帰した場合に再びカウントがはじまるようにしたいのです。
ページが読み込まれた時点の時間とページ切り替え時の差分で
滞在時間をもとめるアルゴリズムはよくあるのですが…
>>168 stop()とか、destroy()の呼び出しタイミングを
復習してみたら
stop他のページに移動した場合呼ばれる
destroyアプレットがメモリから削除される時呼ばれる
となっているので、ブラウザがアクティブ非アクティブにはカンケー無い
他にやり方あるとすれば、java.awt.event.WindowAdapterつかうとか・・・
おれもAppletにコレが効くかどうかわかんないけど
やり方わからないならテストしてみるけど、どう?
>>169 別にapplet使わなくてもいいです。初め、applet埋め込んでstop&destoryの
タイミング利用すれば簡単じゃんとかバカな頭で考えてどつぼにはまった…
要するにブラウザがアクティブになっていた時間が取れれば方法は問いません。
WindowAdapterは少し考えてみたけれどAppletにうまく適用させる方法が分からなかったです…
>>170 Appletじゃなくていいのなら、JavaScriptでbodyのonFocusとonBlurイベント拾うのが
一番楽ができそうな気がする。これ以上はすれ違いなのでここまで。
>>171 ありがとうございます。JavaScriptかぁ…実は使ったことありません。
調べてみます。
こんにちは。最近JAVAアップレットを始めたのですが、ブラウザへの表示がうまくできません。 例えば for (X=1;X<=9;X++); X+1=Y; という計算の結果を"1+1=2"というように、一式ずつ改行しながら表示させるような場合、 うまいやり方がよく分からないです。(バカなもんで…) どなたか知恵をおかしください。
174 :
デフォルトの名無しさん :03/09/04 16:53
>>164 <TOMCAT_HOME>/logs/catalina.out
ここに出力されていないか?
System.out.println(X+"+1="+(X+1));
176 :
デフォルトの名無しさん :03/09/04 17:12
お疲れ様です。 ひとつ質問をさせていただきます。 DriverManagerのgetConnection(url,user,password) の引数urlについてなのですが、APIを見たところ jdbc:subprotocol:subname形式のデータベースURL とのことなのですが、subnameというのは何を指しているのでしょうか? ご存知の方が居られましたら解説をお願いします。
>>176 ドライバごとに決まっている。
ドライバのマニュアルを参照しろ。
179 :
デフォルトの名無しさん :03/09/04 17:19
180 :
デフォルトの名無しさん :03/09/04 20:14
>>173 >> X+1=Y;
これはどういう意味???
181 :
デフォルトの名無しさん :03/09/04 20:24
>>180 確かに不思議な感じがするよ
>>173 アプレットからJAVAを勉強すると痛い目に遭うと思うよ。
自分でプログラムを実行している感覚が掴めないし。
182 :
デフォルトの名無しさん :03/09/04 20:38
java1.4をインストの後、Tomcat4.1.27をインストの後起動しようとしたら以下のエラーが発生いたしました。 The JAVA_HOME environment variable is not define correctly This environment variable is needed to run this program 尚、cd $JAVA_HOME にて正しく設定されているかどうか確認致しましたが、特に問題ないようです。 OSはRedHat9 です。どうかご教授ください。
184 :
デフォルトの名無しさん :03/09/04 21:01
>>183 即レスありがとうございます。
#export JAVA_HOME=/usr/local/j2sdk1.4.2_01
はやりましたが変わりません。
ちなみに [root@ linux root]#cd JAVA_HOME [root@ linux j2sdk1.4.2_01]# となります。これで正しいと判断したのですが・・・。 どうか引き続きご教授ください。
186 :
デフォルトの名無しさん :03/09/04 21:18
コマンドでJAVA_HOMEが設定されてるか確認すれ
すいません自己解決しました。ありがとうございました。
187は偽者です。 引き続き情報をお待ちしております。
>>187 自己解決したときは、どうやって自己解決したのか書くのが礼儀というものだが…
初心者スレで言っても無駄か…
おまえらバカじゃないのか?ほんと自分は出来る風ですか? ほんとにバカ、オメーラ、みんな、ネット荒らしとどこが違うんだ!? ほんとな、おまえらはみんな、ここに来る資格ねーな!! デフォルトの名無しさんだっけ!!おまえしね!!人が頼んでるってのに何が あやしいっておまえみたいのがいるから日本がだめになるんだ!! 分かったバーカ!!もう荒らしでも何でもいいよ!! オメーラみたいなバカどもにつき合ってもしかたないから!! あんたらみたいのはもうこのよにもいらない !!
191 :
デフォルトの名無しさん :03/09/04 21:55
早めに答えてもらえませんか? さもないと本当にあなたたちを無知だと見なしますよ。
193 :
デフォルトの名無しさん :03/09/04 22:07
194 :
デフォルトの名無しさん :03/09/04 22:16
ボス、いつもそばに _,......,,,_ ,、:'":::::::::::::::::``:...、 /::::::::::::::::::::::::::::::::::::::\ i::::::::::::::::::::::::::::::::::::::::::::::::::ヽ !::::::::::::::::::::::;‐、:::::::::_::::::_::::'; |::::::::::::::::::::::| :: ̄ ``! r''ヾ'::::::::::/ :: | l r‐、\::/ _,,、ii_;;_、 _,,,l、 ヽヾ〈 ::= -r:;;j_;、`/ :;'ィ;7 !:!_,、 :: ` ー : |: `´/ い・て・ね ,./ヽ | 、_ :: ,: 'r' :i |: / ,../ `ヽ;_ i | '"、_:::__`:'‐'. / / ``'ー 、_\ ! `::` ̄''`チ`シ /ー 、_ `\:、_ :: ` ̄/ / ``ヽ、 ヽ`'7‐-- ↑誰がなんと言おうと曙
195 :
デフォルトの名無しさん :03/09/04 22:17
その20の526です 随分前の質問ですが、解決しましたので報告します。
以下質問と頂いたレスです↓
>Java2になってMidiが再生できるようになったので
>
ttp://javaalmanac.com/egs/ javax.sound.midiのe721のサンプルコードをほぼそのまま使って鳴らしてみました。
public class testSoundCode1{
public static void main(String args[]){
try {
Sequence sequence = MidiSystem.getSequence(new File("midiFile.mid"));
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();sequencer.setSequence(sequence);
sequencer.start();
} catch (IOException e) {
} catch (MidiUnavailableException e) {
} catch (InvalidMidiDataException e) {
}
}
}
>ところが、音飛びがするのです(再生されるタイミングがまちまちで曲がプツプツ途切れる)
→
>>526 デフォルトではJREにバンドルされているソフトウェアシンセが使われるらしいよ。
うちの環境ではjre/audio/soundbank.gmを消したら普通に再生されるようになった。
>>526 soundbank.gmはJREとSDKの両方に入ってるけどちゃんと使ってるjava.exeの側のやつ削除した?
Sequencer sequencer = MidiSystem.getSequencer();
System.out.println(sequencer.getDeviceInfo().getName());で何が出るか試してみてちょ。
↑開発環境はJDK1.3.1_01を使ってたのですが、その後JREのみ1.4.1_01を加えており、
JRE側(C:\Program Files\Java\j2re1.4.1_01\lib)に/audio/soundbank.gmが含まれていなかったのが問題のようでした。(というかaudioフォルダもデフォルトでは無かったのですが)
Sunのサイト
ttp://java.sun.com/products/java-media/sound/soundbanks.htmlからDLしたら解決しました 。
良く見たら、SDK側(C:\jdk1.3.0_02\jre\lib\audio)の/audio/soundbank.gmを消したり戻したりしても変化ないのは当たり前でした。
"Note that double clicking a jar file usually invokes the J2RE, even if you have installed the J2SDK."と書いてありました...
レスを頂いたみなさんありがとうございました。
うっさいんじゃ!! こっちは勉強しよんじゃ!! いっぺん死んで来い!落ちろクソ!!
超初心者な質問でスマソ。ロジックを教えてください。 @文字列の中にaが何個存在するのかを表示するプログラム A文字列の中のaで改行して、更にその文字を【】でくくるプログラム おねがいします。どう試してもできないんです。
199 :
デフォルトの名無しさん :03/09/04 23:25
>>198 いやぁ、君に出来ないのなら僕にも無理ですよ
>>199 そんなこと言わずにどうか。。。(´Д⊂グスン
Aだけ String s = "bcasbsbavb"; s = s.replaceAll("a", "【a】\n"); System.out.println(s); @String.charAt(int)を使うべし。指定した場所の文字を1文字返してくれる。 ただしString型ではなくchar型で返ってくるので比較の仕方に注意。 これでもできないような奴はプログラミングの才能がない。
>>201 手抜きするなら 1 はこんなんどう?
String s = "bcasbsbavb"; // a の個数を数える文字列
String t = s.replaceAll("a", ""); // a を取り除いた文字列
int i = s.length() - t.length(); // 何個 a が取り除かれたか
204 :
低脳の極み :03/09/05 00:16
あの… 初心者なのですが… 背景をアニメーションさせようとして、スレッドを使って class OreThread extends Thread{ public void run(){ while(true){ try{ if(idou==40)idou=0; if(idou<40)idou=idou+2; copyarea(); questions(); sure.sleep(500); repaint(); }catch(InterruptedException e){} repaint(); } } } としたのですが、描画速度が一定になりません。 描画速度を一定に保つにはどうしたらいいのしょうか?
>>204 アニメーションの途中で途中で負荷がかかったときにどうよってことだな。
System.currentTimeMillis()
これで絶対時間(という呼び方がよいのかは分からんが)を取得して、
その時間に合わせた絵画をしてやればよい。
>>204 ,205
Timer クラス使ったら?なるべく一定間隔になるよう頑張ってくれる。
207 :
デフォルトの名無しさん :03/09/05 02:05
フォーカスのあたっているフレーム(またはダイアログ)がどれかを知るにはどうすれば良いのでしょうか? フレーム内どのパネルやボタンにフォーカスがあたっているかは取得できるのですが・・
こんばんは。 J2SE1.4.1_05でJavaアプレットを作っています。 動作確認をアプレットビューアで行っていましたが あるときHTMLにタグを入れてIE6SP1で開いたところ IEのステータスバーにclass sample not found.と出て 動作しません(sampleには私の作っているクラス名が入ります)。 原因が分からなかったため、 以前J2SE1.4.1_02で作った別の.classファイルを HTMLにタグを入れてIEで開いたところ動作しました。 動作した.classファイルの元ソースを、J2SE1.4.1_05の javacでコンパイルするとclass sample not found.となり動作しません。 原因が分からず困っています。 先輩方の助言をお願いいたします。
その肝心のhtmlファイルの内容がなければ誰も判断できないと思うよ。
>>209 気が付かず申し訳ありませんでした。HTMLファイルの内容は下の通りです。
<html>
<body>
<applet code="sample.class" width="560" height="320">
<param name="server" value="localhost:5555">
</applet>
</body>
</html>
>>210 そのhtmlファイルとクラスファイルは同じディレクトリにある?
マルチモニター上で、フルスクリーン表示した人居ます? GraphicsDevice を使って、 マルチーモニターの表示とフルスクリーン表示、別々には出来るのですが、その二つを一緒にやろうとするとうまくいきません。 どなたかやったことある人居ます?
>>212 それってJava以前にドライバの話のような。
マルチモニタをマルチなモニタとして扱うモードと
二つ合わせて一つのモニタとしてあつかうモードがあって
前者ならどうやっても無理だよ。
>>204 しかし、背景をアニメーションさせるってことは、前面もあるわけだから、
それは単一スレッドで絵画したほうがよいよ。
215 :
デフォルトの名無しさん :03/09/05 07:16
>>206 ベストな方法としては、Timer で repaint() を呼び出してもらいつつ、
System.currentTimeMillis() で絵画するコマを決める、といったところでしょうか。
>>210 はい、同じディレクトリにあります。
動いている.classの元ソースを再コンパイルすると
動かなくなる原因が分かりません。
JDKの入れ直しは散々試したのですが、
同じ結果でした。
217 :
デフォルトの名無しさん :03/09/05 08:58
画面送られてくる2種類のn個のパラメータを配列(A、B)にセットし、 Bの配列から一つずつ値とをとり その値が配列Aに存在するかどうかで 条件分岐をしたいのですが、 すべて配列で処理していくべきでしょうか? 僕はAの値は hashmapに入れておいて Bをfor文でまわし mapに存在するかどうかで分岐処理を行おうと思ってたのですが hashmapはメモリを食うということで却下されました。 現在はBをfor文でまわし Aもfor文でまわし値が存在するかどうかみています。 mapや配列で行っていくメリットデメリットや mapを使う以外にもなにか良い手段があれば ぜひご教授ください。 画面から来るn個のパラメータは おそらく多くても30個程度です。
>>217 30個ならなんでもいいよ
メモリ気にするならC++使えば良し。
重要なことを報告し忘れていました。 IEのJava VMはMicrosoft製のものを使用していました。 J2REを再インストールし、IEでSun Microsystems製の VMを使用したところ、動作しました。 Microsoft製のJavaVMは今後衰退傾向にあるとは 話に聞いていますが、依然Microsoft製のVMは 使われているだろうと思い、特にデザインなどで Sun Microsystems製とは違ってくるため、 J2SEをインストールするときにIEに関連づけない設定をしていました。 「新しいバージョンのJ2SEコンパイラを使用したとき、 Microsoft製のJava VMでは動作しないらしい」 ということで、はっきりした理由ではありませんが自己解決しそうです。 ご迷惑をおかけしました。
>>219 javac -target 1.1 *.java
221 :
低脳の極み :03/09/05 11:16
222 :
デフォルトの名無しさん :03/09/05 12:34
お疲れ様です。 ひとつ質問させていただきます。 環境はRedHat9,Postgre7.2.3、JDKは1.4.1です。 JDBCを用いてPostgreに接続したところ、以下が吐かれたのですが、 org.apache.jk.common.MsgAjp processHeader SEVERE :BAD packet signature どのような意味なのでしょうか?
なぜ Postgre で切る? マイクロソフ ぐらい気持ち悪いぞ。
224 :
デフォルトの名無しさん :03/09/05 12:46
>>223 PostgreSQLの正式な読み方って知らない奴多そうだよな
まあ、大文字小文字の区切りが紛らわしいのだが
225 :
デフォルトの名無しさん :03/09/05 12:53
お忙しいところ申し訳ありません。 TomcatとApacheを連携させようとしてmod_jk2-2.0.43.soを入れたんですが 「mod_jk2-2.0.43.so is compatible with this version of Apache. Please contact the vender for the correct version」 というエラーが帰ってきました・ ちなみにRedHat9で、Tomcatは4.127です.RedHat9でTomcatとApacheと連携に成功された方 どのモジュールをお使いになられたかご教授ください。よろしくおねがいします。
昔は Postgre95 なんてあったが。
>>223 日本語発音で「ぽすぐれ」とよばれていませんか?
なもので末尾のSQLははずしても通じるかな?と・・・
私の周りだけなのでしょうか?
>>224 正式な読み方はどのようなものなのでしょうか?
>>222 大方apacheがlistenしてる80番ポートにでもアクセスしたんじゃね―の?
PostgreSQLのデフォルトのポートは何番だろね。
>>227 通じないことはないし実際みんな分かっているが、
ウェブページをホムペとかメールアドレスをメアドとか表現するくらいの
気持ち悪さか違和感を感じる。
230 :
デフォルトの名無しさん :03/09/05 13:13
>>226 Postgre95 じゃなくて Postgres95 だ。
INGRES -> POSTGRES -> Postgres95 -> PostgreSQL と変化してきた。
だから ポストグレス は許容範囲内。
正式には ポストグレスキューエル。
Postgres の 最後の s と SQL の最初のS が共用されていると思え。
発音上も
ポストグレスの最後の-エスとエスキューエルの最初のエスが共用されている。
231 :
デフォルトの名無しさん :03/09/05 13:16
>>230 なんだよう、何ですぐ答え言っちゃうんだよう
もうちょっと遊びたかったのに・・・
>>228 ご指摘の通りでした。
デフォルトポートを指定したところ、解決しました。
ありがとうございました。
>>229 それらと同一ですか・・・
今後は気をつけます。
>>230 ありがとうございます。
勉強になりました。
233 :
デフォルトの名無しさん :03/09/05 16:30
>>230 ⌒
/ /⌒\ \
ヽ /⌒\ ./
.ヽ ./⌒\ /
ヽ /⌒\ ./
ヽ /⌒\ /
ヽ/⌒\/
.┘ ̄└
ミ ∧_∧
ミ ⊂ ヽ(・∀・ ) ヘェーヘェーヘェー
∩⊂~~ ⊂~)
━━━━━━┓
/ ̄ ̄ ̄ ̄\┃
| 1 4 |┃
\____/┃
_| .┃
━━━━━━┛
>>220 亀レス申し訳ありません。
そのオプションでJava VMのバージョンを指定できるのですね。
知りませんでした。
MSのJava VMでもGUI部品群が表示されるようになりました。
ありがとうございます!
昨日、JAVAを始めた者ですが・・・ インスタンスメソッドは、インスタンスが必要なメソッドで、 スタティックメソッドは、インスタンスがいらないメソッド(クラスライブラリから、 データをとってくるメソッド)って言う考え方でOKでしょうか? 何かインスタンスメソッドと、スタティックメソッドの違いで 混乱してて、良い考え方があったら、教えてください。 後、やはりメソッドは、覚えるべきですか?
>>235 インスタンスメソッド ・・・・ オブジェクトに対して実行
クラスメッソッド ・・・・ オブジェクトに対して実行しない
一応例としてソースを載せとく
class ExClass {
static int classV; //クラス変数
int instanceV; //インスタンス変数
public static void main(String[] args) {
ExClass object1 = new ExClass();
ExClass object2 = new ExClass();
object1.classV = 100;
object2.classV = 300;
object1.instanceV = 200;
object2.instanceV = 400;
System.out.println(object1.classV + ":" + object2.classV + "\n" + object1.instanceV + ":" + object2.instanceV);
}
}
>>236 static/非staticな"メソッド"についての質問&回答の割に
ソースがstatic/非staticな"フィールド"についての例になっているのは
ギャグか何かですか?
>>237 すまん、それしかなかったので一応載せた
static/非staticなメソッドを適当に作ったので載せておきまつ
import java.awt.*;
class Sample {
public static void main(String[] args) {
System.out.println("現在のフレーム数" + ObjectNum.getObjectNum());
ObjectNum frame1 = new ObjectNum();
System.out.println("現在のフレーム数" + ObjectNum.getObjectNum());
ObjectNum frame2 = new ObjectNum();
System.out.println("現在のフレーム数" + ObjectNum.getObjectNum());
}
}
class ObjectNum extends Frame {
private static int num;
ObjectNum() {
num++;
}
public static int getObjectNum() {
return num;
}
}
Cの__LINE__や__FILE__マクロのように、ソース中の位置を知るにはどうすれば良いのですか? System.out.println(__FILE__ + __LINE__ + msg); のような感じで、現在のファイル名と行数を出力したいのです。
>>238 結局それだとやっぱりstatic/非staticな"フィールド"についての例にしかなっていない。
class A {
void foo() { System.out.println("foo in A"); }
static void bar() { System.out.println("bar in A"); }
}
class B extends A {
void foo() { System.out.println("foo in B"); }
static void bar() { System.out.println("bar in B"); }
}
で下のそれぞれに対して foo(), bar() を呼んだ結果どうなるか考えてみ。
A a1 = new A()
A a2 = null;;
A b1 = new B();
B b2 = new B();
B b3 = null;
>>235 例えばある車種についてのクラスがあるとするでしょ?
その車の名前を取得するgetNameメソッドはクラスメソッド。
その車が誰のどこにある車かは関係なく名前は一緒だから。
排気量とか、メーカーとかもクラス変数で、それを取得するのはクラスメソッド。
でもそのクラスのインスタンスによって変わるものもたくさんある。
たとえばガソリンの残り量とか、走行距離とか。
そういうのを扱うのはインスタンスメソッド。
オブジェクト指向は現実に照らし合わせて考えると分かりやすいYO!
ところでアプレットが動かなくて困ってるんだが。
appletviewでは動くのにさ・・・。
スタティックメソッドはプログラムロード時にメモリに配置。いつでも呼び出せる。 インスタンスメソッド、オブジェクト生成時にメモリに配置。それまでは呼び出せない。 どうだ?
解説サイトやら何やら参考にして必死こいて
MMORPG作ってるんですが、自分のPC内での
サーバークライアント間の通信はスムーズに
できるんですが、LAN内の別PCにサーバーを
建てたとたん、クライアントの動作が極端に
悪くなって、ローカルの時では出なかった
ClassCastExceptionがでて停止します。エラー
がでてからも入力した情報がサーバーには届いている
ようです。何が原因なのでしょうか…
ちなみにソースはこちらに…つっこみどころ
満載だと思いますがどうかお助けを…
ttp://nanasi.minidns.net/files/source.lzh ぁあここまで書いてスレ違いだと気付いたけど一応書き込み…
携帯からじゃないと書き込めなくて改行おかしくてすいません。
すいません急用で出かけます… またお昼に来ます。
>239 簡単な方法はない。 例外発生時のスタックトレースと同じような仕組みで取得できないこともないが、 ログに出力がしたいだけなら、logging API や log4j なんかを調べてみるといい。 どちらを使うにしろ、commons-logging経由で使うのがお勧め。
アプレットでテキストファイルを読み込みこんで文字列を扱いたいのですが、 文字化けが起こってしまいます。 文字化けせずに2バイト文字を表示させるにはどうすれば良いのでしょうか?
>>248 以下のようにエンコーディングを指定する。
FileInputStream stream = new FileInputStream("ファイル名");
InputStreamReader reader = new InputStreamReader(stream, "エンコーディング");
BufferedReader bufferedReader = new BufferedReader(reader);
String line = bufferedReader.readLine();
bufferedReader.close();
エンコーディングはファイルによって変えて。
Windowsで作ったファイルならWindows-31JとかShift_JISとか。
>>249 「アプレットで」と書いてあるのに FileInputStream を例示するとは、
君も剛の者だねぇ・・・・
>>250 248の環境で文字化けがおこっているということは、今、ファイルの読み込みは
出来ているわけで。その後、「ブラウザになったら読み込みができませ〜ん」とか
泣きついてくるかもしれんがそこまで心配してやることもないだろ。
サーバ側においてあるファイルのことだと思うよ
あ、そうか。かなりぼけてた。
説明不十分ですいませんでした。 読み込むファイルはサーバ側のあるテキストファイルのことです。 ちなみに次のようにコーディングしました。 URL u; InputStream inStream; DataInputStream dtInStream; String str1,str2; int i=0; try { u = new URL(アドレス); inStream = u.openStream(); dtInStream = new DataInputStream(inStream); while((str1=dtInStream.readLine())!=null){ System.out.println(str1); } }catch(Exception e) { System.out.println(e); }
スタティックメソッド=プログラムコンパイル時にどれを呼び出すべきかが確定。
インスタンスメソッド=プログラム実行中にインスタンスの情報に基づいてどれを呼び出すかが確定。
>>241 みたいなのは設計レベルの話であってプログラムの動作レベルの話ではないな。
ぼけてました… じゃ、これでどう?try節の中をこう変更。 u = new URL(アドレス); inStream = u.openStream(); InputStreamReader reader = new InputStreamReader(inStream, "エンコーディング"); BufferedReader bufferedReader = new BufferedReader(reader); while((str1=dtInStream.readLine())!=null){ System.out.println(str1); } エンコーディングの指定は、InputStreamReader使う以外の標準の方法は 無かったと思うがどうだったかな
>249 ありがとうございました。無事、文字化けせずにファイルを読めました。 エンコーディングが必要らしいというところまでは、分かっていたのですが そこで思考が停止していました;
どんなパーツを使えばよいのかわからないので相談に来ました。 もしよければ答えてください。 基本はテキスト閲覧を目的とするソフトなのですが、 ・途中の文字だけ色を変える ・特定の場所をクリックするとコンテクストメニューが出る このような機能を付加したいのです。 どんなパーツを使うべきでしょうか?
JTextPaneでよさそうですね。まだ試してませんが。 失礼しました。
261 :
デフォルトの名無しさん :03/09/06 16:23
javaアプレットについて質問です。 HTMLファイル内で<applet>タグを多重に宣言した時、表示される結果はラストに書いたJavaアプレットのみしか表示されません。 どうやれば、一枚のHTMLに多重にアプレットを表示することができるのでしょうか? (例) <html> <body> <applet code="ShowDocument.class" width=200 height=200> </applet> <br> <hr> <applet code="ShowDocument2.class" width=200 height=200> </applet> </body> </html> の場合、ShowDocument2.classの内容しか吐かれない。 ・・・もしかしてもともと仕様で<applet>タグは1つしか宣言できないってことでしょうか?
http://java.sun.com/docs/books/tutorial/uiswing/mini/fourthexample.html のページの事なのですが教えてください。
コンボボックスで選んだ画像を表示するっていうものなのですが、省略して、
JComboBox phaseChoices = new JComboBox();
・・・
phaseChoices.addActionListener(this);
・・・
public void actionPerformed(ActionEvent event) {
if ("comboBoxChanged".equals(event.getActionCommand())) {
の部分の↑がどこから出てきたのかが分かりません。ソースを全部見ても定義してありそうな
ところが見つかりませんでした。
コンボボックスに変化があると、ActionEventには"comboBoxChanged"という文字列が
保存されるのでしょうか?
教えてください。
C:\Hoge> java Hoge 実行したときに画面の左上に表示されるんですが、 これを画面中央に表示するにはどうすればいいんですか?
>>263 すげー。斬新な質問。お前いいかげんにしろ。
どこまで分かってて どこから分からないか、きっちり書け。
それぐらい読み取れる人に答えてほしいです。
266 :
デフォルトの名無しさん :03/09/06 17:03
position
264はおバカ
「コマンドラインオプションで表示位置を変えることができないか?」 などというつもりで質問をしてるんじゃないかと一抹の不安が過ぎったんだよ
できました setLocationでした
俺は負け犬だぁー
>>269 java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Window.html#setLocationRelativeTo(java.awt.Component)
っていうそのものずばりなAPIもある。
知ってるよ
275 :
デフォルトの名無しさん :03/09/06 17:39
JAVAでWindowsプログラミング作りたいのですが フリーな画面作成ツールってあのます?
Windowsで作ったGUIって xwindowでもちゃんと動くのですか?
あのます
>>275 1. 初心者丸出しの誤字に萎え
2. 用語の使い方に萎え
3. swing も AWT も試してすらいなさそうな雰囲気に萎え
>278 をを確かに。でもタイトル通りの初心者なので大歓迎してくれ。 setBoundsをひとつひとつ書くのが面倒くさくって聞いてみたでつ。
278はおバカ
なんだか香ばしいスレですね
☆ チン ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < jackpotマダー? \_/⊂ ⊂_ ) \________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | .愛媛みかん. |/
283 :
デフォルトの名無しさん :03/09/06 20:07
テキストエディタをswingで作っており、コンポーネントにJTextAreaを使っています。 キャレットがある位置をgetCaretPositionなどで取り出し、それを元に行番号を表示したいのですが、 2バイト文字と1バイト文字を混在させたテキストを入力するとうまく行番号が作れません。 現在キャレットがある行の値を正確に取り出すにはどうしたらよいのでしょうか? あるいは現在キャレットがある位置の行番号を正確に返すメソッドがあれば教えてください。
284 :
デフォルトの名無しさん :03/09/06 21:25
>>283 どの環境で、(まずOS。次にJDKのバージョン、または使用している開発ソフト名等)
どの状況で、(JTextAreaの各プロパティの設定を行なっているコードを書けるだけ書け)
どんな値が欲しいときに、(キャレットの位置に対応する値か?なら目視確認時におけるキャレットの位置くらい教えろ)
どのメソッドを呼ぶと、(何てメソッドを呼んでるんだ?戻り値の型、全引数の型まで含む完全なメソッドシグニチャを教えろ)
どんな値が返ってくるのか、(もちろんあんたは知ってるよな?だが俺は知らない。教えろ)
ことこまかに書いて下さい。(つーか、書かずに答えが貰えると思ってんのか?)
いやー俺って優しいよなー。答えが返って来ない理由をこれだけ親切に、
「教えて」やってるんだもんな。
285 :
デフォルトの名無しさん :03/09/06 21:27
最近、答えをもらえないような質問する奴多いな・・・・ で、答えをもらえない理由を指摘されると逆ギレする。
>>283 テキストコンポーネントのMVCモデルについて勉強する。
・OSはWindowsXPでJDKのバージョンは1.42です。 ・どんな状況でどんな値が欲しいかというのは正しい表記が判らないので文章で書きますが テキストエリアでキャレット位置が変化した時に、行番号を取り出したいのです。 意図がうまく伝わっているかどうかわかりませんがWindows標準のメモ帳には 秀丸エディタのような行番号がないので、それを実装してみようと思ったのです。 >キャレットの位置に対応する値か?なら目視確認時におけるキャレットの位置くらい教えろ >何てメソッドを呼んでるんだ?戻り値の型、全引数の型まで含む完全なメソッドシグニチャを教えろ 使っているメソッドは以下です -------------------------------------------------------------- API仕様書より クラス java.awt.TextComponent メソッド:public int getCaretPosition() このテキストコンポーネントのテキスト挿入キャレットの位置を返します。 戻り値: テキスト挿入キャレットの位置 導入されたバージョン: JDK1.1 -------------------------------------------------------------- 上記のメソッドを使用しており戻り値はint型の整数です。 Caretが動くとJTextAreaのキャレットの位置に対応する値が返っているので、 インターフェースをオーバーライドする時に返ってきた値を一行文字数で割って 行数を出そうと思うのですが、うまくいきません。 ソースを載せるのは正直言って長くて読んでもらえないと思ったのと、 実装途中の汚いコードだったので書きませんでしたが、勝手な理解で大変失礼しました。
>>288 それ、APIマニュアルの読んでいるとこ間違ってる。JTextAreaは
java.awt.TextComponentのサブクラスではなく、javax.swing.text.JTextComponent
のサブクラス。だからJTextComponentの項目を読めば知りたいことが書いてある。
とりあえず行番号を追加して、DOSプロンプトにCaret位置を出力するだけのものを載せます。 JAVAのStandardEdition(build1.4.2_01-b06)でコンパイルして実行可能でした。 お目汚しとは思いますがよろしくお願いします import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; class TestClass extends JFrame{ //フィールド static JLabel jl;static JTextArea jta; static JTextArea jta2;static int gyousu; //mainメソッド public static void main(String args[]){ JFrame jf = new JFrame("テスト"); jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE); jl =new JLabel("ラベル");jta =new JTextArea("行番号");jta2 =new JTextArea("テキスト");gyousu=1; Container con =jf.getContentPane(); con.setLayout(new BorderLayout()); con.add(jta,"West");con.add(jta2,"Center");MyListener ml=new MyListener(); jta2.getDocument().addDocumentListener(ml); CListener cl=new CListener(); jta2.addCaretListener(cl); jf.setSize(500,300); jf.setVisible(true);}}
入りきらなかったので二つに分けました。 上がメインメソッドで、これはリスナーのインターフェースです class MyListener implements DocumentListener{ public void changedUpdate(DocumentEvent de){;} public void removeUpdate(DocumentEvent de){;} public void insertUpdate(DocumentEvent de){ int a=TestClass.jta2.getLineCount(); if(a>TestClass.gyousu){ TestClass.jta.append("\n"+a); TestClass.gyousu=a; } } } class CListener implements CaretListener{ public void caretUpdate(CaretEvent ce){ int a=TestClass.jta2.getCaretPosition(); System.out.println("Caretの位置="+a); } }
>>289 多分そこも読んだと思うのですが解読できなくて、やむを得ず皆さんの手を煩わせようかと思った次第です。
とにかく一度、再読してみます…ありがとうございました
>インターフェースをオーバーライドする時に返ってきた値を一行文字数で割って 1行の文字数で割る? 半角も1文字、全角も1文字だから、 単純に文字数で割っても出ないと思うけれど。 リファレンスを眺めてみると・・・ キャレット位置をmodelToViewにかけてY座標を行の高さで割る方が良いような気がした。
Socketクラスを使って外部へ接続して不特定多数のクライアントが サービスを受けられるJavaアプレットを作っています。 new Socket("localhost", 9999)なんて書いてテストしてましたが localhostを他に置き換えてテストしたら java.security.AccessControlException: access denied (java.net.SocketPermission hogehoge.ddns resolve) が発生しました。 なんでだろうと思っていろいろ調べていたら、 セキュリティマネージャとか、パーミッションとか署名とか 難しい用語が出てきました。 Web検索を徘徊したり、Sunのドキュメントを必死になって読みましたが 私の猿の脳みそでは理解できません。 J2REインストールディレクトリの/lib/security/java.policyのgrant {}に permission java.net.SocketPermission "hoge.ddns", "connect"; と追記したら上記の例外は回避できましたが、 不特定多数の利用者にこれを要求するわけにはいきません。 JavaアプレットからSocketクラスで外部へ接続するにはどうすれば良いのでしょうか。 解りやすい解説サイトなどありましたら、紹介して頂けませんでしょうか。
ちょっと API 見てみただけだが getCaretPosition() と getLineOfOffset(int) でいいんじゃないのかね?
>>295 それいわゆる論理行数だからJTextAreaの折り返しが有効になっていると
行数がずれるよね?
298 :
61-22-132-112.home.ne.jp <(^^)> :03/09/07 02:54
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎パン祭
>>297 ふつー、テキストエディタの行数表示って論理行数じゃないの?
>>297 折り返しに関係ない行数が知りたいなら
getCaretPosition() までの \n の個数でも数えたら?
>>299 emacsみたいな普通のテキストエディタならね。でも283は
「秀丸エディタのような行番号がないので」って書いているから
秀丸のデフォルトに合わせて折り返しを考慮しないといけないのでは
ないかなあ。
ああ、秀丸ってスタイルを「C言語ソースファイル」とか切り替えると 行の数え方が変わるのか。プログラミングには全く使ったことないから 気づかんかった。
>>300 ここでいっている論理行数って改行の個数のことで、折り返しを考慮
した行数ってのがウィンドウ上で表示した際の行数じゃないの?
行数がエディタの横幅によって変わるのは秀丸ユーザーだけ
305 :
デフォルトの名無しさん :03/09/07 09:45
>>294 アプレットの配置されてたサーバ相手なら通信できると思うけど駄目かい?
>>304 設定で行数の数え方は変えられるよ
FileInputStreamで読み込んだtxt ファイル(128バイトの文字列)を64バイト目で改行して FileOutPutStreamでファイルに保存したようにしたいのですが、 改行の部分がどうやったらいいかよくわかりません。 一応、ファイルの読み込みとファイルの保存部分はどうにかできそうなのですが 改行の部分がどうしても・・・。 こうしたらいい。とかこんな風にやる。とかでいいんでご教授願います。
307 :
デフォルトの名無しさん :03/09/07 11:16
64バイトまで書き込んで、改行文字'\n'を書き出す。
>>305 お返事ありがとうございます。
なるほど。
と思って自分のPCでWebサーバを立ち上げて
同じディレクトリに.class群を置いて試してみましたが
アプレットのソースで指定する接続先は、
自分のWebサーバのDynamic DNS名でなければならないため
同様のExceptionが出てはじかれてしまいました
309 :
デフォルトの名無しさん :03/09/07 13:00
JDBCでの質問です。 ひとつのConnenctionをもとに複数のStatementを作成しようとすると2個目以降が エラーになってしまう時があります。ただSelectのみしか行わないStatementは 複数でもうまくいってしまったような気がしました。 DBに依存しているんでしょうが、基本的に1Connectionに複数Statementって可能? あとPrepeardStatementとStatementも同じConnectionで行うものなんでしょうか? DBはSQLServer2000です
311 :
デフォルトの名無しさん :03/09/07 13:20
>>306 FileOutPutStreamをPrintstreamとかに繋げれば?
>>308 ソースみないとわかんないや
>>309 ドライバ次第だと思うよ
>>308 実際に公開するときはその自分のWebサーバに各クラスをおくんじゃないの?
それなら開発時だけポリシーゆるくしてテストすればいいのでは。
もしくはhosts書き換えてDDNS名をlocalhostのIPアドレスに割り当てるか、
stoneみたいなポートフォワーディングツール動かすかしたらどう?
自分のWebサーバに.class群を置いて試行錯誤していましたが、
アプレット内部の接続先の指定を
DDNSから直接自分のIPを指定するようにしたら
動作するようになりました。
DDNSクライアントツールでIP更新もして
pingを打ったらちゃんと自分に来ていたため
疑っていなかったのですが、原因はDDNSあたりだったようです。
ただ、根本的にJavaの仕様のひとつである
ポリシー、アクセス権限を理解するには至ってないので
これからも勉強を続けたいと思います。
>>311 アドバイスをいただきありがとうございます。
根本的な解決ではありませんが、目の前の壁はどうにか越えられました。
>>312 お返事ありがとうございます。
すいません、文章中のhosts書き換えは理解できるのですが
ポリシー、stone、ポートフォワーディングツールなどの用語はまだ解りません。
これはJavaの勉強時間の不足から起こるものですので
今後ドキュメントなどを読んで勉強しようと思っています。
ありがとうございました。
すいません、Setの並び替えのことについてお聞きしたいのですが class Student{ private int number; private String name; private int rank; //アクセサ略 } ↑のようなクラスが100個ぐらいあったとしてそれを TreeSetに入れたとします たとえば、numberでソートしたい時は それ用のComparatorを作ってTreeSetのコンストラクタに渡せばいいのですが その後、nameでソートしたいと思った場合 もう一度新規でTreeSetを生成してname用のComparatorをセットして そのTreeSetに値をコピー(TreeSet#addAll)しているのですがなんか無駄のような気がします 一度作ったSetのコンパレータをその後、他のコンパレータに取り替えると言うことがしたいのですができますか? あと、その他のいいやり方があればいいのですが・・・。 設計的な話になるのかもしれませんがお願いします
Collections.sort(List list, Comparator c)
Arrays.sort(Object[], Comparator)
Shift_jisが文字化けしてしまうんですが、 どうすればいいんですか?
Shift_jisをunicodeに変換するにはどうすればいいの?
320 :
デフォルトの名無しさん :03/09/07 15:29
文字列がどう入力されてくるかによる。
解決 なんだ関数があるんじゃんw
Webアプリでスレッドセーフをどういう場面で使うか教えてください
良くある例題だとアクセスカウンターかな
324 :
デフォルトの名無しさん :03/09/07 22:28
みんな内部クラスってどんなとき使ってる?
325 :
デフォルトの名無しさん :03/09/07 22:34
>>322 JSP部分のスレッドセーフにしないといけないところ
public class Canvas { static Image getImage(String fname) { return new ImageIcon(Canvas.class.getResource("resources/"+fname)).getImage(); } public static void draw2D(Graphics g, int x, int y, Image image, ImageObserver io) { draw2D(g, x, y, image, image.getWidth(io), image.getHeight(io), io); } public static void draw2D(Graphics g, int x, int y, Image image, int w, int h, ImageObserver io) { g.drawImage(image, x-w/2, y-h/2, io); } } 上のソースのようにCanvas.classを作成します。 その後に下のように Canvas.draw2D(g, enemy2_x, enemy2_y, ENEMY2_IMAGE, io); enemy2という画像を描写したんすけど、まあ、描写はできたんすけど、今度画像を消去する場合はどうすればいいのでしょうか? 自分の予想ではCanvas.javaのほうもいじくると思ってソースをのっけました。
>>326 同じ場所を背景と同じ色で四角く塗りつぶす。
しかし、標準の作法と違うような…
こういう処理は、java.awt.Canvasのようなjava.awt.Componentのサブクラス、
つまりpaint(Graphics)メソッドを持つクラスに書くのがいいと思う。
全てstaticメソッドだが、staticにする必要ある?このソースからは全然感じられないけど。
それと、Canvasクラスはjava.awt.Canvasと名前がかぶるんだが不便しない?
>>327 確かにその方法だとできるんですけど、画面上から完全に抹消したいんすよねえ。
Canvasクラスにしたのはわかりやすくするためだったんすけど逆にわかりづらくなっちゃいますかね^^;
なるほど〜。
参考になりますね。回答ありがとうです〜
右クリックでコンテキストメニューに「コピー」とか あるTextFieldって無いですか?
アプレットで、スリープメソッドを同時に二回使いたいんですが、 別にクラスとか作るんでしょうか?
>>330 何をいっているのかよく分かりませんが、
イベントディスパッチスレッドをスリープするのは、バカの所為です。
お前ら、モティツケ /\⌒ヽペタン / /⌒)ノ ペタン ∧_∧ \ (( ∧_∧ (; ´Д`))' ))(・∀・ ;) / ⌒ノ ( ⌒ヽ⊂⌒ヽ .(O ノ ) ̄ ̄ ̄()__ ) )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
>>329 自作汁。PopupMenu+Clipboardだ。
334 :
デフォルトの名無しさん :03/09/08 00:17
クリップボード直接操作する必要はないと思う
javaでdirectXを使うのは無理なんですか?
>>335 そんなもんまでJAVAでやろうと思うなよ(w
おとなしくVisual Studio .NETで。
JavaでDirectXを使ったアプリを作れたとして それが携帯で動くと思うか? Javaは一度書けば携帯でもPCでも同じように動く。 DirectXを使うことはJavaの理念に反している。
なるほど。もっともな意見です。 ご意見ありがとうございました。
>>335 1.Java3DはDirectXのラッパです。
2.JDK1.4以降では、java.awt.GraphicsのWindows用実装は
DirectDrawのラッパです。
いいかげん、337みたいな考え、どうにかならんかな。 前提となるリソースが違えばとるべき方法が変わるのは 当然なんだが。そもそも335は携帯で動かしたいのか? それに大体Java3DみたいにDirectXの上に一枚ラッパかませりゃ いいだけの話だし。
しまった、かぶった。
いえ、考えていたのはwin上だったんですけどね。 まあ、実装だのラッパだのの意味がわからない時点でまだ何かを作るには早いと思い知らされました。 もっと勉強してきまする。
>>339 Java3DがDirectXのすべての機能を網羅しているんですか?
DirectXの便利な機能を使えないとなんか意味ないんですけど。
344 :
デフォルトの名無しさん :03/09/08 01:18
byte b[] = new byte[256]; FileOutputStream out = new FileOutputStream("hoge.txt"); for (int i = 0; i < 256; i++) { b[i] = (byte) Math.rint(256); } out.write(b); と、 FileOutputStream out = new FileOutputStream("hoge.txt"); for (int i = 0; i < 256; i++) { byte b = (byte) Math.rint(256); out.write(b); } では、どちらのほうが効率いいのでしょうか?
>>344 I/Oが1回ですむ前者の方が速そうだが、これくらいなら試した方が速いなぁ。
ちなみに効率=実行速度でOK?他に使用メモリとか考える?
>>343 339ではないが、DirectX使うのは無理なんですかという問いに対して
使っている例を挙げて無理じゃないといいたいんじゃないのか?
もちろん335が使えるかどうかは別問題なわけだが。
>>343 本当に意味がないのか?なにがしたいの?
ちょっと待ってください。 メアド見るとわかると思いますが別人です。 僕には343の質問にすらわからないとこがいくつかありますくらいです。
350 :
デフォルトの名無しさん :03/09/08 01:55
JavaでDirectX使ったらJavaのどんなプラットフォーム上でも動くという大きな利点がなくなるので、意味がなくなるというのはさておき Javaでプログラムするとき、どんなツール使ってますか? 何かメジャーなものがあったら教えてください WindowsでC++やってたときはVC++使ってました
>> 344
256じゃ少ないので、10万にして実測、
Test0 takes : 16 ms
Test1 takes : 330 ms
Test2 takes : 14 ms
Test3 takes : 17 ms
Test0は上、Test1は下、Test2は、上+BufferedOutputStream、
Test3は、下+ BufferedOutputStream
>>350 Eclipse
>>343 低レベルなとこに触りたかったら OpenGL Java binding 使ってくれ。
GL4Java とか最近 Sun が作り始めた奴とかあるからさ。
353 :
デフォルトの名無しさん :03/09/08 02:17
354 :
デフォルトの名無しさん :03/09/08 02:48
質問です。 環境:windows XP J2SE1.4.1_03 Eclipse2.1.1 com.sun.tools.javac.Mainクラス(Javaコンパイラ)を使って ソースを作っています。コマンドラインで c:\>javac -sourcepath c:\hoge\ Hoge.java と入力した場合は問題なくコンパイルされるのですが、 自作クラスのメインメソッドに以下のようなソースを記述し実行すると、 public....(メインメソッド本体は省略) Main.main(new String[]{"-sourcepath","c:\\hoge\\","Hoge.java"}); ↓ エラー:Hoge.javaを読み込めません。 というエラーになってしまいます。 ソースが Main.main(new String[]{"c:\\hoge\\Hoge.java"}); であれば問題なく動きます。 エラーにならない方法を教えていただけないでしょうか?
355 :
デフォルトの名無しさん :03/09/08 02:59
>>355 GUIが必要じゃない、もしくは自分でGUI組めるならeclipseをお勧めする。
357 :
デフォルトの名無しさん :03/09/08 03:28
ありがとう そうしてみます
358 :
デフォルトの名無しさん :03/09/08 04:08
>>353 です
無事出来ました。お騒がせして済みませんでした
359 :
デフォルトの名無しさん :03/09/08 04:54
三次元配列はどのように書けば良いでしょうか? 例えば全部で5つの棟があり一階に10部屋ある 10階建ての建物に住んでいる住民を記憶させるとかいった例で。
360 :
デフォルトの名無しさん :03/09/08 06:54
>>359 あんましいい例じゃないね。それだと棟、階、部屋クラスをつくたほうがいい。
361 :
デフォルトの名無しさん :03/09/08 07:03
漠然とした質問でスマソ。 あるデータを表示する画面がある。 チェックボックスでそのデータのところにチェックをいれたら そのデータのところを灰色にしたい。 Javaでそういうことってできますか? cFramework使ってる。 JavaScriptの問題かなぁ。。。
362 :
デフォルトの名無しさん :03/09/08 07:11
363 :
デフォルトの名無しさん :03/09/08 07:12
ちょっと追加しておくと、 テーブルの行にDBからとってきたデータがいろいろ入っていて、 一番端にチェックボックスがあるというイメージです。
>>362 それくらい基本的なことは本を読むなり入門サイトを見るなりした方がいいよ。
ここでちらっと聞くよりも絶対いい。そういう基本はJAVAをやる以上絶対に
抑えておかないといけないからね。
>>359 @
int apartment[][][] = new int[2][5][3];
apartment[0][0][0] = 50;
apartment[0][0][1] = 23;
*
*
apartment[1][4][2] = 49;
A
int apartment[][][] = {
{50,23,33},{65,11},{23,56,88,49}
};
@とA結果的には同じ
Aの方が楽だが、使うことはないだろう・・・・
1次元配列で再現したほうがいい、n次元配列はお勧めできん
Aだけど int apartment[][][] = new int[3][2][4]; を定義して、一個一個初期化したと同じってこと
367 :
デフォルトの名無しさん :03/09/08 08:25
>>360 基本ができていないのは痛いほど自覚しているのですが、最初から
独学で順序を間違って覚えているのでもはや基本も何もないです…
>>365 良くわかりました。
どうもありがとう。
下げ忘れ。すいません
>>367 じゃ、ちょっと後戻りするつもりで基本からやってみよう。
決して無駄にはなりません。
370 :
デフォルトの名無しさん :03/09/08 09:08
JAVAアップレットでLabelを使って文字を表示する場合、改行はできないのでしょうか? ""の中に\nを入れても変なドットが出るだけで改行にならないのですが…。
>>345 ,
>>346 ,
>>351 レスどうもです。
やっぱり配列に入れてからいっきに吐いた方が効率いいんですね。
>>345 が少し触れてますけど、メモリ使用量はどうなんですかね?
256だとそんなに変わらない気がしますが、10万とか大きいバイト数だとどうなります?
みなさんはプログラム組むとき、速度優先か、メモリ使用量優先かどちらですか?
>>351 のよく見てなかったw
BuffreadOutputStreamに1バイトずつ書き込んで最後にフラッシュさせるのが一番効率よくて、メモリも使わずに済むんですね。
>>370 2行目を別Labelにして代用、とか。
Swingを使用する場合に限るけど、こんなことができる。
pane.add(new JLabel("<html><body>hoge<br><font color='red'>hoge</font></body></html>"));
374 :
デフォルトの名無しさん :03/09/08 12:48
>>373 いやいや、JAVAで小町算(1〜9の数字を+-使って100にする)を解くプログラムを作ったんだけど、
アプレットでHTMLにうまく表示できないんです。Label使うと、なにやっても求めた式が全部
つながって表示されちゃうんです。setTextとか使わないとダメなんすかね…。
>>374 だから、改行する数だけLabelを使うか、JLabelを使ってHTMLで書いてよ。
>>374 setEditable(false) した TextArea でもええやん
Java にはワイルドカード(*.java, ?g.*) を解析するライブラリは無いのかしらん。
>>377 1.4以降なら、正規表現ライブラリjava.util.regexが標準でついてくる。
1.3以前なら、Jakarta-OROやJakarta-regexpなどの正規表現ライブラリを使う。
379 :
デフォルトの名無しさん :03/09/08 15:07
>>375 ごめんなさい。勘違いしていました。その方法で少し試してみます。
>>378 正規表現でなくワイルドカードなんですが
382 :
デフォルトの名無しさん :03/09/08 18:06
Jrunで困っています…。
自分で作成したwarファイルがあるのですが、tomcat上では正常に動作いたします。
そのwarファイルをjrun4.0の
%JRUN_HOME%/servers/samples
の下に置き、jrunを起動いたしました。
http:/localhost:8200/sample/xxx/ をブラウザで見たところ、htmlは見えるのですが、ボタンを押すなどの
servletが動くタイミングでエラーが出ます。
warファイルの中のWEB-INF/libの中に入っているjarファイルの中のクラスがありません、
というエラーでが出ます。一番最初に呼ばれるクラスです。
TLDファイルの問題なのでしょうか?
tomcatでは問題なく動いていたのですが…。
なにかわかる方いらっしゃいましたらアドバイスをお願いいたします。
>>380 ワイルドカードは正規表現で表現できないのだすか?
>>380 正規表現でワイルドカードを実装すればいいだろ
*.java → .*\.java
?g.* → .g(\..+)?
間違ってたら愛嬌だ
>JavaでDirectXを使ったアプリを作れたとして >それが携帯で動くと思うか? >Javaは一度書けば携帯でもPCでも同じように動く。 >DirectXを使うことはJavaの理念に反している。 あほ丸出しだなw J2MEとJ2SEの違いも知らないのか? おまえが理念に反しているんだよw
>>384 多分
>>380 は、
ワイルドカード = 展開されたもの
って意味で使ってんだろ。だから、*.javaってのは、どっかの
ディレクトリ配下にある拡張子.javaのファイル全部のリスト
が欲しいと。
普通そう言うのはフィルタつかうけどね。
387 :
デフォルトの名無しさん :03/09/08 18:59
基本的なことですけど、serveletってどんなプロバイダでも動かせるんですか?
プロバイダに質問してください
389 :
デフォルトの名無しさん :03/09/08 19:05
分からないなら答えないでください。
基本的なことですけど「servelet」はなんでしょうか? もし「servlet」のことでしたら、 それはホームページのサーバーがサーブレットに対応してないといけません と言うのが答えになります。
>>389 こういう奴最近多いな。
>>388 氏はここで聞くことではないと教えてくれているんじゃないか。
勘違いするんじゃない。こんなことがわからないのはあんたぐらいだ。
プロバイダに聞けばすぐにわかること。
>>391 最近こういうくだらないレス返してくるやついるんだよな
放っておけば良いものを、グダグダうるせーっつーの
388=391だと思われてもおかしくないぐらいの悔しがり方だぜ
プロバイダは動かせないと思う・・・・
>>392 をいをい・・・390はかなりまともな答えだぞ?
388=391ではありません。 388さん、ごめんなさい
>基本的なことですけど、serveletってどんなプロバイダでも動かせるんですか? どんなプロバイダを使用していても動かせますよ
387は聞くところを間違っている。プロバイダに聞いてください。
>>395 ←まあ、こういうやつね くだらないツッコミ厨
もっとこうツッコミかたも変えていかないといけないわけよ
ノリツッコミしてみるとかさ、なんかそういうアイデアが欲しいわけよ
こういう奴(391、395)って、2chに粘着してるくせにカキコのセンスが感じられないんだよな
なにをまじめに語ってるんだか。。。
まじめに答えるなら、普通に回答すれよバカ。
387の書き込みを見た瞬間、「どうやってツッコめばおもしろいのか」
を考えられる人間になりなさい。
>>399 ヲイヲイ・・・・まあ、それで387が納得してくれるのならよいか。
399面白い!座布団一枚!
なんだか香ばしいスレですね
自分の気に入った答えじゃないからと言って逆ギレしないでくださいね
つーか、今何人ココ見てるの? 番号言ってください 俺から・・・ 1番
>>406 笑えもしない、ためにもならないレスはいらないのです
2番
>>406 >「気に入った答え」
それは、
「僕と結婚してください」
「・・・少し考えさせてください」
「わかった・・・いい返事待ってるよ」
っていうのと同じですか?
3番
4バン
412 :
デフォルトの名無しさん :03/09/08 20:00
ババンババンバンバン
キャッシュワン18600番
414 :
デフォルトの名無しさん :03/09/08 20:23
「糞スレ」の読み方は? フンスレ? クソスレ? どっちよ?
くそすれ、でOKだと思います
>>416 こういう質問にはすぐに的確な答えが返ってくる。
糞スレマンセー
417 :
デフォルトの名無しさん :03/09/08 20:36
jarファイルを解凍したいのですが どうすればいいのでしょう?
unzip *.jarでOK
ZIP解凍できるツール使えばいい
jarってなんて読むの?
私はジャーと読んでいます
ジャバ、アーカイブ、リラクサー
ジャル
あ・り・が・と・う
おれたちには、「あす」は無いのか?
430 :
デフォルトの名無しさん :03/09/08 22:13
ない
public static void hoge { while(s != null){ *****; } } public static void main(String[] args) { ***** String s; s = br.readLine(); ***** hoge(); } こんな感じで、メインメゾットで定義した「String s」をhogeメゾットに渡したい, つまり、 while(s != null)のsに渡したいのですがどうやったらうまくいくでしょうか?
すんません、1行目訂正。 public static void hoge()
>>432 *****;これは何?なんか以前他の言語やってたの?なんかそんな気がする
メソッドも「メゾット」とか言ってるし・・・
まあそれはさておき、答えはこうだ
public static void hoge(String s)
{
while(s != null){
*****;
}
}
public static void main(String[] args)
{
*****
String s;
s = br.readLine();
*****
hoge(s);
}
435 :
デフォルトの名無しさん :03/09/08 23:12
SwingのJappletをIEで表示した時に、 アプレット部分にかかる(見えない部分を作る)ように IEのウィンドウサイズを変更すると画面が乱れて 表示がおかしくなります。 何か対策はないでしょうか? paintComponent()辺りが怪しいかと思って色々と試したのですが、 どうもうまくいきません。
ソース見ないと何もいえないのだが 俺ならこうやる↓ public void paintComponent(Graphics g){ super.paintComponent(g);//←ココが肝。これって普通は必要だと思ったけど・・・。 g.drawXxx(・・・・); } どうでしょうか?
>>434 おお!できました。
ありがとうです。
ちなみに*****のとこは続きの処理があるということです。
while(s != null){
s = s + 10; みたいな.
メソッドについては、今までメゾットだと思ってました。(検索引っかかるし・・・。)
はずかしいぃぃぃ(;´Д`)
俺は今までメッソドだと思ってた
おれは、メラニン
現在、神が降臨中です マジでくだらない質問は今のうちにどうぞ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀`)< メソードだと思ってたモナ♪ ( ) \_____ | | | (__)_)
SwingでつくったGUIを最小化して タスクトレイに入れたいんですが、 どうすればいいですか?
>>444 タスクトレイは無理かもしれないが
ある意味システムのデーモンとして動作するっていうのは出来ないのかな
あ、スタートアップにバッチファイル置けばいいのか・・・?
メゾネットかとおもてた
JAVAでマンコ作れるって本当?
>>436 これが元の問題が起こるソースで、単にボタンを表示するだけです。
これをIEで表示させてサイズ変更するとアプレットの表示がおかしくなります。
JPanelをextendsしたクラスを作って、
paintComponent()をオーバーライドして
super.paintComponent()を呼んでみたのですがうまくいきません。
g.drawXXX()はしませんでした。
import java.awt.*;
import javax.swing.*;
public class mainApplet extends JApplet {
JPanel JPanel1 = new JPanel();
JButton jButton1 = new JButton();
GridLayout gridLayout1 = new GridLayout();
public void init() {
try {
this.setSize(new Dimension(400,300));
jButton1.setText("jButton1");
JPanel1.setLayout(gridLayout1);
this.getContentPane().add(JPanel1, BorderLayout.CENTER);
JPanel1.add(jButton1, null);
}
catch(Exception e) {
e.printStackTrace();
}
}
}
>>435 >g.drawXXX()はしませんでした。
なんだぁ、だったらそもそも
paintComponent()をオーバーライドする必要はないじゃん
消してくださいそのpaintComponent()を。
(・∀・∀・)メッソッド-
ソリッド
>>451 必要ないのですか。
そうすると、paintComponent()以外の方法ということになりそうですね。
IEのウインドウサイズを変更したときに
画面を再描画させることはできないのでしょうか?
456 :
デフォルトの名無しさん :03/09/09 00:06
Cは一通りできるようになったんで Javaに手を出してみた者です。 VisualCafe for Java 2.0J データベース開発版 っていうのを中古屋で見つけて購入したんですが これ使ってもアプリ作ったりできますか? JDK1.1対応ってのが萎えるんですが、、、 ちなみに同じ店にSuperSeed1.0Jってのがあったので ついでに買いました。こっちはJDK1.0対応みたい。 どっちも100円でした。 やっぱり値段なりの性能でしょうか?
>>435 っていうか、
>>450 のソースで問題出るっておかしいよな
JREはSunのやつ使ってるの?
>>456 Javaはじめたばっかりなら
どうせならEclipse使おうよ。
無料だしさ
でも、できればJDK+テキストエディタではじめる方が良いよ
>JDK1.0 ( ´,_ゝ`)プッ 俺なんか1.41使ってるよ( ̄ー ̄)ニヤリッ
>>435 全然問題ないよ
ブラウザでSunのJDK使う設定になってるの?
462 :
デフォルトの名無しさん :03/09/09 00:18
WeakHashMapはどのような場面で使用すればよいでしょうか? API仕様の説明を見たんですけど 理解できませんでした。 どうか教えてくださいまし
>>458 ありがとうございます。
JDK+テキストエディタからはじめます。
Cの時もこうだったからこっちの方が合ってるかも、、、
また一人救われた
>>461 IEのオプションでJava(Sun)の「Java2 1.4.1を使用」にはチェックが入っています。
あと、Swingのボタンが表示できているのでOKと思うのですが。
問題ないのですか・・・。
自分の環境では、アプレットの一部が表示されないところまでブラウザを
小さくすると描画がおかしくなってしまいます。
>>464 かくして、次の質問は予想できるわけだが・・・
467 :
デフォルトの名無しさん :03/09/09 00:30
ResourceBundleで、propertiesファイルに key=1 key=2 とあった場合、文字列配列で受け取ることは出来ないんでしょうか? ResourceBundle.getStringArrayだとエラーが起きてしまいました。
>>463 古いJavaはやらないほうがいいくらいだよね
>>465 ねえ、このソースで試してみて
必要ないやつはコメントしてるから
そのままコピペしてくれ
import java.awt.*;
import javax.swing.*;
public class MainApplet extends JApplet {
JPanel JPanel1 = new JPanel();
JButton jButton1 = new JButton();
GridLayout gridLayout1 = new GridLayout();
public void init() {
//this.setSize(new Dimension(400, 300));
/*HTMLで
<applet code="test.MainApplet.class" width="400" height="300">
</applet>
とやってるならthis.setSize(new Dimension(400, 300));は必要ない
jButton1.setText("jButton1");
JPanel1.setLayout(gridLayout1);
//this.getContentPane(). add(JPanel1, BorderLayout.CENTER);
//this.getContentPane()は必要ない
this.add(JPanel1, BorderLayout.CENTER);
JPanel1.add(jButton1, null);
}
}
>>467 key=1,2
とやって、
ResourseBundle rb=・・・;
String[] keys = rb.getStringArray("key");
//あるいはString[] keys = rb.getString("key").split(",");
で、どう?
>>470 getStringArrayを使うと、java.lang.ClassCastExceptionが
発生してしまうようです。
使い方が間違っているのでしょうか。
#getArray..が使えないようであれば、split使った方がよさそうですね。
>>467 そうか、
まあ、String[] keys = rb.getString("key").split(","); のやり方は俺が実際試したやつで
動作保証済みなのだが
getStringArrayっていうのは勘で書いたんだ、だから試していないスマソ
その書き方だとリソースって言うのはテキストファイルだよね
リソースをクラスにすればgetStringArrayは使えるののだが・・・
String[] key={"1","2"};
って定義しておけば呼べるんだけど
テキストの場合は使えないのかな?
key={"1","2"}
または、key={1,2}
とか書いてもダメかな?
>>469 こんなエラーが出ました。
JappletなのでgetContentPane()はいるのではないですか?
java.lang.Error: Do not use MainApplet.add() use MainApplet.getContentPane().add() instead
at javax.swing.JApplet.createRootPaneException(JApplet.java:195)
at javax.swing.JApplet.addImpl(JApplet.java:217)
at java.awt.Container.add(Container.java:518)
at MainApplet.init(MainApplet.java:20)
at sun.applet.AppletPanel.run(AppletPanel.java:347)
at java.lang.Thread.run(Thread.java:536)
>>473 ごめん
これだ↓
import java.awt.*;
import javax.swing.*;
public class MainApplet extends JApplet {
JPanel JPanel1 = new JPanel();
JButton jButton1 = new JButton();
GridLayout gridLayout1 = new GridLayout();
public void init() {
jButton1.setText("jButton1");
JPanel1.setLayout(gridLayout1);
getContentPane().add(JPanel1, BorderLayout.CENTER);
JPanel1.add(jButton1, null);
}
}
>>474 ダメなようです。
Windowを変更したとき、
アプレット上にスクロールバー等の残像が残ってしまいます。
遅くまでお付き合いいただき、どうもありがとうございました。
今日は一旦休みます。
解決策を再考してまた書き込みます。
476 :
デフォルトの名無しさん :03/09/09 01:34
Javaでゲーム作るときって、C++に比べてどうですか? やっぱりライブラリを自分で作るなり、人の使うなりしないとできないものなのでしょうか? 対戦カードゲームのようなもの考えているんですが
>>472 そのメソッドは、たぶんListResourceBundle用だと思われ。
PropertyResourceBundleでString[]のプロパティ定義はムリでしょ。
だいたい、どの文字をデリミタと判断するのか、APIのレベルじゃ決
められなし。
PropertyResourceBundleのサブクラスを自作する手はあるかも。
478 :
デフォルトの名無しさん :03/09/09 03:33
>>383 なんだけど、ユーザがワイルドカードしか知らんのよ
479 :
デフォルトの名無しさん :03/09/09 05:03
メーソド …… …… …… ノリオクレタ…(゚Д゚;)
>>478 ユーザの入力したワイルドカードを正規表現で解析して正規表現になおしたらいいじゃん
>>476 どういうレベルのライブラリだよ。
カードゲームごときで必要になるもの、
Java の API 以外に思いつかないが。
482 :
デフォルトの名無しさん :03/09/09 10:43
yyiyiu
483 :
デフォルトの名無しさん :03/09/09 11:06
vectorの指定要素を整数型に変換したいけど どうするのでしょうか?
Integer i = (Integer) vector.elementAt(?); か int i = Integer.parseInt(vector.elementAt(?)); ちゅーか、指定要素って何? 上のでいいの?
>>484 有難う御座います。
指定要素はそうです。
int vct_month = Integer.parseInt(vct.elementAt(youso));
yousoをループで回して取っていきたいのですがなんか要素のところで
躓いてるようです。
「java.lang.Object から java.lang.String への変換には明示的なキャストが必要です。
」とエラー出力されます。
Integer.parseIntの引数はStringだから int vct_month=Integer.parseInt((String)vct.elementAt(youso)); としてやらなきゃいかんよ。 vector.elementAtの戻り値はObject型だからな。
>>486 ありがとうございます。うまくいきますた!
いや〜勉強になりました。戻り値も指定しておかないといけないんですね。
>>487 んがぁ違う。あくまで戻り値のクラスは Object 。
String も Object だし JLabel も Vector も InputStream も Object 。
Vector には Object なら何でも突っ込めるから、
戻り値である "インスタンス" のクラスは Object にしかできない。
Object な戻り値の正体、詳しくは何のクラスであるかを知っているのは、
Vector に突っ込んだ張本人、たとえばプログラムを書いた君なわけだから、
Vector から取り出すときは君が「これは String なんだぜ」と、
コンパイラに教えなきゃいけない。これをキャストという。
Vector のメソッドに戻り値を指定する=Vecotr インスタンスにいいきかせるわけではない。
コンパイラ自身にいいきかせる。
String word = "俺はStringだぜ";
Object obj = word; // String は Object でもあるからすんなりいく。
String str = obj; //これだと「obj が String だとはかぎらねーだろボケ!」とコンパイラが怒る。ここまでの流れなんて知らんから。
String str = (String)obj; //Object な変数だけど 実は String だ、プログラマの俺がいうから間違いないんだ分かったかコンパイラ!といいきかせる
たとえば君が Vector に TextField つっこんだくせに、elementAt の戻り値に (String) だなんてキャストかますと、
Vector が怒るのではなくプログラム (正確にはVM) が怒る。
やってみたらわかるけど。でもやってみなきゃ分からないから、コンパイラは怒れない。
>>488 わかりやすい説明ありがとうです。
いや〜この辺りは曖昧だったので助かりました!
JSPでファイル読み込みができたのですが Beanで同じようにやりたいです。 String temp; StringTokenizer tkn; String tmp_holiday[][] = new String[13][4]; i = 0; k = 0; FileReader fr = new FileReader(application.getRealPath("/jsp/yearly.dat")); BufferedReader br = new BufferedReader(fr); while( br.ready() ){ temp= br.readLine();//一行読み込み tkn = new StringTokenizer(temp, "\t"); if(row_1==0){row_1=1;continue; }//一行目を飛ばす処理 while(tkn.hasMoreTokens()){ tmp_holiday[i][k] = tkn.nextToken(); k++; } k=0; i++; } br.close();
>>490 あれ?お前ココに質問したっけ?まあいいか
String tmp_holiday[][]のアクセサ用意すればいい
public String[][] getTmp_holiday(){
return tmp_holiday;
}
サーブレットには
session.setAttribute("bean",bean);
あとはJSPから
<jsp:usedBean ・・・・/>
<% bean.getTmp_ holiday()[1][2] %>
じゃヴぁで実行ユーザ以外のユーザ権限でファイルを作ることってできる? もしくはファイルのオーナーを変更することとか。 できるのなら何かヒントになるキーワード教えてたもれ。 j2sdk1.4.1_05 tomcat4.1.27 redhat7.3
>>493 ファイルのオーナーってのはファイルシステムとか OS に依存する。
よって java.io、java.nio 配下のクラス群では無理だと思われ。
JNI 使うとか、Runtime.exec とかで chown するとか。
名の通りド素人です。 本当に基本的なことを伺いたいのですが、 どなたかお答え願いますでしょうか? javaはjavaVMさえあれば実行環境が整うとのことですが、 この場合でも何かしらのOSは必要なのでしょうか? バカバカしい質問かもしれませんがよろしくお願いします。
必要ないよjavaVMさえ動く環境なら。
OSの上にJVMが載るように設計されているので OSありき
>>496 さっそくのお返事ありがとうございます。
ということは、javaVM自体がOSの代わりになりうるという
解釈もできるのでしょうか?
それとjavaVMさえ動く環境というのは簡単に言うと
どういうことなのでしょうか?
とんちんかんな質問+教えてくれ君ですみません。
JVMはOS上で動作するソフトウェアだと思え。OSは必要。 (例外的にネイティブにJVMを実行するコンピュータも存在するが。主に組み込み系。)
502 :
初心者23歳死亡 :03/09/09 15:15
2 3 5 4 6 8 というデータを複数のテキストから配列に読み込みたいんですけど、
504 :
初心者23歳死亡 :03/09/09 15:17
int linecount = 0; // 行番号を数えるための変数 try { BufferedReader br = new BufferedReader( new FileReader( "data.txt" ) ); int bb=0; int ba=0; while ( br.ready( ) == true ) { String line = br.readLine(); System.out.println( ++linecount + ": \t" ); System.out.println( line ); int aa= Integer.valueOf(line).intValue(); /*テキストからString型で入ってくるのをintegerに変更する */ System.out.println("line = " + aa); bb= (linecount-1) %2 ; ba= (linecount-1 -bb)/2 +1; subjects.input[ba][bb]= aa; } br.close( ); } catch( Exception e ) { System.out.println( e ); }
505 :
初心者23歳死亡 :03/09/09 15:17
というようにストリング型からint型に直して入力してました。 並列に並べることで、2,3個のファイルなら問題なく読み込んでいて、 エラーなど起こらなかったのですが、4,5個と増えるたびに 配列が壊れてしまう 症状がでてきました。 詳しい方どなたか、ご教授願いたいです。
subjectsの宣言は? 何型?
507 :
初心者23歳死亡 :03/09/09 15:27
いや、どうみたってintの配列じゃないのか・・・ サイズとか聞きたかったんだ int subject = new int[10][10] とかしてないの?
509 :
初心者23歳死亡 :03/09/09 15:32
>>508 あ、すいません。
[400][4]です。よろしくお願いします。
subjects.input[ba][bb]= aa; 多分配列の初期化をしてないか(NullPointerException) 配列の要素を超えて代入しようとしている(ArrayIndexOutofBoundException)
JAVAの入門書を、読み終えて、次に読む本は、 コアJAVAの基本編と、応用編と、JAVA言語仕様のどれが良いでしょうか?
>>510 違うだろう。多分、読み込むたびに初期化すべきなのに忘れている。
513 :
初心者23歳死亡 :03/09/09 15:35
>>510 チェックしてみます。ありがとうございます
>>494 さんきゅう。
メンドクセーし諦めることにした。
んじゃ。
515 :
初心者23歳死亡 :03/09/09 15:47
>>512 すいません、何を初期化すべきなのですか??
答えるのが面倒ならうまい検索語でも 教えて頂きたいと思います
>>492 有難う御座います。
ビーンにできました!!
ちなみにVectorをビーンへ引数にする時はどのようにして渡して
どのように受け取るのでしょうか?
教えて君ですいません。
518 :
初心者23歳死亡 :03/09/09 16:00
>>517 全部はきついですね。
int linecount2 = 0; // 行番号を数えるための変数
try {
BufferedReader br = new BufferedReader( new FileReader( "data2.txt" ) );
int bb=0;
int ba=0;
while ( br.ready( ) == true ) {
String line = br.readLine();
System.out.println( ++linecount2 + ": \t" );
System.out.println( line );
int aa= Integer.valueOf(line).intValue(); /*テキストからString型で入ってくるのをintegerに変更する */
bb= (linecount2 -1) %2 ;
ba= (linecount2 -1 -bb)/2 +1+ subjects.subnumber[0] ;
subjects.subnumber[1] = linecount2/2 + subjects.subnumber[0] ;/*subnumberは前項までの要素数を保持している*/
subjects.input[ba][bb]= aa;
}
br.close( );
} catch( Exception e ) {
System.out.println( e );
}
こんな感じで並列に並べていっています。
4,5個並べたあたりから不具合がでてきます。
どうしたいのかと 不具合の内容が知りたい subjects.subnumber subjects.input の初期化しているところがエラーっぽいけどそこが書いてないから分からない
>>516 >ちなみにVectorをビーンへ引数にする時はどのようにして渡して
>どのように受け取るのでしょうか?
>
言ってることがとっ散らかっちゃって、意味不明なのだが
これでいいのか?
Vector vec;
public Vector getVec(){
return vec;
}
サーブレットには
session.setAttribute("bean",bean);
あとはJSPから
<jsp:usedBean ・・・・/>
<% bean.getVec().get(0) %>
>こんな感じで並列に並べていっています。 がくがくぶるぶる(棒読み) いろいろ突込みどころがあるが、とりあえずわかりやすいところとして subjects.subnumber[1] = linecount2/2 + subjects.subnumber[0] ; ここ、linecount2 が奇数だったらおかしくなるんだがどうか。 それと次以降の処理ではちゃんとこうなってってるか? subjects.subnumber[2] = linecount2/2 + subjects.subnumber[1] ; ここが解決してからでいいけど、 同じ処理何度も並列で書くなんてのは、初心者には問題が見えてこないので×。 特に、こりゃ複雑なので余計に。 関数書くことを覚えよう。subjects にメソッド追加するのがよいだろう。
522 :
初心者23歳死亡 :03/09/09 16:19
>>519 テキストからint型のデータを 配列に入れていきたいのです。
不具合は、配列の中身が入れ替わったり、変な数が入ってきてしまうことです。
初期化は一番最初に宣言するだけで、その後はしてません。
>>521 ループしますので、途中では奇数が入り、int型では無くなってしまいます。
しかし、最終的に、偶数で落ち着くので、問題無いのかと 思ってしまいましたが。。。
>>522 もうちょっと詳しく
具体的に聞きたいのは
subjects.input[][]でどういう風に並べたいのか
data1.txt = {1,2,3,4,5,6},data2.txt={1,2,3},data3.txt={1,2} だった時には inputの中はどうなって欲しいの?
>>初心者23歳死亡 >不具合は、配列の中身が入れ替わったり、変な数が入ってきてしまうことです。 2次元配列の場合、自分のプログラムミスの場合が多い。うっかりミス、勘違い あくまでも俺の経験上。もう1度よくソース見てください
526 :
初心者23歳死亡 :03/09/09 16:30
>>523 [i][] 各iが4つ以下の要素を持つようにしたいのです。
うまく並ばされず、エラーが出てしまいます。
この後に続く関数で、その仕分けをしていくのですが。。
527 :
初心者23歳死亡 :03/09/09 16:33
>>524 input[1][]={1,2}
input[2][]={3,4}
input[3][]={5,6}
input[4][]={1,2,3}
input[5][]={1,2}
というようにしたいです。
>>525 がんがって調べて生きます。
>>527 そこのアルゴリズムが??なんだけど・・・
ちなみに君のソースプログラムだと多分
input[4][] ={1,2,3}にはならないよ
529 :
初心者23歳死亡 :03/09/09 16:39
>>528 そうですね。このプログラムだと2個ずつ要素を持つようになってしまいます。
3つのときは
bb= (linecount3 -1) %3 ;
ba= (linecount3 -1 -bb)/3 +1+ subjects.subnumber[1] ;
としますので、間違いないと思うのですが。。。。
でアルゴリズムは 1つのファイルの要素数が5つ以上の時は2つづつに分割して格納 4つ以下の時はそのまま格納 でいいの?
531 :
初心者23歳死亡 :03/09/09 16:52
5つ以上になることはないようにしています。 4つ以下はそのまま格納は 間違いないです。
>>520 ありがと〜です。できました。
今はカレンダーを出力する物を作っています。
いや〜でも、サーブレット,Bean,JSPの機能の分け方がよく
わからないですね。サーブレットからサーブレットの継承っていうのは
できるのでしょうか?
サーブレットは
public class クラス名 extends HttpServlet{}
となっているので。。。
>>初心者23歳死亡 デバッグしかない デバッグすれ
5つ以上がないときは bbやbaをlinecountと同じレベルで宣言して 新しくファイルを開いた時にbbを0に初期化してみてはどうですか? そしてbbをインクリメント(++)していって baは新しくファイルを開いた時にインクリメントして ファイルが変わったらインクリメントというのでどうでしょう? もし5つ以上の要素をもつファイルが来たら baをインクリメントしてbbを初期化するという方法でできると思います あなたのソースだと格納される場所が変になると思います bb= (linecount3 -1) %3 ; のあとに bb= (linecount4 -1) %2 ; がくるとこわれます
>>531 >>502 で 5つ以上になっとるやんけ。
6 つのときは 2つづつ、3 つのときは 3つづつ (この場合「づつ」とは言わないが)、
そしたら、何行並んでるか先にしらべなきゃ、格納できないじゃないか。
もう一回考え直した方がいい予感。
536 :
初心者23歳死亡 :03/09/09 17:09
>>534 ,
>>535 うおー試してみます。
また 報告したいと思います。
滅茶苦茶参考になりました。ご教授くださったかた 本当にありがとうございました。
それではまた後で
537 :
デフォルトの名無しさん :03/09/09 17:29
Java Houseってなくなっちゃったの? ぐぐっても繋がんないんだけど。
ログイン画面からフレーム画面に遷移してセッションが切れると フレーム画面からログイン画面へ遷移させることは可能でしょうか?
>>538 常にセッションを監視するようなサーブレットを作る
セッション切れていたら、ログイン画面に飛ぶようにしておくだけでいい
で、通常はそのサーブレットを継承したサーブレットを
その他の処理書けばいい
>>537 Subject: [JavaHouse-Brewers:52533] ネットワーク工事に伴うサービス休止
Date: Tue, 26 Aug 2003 16:52:28 JST
From: "TAKAGI, Hiromitsu" <
[email protected] >
To:
[email protected] (JavaHouse Brewers ML)
ネットワーク工事に伴い、java-house.jp のサービスのすべてを、
本日深夜から、最大で1週間、休止します。
サービス再開は予定より早まる可能性はあります。
また、再開後、IPアドレスが変わります。(ドメイン名は変わりません。)
高木 浩光@Java Houseお世話人
>>540 最大一週間なのに、既に2週間になろうとしているのが問題だって言ってるんじゃないの?
は? 俺毎晩つながってるよ。 今も検索かけてるし。
544 :
デフォルトの名無しさん :03/09/09 19:41
本屋で入門書を買って今このちいさな頭でstudyしているオラだが このプログラム import java.io.*; class Unko { public static void main(String[] args) throws IOException { BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); System.out.println("好きな数を入力しやがれ!"); String kim=br.readLine(); System.out.println("もう一つ入力しやがれ!"); String bob=br.readLine(); int a= Integer.parseInt(kim); int b= Integer.parseInt(bob); int x=a+b; System.out.println("あなたの入力した数の合計"+x+""); } } このプログラムで入力するときある数をこえると エラーになってしまうんだが..... どうしてですか?教えてください
545 :
デフォルトの名無しさん :03/09/09 19:44
ちなみに同じようなプログラムを一回みてそれから何も見ずに 自分でつくってみました
546 :
デフォルトの名無しさん :03/09/09 19:46
まさにunkoなプログラムだ
>このプログラムで入力するときある数をこえると >エラーになってしまうんだが..... コンピュータについて学習してください
>>544 intの範囲
-2147483648〜2147483647
549 :
デフォルトの名無しさん :03/09/09 20:03
>>548 さん
ありがとうございます
longにすればいいんですよね
あとlongの上をいく整数型は
ありますか?
550 :
デフォルトの名無しさん :03/09/09 20:05
すみませんトリビアの 12345678987654321を やりたいもんで
551 :
デフォルトの名無しさん :03/09/09 20:08
あ!すみません できました
552 :
デフォルトの名無しさん :03/09/09 20:11
ありがとうございます
現在、神が降臨中です マジでくだらない質問は今のうちにどうぞ
>>553 おいこら、俺のセリフ取るんじゃねーよバカ野郎
555 :
デフォルトの名無しさん :03/09/09 20:43
>>539 有難う御座います。
>常にセッションを監視するようなサーブレットを作る
>セッション切れていたら、ログイン画面に飛ぶようにしておくだけでいい
>で、通常はそのサーブレットを継承したサーブレットを
>その他の処理書けばいい
セッションを監視するサーブレットを作成する時リクエストの転送
で転送JSPを指定する形でしょうか?
フレームの中のPageからサーブレット→JSPとなった時フレームトップから
変更できますか?フレームの中の一部にログイン画面が出力とならないでしょうか?
>>555 それはHTMLのリンクの貼り方の問題だよ
557 :
デフォルトの名無しさん :03/09/09 21:09
>>555 HTMLではtarget="_top"でいけますが、サーブレットでセッションが切れたら
転送するJSPを指定した時に果たしてフレーム全体を遷移するのか疑問に
思ったからです。
>>555 フレームあると難しそうだよなそういうのは
その場合だと、サーブレット内で転送先が決まるので
ターゲットフレームを変えることは出来ない・・・
つまり
>フレームの中の一部にログイン画面が出力とならないでしょうか?
となってしまう。
フォームを別窓で行うようにすれば解決しそうだけど、どうですか?
あとはBASIC認証なら、そういう問題をかかえることなさそうだけど
文字列を一文字ずつ読み込ませ、一定の文字数に達したら読み込みを終了させるにはどうやったらよいですか?
>>555 JavaScriptやらHTMLの話になるがこういう方法でどうでしょう?
転送先として直にログイン画面を指定せず、以下のような内容のHTMLページに遷移すると。
<html>
<body bgcolor="#FFFFFF" onload="top.location='ログイン画面のURL'">
</body>
</html>
1文字ずつなら BufferedInputStream FileInputStream fis = new FileInputStream(iFile); FileOutputStream fos = new FileOutputStream(oFile); //ストリームのラップ InputStreamReader in = new InputStreamReader(fis, "EUC_JP"); OutputStreamWriter out = new OutputStreamWriter(fos, "ISO2022JP"); //文字符号化方法の確認 System.out.println(in.getEncoding()); System.out.println(out.getEncoding()); //読み込みと書き込み int c; while ((c = in.read()) != -1) { out.write(c); }
>>561 私へのレスでしょうか。
ひとつ大事なことを言い忘れたんですが、読み込みの部分は完了していて
Stringに格納してある状態です。
それを一文字ずつ出力というのはできるんでしょうか?
せっかく、ソースまでもらったのにもうしわけねぇっす。
>> 一文字ずつ出力 String#charAt(int) なり String#substring(int, int) なり String#toCharArray() なり使ってください。
564 :
デフォルトの名無しさん :03/09/09 23:15
>>560 なるほど。そのHTMLをサーブレット内で転送指定先にして
そのHTMLから遷移させると。
なるほどです。ありがとう。明日、試してみます。
>>558 そのあたりの考え方も有りましたね。
アドバイスありがとうです。
配列の数が ある時は[0]から[2], またあるときは[0]から[9]って変化する場合、 最初に考えられるだけ大きい配列を宣言しないと駄目なのですか? 何かを無駄遣いしてるようで嫌なのですが。
566 :
デフォルトの名無しさん :03/09/09 23:43
ArrayListじゃなくて?
568 :
デフォルトの名無しさん :03/09/09 23:53
普通にListを使えばよろしいかと。
569 :
デフォルトの名無しさん :03/09/10 00:03
仕事でEJB使ったことある人。 めんどくさいですか?うまくいきましたか?必要でしたか?
>>563 苦戦した結果、完成できました。
ありがとうございます。
571 :
デフォルトの名無しさん :03/09/10 00:11
jdk1.3を使用しているのですが、 ひょっとしてwin98だと動作が不安定だったりしますか?
まあ、98はそもそも不安定 2000使ってはじめて気づいたわけだが
573 :
デフォルトの名無しさん :03/09/10 00:23
2000は98と同じくらい不安定 2000使ってはじめて分かったわけだが
575 :
デフォルトの名無しさん :03/09/10 00:39
java.awt.FileDialogで、書き込み専用ダイアログを開くコンストラクタってどんなんでしたっけ?
576 :
デフォルトの名無しさん :03/09/10 00:40
変な質問かも知れませんが、サーブレットの継承の 簡単な例はないでしょうか? やさしいJAVAによるとextends スーパークラス名と なっていますがサーブレットではextends HttpServletと 既に継承?となっています。 どのようにしたら継承できるのでしょうか?
>>576 A extends HttpServlet{}
B extends A{}
578 :
デフォルトの名無しさん :03/09/10 00:53
>>576 ありがとうございます。
スーパークラスの方でA extends HttpServlet{}
サブクラスでB extends A{}ですね〜!
なるほど、助かりました!
579 :
デフォルトの名無しさん :03/09/10 00:55
580 :
デフォルトの名無しさん :03/09/10 01:42
JTableのヘッダー、マウスで動いてウザイ、 あれ、うごかんくする方法おしえてくれ
>>580 これでどうなのよ↓? API見ただけで試してはいないがな
javax.swing.table.JTableHeader#setReorderingAllowed(boolean reorderingAllowed)
582 :
デフォルトの名無しさん :03/09/10 10:38
すいません。スレ違いかもしれませんが web.xmlでは何を設定できるのでしょうか? 設定する事によりどのような事が可能になるのでしょうか?
583 :
デフォルトの名無しさん :03/09/10 11:47
>>560 サーブレットだけではなくjspからも同じような事をやりたいのですが
うまくいきません。
<%
HttpSession ssn = request.getSession();
String AAA = (String)ssn.getAttribute("GGG");
if( AAA.equals(null) ){
%>
<jsp:forward page="fwdto.jsp" />
<%
}
セッションが切れた時点でエラー画面が出力されてしまいます。
上記の記述が悪いのでしょうか?
equals(null)って・・・
スイマセン教えてください JNIってC/C++以外の言語で作ったプログラムとの連携無理なの? プロセスで起動して標準出力取るしかないのでしょうか?
586 :
デフォルトの名無しさん :03/09/10 15:24
教えてください。 p.addKeyListener(this); bw.addPlayer(p); getContentPane().add(bw,BorderLayout.CENTER); pというやつにはキーが押されたらどうするかというのが書いてあって、 bwにはボタンやラベルがはっつけてあります。 画面はすべて表示されるのに、キーイベントだけがうまくいきません。 どなたかご指導のほどよろしくお願いします。
588 :
デフォルトの名無しさん :03/09/10 16:04
フォーカス? 勉強不足です。よくわからないのでもう少しくわしく教えていただけませんか? お願いします。
>>585 >JNIってC/C++以外の言語で作ったプログラムとの連携無理なの?
Java <-JNI-> C/C++ <-> 他の言語
とかすれば連携できる。
大抵の言語は C/C++ と連携できるし。
>>589 なるほど、そうやるしかないのですか
それなら素直にC/C++でやったほうがよさそうですね
ありがとうございます
>>587 説明しようと思うけど、フォーカス自体の説明が俺もうまく出来ない
とりあえず フォーカス ぐぐれ
592 :
デフォルトの名無しさん :03/09/10 16:22
>>591 レスありがとうございました。
ちょっとヒントになりました。がんばってみます。
593 :
デフォルトの名無しさん :03/09/10 17:06
byteを16進数で表示したいのですがどうすればいいんでしょうか? byte b=・・・; System.out.println(b); これだと、整数で表示されちゃいます 0x???のように表示したいのです
594 :
デフォルトの名無しさん :03/09/10 17:13
質問です。 テーブルイメージのようなクラスを作るとして、 クラスAとクラスBには、それぞれCという共通の項目があります。 その項目のコード定義(項目の値が1なら「有り」、0なら「無し」とか)は (1)クラスA或いはクラスBに定義する (2)クラスA、クラスB共に定義する (3)コード定義のインタフェースを定義する 皆さんはどのようにしているんでしょうか。
ちょっと質問が分かり難いかもしれませんので (1)public class A { public static int C_VALID = 1 public static int C_INVALID = 0 (2)public class A { public static int C_VALID = 1 public static int C_INVALID = 0 public class BもAと同じ (3)public interface I_C { public static int VALID = 1 public static int INVALID = 0 こんな感じです。
596 :
デフォルトの名無しさん :03/09/10 17:21
まったく種類の違うクラスでそういうことやるなら、別の共有クラスを持たせればいいと思うが その前にクラスAとBの粒度が細かすぎるんじゃないのか? プロパティをAに相当するやつとBに相当するやつに初期設定すればいいんじゃないの?
クラスAとBの違う点は何?
>>596-597 説明不足でした。
例えば、
クラスA(利用者情報)
プロパティ:ユーザーID
プロパティ:グループID
クラスB(グループ情報)
プロパティ:グループID
プロパティ:構成人数
このようなクラス構成でグループIDの999が
グループA(001とか)という識別(コード定義)を持つ場合です。
あくまでテーブルイメージですので、クラスAとBの違いは特定出来ません。
そもそも、テーブルイメージのクラスという考えがおかしいのでしょうか。
ああ、外部キーみたいな感じって理解すればいいのか・・・ どうしようかな・・・ (2)はなんとなく遠慮したい (1)の場合だったら、その識別を参照される側にもたせる (3)をやるのなら、どうせなら外部キーに相当するクラス作る あくまでも俺の考えです 設計は後々のことを考えたりするとなんとも言えない議論になるのだが (2)は避けたいね
グループIDをクラスにする
今まで(1)の方法でやっていたんですが、 (3)が良いかと思っています。 (3)のインタフェースにsetter,getterを付けて、 クラスA.クラスBでimplementsしてやるのも手かな、とも。
>>601 implementするならゲッターセッターつかわんでもいいような気がするが・・・
SWIG 使えば、C/C++ 以外の言語とも連携できるんじゃないかな?
604 :
デフォルトの名無しさん :03/09/10 21:10
IMとは何ですか? 自分はまったくJAVAをやった事がないのですが、 以前何かでIMでJAVAをやるのがいいという事をきいて。 IMをダウンロードできるサイトも知りたいです。 ほんと初心者質問ですみません・・
605 :
デフォルトの名無しさん :03/09/10 21:23
(3)がいい。
>>602 こんな感じです。
public interface I_C {
public static int VALID = 1
public static int INVALID = 0
public int getC();
public setC(int c);
}
用途がはっきりするのと、
過剰にimplementsされるのを防げるかと。
でも、あんまり意味無いかもしれない。
>>606 だからそれおかしいって
>>581 神、できますた
それにしてもここ一日ですごい書き込みだな
>>608 だから、神降臨中って言ってるだろ
ほとんどの質問に俺が絡んでます
581も俺、っていうか今週夏休み入れてもらったのでね。
610 :
デフォルトの名無しさん :03/09/10 22:27
神様、お願いです。 僕の給料を上げてください。 臨時ボーナスを出してください。
無理
>>610 よし!
給料+1円、臨時ボーナス5円にしてやろう
給料が上がるように勉強教えてくださいっていうのなら付き合うけど
>610 転職おすすめ
>>606 神様
>>public setC(int c);
戻り値がありませんが、神様仕様ですか?
皆の衆、何か質問するがよい
神様トリップ
折れの給料はいつ上がりますか? 教えてください。神様・・・
>>619 下がることはあっても、上がることは無し
6ヶ月の見直しだから お前が入社した月を mとすると m月か(m+6)月分の給料から見直し ただ、上がっているかどうかはわからない
622 :
デフォルトの名無しさん :03/09/10 23:04
appletviewerだとちゃんと見れるのに FFFTPで転送してブラウザで見るとばってんがでて見れないです。 どしたらいいですか?
623 :
デフォルトの名無しさん :03/09/10 23:08
入力文字の振り仮名を振るってできます? 細かく言えばキーボードで打ったとおりの振り仮名で (後から評価する方法でもいいけど)
624 :
デフォルトの名無しさん :03/09/10 23:11
622です。 書き込みしたんだけど、できた。 アップしたときのパスが違ってただけだった。 われながらばかだな。 お騒がせしました。 失礼します。
>622 -target 1.1
(Σ(゚д゚lll)ガーン
>>623 漢字に変換する前の読み?
キーイベントリスナーでどのキーを押したかわかるよ!
>>627 でも、バックスペース処理とかめんどくさそう
629 :
デフォルトの名無しさん :03/09/10 23:43
>>627 それだとローマ字からひらがなに変換しないといけないんじゃないですか
その変換はどうやるんですか
>>627 629に突っ込んでもしょーがないと思うが・・・
>>630 なんだか面白そうなことしてるね。試してみたいけど俺画面系よくわかんないから
誰かつくってみてよ。もしくはここの変換の部分意外誰か作って
633 :
デフォルトの名無しさん :03/09/10 23:59
神様 どうしてやっとことないのに、次々に質問に答えられるのか おしえれ
634 :
デフォルトの名無しさん :03/09/11 00:03
それは紙だからしかたない。
>>633 そんなの経験からわかるよ
問題に直面したとき
あのメソッド使えばいいんじゃないか?なんていうのは
大体予想できるようになる
Javaに関しては2年ぐらいやった頃からそういう勘が働いてきた
もう4年以上だからな
やってみたらやっぱそうだった。たとえばJTextAreaなら textArea.addInputMethodListener(new InputMethodListener() { public void inputMethodTextChanged(InputMethodEvent event) { CharacterIterator iter = event.getText(); if(iter == null) return; for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) { System.err.println(c); } } public void caretPositionChanged(InputMethodEvent event) { } }); みたいなかんじ。
あ、俺、べつに神じゃないから。
>>637 実際、自分でソース書いて試す奴はみんな神だよ
折れ、貧乏神だが手伝うことないか?
getCommittedCharacterCount()見るの忘れてた... まあいいや、わかるよね。
641 :
デフォルトの名無しさん :03/09/11 00:28
大変です。 「JAVA仮想マシンがインストールされていません」 どうにかしてください。
神2はこの質問スルーします
おい、今地震キタよ!!!!!!!
>>641 これ出るのってWindowsXPだっけか。たいへんやねぇ
神降臨中
>>641 一昨年つくられたソフトじゃん。
98系とNT系の違いが大きいからこういうソフトは流用できないんだろうな
test
やっと書き込めるようになった;; 質問ですが、Canvasで書いた背景の上に、凹凸のあるPanelを設置したい んですが、これは可能なんでしょうか・・・ 背景背景背景 背| ̄|背| ̄|背  ̄P a n e l  ̄ ______ こんな感じで・・・
>>652 それパネルの凸凹の部分で、本当に非矩形パネルが欲しいのか
場所によって下が透けているだけでいいのかによって話が違うかとかと。
>>653 レスどうも。
デザイン上の問題なので、凹の部分が透けて下の背景が見えていればいい
です。
この場合、透けて見える範囲まで背景を描画し、その上にパネルを重ねると、
凹の部分が透けて下の背景が見えるということで合っていますでしょうか。
655 :
デフォルトの名無しさん :03/09/11 06:53
これからJAVAを勉強しようと思うんですが、 どんなテキストエディタがお勧めでしょうか? まだ必要な機能とか分かりませんが、 よく使う文などがファンクションに登録できると 便利ではないかと思っています。 皆さんのお勧めは何でしょうか?
Thread を start() させて、.中の run() が終ったことを知るにはどのメソッドを
使えばよろしいのでしょうか。
--
>>655 私は最初はメモ帳がいいのではないかと思います
658 :
デフォルトの名無しさん :03/09/11 08:14
>>656 失礼しました、
WINDOWSです・・・・
いきなり初心者っぷりを披露してしまいました;;
め、め、メモ帳!!
>>655 プログラミング初心者に、インデントの自動整形機能のないエディタを
使わせるのは、見やすいコードを書く習慣がつかなくなる可能性が高いので
危険だと思う。
xyzzyとかMeadowとか、タブキーで自動的にインデントを整えてくれる
エディタの方が安心で楽チンですよ。カスタマイズがしんどいのが難点ですが。
秀丸にもこういう機能あるよね?使ったことないからわからないけど。
VBから始めたプログラマのコードの汚いことといたら…
>>652 Panel を透かすんじゃなくて、
Canvas の paint メソッドで Panel の周囲に凸凹描いたらだめ?
しかし、Canvas の上に Panel ってのは気色悪いな。
Container に描画させたほうが・・・・
うーんこういうことは swing でやったほうがよさげだなぁ。
662 :
デフォルトの名無しさん :03/09/11 11:35
金額の計算で四捨五入をしたいのですが roundよりBigDecimalを使わないとやっぱりあぶないんですよんぇ・・・?
Javaは関数にデフォルト引数もたせることってできないの?
public class test0037 extends JFrame{ public static void main(String args[]){ JFrame f=new test0037(); f.setDefaultCloseOperation(f.EXIT_ON_CLOSE); f.setVisible(true); txtsousa(f); } public static void txtsousa(JFrame f){ // f.txt.setColumns(2); //ここから操作したい } public test0037(){ super(); Container c=getContentPane(); JTextField txt = new JTextField(""); //←を操作したい c.add(txt,BorderLayout.CENTER); } } 上記の簡略化したソースで、 離れた場所にあるJTextFieldのtxtをtxtsousaから操作したいんですよ。 何か方法無いですかね..
666 :
デフォルトの名無しさん :03/09/11 12:38
内部クラスになっているものを一つ一つに分解したいのですが、 どうすればよいのでしょうか? 他のクラスのメソッドや変数が参照できなかったりします。
>>666 メンバクラスならともかく、内部クラスを独立したクラスにするのは基本的に無理。
>>664 言語ではサポートされてない。
void methodA(){ methodA(DEFAULT_VAL); }
void methodA(int val){ ... }
とかしてくれ。
>>666 Eclipseにその手のリファクタリング機能があったようななかったような。
>>665 方法? ありすぎるくらいある ちょっと勉強しなさい
とりあえずの答え:
1) txt を test0037 のインスタンスメンバにする
2) textsousa の引数を test0037 にする
public class test0037 extends JFrame{
public static void main(String args[]){
JFrame f=new test0037();
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setVisible(true);
txtsousa((test0037)f); //引数にあわせるためキャストせんといかん
}
public static void txtsousa(test0037 f){
f.txt.setColumns(2); //これで操作できる
}
private JTextField txt;
public test0037(){
super();
Container c=getContentPane();
txt = new JTextField(""); //←を操作したい
c.add(txt,BorderLayout.CENTER);
}
}
いろいろ美しくないことが多いのだが
君が全体として何をしたいかに拠るからこれ以上助言できない
それとクラス名は大文字からはじめること
671 :
デフォルトの名無しさん :03/09/11 19:21
質問です。 rs = db.executeQuery(sql); for(i=0;i<5;i++){ while(rs.next()){ str = rs.getString("emp"); } } strの情報と取りつづけたいときはどのようにするのでしょうか? whileで一度データを取ると2回目のforループではデータが 取れなくなってしまいます。
>>671 簡単に言うと、for の中で query を送るしかないわけだが。
正確には何をしたいのだ?
DB参照は1度にとどめて、ただ反復したいだけなら、
先に while だけで ArrayList にいれて、
そのあと for もってきて、for の中で
ArrayList の中身を、 iterator() とか get(int) などでとりだす。
673 :
デフォルトの名無しさん :03/09/11 22:37
クラスの中のクラス(メンバ変数みたいな感じで使う奴)は、 どういう使い道があるのかなんとなく分かるのですが、 1つファイルの中にいくつもクラスを作ることの方は どういう時に使うのか、どんな意味があるのかよく分かりません。 教えていただけないでしょうか。
>>673 多重継承の裏技みたいな感じかな。。。
たとえば、メインクラスでFrameを継承してウインドウイベントを追加したい場合
ウインドウリスナーを実装しても良いけどインターフェイス内の全てのメソッドを
オーバーロードしないといけなくなる。
面倒なので、ウインドウアダプターを継承したいけどすでにFrameクラスを
実装しているのでできない。
その場合いダミークラスを作ってその中で実装してそれをメインクラスで使用する。
>>673 テスト用のクラス書いてて、クラス追加したいんだけどファイル作るのが面倒な時とか。
神降臨中
願い事をかなえてやろう・・・ by 貧乏紙
>>673 作業用エリアとして内部クラス使うときがある。
その内部クラスを使うことによって
引数の削減や初期化や処理を1箇所に纏める。
JavaDocコメントについて質問です。 コメントで、メソッド一覧で見出し部分が表示される行はどこでしょうか? 見出しの後には、<br />タグを追加しないといけないのでしょうか? この場合、見出しは「コメントAコメントB」と出るようですが、 見出し部分にはコメントAとだけ表示させたい場合はどこにそれを書けばいいでしょうか? /** コメントA * コメントB * @since 0.01 */ JavadocコメントをC#のコメントのようにようにXMLで書くにはどうすればいいでしょうか? xDocletを使うのでしょうか? 詳しく載っているサイトを検索するのに お勧めのキーワードは何でしょうか? @seeタグ, @sinceタグ, @versionタグを自動生成するにはどうすればいいでしょうか? @sinceタグ、@versionタグはCVSでバージョン番号を自動管理するようにすべきでしょうか? Eclipseで可能でしょうか? もし可能ならEclipseプラグインをダウンロードできる サイトを探せるヒントキーワードを教えてください。
> 見出し部分にはコメントAとだけ表示させたい場合はどこにそれを書けばいいでしょうか? 最初の行に見出しを書いて終点にドット(2バイト可)を打つ。 /** * 見出し. * 詳細〜 * … * @param … * … */
javaはpascalみたいな代物になるぞ。そのうち。 使うな。覚えるな。やるだけ馬鹿を見るぞ pascalはdelphiへと発展したが結局あの通り。 学校の宿題とかいうのなら、 ここで教わろうとする自分を嘆け。
今はJavaが流行ってんだらからいいじゃん。 また、新しい言語が出てくればそれを覚えるのみ。
でもSUNやばいらしいしなぁ。 Javaも終わりが近いよ。
>>685 Javaの将来はSunが握るようなことはほとんどなくなったから安心しな。
お前はJavaに不満があるならJava Community Processに
「Javaをこんなふうによくしたい!」と提案すればいい。
>>683 だが、DelphiはC#へと発展して結局あのスパゲティのような
ひどいありさま。JavaのほうがC#よりも堅牢性、信頼性、セキュリティ性
は断然高い。
689 :
デフォルトの名無しさん :03/09/12 00:43
ファイルを読み込む時//の行を読み飛ばすという事は できますか?ファイルのデータにコメントを入れたいので。
>>689 Reader#readLine()して、String#startsWith("//")でチェック。
691 :
デフォルトの名無しさん :03/09/12 00:50
>>690 すばやいレスありがとう。
#は何かの省略ですか?
クラス#メソッド()はJavaDocの記述ルール。文章ベースで会話する 場合は、他の言語でも同じ用法があるから覚えとき。
>>692 基本的にはクラス#メソッド()形式はインスタンスメソッドのときで、
staticメソッドのときはクラス.メソッド()と記述するらしい。
694 :
デフォルトの名無しさん :03/09/12 01:16
>>692 ,693
ありがとうございます。
早速明日試してみます。
695 :
デフォルトの名無しさん :03/09/12 01:43
>>673 Thx
rs = db.executeQuery(sql);
for(i=0;i<Array.length;i++){
while(rs.next()){
str = rs.getString("emp");
if(str.equals(Array[i]){ out.println(str); }
}
}
上記のようにデータを配列Arrayの値とDBの値を繰り返し
比較したいのです。whileでのレコードを戻す事はできないのですね。
DB参照を1度だけにしたいです。ArrayListは配列の事ですか?
696 :
デフォルトの名無しさん :03/09/12 01:50
>>680 1つのファイルに作業用エリアのクラスだけ書いて
アクセスレベルデフォルトにして同じパッケージに入れておくのと
同じような気がするんだけど違うの?
>>696 非publicなインナークラスは、スコープがより狭い(アウター
か自分自身しかアクセスできない)ので、構造上より安全。
void method( Object ) void method( String ) があったときに Object o = new String(); method(o); ってやったら上のほうが呼び出されるんですが 下を呼び出したい時はどうするんですか?
699 :
デフォルトの名無しさん :03/09/12 03:32
method((String)o);
700 :
デフォルトの名無しさん :03/09/12 03:40
701 :
デフォルトの名無しさん :03/09/12 18:43
>>698 回答は699がしてるからいいとして
Stringオブジェクトを new するのはよくないぞ。
>>701 ループの内側で何億個と作ってるんだったらともかく、一個や二個作った程度では それ程かわらんだろ。
703 :
デフォルトの名無しさん :03/09/12 21:29
XDoclet を使って、 "@ejb.home-method" で ホームインターフェイスメソッドを書く場合、 このメソッドから Home インターフェイスのほかのメソッド( create() とか )を使うには、 どう書けばいいんでしょう?
704 :
デフォルトの名無しさん :03/09/12 23:18
はじめまして。 Javaでチャットを作ろうと思ってます。 なにかいいサンプルなどご存じないでしょうか? よろしくお願いします。
705 :
デフォルトの名無しさん :03/09/12 23:20
707 :
デフォルトの名無しさん :03/09/12 23:29
>>707 努力すれって事だろ?
そんなあなたは
レンタルで十分
709 :
デフォルトの名無しさん :03/09/12 23:44
ありがとうございました。 努力します。
>>707 CGI/perlとかPHPで作った奴は参考にならない?
ネットサーフレスキューとかKentWebとか。
CGIで検索するとソースコードがたっぷりでるんだよな。
yahooのチャットとかどうよ?
>>704 質問の仕方が悪いよ。
サンプルを見てコードにちょっと手を加えて作るなら、最初から作らないほうがいい。
そもそも、プログラムの作成は
1、要求分析
2、画面設計
3、内部設計
4、プログラム設計
4、プログラミング
5、テスト
となっていて、いきなりソースを見せろだのプログラムをするだのいうもんじゃない。
質問するなら、画面設計までは終わっているのですがその次の内部設計で戸惑っています。とかね!
>>711 はいはい、安いコーダーさんはその辺で行数でも数えてなさい。
>>713 はいはーい。
コメントオンリーの行は数えて良いですか?
716 :
デフォルトの名無しさん :03/09/13 03:16
質問です。 A.jsp、B.jspが有り共通パラメータをスーパクラスAで受け サブクラスB、Cのコンストラクタに足りないパラメータを受ける。 コンストラクタに入れてもいいのでしょうか?? 変な質問かもしれませんが。
718 :
デフォルトの名無しさん :03/09/13 09:28
例えば class extends JFrame{ ・ class{ ・ } ・ } こんなかんじのプログラムの場合、クラス図にはあの長方形は何個書くんですか?教えて下さい。
>>716 もちろん問題はないです。
ファクトリかなんかで生成課程を隠匿すればポリモフィズムも可能です。
>>718 65536 - 2 = 65534
720 :
デフォルトの名無しさん :03/09/13 09:38
なんで65534なんですか?
721 :
デフォルトの名無しさん :03/09/13 09:38
>>718 書きたいように書け。
俺の場合、全体を俯瞰するクラス図には内部クラスは書かなかった。
内部クラスを持つクラスとその関連するクラスを詳しく書くクラス図を別途
用意してそこに書いてた。
当然ながら無名クラスは書かない。
>>720 最小値のアドレスと最大値のアドレスは予約されているからな。
724 :
デフォルトの名無しさん :03/09/13 11:21
ファイル処理なんですが あるファイルを読みとることはできるんですが 指定した行のデータだけ削除したい場合は どのようにすればよいのでしょうか?
>>724 そのファイルAのreaderとtmpファイルのwriter作ってreadしながら、
tmpファイルに行を削ったものを書き込む。
最後にtmpファイルをAにリネーム。
しか俺は知らない。
726 :
デフォルトの名無しさん :03/09/13 12:02
jdbつかってアプレットをデバッグしようとおもったのですけど、 runで実行すると終ってしまいます。 ブレイクポイントの場所がわるいのでしょうか? それともアプレットは別のやり方があるのでしょうか?
727 :
デフォルトの名無しさん :03/09/13 12:53
ファイル転送に使えるようなクラスってあります?
728 :
デフォルトの名無しさん :03/09/13 13:02
>>728 ありがとうございます。
早速やってみます。
730 :
デフォルトの名無しさん :03/09/13 14:02
avでは問題なく動作するのですが、鯖にうpするとうまくどうさしません。 配列はみだしエラーで-1が出るのですが、ちょうどファイル入力を行ってるところがおかしいのかなと思いますが、 セキュリティ関係のエラーではなく、単純なファイルの読み込みエラーだと思います。 ローカルではできるのに、どうしてうpするとできないのでしょうか?
ソースはこんな感じです。 InputStream is; BufferedReader br; Reader r; int temp; try{ is = new URL(getCodeBase(),"data/1.map").openStream(); r = new BufferedReader(new InputStreamReader(is)); for(int i = 0 ; i < mapData.length ; i++) { for(int j = 0 ; j < mapData[i].length + 2; j++) { temp = r.read(); if(j < 20) { mapData[i][j] = java.lang.Character.digit((char)temp, 3); if(mapData[i][j] == 2) { goal = new Point(j ,i); } } } } r.close(); }catch(IOException e){} mapDataでエラーがでます。 data/1.mapには1と0の数字の羅列が入ってます。
732 :
デフォルトの名無しさん :03/09/13 15:52
>>731 > for(int j = 0 ; j < mapData[i].length + 2; j++) {
+2っていうのが気色悪いよね。
733 :
デフォルトの名無しさん :03/09/13 16:04
クライアント側のブラウザと、Servlet でデータのやりとりをしたいのですが、 どなたか、HTML request のuser-agent の設定方法を教えていただけないでしょうか。
734 :
デフォルトの名無しさん :03/09/13 16:47
Cの構造体がそのまま納められたデータファイル(fwrite()でそのまま書き込まれた連続データ)があるのですが、 これをfread()のように一気に読み込む方法は無いでしょうか。 シリアライズで一つ一つメンバ毎に代入していく方法でやっているのですが、 かなり面倒なので、方法があったら教えてください。
ウィンドウをつくったりするのは難しいのですか? 手近にある参考書ではCUIしか載ってません。 教えてください。
>>735 難しくはないですが・・・ショボイの我慢してくれますよね?
>>736 回答ありがとうございます。
javaのウィンドウはしょぼいんですか?
よくフリーソフトとかっぽいウィンドウはCとかなんでしょうか?
GUIのデザインはjavaとはあまり関係ないね。 本格的なウィンドウアプリを作るなら、開発環境についてるデザインユーティリティ使うだろうし。
739 :
デフォルトの名無しさん :03/09/13 17:19
JSP内に他のJSPを取り込む時は下記の他に決まりごとがあるのですか? JSPに全てを記述するとうまくいくのに下記のように取り込むと エラーになります。 <%@ include file="delete.jsp" %> もしくは <jsp:include page="delete.jsp" />
740 :
デフォルトの名無しさん :03/09/13 17:28
Cの構造体がそのまま納められたデータファイル(fwrite()でそのまま書き込まれた連続データ)があるのですが、 これをfread()のように一気に読み込む方法は無いでしょうか。 シリアライズで一つ一つメンバ毎に代入していく方法でやっているのですが、 かなり面倒なので、方法があったら教えてください。
Cの構造体がそのまま納められたデータファイルではありません ネイティブメソッド呼び出した方が早いのでは?
742 :
デフォルトの名無しさん :03/09/13 17:48
AWTまんせー
>>739 その二つの方法はそれぞれルールが異なるし、
「エラーになります」だけではどんなエラーになるかこっちはわからん。
ソースとエラーメッセージ貼れ。
ああ、シリアライズって、Serializableをインプリメントしたオブジェクトに対して 使う言葉のようですね。少し勘違いしていました。 DataInputStreamで読み込んでいるんですよ。 で、そのデータファイルは元々はCで作成されたものなんです。 つまりCで作成されたデータファイルをJavaで読みたいんです。 バイトオーダーも逆なのでバイト単位で入れ替える必要がありますし、 何かいい方法は無いかと思ったわけです。
>>744 java.nio.ByteBufferを使えばバイトオーダーに関してはかなり楽になるな。
>>744 移植性の無い C プログラムにくらべると、
移植性が強制される Java はちょっと手間がかかるように見えるね。
でも移植性のある C プログラムを書けば、同じくらい手間がかかるよね。
ネット探せばリトルエンディアンの DataInputStream とか転がってると思うけど。
それにバイトオーダ違うってもメソッド3個ぐらい作って
常に それ呼ぶとかすれば対応できそうなもんだが。
>>740 > シリアライズで一つ一つメンバ毎に代入していく方法でやっているのですが、
> かなり面倒なので、方法があったら教えてください。
シーケンシャルに、1つ1つ読んでは代入をハードコードしてるって事?
fwriteで書いてるなら、サイズと個数は決まってるんだから、すくなくともループで
処理できる話だろ。その構造体に対応したクラスを作って。それすら面倒なのか?
s/面倒/汚い/
なら理解できるが。
あと、単純な構造体(int、byte、char、double、longしか無い)じゃないと駄目だろうね。
>>711 もうウォータフォールもでるなんでフルすぎる。
そんなもんJavaには合わない。
そんな原始的な開発手法ではJavaの特長を生かしきれない。
情報技術者の試験にはいまだに出るがな。
>>748 Java の特長を生かせる開発手法を教えてくらさい
ぺけぴーとか
アプレットの話なんですが JRE1.4だと問題ないのですが JRE1.3の場合sun.io.UnknownCharacterExceptionが出てエラーになってしまいます。 この場合何が問題なんでしょうか?
BufferedWriterクラスを、使って、キーボードから入力した文字列を コマンドライン引数で指定したファイルに書き出すプログラムを 作ったのですが、うまく動きません。どうすれば、よろしいでしょうか?
754の続き import java.io.*; public class FileWrite2 { public static void main(String args[]){ FileWriter fr; BufferedWriter bw; String ls, str; InputStreamReader isr; BufferedReader br; isr = new InputStreamReader(System.in); br = new BufferedReader(isr); if (args.length != 1){ System.err.println("ファイル名を指定してください"); System.exit(1); }
755のつづき try{ fr = new FileWriter(args[0]); bw = new BufferedWriter(fr); while((str = br.readLine()) != null){ bw.write(str); bw.newLine(); } bw.flush(); bw.close(); br.close(); } catch (IOException e) { System.err.println("書き込めませんでした"); } } } です。誰か教えてください。よろしくお願いします。゜(゚´Д`゚)゜。ウァァァン
758 :
デフォルトの名無しさん :03/09/14 12:48
>>756 > while((str = br.readLine()) != null){
br.readLine()の所で止まっちゃう模様。
セキュリティの問題じゃないの? 極力ファイルアクセスはさけるべき。 リダイレクトで何とかならない?
762 :
デフォルトの名無しさん :03/09/14 14:55
思いっきり初心者です。最初で詰まっています。 教本通りに、 public class someone{ public static void main(String[] args){ keitai kt = new keitai(); kt.receive(); } } というファイルと、 public class keitai{ String no = "123-4567"; public void receive(){ System.out.println("RING RING RING!"); System.out.println("This is "+no); } } というファイルをコンパイルしようとすると、
763 :
デフォルトの名無しさん :03/09/14 14:55
someoneのほうで someone.java:3: シンボルを解釈処理できません。 シンボル: クラス keitai 位置 : someone の クラス keitai kt = new keitai(); ^ someone.java:3: シンボルを解釈処理できません。 シンボル: クラス keitai 位置 : someone の クラス keitai kt = new keitai(); ^ と出てしまいます。 何なんでしょう、これ。
764 :
デフォルトの名無しさん :03/09/14 14:56
someoneのほうで someone.java:3: シンボルを解釈処理できません。 シンボル: クラス keitai 位置 : someone の クラス keitai kt = new keitai(); ^ someone.java:3: シンボルを解釈処理できません。 シンボル: クラス keitai 位置 : someone の クラス keitai kt = new keitai(); ^ と出てしまいます。 何なんでしょう、これ。
765 :
デフォルトの名無しさん :03/09/14 15:06
クラスパス通ってないか、 import宣言を忘れてるか。
>>765 教本に「本誌掲載のプログラムを実行する場合、CLASSPATHの設定は不要です」
って書いてあるんで、何も設定してないんですが、
これって何か意味あるんでしょうか?
パッケージとか使ってないんですが、importは必要ですか?
>762 ファイル名はどうした? someone.java と keita.java にしたか? 全部小文字で。
失礼。 keita.java じゃなくて keitai.java
769 :
デフォルトの名無しさん :03/09/14 15:22
keitai.javaだけコンパイルできるかも試しては。
>>768 はい。全部小文字です。
もし、ファイル名が違ってたら(大文字小文字の違いでも)、
コンパイル時にエラーメッセージが出ると思うのですが、
それも出てません。
>>769 keitai.javaはコンパイルできます。
keitai.classのファイルもできました。
772 :
デフォルトの名無しさん :03/09/14 15:26
>771 DIR の結果さらしてみたら? Windowsだよね?
>>772 C:\Documents and Settings\Owner>cd java programs
C:\Documents and Settings\Owner\Java Programs>cd keitai
C:\Documents and Settings\Owner\Java Programs\keitai>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は F4B5-AC8E です
C:\Documents and Settings\Owner\Java Programs\keitai のディレクトリ
2003 09 14 14:47 <DIR> .
2003 09 14 14:47 <DIR> ..
2003 09 14 14:47 660 keitai.class
2003 09 14 14:47 160 keitai.java
2003 09 14 14:48 115 someone.java
3 個のファイル 935 バイト
2 個のディレクトリ 14,767,095,808 バイトの空き領域
↑これのことでしょうか?
774 :
デフォルトの名無しさん :03/09/14 15:34
775 :
デフォルトの名無しさん :03/09/14 15:36
謎やなぁ。凡ミスとは思うけど。
変なところがないなあ。 762をコピペしてコンパイルしたら問題なくコンパイルできたよ。 C:\tmp\keitai>dir 2003/09/14 15:34 153 keitai.java 2003/09/14 15:34 112 someone.java C:\tmp\keitai>type keitai.java public class keitai{ String no = "123-4567"; public void receive(){ System.out.println("RING RING RING!"); System.out.println("This is "+no); } } C:\tmp\keitai>type someone.java public class someone{ public static void main(String[] args){ keitai kt = new keitai(); kt.receive(); } } C:\tmp\keitai>javac *.java C:\tmp\keitai>dir 2003/09/14 15:35 656 keitai.class 2003/09/14 15:34 153 keitai.java 2003/09/14 15:35 316 someone.class 2003/09/14 15:34 112 someone.java
>>773 とりあえず、
> C:\Documents and Settings\Owner\Java Programs\keitai
を C:\Documents and Settings\Owner\Java Programs\sample とかに名前かえてみれば?
>>777 フォルダの名前を変えたら、あっけなくできちゃいました。
フォルダ名と同じファイル名はダメなんでしょうか?
>>777 さん、みなさん、ありがとうございました!
>>776 javac *.javaで、いっぺんにコンパイルできるんですね。知らなかった。
779 :
デフォルトの名無しさん :03/09/14 15:47
>>778 ヨカターネ。
今の場合は、javac someone.javaってやれば
自動的にkeitai.javaもコンパイルされるよ。
780 :
デフォルトの名無しさん :03/09/14 16:00
何でフォルダ名が影響するのか、誰か解説キボーン。
>>780 俺も適当に
>>777 書いただけだからなぁ…
考えられるのは javac のバグかなぁ?
javac -J-version で出てくるバージョン情報コピペしてくれん?
>>778
>>779 そうなんですか。
あと、Typeも知りませんでした。
いろいろ、勉強になります。感謝。
>>780-781 他に作ったやつで、別に、ファイル名とフォルダ名が同じでも
全く問題なかったのに、
なぜかこれだけ、フォルダ名を変えたとたん、できた。
>>781 ファイルバージョンは1.4.0.30だけど、
javac -J-versionってどういう意味ですか?
>>782 コマンドラインから javac -J-version ってやってみればわかる。
>>783 あ、わかりました。
java version "1.4.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_03-b04)
Java HotSpot(TM) Client VM (build 1.4.0_03-b04, mixed mode)
です。
785 :
デフォルトの名無しさん :03/09/14 16:28
>>784 setコマンドで、CLASSPATHの設定がされているか調べてホスイ。
設定されてたら、その値をおせーて。
>>785 デフォルトで、何もいじってないんですが、
とりあえず、setで出てきたやつはこれでした。
CLASSPATH=C:\Program Files\pcdNavi\bin\pcdnavi.zip;
787 :
デフォルトの名無しさん :03/09/14 16:33
やっぱバグなのかな。 classファイルを見つけられないなんて、致命的バグ。
念のため、フォルダ名をkeitaiに戻したら、またエラーになりました。 やっぱ、フォルダ名が原因ではあるみたいです。 C:\Documents and Settings\Owner>cd java programs\keitai C:\Documents and Settings\Owner\Java Programs\keitai>javac someone.java someone.java:3: シンボルを解釈処理できません。 シンボル: クラス keitai 位置 : someone の クラス keitai kt = new keitai(); ^ someone.java:3: シンボルを解釈処理できません。 シンボル: クラス keitai 位置 : someone の クラス keitai kt = new keitai(); ^ エラー 2 個
フォルダ名を元に戻して現象が再現するかどうかやってみた?
ごめんなさい。
791 :
デフォルトの名無しさん :03/09/14 16:39
因果律、破れますた。
792 :
デフォルトの名無しさん :03/09/14 16:40
keitaiってフォルダにクラスファイルを2つとも入れてないとか・・?
すいません。フォルダ名ではありませんでした。 今、フォルダ名を変えてやってみたら、同じエラーが出たので、 javac *.javaでやったらコンパイルできました。 さっきフォルダ名変えたときもこれでやったので。 someone.javaだけをコンパイルしようとするとエラーになるみたいです。
794 :
デフォルトの名無しさん :03/09/14 16:45
>>793 フォルダ名sampleで、javac someone.java
でもエラーが出るって事?
じゃあフォルダ名をkeitaiにして keitai.class を削除したあと someone.java だけコンパイルしてみたらどうなるだろう?
>>794 すいません。文がわかりにくくて。
フォルダ名を僕はCellにしたのですが、それでjavac someone.javaにすると、
さっきのエラーになっちゃいました。
javac *.javaにすると、問題なくコンパイルできます。
つまり、フォルダ名がkeitaiだろうとCellだろうと、
javac someone.javaだとエラーになって、javac *.javaだと上手くいきます。
そのあと、java someoneを実行しても、問題なく実行されます。
C:\Documents and Settings\Owner\Java Programs\Cell>java someone
RING RING RING!
This is 123-4567
何なんだろう…。
>>795 同じエラーがでてしまいます。
C:\Documents and Settings\Owner\Java Programs\keitai のディレクトリ
2003 09 14 16:52 <DIR> .
2003 09 14 16:52 <DIR> ..
2003 09 14 14:47 160 keitai.java
2003 09 14 14:48 115 someone.java
2 個のファイル 275 バイト
2 個のディレクトリ 14,766,800,896 バイトの空き領域
C:\Documents and Settings\Owner\Java Programs\keitai>javac someone.java
someone.java:3: シンボルを解釈処理できません。
シンボル: クラス keitai
位置 : someone の クラス
keitai kt = new keitai();
^
someone.java:3: シンボルを解釈処理できません。
シンボル: クラス keitai
位置 : someone の クラス
keitai kt = new keitai();
^
798 :
デフォルトの名無しさん :03/09/14 16:57
someone.javaをコンパイルするときに 同一フォルダにkeitai.classが出来上がってないといけない とかいうのはあるんですかね?
勇気を出して set CLASSPATH= を実行してからやってみると解決するかも。というか、解決するだろう。
ごめんね、いろいろやらせちゃって。
801 :
デフォルトの名無しさん :03/09/14 17:00
>>798 なかったら自動コンパイルするはずだけど。
802 :
デフォルトの名無しさん :03/09/14 17:01
>>798 keitaiを先にコンパイルしても、someoneをコンパイルするとき、エラーになっちゃうんですよ。
>>799 当方xpなので、環境変数の設定はDOS窓からはやってないんですが、
CLASSPATHを変えることにどんな意味があるのか、わからないので、
とりあえずこのままにしておきます。
*.javaでやれば、できるということがわかりましたし。
>>803 XPってDOS窓開けないんだっけ?
開けるんだったらイッコ開けば試せるよ。終わったら閉じればいいだけ。
805 :
デフォルトの名無しさん :03/09/14 17:08
>>803 > CLASSPATHを変えることにどんな意味があるのか、わからないので、
> とりあえずこのままにしておきます。
> *.javaでやれば、できるということがわかりましたし。
....。
イッテヨシ。
マイコンピュータのプロパティ -> 詳細 -> 環境変数 で CLASSPATH の値を C:\Program Files\pcdNavi\bin\pcdnavi.zip;.; に変えとけば(カレントも付け加えとけば)勉強中は不便が無いかもしれないね。
勝手に環境変数のCLASSPATHを設定するプログラムって最低だな。
>>804 いや、開けます。
「set CLASS PATH =」って打ち込むだけですか?
>>805 教本に「CLASS PATHの設定は不要です。デフォルトの状態で問題ありません」って
書いてあるのですが、設定したほうがいいんでしょうか?
>「set CLASS PATH =」って打ち込むだけですか? そう。そして javac someone.java を実行する。
>>807 「.;」を付け加えてみたのですが、何が変わったのか、よく…。
エラーは相変わらずですし。
>>811 「新しい」DOS窓を開いて、set でCLASSPATHの内容を確認して、書き換わってなければ
面倒だろうけど一旦ログアウトして再度ログインしてみて。
>>810 うーん。変わらないですねえ。
C:\Documents and Settings\Owner\Java Programs\keitai>set CLASS PATH =
C:\Documents and Settings\Owner\Java Programs\keitai>javac someone.java
someone.java:3: シンボルを解釈処理できません。
シンボル: クラス keitai
位置 : someone の クラス
keitai kt = new keitai();
^
someone.java:3: シンボルを解釈処理できません。
シンボル: クラス keitai
位置 : someone の クラス
keitai kt = new keitai();
^
エラー 2 個
814 :
デフォルトの名無しさん :03/09/14 17:33
>>813 > C:\Documents and Settings\Owner\Java Programs\keitai>set CLASS PATH =
CLASSPATHだYO!
CLASS PATHじゃないYO!
set CLASSPATH=
間にスペース不要。
試しにset コマンドでCLASSPATHの設定が消えてればOK
それで javac someone.java が実行できることを確認したら一人で頷いて、
そのDOS窓は閉じて、後は
>>807
一応ログオフ、インして、 set CLASSPATH =て打ち込んで、 別窓でDOS開いてsetで見てみたら、CLASSPASSのところは特に変化なしで、 「CLASSPATH=C:\Program Files\pcdNavi\bin\pcdnavi.zip;.;」 でも、その後、someoneコンパイルしてみたら出来ました。 C:\Documents and Settings\Owner\Java Programs\keitai>javac someone.java C:\Documents and Settings\Owner\Java Programs\keitai> 「set CLASSPATH =」とは、クラスの位置がカレントディレクトリにあるという 意味でしょうか? とにかくできました。ありがとうございます。 ところで、「set CLASSPATH =」は毎回打ち込まなきゃいけないんでしょうか? 環境変数の設定のほうでなんとかしたいんですけど。
817 :
デフォルトの名無しさん :03/09/14 17:47
>>809 > 教本に「CLASS PATHの設定は不要です。デフォルトの状態で問題ありません」って
> 書いてあるのですが、設定したほうがいいんでしょうか?
CLASSPATHが設定されず(デフォルト)→問題なし。(教本はこのことを言ってる)
CLASSPATH=C:\Program Files\pcdNavi\bin\pcdnavi.zip;→問題の主因
>>805 のリンク先に全て書いてある。
>>817 後でじっくり読んでみます。一回読んだだけじゃ意味がさっぱりだったので。
あと、環境変数って、いじったら他のアプリケーションの影響って出ないんでしょうか?
>「set CLASSPATH =」とは、クラスの位置がカレントディレクトリにあるという
いえいえ、CLASSPATH の設定が無ければカレントディレクトリを見てくれるので設定を無くしてみた。
という意味です。問題がCLASSPATHの設定にあった、という確認です。
> ところで、「set CLASSPATH =」は毎回打ち込まなきゃいけないんでしょうか?
いやいや、CLASSPATH を設定するならカレントディレクトリも自分で指定しなくちゃ見てくれない
ということなので、自分で指定したのが
>>807 です。
だから、今、あなたのPCで新しいDOS窓を開くと、環境変数CLASSPATHには、カレントディレクトリも
見てくれるような設定になっています。
試しに新しいDOS窓を開いて javac keitai.java を実行してみてください。
>あと、環境変数って、いじったら他のアプリケーションの影響って出ないんでしょうか? 学習用のPCの CLASSPATH にカレントディレクトリを追加しても問題はないと思います。 ハジけて勉強してください。 --おまけ-- 環境変数はプロセスごとに独立して保持されます。わかりやすく言うと、 DOS窓を2つ開いた場合にそれぞれのDOS窓が持っている環境変数は どちらもオリジナルからのコピーであって別物です。 DOS窓を実際に2つ開いて、片方で set ZZZ=INOUE もう片方で set ZZZ=KIKUKO を実行して set コマンドの結果を見比べてみるとわかります。
>>819 はい、確かに今はエラーは起きません。
CLASSPATHの設定のせいでエラーが起きてたのなら、CLASSPATHの
環境変数自体、削除しちゃえばカレントディレクトリを見てくれるのでしょうか?
すいません。なんかとんちんかんなことばかり言ってるかもしれません。
とにかく、みなさんのおかげで、とても助かりました。
ほんとに、ありがとうございます!
822 :
デフォルトの名無しさん :03/09/14 18:08
デフォルトのクラスパスは、現在のディレクトリです。 このデフォルトは、CLASSPATH 変数を設定したり、-classpath コマンド行オプションを 使用したりするとオーバーライドされます。そのため、検索パスに現在の ディレクトリを含める場合には、新しい設定に「.」を含める必要があります。
>CLASSPATHの設定のせいでエラーが起きてたのなら、CLASSPATHの >環境変数自体、削除しちゃえばカレントディレクトリを見てくれるのでしょうか? set CLASSPATH= を実行することがすなわち(そのDOS窓における)CLASSPATHの環境変数を削除する という意味なので、そう言って良いと思います。 では勉強がんばってください。
>>820 試したら、確かにDOS窓ごとに、同じ環境変数が違う値になりました。
まだ、よく把握できていないので、もう一度ここをじっくり読み返してみようと
思います。
>>822 だったら、環境変数の値が今は
「なんたらかんたらzip;.;」になってますが、この「なんたらかんたらzip;」を
削除して、
「.;」にすれば、デフォルトでカレントdirの意味になるということですか?
>>823 いろいろありがとうございました!
826 :
デフォルトの名無しさん :03/09/14 18:29
>>825 > 「.;」にすれば、デフォルトでカレントdirの意味になるということですか?
デフォルトの設定(CLASSPATH設定せず)と同じ状態になる。
なんたらかんたらzipは削除しない方が無難と思われ。
>>826 わかりました。
ありがとうございます!
828 :
デフォルトの名無しさん :03/09/14 21:42
クライアント側のブラウザと、Servlet でデータのやりとりをしたいのですが、 どなたか、HTML request のuser-agent の設定方法を教えていただけないでしょうか。
user-agent ってブラウザの判別以外になにか用途あるの? 人為的に設定する意味ないような・・
830 :
デフォルトの名無しさん :03/09/15 01:24
独習JAVAによるとアプレットでのイベントは1readLine()を使用して文字列を入力するなど、 ユーザーが文字を入力するまで待機する「モード」に入るのではないとあります。 ではインスタンスメソッドのなかでユーザーが「ボタンを押す」というイベントが発生する まで待機するにはどのようにプログラムを書いたらよいのでしょうか? void f(){ イベント待ち; fの処理; //イベントが発生するまで処理したくないもの }
831 :
デフォルトの名無しさん :03/09/15 01:29
>>830 待つのはJVM内部に自動生成されるスレッドが勝手に遣ってくれるので、
自作する必要はない。必要なのは「イベントが発生したらどうするか」
をリスナのメソッドにかいて、登録することだけ。
832 :
デフォルトの名無しさん :03/09/15 01:32
mainメソッドの無いJavaソースリストがあるんだけど mainメソッドって作らなくてもいいの?
834 :
デフォルトの名無しさん :03/09/15 02:04
>>831 void g(){
処理A:
f();
処理B;
f();
・
・
}
void f(){
イベント待ち(ボタン2が押されるまで待つ);
fの処理; //イベントが発生するまで処理したくないもの
}
ボタン1を押されたらg()が呼出され、ボタン2が押されたらf()が開始されるように
したいのです。
>>834 もっと「イベントドリブン」について勉強した方がいい
HSPから来たのかな
837 :
デフォルトの名無しさん :03/09/15 02:11
>>834 だから、「イベントが発生したらg()やf()を呼ぶ」メソッドを
イベントリスナに書いて、登録するだけ。
うわぁ・・・昔のBASICとか思い出したよ。 f()の中のイベント待ちって、もしかしてwhile(true)でも使うつもり? いい加減そういう古いやり方は頭から切り離さないと。 独習JAVAはいい本だからちゃんと隅々まで読んで、理解しなさいね。
839 :
デフォルトの名無しさん :03/09/15 10:21
質問です。
OSは WinXP 、環境が SDK1.4.2、Tomcat 4.1 なのですが、
C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes
ディレクトリ以外に、サーブレット実行用のディレクトリを作成するにはどうすればよいのでしょうか。
C:\server\ をサーブレット実行用のディレクトリにする場合
C:\server\WEB-INF\classes
C:\server\WEB-INF\lib
を作成し、
C:\Program Files\Apache Group\Tomcat 4.1\conf\server.xml
の <!-- Tomcat Examples Context --> の直後に
<Context path="/server" docBase="C:\server" debug="0" reloadable="true" crossContext="true" trusted="false">>
</Context>
を追加し、
C:\server\WEB-INF\classes
の下にクラスフェイル Sample を置きました。
それからTomcat を Start させて、
http://localhost:8080/server/servlet/Sample をブラウザで表示させようとしても、できないいのです。
http://localhost:8080/examples/servlet/Sample では表示されましたが・・・
何か環境変数を設定する必要があるのでしょうか?
>>829 専用ブラウザでしか表示できないようなコンテンツを作成するなど、
用途があると思うのですが・・・。
user-agent 設定できませんか?
>>839 1. C:\serverに配置したhtmlファイルはブラウザから見えた?
(yesの場合)
1.1. invokerを利用しているが、conf\web.xmlのinvokerを無効化するコメントは削除した?
(yesの場合)
1.1.1. サーブレットにエラーがある可能性がある。ブラウザで見た時のエラーを書いて。
(noの場合)
1.1.2. invokerの使用は非推奨なので、C:\server\WEB-INF\web.xmlにサーブレットを登録しよう。
(noの場合)
1.2. コンテクストの登録に失敗している。Tomcatのログかコンソールにエラーが出ているはずなので、それを書いて。
>>839 web.xmlに書いとけ。
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
こういうやり方は、あまりほめられたもんじゃないがな。
>>846 http://localhost:8080/server/sample.html ってあなたの挙げたページに書いてあるじゃないですか。
サーブレットの登録方法は、それや847の方法でもいいですが、あまりお薦めできません。
%TOMCAT_HOME%\webapps\examples\WEB-INF\web.xmlを参考にしてやってみてください。
servletタグでサーブレットを登録して、servlet-mappingタグでサーブレットを
URLに対応させます。
>>848 http://localhost:8080/server/sample.html だと404です。
description The requested resource (/server/sample.html) is not available.
logs\localhost_log.2003-09-15.txtによりますと、
2003-09-15 12:19:30 WebappLoader[/server]: クラスリポジトリを作業ディレクトリ C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\server に配備します
2003-09-15 12:19:30 WebappLoader[/server]: クラスファイル /WEB-INF/classes を C:\server\WEB-INF\classes に配備します
2003-09-15 12:19:30 WebappLoader[/server]: このコンテキストの再ロードチェックは有効です
2003-09-15 12:19:30 StandardManager[/server]: 乱数発生器クラス java.security.SecureRandom のシードを生成しています
2003-09-15 12:19:30 StandardManager[/server]: 乱数発生器のシードの生成が完了しました
2003-09-15 12:19:30 StandardContext[/server]: フィルタ Set Character Encoding の起動中の例外です
java.lang.ClassNotFoundException: filters.SetCharacterEncodingFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1444)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:327)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:120)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3159)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3603) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardHost.start(StandardHost.java:738) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347) at org.apache.catalina.core.StandardService.start(StandardService.java:497) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190) at org.apache.catalina.startup.Catalina.start(Catalina.java:512) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) 2003-09-15 12:19:30 StandardContext[/server]: 以前のエラーのためにコンテキストの起動が失敗しました 2003-09-15 12:19:30 HostConfig[localhost]: 設定記述子 admin.xml を配備します (以下略)
>>849 serverがロードできてないぞ。
web.xmlから<filter>の定義を削除するか、
filters.SetCharacterEncodingFilter を用意しろ。
サーブレット C:\server\WEB-INF\classes\Sample.class を登録する場合、
ttp://www.nihon-eng.co.jp/c-break/TechNote/tomcat/TCAT41_Inst.htm#web.xml の
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
を削除して、
<servlet>
<servlet-name>Sample</servlet-name>
<servlet-class>Sample</servlet-class>
</servlet>
<servlet>
<servlet-mapping>
<servlet-name>Sample</servlet-name>
<url-pattern>/Sample</url-pattern>
</servlet-mapping>
これを
C:\server\WEB-INF\web.xml
に追加するだけでいいんでしょうか。
<test>
856 :
Java初心者 :03/09/15 15:50
Javaのアプリケーションについての質問なんですが、 長い処理中、例えばフォルダを中身ごとコピー中などに 処理中を示すFrameを表示したいのですが、どうすればいいのでしょうか? 現在の動作は、Frameは表示されるのですが、 paint(Graphics g){}の中に書いているdrawImage()が表示されません。 使っているのはjdk1.4.1です。
857 :
デフォルトの名無しさん :03/09/15 16:11
>>856 きちんとどこかでrepaint()は呼び出した?
858 :
Java初心者 :03/09/15 16:46
はい。 Freme.show()の下にrepaint()してます。
859 :
Java初心者 :03/09/15 17:00
あれから調べてみたのですが、 repaint()してるのにupdate()もpaint()も呼ばれて無いみたいなんです。
860 :
Java初心者 :03/09/15 17:23
ちょっと、自分でも見ていて分かりづらいので・・・ -----MainFrame----- ・・・ public void copy(){ ・・・ SubFrame sf=new SubFrame();//コピー中に表示したいframe ・・・setBounds()など・・・ sf.show(); sf.repaint(); //@ this.filecopy(File f1,File f2);//MainFrameにあるファイルをコピーするメソッド } -----SubFrame----- ・・・ public void paint(Graphics g){ g.drawString("コピー中",100,100); g.drawImage(img,4,23,150,150); } ---------------------- と、こんな感じです。 ちなみに@部分でExceptionを発生させるとSubFrameはちゃんと 描画されます。
861 :
デフォルトの名無しさん :03/09/15 17:36
それはたぶんシングルスレッドでやっているからじゃないかな。 一つコピー用のスレッドを作って、そこでコピーさせないと、 repaint呼んでもコピーにCPU取られてるから画面更新はしてくれないんじゃないかと思う。
>860 repaint()呼んだあとにpaintImmediately()を呼んでみたら?
863 :
Java初心者 :03/09/15 17:42
レスありがとうございます。 早速試してみます。
864 :
Java初心者 :03/09/15 18:31
>861さん コピーするメソッド部分をスレッドにしてみましたが 表示されませんでした。 でも、コピー自体が早くなったような気がします。 もしかして、SubFrameもRunnableにしなきゃだめでしょうか? >863さん paintImmediately()を持っているクラスは何でしょうか? Eclipseで作っているのですが、メソッドを検索しても でてきませんでした。
865 :
デフォルトの名無しさん :03/09/15 18:43
867 :
Java初心者 :03/09/15 19:33
>866さん ありがとうございます。 試してみます。 ところで、一般的にJavaで「コピー中」(処理中)ダイアログを表示するのは どういう風にやっているのでしょうか? それともJavaではあんまりそういうことはしないのでしょうか?
868 :
デフォルトの名無しさん :03/09/15 19:49
あの、本当に初歩的な質問なんですが、 一つの関数に二つ以上のアウトプットを持たせるにはどうすればいいのでしょうか。 Cならポインタで引数に出力もできるのですが、そういう方法はないものでしょうか。
>867 ビッグジョブは別スレッドで実行するのが普通かな。 キャンセルボタンのあるダイアログを表示してから、 ユーザインタフェーススレッドはすぐにリターンする。
870 :
Java初心者 :03/09/15 20:07
>868 Hashtable,Vectorを使うとかじゃだめでしょうか? >869 やはりスレッドですか。 処理終了の取得とか、ダイアログ表示(表示されないし(^^;)とか 難しそうですね。 僕はAppletをちょっとやった事があるからということで XML解析Javaアプリを作る事になったのですが 何かお勧めの書籍は無いでしょうか? 今日買って勉強します。
871 :
デフォルトの名無しさん :03/09/15 21:21
抽象クラスがいまいち理解できません。 本とかよんで分かったつもりになっても それは結局はわかっていなくて、 実務で抽象クラスに遭遇して、自分も利用しようとしても 力及ばない状況です。 なにが分からないかというと、 抽象クラスを継承して際の 処理の流れがイメージできないんす。 なにか参考になるサイトでもあれば 教えてください。
872 :
デフォルトの名無しさん :03/09/15 21:49
以下のような、県名、人口、市町村の数が記述されたファイルを読み込んで、 (数値は適当です。) 県名 人口 市町村の数 --------------------------------- 群馬 55000人 52市町村 千葉 150000人 60市町村 栃木 50000人 50市町村 埼玉 100000人 490市町村 1.人口の多い順に並べた、県名の配列を作る。 2.1.でつくった配列を引数として受け取り、”県名 人口 市町村の数” で画面に出力するメソッドに渡す。 と、言う感じにしたいのですが、2.はできてるのですが、 1,の方法がわかりません。 人口をとっても、対応する県名を同様に同じ添字に移動させる方法がわかりません。 どうやればいいのでしょうか?よろしくお願いします。
>>872 根本的にやり方を間違えている気がする。
public class Prefecture{
private String name;
private int population;
private int numCities;
// getter, setterは略
}
Prefecture[] prefList = readPrefList();//ファイルから都道府県リストを取得。省略
java.util.Arrays.sort(prefList, new java.util.Comparator(){
public int compare(Object o1, Object o2){
Prefecture p1 = (Prefecture)o1;
Prefecture p2 = (Prefecture)o2;
return p1.getPopulation() - p2.getPopulation();
}
});
Arrays.sortとComparatorが何をするクラスなのかは、APIを見てくれ。
>>872 「都道府県」を現すクラスを作る。
例)
public class ToDouFuKen implements Comparable{
private int population;
private int numOfCities;
private String name;
public boolean compareTo(Object o){
ToDouFuKen t = (ToDouFuKen) o;
return this.population - t.population;
}
........
}
で、このクラスのインスタンスを、Listに入れて、java.util.Collections#sortでソートする。
>>875 ケコーン
まあ、配列じゃなくて、875の言うようにList(ArrayList)に入れた方が楽でいいだろうな。
compareTo()を実装するか、実装しないでComparatorの無名サブクラスを作るかはどっちでもいいと思う。
>>872 Prefにはsetter/getter作っとけ
import java.io.*;import java.util.*;import java.util.regex.*;
public class Pref1 {
public static void main(String[] args) throws IOException {
String data = "群馬 55000人 52市町村\n千葉 150000人 60市町村\n栃木 50000人 50市町村\n埼玉 100000人 490市町村";
Pattern p = Pattern.compile("^(\\S+)\\s(\\d+)人\\s(\\d+)市町村$");
String line;List list = new ArrayList();
BufferedReader in = new BufferedReader(new StringReader(data));
while ((line = in.readLine()) != null) { Matcher m;if ((m = p.matcher(line)).matches()) {Pref pref = new Pref(m.group(1), Integer.parseInt(m.group(2)), Integer.parseInt(m.group(3)));list.add(pref);} }
in.close();
Collections.sort(list, new Comparator() { public int compare(Object o1, Object o2) {return ((Pref)o2).population - ((Pref)o1).population;}});
for (int i = 0; i < list.size(); i++) {Pref pref = (Pref)list.get(i);System.out.println(pref.name + "," + pref.population + "," + pref.townCount);}
}
}
class Pref {
String name;int population; int townCount;
Pref(String name, int population, int townCount) {
this.name = name; this.population = population; this.townCount = townCount;
}
}
>>874 さん
>>875 さん
お早いレスありがとうございます。
参考にさせてもらい、早速やってみます。
ぐわ!879書いてる時間差で・・・
>>878 さんもありがとうございます!
こんなにすばやく多くの人に答えてもらえて感激です!
874さん、875さん、878さん、ほんとにありがとうございます!
いい夢が見れそうです!
かぶった上に10分遅れ(´・ω・`)ショボーン
>>877 > compareTo()を実装するか、実装しないでComparatorの無名サブクラスを作るかはどっちでもいいと思う。
県名の昇順、降順、人口の昇順、降順、市町村数の昇順、降順
みたいに、ソートのポリシーを柔軟に変更できるのは、後者。
どっちでもいいけど、要求によるよね。どっちかって言うと、Comparator
を使ってソートするのがお勧め。(
>>874 、
>>878 はこの方法)
ただ、compareToを実装してても、Comparator使って別のポリシーによる
ソートが可能だから、「とりあえず簡単にソートしたい」なら実装した方が
いいけど。
ちなみに、
>>875 のcompareToの戻り値はbooleanじゃなくてintね。
883 :
デフォルトの名無しさん :03/09/15 23:37
ちょいと聞いていいですか? 僕の友人がメモ帳みたいなアプリケーションをjavaで作ってサーブレット化して、 他のマシンから起動しようとしたけどできないらしいんです。 URLにアクセスするとサーバー側の画面にメモ帳が出るらしい。アクセスしたマシンに 出したいらしいけど解決法あるのかな・・。よろしくです(@。@)
何か大きく勘違いしてる悪寒。 それに仮に起動できても保存も編集もできないだろうねぇ。
>>883 開くと保存だけなら簡単にできそう
編集中にその変更をサーバー側に反映させることも
できなくはないけど結構面倒だし
サーバーのトラフィックが増大する
>>883 AppletかJavaWebStartで作ったら?
保存するファイルをどこに置きたいのか知らないけど。
>>886 本気かよ…
鯖側に保存するようにすれば個人情報Getできるかもな
>>887 ちゅーことはサーブレットではほぼ無理?
アプリじゃなくてブラウザでやればいいわけか。
保存するファイルはサーバー側に置きたいらしい。
というかそれサーブレットと言わなくないか?
あー掲示板みたいなのを作りたいの? それなら出来るんであ
>>889 エディタを凝らないでいいのなら普通のHTMLのフォームで良さそうだな。
ま、凝りたいから自前のアプリ作ったんだろうけど。
Javaのみでやるなら、Appletとサーブレットの組み合わせになるだろうね。
Applet側で編集後、HTTP経由で編集内容をサーバのサーブレットに送信、
サーブレットは「適切な認証の後で」編集内容をファイルに保存、って感じで。
> アクセスしたマシンに出したいらしいけど解決法あるのかな なるほど。アクセスしてきたマシン上で、任意コードを実行したいと。 HDDをフォーマットするようなプログラムを、アクセスして来たマシン上で 実行させたいのだけど解決法あるのかな
HDDのデータ消すことは出来るけど フォーマットみたいな低レベルのことJavaでできるのか?
>>893 が書いてるのはそういうことじゃないだろ。アホだな
896 :
デフォルトの名無しさん :03/09/16 04:22
jspの暗黙オブジェクトを使ってフォームの内容を取得したり、 セッションに登録したりしていたことをbeanを使ってjavaでやりたい のですが、どうすればいいですか?
>>896 意味がわかんないんだが
いままでJSPの中で書いてきたそういうロジックを
サーブレットに(Bean呼び出したりして)やらせたいとかそういうこと?
JSPなら板違いだYO
落ち着け。898 900に反応したら負けだ。
902 :
デフォルトの名無しさん :03/09/16 09:40
次のプログラムは何がいけないんでしょうか? String str=new String("hoge"); if(str=="hoge") System.out.println("true"); else System.out.println("false"); これを実行するとfalseになります。
str=="hoge"
905 :
デフォルトの名無しさん :03/09/16 10:03
906 :
デフォルトの名無しさん :03/09/16 10:46
>>904-905 902じゃないんだけど、リンク先の説明の後半によれば、
今の場合もtrueになるような気がしまつ。
>>906 ぐだぐだ言わずにやってみれ。
String str=new String("hoge");
と
String str="hoge";
は違うオブジェクトだ。
909 :
デフォルトの名無しさん :03/09/16 10:59
>>897 名前:デフォルトの名無しさん [sage] 投稿日:03/09/16 04:53
>>
>>896 >> 意味がわかんないんだが
>> いままでJSPの中で書いてきたそういうロジックを
>> サーブレットに(Bean呼び出したりして)やらせたいとかそういうこと?
そうです。API DOCをみてもインターフェースしかのってなくて、
だいたいインターフェースの使い方をよくわかってないってのもあります。
910 :
デフォルトの名無しさん :03/09/16 11:17
>>908 String str1=new String("hoge");
String str2=new String("hoge");
String str3="hoge";
String str4="hoge";
String str5="ho"+"ge";
String str6="ho"+new String("ge");
として比較してみたら、
str3==str4、str3==str4、str4==str5だけ
trueでした。(str1==str1とかは除く。)
このスレ、勉強になるわぁ。感謝!
911 :
デフォルトの名無しさん :03/09/16 11:25
>>906 >>908 さんのコメントに補足すると
String str = "hoge" 形式で宣言した場合は
「文字列リテラル」って言って
既に String str = "hoge" の形式で"hoge"が宣言されていると
そのインスタンスを再利用するようなオブジェクトになる。
new String("")形式は常に新しいインスタンスを作成する。
(「=」はインスタンスが等しいかが判断される)
Javaの定番本おしえてください
913 :
デフォルトの名無しさん :03/09/16 12:02
演算子のオーバーロードの方法を教えてください。
914 :
デフォルトの名無しさん :03/09/16 12:06
書籍名は思いつきませんが、「Java入門」ならば とりあえず、ごっつう簡単な感じの本と結構細かいトコまで載ってる本を 1冊づつ買うことをお勧めします。 余裕があれば、Sun認定のJava資格試験の本もお勧めです、 ちゃんと基礎から勉強するには意外と良い感じです。 ウチの社の新人さんの買ってきた「Java入門」とかの本ででしたが そこそこ分厚そうな本なのに、大事な事が書いてない事が、、、 「ちゃんと」Java出来る人と買いに行くのも良いかもしんない。
915 :
デフォルトの名無しさん :03/09/16 12:13
>>913 「&」や「|」の事ですか?それともequals()等のメソッドを指していますか?
前者ならば言語使用で決まっているルールなので無理だと思われます。
916 :
デフォルトの名無しさん :03/09/16 12:17
>>915 訂正「言語使用」>> 「言語仕様」 m(_ _)m
917 :
デフォルトの名無しさん :03/09/16 12:22
>>911 > String str = "hoge" 形式で宣言した場合は「文字列リテラル」って言って
文字列リテラルは 「"hoge"」 だけだよ。
> (「=」はインスタンスが等しいかが判断される)
等価演算子は == だろ。
919 :
デフォルトの名無しさん :03/09/16 12:42
>>918 >文字列リテラルは 「"hoge"」 だけだよ。
宣言の仕方で内容違うって言いたかったんだけど。
>等価演算子は == だろ。
ごめん、間違い。
>>919 > > > String str = "hoge" 形式で宣言した場合は「文字列リテラル」って言って
> > 文字列リテラルは 「"hoge"」 だけだよ。
> 宣言の仕方で内容違うって言いたかったんだけど。
既存の用語を使うなら正確に使えってだけの話だが。
言語仕様の用語使うなら "hoge" は定数式だって事になるんだろね。
921 :
デフォルトの名無しさん :03/09/16 12:54
iアプリのJavaについて、ここで質問してもいいですか?
私は最近Javaとiアプリの勉強を始めたばかりの者です。 購入したiアプリのマニュアルにある「POSTレスポンス」のソースプログラムをコンパイルしたところ、 「パッケージ javax.servlet が import にみつかりません」 というエラーが出てしまいます。 ソースプログラムの先頭で、 import javax.servlet.*; と記述しているところで、このエラーが表示されます。 おそらくパッケージ"javax.servlet"を取り込めていないのだと思うのですが、取り込むにはどうしたらいいのでしょうか? どうぞ、宜しくお願い致します。
Javaで The C++ Programming Languageに相当する本って何ですか?
>>922 有難う御座います。
先走って>923を書いてしまい、スミマセンでした。
そちらのご紹介頂いたスレで質問させていただきますm(__)m
927 :
デフォルトの名無しさん :03/09/16 13:12
928 :
デフォルトの名無しさん :03/09/16 13:21
>>920 すでに内容がズレて来てるけど、とりあえずレス。
>言語仕様の用語使うなら "hoge" は定数式だって事になるんだろね。
String LiteralsでなくってConstant formula?
気になったんで確認しましたが、「文字列リテラル」で合ってるんでは?
(というか、自分でも文字列リテラルって言ってる気が、、、)
932 :
デフォルトの名無しさん :03/09/16 13:32
>>929 String.internは違うんでは?
確か、String.equalsを何度も行う場合などは
一度、String.internを行い、その結果を比較処理時に再利用すると
高速に比較可能、、、って話では?
933 :
デフォルトの名無しさん :03/09/16 13:35
>>932 自己スレ。
間違ってたら訂正&補足ヨロ
>>932 何の話をしとるんだ? 俺が言ってるのは2つ。
> String str = "hoge" 形式で宣言した場合は「文字列リテラル」って言って
文字列リテラル は「"hoge"」の部分だけ。
「String str = "hoge"」だと局所変数宣言だよね。
"hoge" は文字列リテラルだが、
定数式だから同一インスタンスになるって説明した方が正確。
String a = "hoge" + Integer.MAX_VALUE;
String b = "hoge" + Integer.MAX_VALUE;
で、a と b は同一インスタンスになる(はず)。
文字列リテラルだから同一インスタンスになるっていってると、これを説明できない。
>>932 えーと、言語仕様に String.intern が書いてあるのは
「文字列リテラルだから同一インスタンスになる」って奴の仕組みの部分にそれが使われてるから。
avでは問題なく動作するのですが、鯖にうpするとうまくどうさしません。 配列はみだしエラーで-1が出るのですが、ちょうどファイル入力を行ってるところがおかしいのかなと思いますが、 セキュリティ関係のエラーではなく、単純なファイルの読み込みエラーだと思います。 ローカルではできるのに、どうしてうpするとできないのでしょうか?
>>936 ファイルの読み込みはセキュリティ関係のエラーを起こすYO!
938 :
デフォルトの名無しさん :03/09/16 14:13
>>934 和訳そのまま抜粋ですが、「定数式だから同一インスタンスになる」って書いてなくって
「文字列リテラルだから同一インスタンスになる」って書いてあるように読み取れますが、、、
(確か、最近の仕様ではパッケージを越えた文字列リテラルも同一インスタンスを
参照する事が保障された記憶が、、、)
(3.10.5 文字列リテラル)
文字列リテラルは,常にString型(4.3.3)とする。
文字列リテラルは,常にクラスStringの同一インスタンス(4.3.1)を参照する。
939 :
デフォルトの名無しさん :03/09/16 14:26
940 :
デフォルトの名無しさん :03/09/16 14:27
>>935 使う人をあまり聞かないけど、なんであるのかな?って疑問でしたがナルホドです。
941 :
デフォルトの名無しさん :03/09/16 14:33
>>934 String a = "hoge" + Integer.MAX_VALUE;
String b = "hoge" + Integer.MAX_VALUE;
System.out.println(a==b);
falseが出ますた...。(JDK 1.1.8)
>>938 > 文字列リテラル(より一般的には,定数式(15.28)の値となる文字列)は,
> メソッドString.internを使用して,一意なインスタンスを共有するために"intern"される。
の部分が、簡単に言うと
> 「定数式だから同一インスタンスになる」
って書いてある部分なわけです。
>>941 うちでは true になるね。
java -version の結果も書いてくれる?
JDK 1.1.8_010 : true
JDK 1.2.2_014 : true
JDK 1.3.1_08 : true
JDK 1.4.1_03 : true
JDK 1.4.2 : true
944 :
デフォルトの名無しさん :03/09/16 14:43
>>943 Macでつ。
MRJ2.2.5(JavaVM)
MRJSDK2.2(開発環境)
>>941 あ、JDK 1.1.8_010 でコンパイルしたら false になった。
JDK 1.1.8 だと Integer.MAX_VALUE が定数式じゃないのかな?
946 :
デフォルトの名無しさん :03/09/16 14:47
Microsoft VM(JDK1.1.4相当)でもfalse
たぶん JDK 1.1.8 が仕様に従ってないだけ。ソースコード無いのでおっかけられん。
948 :
デフォルトの名無しさん :03/09/16 14:50
>>945 1.1.8のドキュメントからコピペ。
MAX_VALUE
public static final int MAX_VALUE
The largest value of type int.
JDK 1.2.2_014 でコンパイルすると true になるね。
>>948 「定数式」かどうかが知りたいんだよ。
もっとも、
final int CONSTANT_VALUE = 0;
String a = "hoge" + CONSTANT_VALUE;
String b = "hoge" + CONSTANT_VALUE;
System.out.println( a == b );
が false になってるから仕様に従ってないと推測したけど。
コンパイル時に定数が展開されてるとかいう問題じゃない? メソッド等にfinal付ければtrueになるかもよ。
>>951 そーゆー問題。でもメソッドに final 付けても変わらんはず。
やってみたけど変わらない。そりゃ static メソッドだから final 付けても意味無いや。
>>951 class StringTest{
final public static void main(String args[]){
final String a = "hoge" + Integer.MAX_VALUE;
final String b = "hoge" + Integer.MAX_VALUE;
System.out.println(a==b);
}
}
falseでつ。
JDK 1.1.8 でも final int CONSTANT_VALUE = 0; byte b = CONSTANT_VALUE; がエラー無しでコンパイル通るから定数式っていう情報はもってると思う。 単純なミスとかの類なんだろか?
>>953 コンパイルしたバージョンも書いてくれ。
>>955 上にも書いたけどMac。
MRJ2.2.5(JavaVM)
MRJSDK2.2(開発環境)
JDK1.1.8相当。
958 :
デフォルトの名無しさん :03/09/16 15:57
1にもかいてあるんですが 「コンパイルはできたのにNoClassDefFoundErrorのせいで実行できない」という悩みも多いのですが、これはクラスファイルの場所とソースファイルの場所を混同しているのが原因です。 クラスファイルの場所とソースファイルの場所には何の関係もありません。 クラスファイルとソースファイルが同じディレクトリに置かれている場合は非常に多いのですが、これはたまたまであって、ソースファイルの隣にクラスファイルがあるからといって、そのままでそのクラスファイルがロードできるということではないのです。 あくまでも、そのクラスファイルをクラスローダの検索先に置く(またはCLASSPATH変数にセットして検索 とかいてあったのですがCLASSPATHの設定をC:\usr\local\Tomcat4.1\common\lib\servlet.jarにしてあるのです。 これはサーブレットと普通のJavaは同時に使えないということでしょうか? あるいは別の環境設定の方法があるんでしょうか?よろしくお願いします・
959 :
デフォルトの名無しさん :03/09/16 16:03
>958 Tomcat4.1の catalina.bat はCLASSPATHを再設定してから動作するので、 Tomcatの起動前にCLASSPATHがどうなっていても無関係。 >CLASSPATHの設定をC:\usr\local\Tomcat4.1\common\lib\servlet.jarにしてあるのです。 無駄。
>>960 javacでのコンパイル時にはそのclasspathが使われるんだから無駄じゃない。
「Tomcat実行時のclasspathには影響しない」ということを認識した上で
環境変数CLASSPATHを設定したらいい。
むしろ実行時の動作に影響を与えないから好きに変えることができる。
962 :
デフォルトの名無しさん :03/09/16 16:15
>>959-960 レスどうもです。
>CLASSPATHの設定をC:\usr\local\Tomcat4.1\common\lib\servlet.jarにしてあるのです。
無駄。
そうなんですか?やんなくても動くんですか?
antぐらい使ってくれよぉ。
964 :
デフォルトの名無しさん :03/09/16 16:17
965 :
更新したらClassNotFound :03/09/16 16:26
TOMCATを4.1.12から4.1.27にしてみた。 すると、ClassNotFoundが頻発するようになった・・・。 どうやらClassファイルを更新すると出るみたい。 4.1.12では出来ていたのに、なぜか分かる人教えて。 reloadable="true"は設定してありまふ。
>>964 そう。Servletをコンパイルするならclasspathの設定は必須。
カレントディレクトリ"."も同時に設定しといた方が多分いい。
>>2 参照
960は無視。
>>963 HelloWorldぐらいjavacでやらせてやれ。
敷居を際限なく高くしてもしょうがないし、antは素javacでのコンパイルに慣れてからでも遅くない。
>カレントディレクトリ"."も同時に設定しといた方が多分いい。
>>2 参照
>>2 じゃない
>>1-4 だ。
誰だよこんな馬鹿なことするやつは。<2
968 :
デフォルトの名無しさん :03/09/16 16:33
970 :
デフォルトの名無しさん :03/09/16 17:52
Javaアプリケーションで画像を表示させるにはどうしたらいいですか? 今getImageで画像を取得してやってるんですが URLが変だというエラーがでます。 D:/work/img.jpgとかではいけないんですか?
getDocumentBase()使って、そこから相対パスで指定しる!
969==true
>>971 初心者はすっこんでろ
>>970 getResource() 使って、相対パスで指定しる
どうしても File から行きたかったら(ユーザに指定させるとか) toURL でも使っとけ。
ついでに toURL().toString() して眺めてごらん。
974 :
デフォルトの名無しさん :03/09/16 19:12
javaのIDEって何がいいですかね? やっぱeclipse?
ボタンを押すとキャンパスが表示されるプログラムを描きたいのですがうまくいきません。 イベント処理中は大きな処理はpaintなどの大きな処理は後回しにされるとありました。 JFrameのpaintImmediatelyを呼出すよううに書き換えるしかないのでしょうか? class Mycanvas extends Canvas { public void paint(Graphics g) { g.drawString("canvas", 10, 10); } } public class Test3 extends Applet implements ActionListener{ Mycanvas c ; public void init(){ Button b1 = new Button("表示"); b1.addActionListener(this); add(b1); } public void actionPerformed(ActionEvent ae) { c = new Mycanvas(); add(c); } }
977 :
デフォルトの名無しさん :03/09/16 20:21
Object obj;
String str="abc";
obj=str;
System.out.println(obj==str);
ってやると、trueになりますよね。
3行目では、strが参照してる"abc"というインスタンスへの
参照情報がobjに代入されただけで、
objとstrが参照してるインスタンスは全く同じもののはず。
それなのに、obj=strみたいなのを「型変換」っていうのは
すごく不適当だと思うんだけど、僕の解釈が間違ってるのかな。
どなたか解説キボン。
参考
http://www2s.biglobe.ne.jp/~yuuki_ki/java_class14.htm
そういうのは普通型変換とは言わない。(Java言語仕様見たわけじゃないが。) 字面なんかどうでもいいから読み飛ばしとけ。
980 :
デフォルトの名無しさん :03/09/16 21:13
変換についてもっとわかりやすく解説してあるサイト希望
>>977 あ、あとリンク先見たけど細かい間違いがいっぱいあった。
学校のテストだったら「コンパイル時のキャストのルール」の表なんか点もらえないよーな…
>981 文章なんか見ると、まるで中学生が書いたみたいだよね。
983 :
デフォルトの名無しさん :03/09/16 22:12
JDBCでMS Accessに日付を挿入したいのですが、うまくいきません。 どなたか教えてください。 Date date = new Date(); DateFormat df =new SimpleDateFormat("yyyy/MM/dd"); df.format(date) とやってはみましたが失敗しました。
984 :
デフォルトの名無しさん :03/09/16 22:22
あるファイルの指定された行を削除するような処理をしたいのですが 一時ファイルを作り削除したい以外の行をそこに 一旦そこに書き込み最後に一時ファイルを元のファイル名に 変換しようかと思ったんですがrenameToでエラーがでます。 renameToでは既に存在するファイル名に置き換えることはできないのでしょうか? それ以外にもいい方法があれば教えてください。
985 :
デフォルトの名無しさん :03/09/16 22:40
>>984 元ファイルをdeleteしてから、renameしたらあかんの?
>>985 あ、すいません。
それでもいいんですが
ファイル存在チェックと削除処理が必要になるので
もっと一気に出来る方法とかあればありがたいなと思ったまでで
失礼しました。<__>
>>986 元ファイルはちゃんとcloseしてるか?
988 :
デフォルトの名無しさん :03/09/16 23:14
JSPで行っていることをサーブレットでやりたいです。 どこかいいページを紹介してくれませんか?
989 :
デフォルトの名無しさん :03/09/16 23:20
>>983 Accessはつかったことないんだけど
そのカラムのデータ型はなに?
Accessにはto_date('yyyymm')みたいな関数ないの?
>>983 Accessでカラムを日付型で定義して、
Javaでカラムをjava.sql.Date型で取得すれば?
埋め
梅
宇目
生め
楳
次スレ立ててから埋めろよ。アホだな
うめ〜
倦め
埋め完了
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。