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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
☆★☆こんなメッセージが出たら >>2 へ☆★☆
『'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』

>>2-3 初心者によくある質問と回答・他のFAQサイトへのリンク
>>4  JDKの配布元とAPIドキュメントへのリンク
>>5-6 過去スレの一覧
>>7-10 関連スレ
>>11 2ちゃんねる外のJavaサイト・無料の開発環境の配布場所
(諸般の事情でずれた場合は >>2-20 )

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/
■JavaScriptの質問■はWeb製作板 ⇒ http://pc3.2ch.net/hp/
  または「JavaScript デス」スレへ⇒ http://pc2.2ch.net/test/read.cgi/tech/1052273054/

パソコンの基本操作に関しては、PC初心者板へどうぞ ⇒ http://pc.2ch.net/pcqa/

これからJavaのプログラムを始めたいかたは >>2-4
必要な情報やコンパイラのダウンロード先へのリンクがあります。

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

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

クラスパスとはなにか(JavaFAQ 基礎知識)
http://www.gimlay.org/~javafaq/S004.html
Q. Javaのインストール方法、パスや環境変数の設定方法が分かりません。
A: Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html
http://java.sun.com/j2se/1.4.1/ja/install-windows.html

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

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

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

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

このほかのFAQ(良くある質問とその回答)はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html
■■■ Java関連スレいろいろ ■■■
【IDE 統合開発環境】
【Java/C/他】統合開発環境Eclipse RC6
http://pc2.2ch.net/test/read.cgi/tech/1051840417/
えっ?JBuilder8が発売?
http://pc2.2ch.net/test/read.cgi/tech/1038042372/l50
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc2.2ch.net/test/read.cgi/tech/1017214967/l50
【統合】Java開発環境スレ
http://pc2.2ch.net/test/read.cgi/tech/1038118138/l50
【Java】NetBeans vs Eclipse【IDE】
http://pc2.2ch.net/test/read.cgi/tech/1029407008/l50

【携帯・モバイル】
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/l50
iモード携帯電話用Java(iアプリ) Part 3
http://pc2.2ch.net/test/read.cgi/tech/1040898596/l50
iアプリでゲーム (ゲーム製作技術板)
http://pc2.2ch.net/test/read.cgi/gamedev/1005042631/l50
京セラJAVA搭載PDA「PocketCosmo」 (モバイル板)
http://pc3.2ch.net/test/read.cgi/mobile/1021979970/l50
【サーバサイドやエンタープライズ】
EJB(初心者歓迎)
http://pc2.2ch.net/test/read.cgi/tech/1017240849/l50
■■ Servlet/JSP(EJB含む) 質問スレ ■■ (WebProg板)
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc2.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc2.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPのフレームワークを語るスレ
http://pc2.2ch.net/test/read.cgi/tech/1001950590/l50
EJBは終わってる
http://pc2.2ch.net/test/read.cgi/tech/1036481443/l50
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html
【その他】
クライアントサイドJavaどうよ?
http://pc3.2ch.net/tech/kako/1002/10021/1002160815.html
クライアントサイドJavaどうよ? part2
http://pc2.2ch.net/tech/kako/1032/10326/1032665721.html
クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/test/read.cgi/tech/1045891783/l50
ム板のみんなでRobocode (・∀・)ヤロ−ウヨ!1台目
http://pc3.2ch.net/tech/kako/1020/10201/1020161792.html
Java 高速GUI SWT
http://pc2.2ch.net/test/read.cgi/tech/1032448424/l50
【徹底討論】Java3Dの可能性について考える
http://pc2.2ch.net/test/read.cgi/tech/1033703640/l50
★お前らJavaはJNIで組もうぜ★
http://pc2.2ch.net/test/read.cgi/tech/1033795664/l50
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://pc2.2ch.net/test/read.cgi/gamedev/1005230153/l50
【Java編】 学校の宿題は俺にやらせろ 【Java編】
http://pc2.2ch.net/test/read.cgi/tech/1040552821/l50
祝 JAVA Developer創刊
http://pc2.2ch.net/test/read.cgi/tech/1024967343/l50
■■■ 他板のJavaスレッド ■■■
UNIXでJAVA (Unix板)
http://pc.2ch.net/test/read.cgi/unix/1011292632/l50
LinuxのJAVAチューニングスレ (Linux板)
http://pc.2ch.net/test/read.cgi/linux/1004594459/l50
◆◆◆◆◆◆MacでJava◆◆◆◆◆◆ (新Mac板)
http://pc.2ch.net/test/read.cgi/mac/991194610/l50

■■■ 撲滅させたいかた、死滅を心配してるかた ■■■
CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html
C#とJava、どっちをおぼえればいいの?
http://pc2.2ch.net/test/read.cgi/tech/1006715468/l50
Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html
Java撲滅委員会
http://pc3.2ch.net/test/read.cgi/tech/996848309/l50
●●JAVAって死滅しちゃうの????●●
1 http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
2 http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
3 http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
4 http://pc2.2ch.net/tech/kako/1042/10422/1042268758.html
5 http://pc2.2ch.net/tech/kako/1046/10465/1046539052.html
6 http://pc2.2ch.net/test/read.cgi/tech/1047748598/
■■■ 民間サイト ■■■
巨大なJavaリンク集
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html
What's New about Java(Java に関する最新ニュース)
http://www.gimlay.org/~andoh/java/javanew.html

■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php
【Sun ONE Studio 4 (Forte 4)】
http://jp.sun.com/products/software/tools/jde/try/index.html
【NetBeans v3】
http://www.netbeans.jp/dowonload.htm
【JBuilder 7 Personal】
http://www.borland.co.jp/jbuilder/jb7/download/

※2chではないので暴れないように。
12:03/05/11 12:59
マルチポストですいません。
javaの質問ですが、例えば
-------xxx.txt--------
<%
name = param.get("name");
weater = param.get("weather");
%>
こんにちは、<%=name%>さん。
今日の天気は<%=weather%>です。
----------------------
というような、JSP風のテキストファイルを
パースして出力すると、

こんにちは、田中さん。
今日の天気は雨です。

と、出力されるようなライブラリってあります?
あればいいのですが、なければ作ろうと思って。
XMLの動的生成や、外部化したSQLの動的生成に
使えそうな予感がして・・・
>12
Tomcatではダメなのか?
出力先が違うだけなんだから、Tomcatのソースをかなり使えると思うけど。
14:03/05/11 14:00
>>13
Tomcatのソース流用とか考えたのですが、
解析して流用するなら、1から作ったほうが早そう・・・かなって。
タグリブもいらないし、ビーンもいらないので。

velocityもいいかなと思ったのですが、
文法を新たに覚える必要があって。。。

最低限のJSPやASPがわかる程度の
プログラマ向けのライブラリが欲しかったのです。
使わせる人にあれこれ教える手間が省けそうで。
15デフォルトの名無しさん:03/05/11 14:52
画像ファイル(例えばJPEG)の解像度(dpi)の判定や変更を
行いたいのですが、どうやったらできますか?
>>15
まぁ、ヘッダ見るのが一番だわな。
1715:03/05/11 15:18
image.getResolution()みたいなAPIないかなあ・・・
>>17
悪い、死ぬべきだ。
1915:03/05/11 15:39
というかimage.removeMosaic()やimage.transparentCloth()みたいなAPIないかなあ・・・
20デフォルトの名無しさん:03/05/11 15:49
JSPなんですが
イメージ画像を普通の<img src="">タグで読めません
なんかやり方間違っているのかな?
サーブレットの場合はリソースにアクセスするとき
チョットめんどくさいことやらないといけませんけど
JSPも特別なやり方あるんでしょうか?
おしえてください
ちなみに、URL間違いって言うのは断じてないです
何度も確認しました
>>20
って言うかWeb制作板のレベルです。

>URL間違いって言うのは断じてないです
無い理由がありません。
22デフォルトの名無しさん:03/05/11 16:28
>>21
それが、違うんだよ
JSPを直接URLで指定すれば正常に表示されるんだが
サーブレットからフォワードした場合なぜか表示されない(いわゆる「X」マーク)
どうなってるのかさっぱりわからん
>>22
いや、間違ってる。
24名無しさん@Monalipse:03/05/11 16:47
>>22
サーブレットのURLとJSPのURLを見比べてみろ。
次に、それぞれのURLについて、相対パスがどのように解決されるか考えてみろ。
25デフォルトの名無しさん:03/05/11 17:37
>>24
>サーブレットのURLとJSPのURLを見比べてみろ。
>次に、それぞれのURLについて、相対パスがどのように解決されるか考えてみろ。


それは、知ってるって
そんなことで、質問する分けない
それがわかってるからおれも、おかしいなと思ってるんだよ
>それは、知ってるって

解ってないと思われるから問いただしている。
>>25
取りあえず具体的にURLなりソースなり出力結果を出さんと答えなんて出んぞ。
>>25-27
ということは、やっぱ特別なことしなくてもOKなんだな普通は・・・

最初、png画像つかってて
もしかしてと思って、jpegやらgif画像に変えてみたが同じ症状

JDK1.4.1
Tomcat4.1.24
Windows2000SP3
しかし、Linuxでは動く
なんなんだ?なぞが知りたい
だから正しいパスを指定できてないんだってば
InetSpyでも使って検証しねえ
30デフォルトの名無しさん:03/05/11 18:50
普段URLって言ってるが、URIということを知れ。
>>28
いっぺん死ね。
そーゆー硬い事言ってるとハゲるよ。
33デフォルトの名無しさん:03/05/11 18:59
もうズルムケだろ
Jspのプロ達、教えてください。

sql = "SQL文"
rset = stat.executeQuery(sql);

ってな感じでDBからデータを抽出して
Web画面に表示したいのですが、
表示の際に20件ずつ表示したいのです。
(「次へ」にリンクはって次の20件を表示)
そういうのってどうやるんでしょうか?
現在、上記コマンドと同一のソースファイル内で
restの個数でループさせて全て表示しています。
35デフォルトの名無しさん:03/05/11 20:39
>>34
おやおや。また単発。
推測を促せるコードを載せて質問しないでくれたまえ。
そもそも、回答者はDBアクセスって聞くだけで上記コードくらいは前提なのです。

必要な情報提示をしないで回答求められても困るぜ、おい。
どこまで理解しているか晒せよ、ヴォケが。
36デフォルトの名無しさん:03/05/11 20:41
>おやおや。また単発。

こいつのPC等板歴を聞いてみたい。

新入りに限って威張る威張る。
>こいつのPC等板歴を聞いてみたい。


こいつのPC等板歴を聞いてみたい。
>>35
必要な回答をしてみたらどうですか?知ったかするな プ


>>34
JSPが、ASPやPerlになったとしても同じことで悩むだろう。
それは「その問題がJSPであること」に殆ど関係ないからだ。
39デフォルトの名無しさん:03/05/11 20:53
>>37
>こいつのPC等板歴を聞いてみたい。
こいつのPC等板歴を聞いてみたい。
>>35
>おやおや。また単発。

単発の使い方間違ってますよ。
41デフォルトの名無しさん:03/05/11 20:54
>>39
>こいつのPC等板歴を聞いてみたい。

こいつのPC等板歴を聞いてみたい。
あぁ、俺も初心者の頃なやんだなぁ。
とりあえずバッファに入れとけとおもったら5万件あるし
43デフォルトの名無しさん:03/05/11 21:04
>>42
レコード件数見積もり立てて多いようだったらSQL毎回実行してる。
数千件ならバッファに入れてる。
>>34
Bean使っちゃいけないのかい?
ま、レコード全体を見通して処理するやつじゃなきゃ
>>43のやり方が一番よさそう
>34
1回目の表示では20件だけ出力する。
JSPのリンクに <a href="34.jsp?start=21">次へ</a> のように表示する先頭レコードの数字を入れておく

で、34.jsp(てか処理するサーブレット)ではSQLをもう一度実行する
startを参照して21件目からの20件分のデータをJSPに出力する
46デフォルトの名無しさん:03/05/11 23:48
>>45
POSTでやりたいんです。
>>46
即答。やればいい。
>>46
HIDDEN
49名無しさん@Monalipse:03/05/11 23:59
>>28
遅レスかもしれんが。
Linuxで動かしているWebアプリケーションサーバは何?
Windowsと同じTomcat?それとも別のサーバ?
いやね、Webアプリケーションサーバの種類によって、
サーブレットで指定するパス「/」の解釈が違うという症状に
悩まされたことがあって、それかな、と。
あんまり関係なさそうだけど、おまいが詳しい情報(要はソース)を
全然出してくれないので答えようがないのですわ。
HttpURLConnection クラスのインスタンスを生成する方法を教えてください。
たしか、キャストさせると、うまく生成できたと思うのですが。
>50
URL.openConnection()

URLがhttpのときはHttpURLConnectionが帰される。
52デフォルトの名無しさん:03/05/12 00:27
>>50
抽象クラスはインスタンス生成できない仕様になってます。
インスタンス生成したければ、HttpURLConnectionのサブクラスを作って、

HttpURLConnection urlConn = new [HttpURLConnectionのサブクラス]()

とでもやってください。
53__:03/05/12 00:27
54デフォルトの名無しさん:03/05/12 00:41
javax.servlet.http.HttpServlet#service(HttpServletRequest, HttpServletResponse)
を実装するときってどんな場合ですか?
GETもPOSTも処理できるから最初からserviceでいいじゃん。
55デフォルトの名無しさん:03/05/12 01:33
戻り値を持つメソッドってありますよね。
あれってメソッドの書き出しの所に、戻り値の型を入れるじゃないですか。
そして戻り値は一つしかない。
でもメソッドの途中で、戻り値を持たせないで強制的に呼び出し元に戻れる文(?)とかってありますか?
そしてメソッドのラストに来たら、それはそれでちゃんと戻り値を持って戻ると…

goto文とかあれば便利なのに…

おながいします。
56デフォルトの名無しさん:03/05/12 01:36
>>55
return ってしってるか?
57デフォルトの名無しさん:03/05/12 01:38
>>55
別な型の戻り値を1つ以上返せるシグネチャがあったらみてみたい。
配列返すとか、List返すとかは抜きね。
5855:03/05/12 01:43
>>56
returnは知ってます。
>>57
やっぱないですかね…

えと、メソッドの中で分岐とかあって、条件に当てはまらなかったら
戻り値を持たずに戻る。
当てはまったら戻り値(オブジェクト型)を持って戻るようにしたいんです…
適当に
return 0;
とか書いたら 互換性の無い型 とか出た。
>>57
object
60デフォルトの名無しさん:03/05/12 01:45
>>55
オッス、メソッドの出口は1つになるように考えてみた方がいいよ。
うまくクラス設計するとif文減らすこともできる。一度やってみなよ。
仕事じゃなくて趣味でやってて、面倒くさいなら条件分岐でreturnすればいいだけ。
オブジェクト指向はデザインパターンとか色々あるからマジでお勧め。


61名無しさん@Monalipse:03/05/12 01:45
>>55
N88Basic上がりか?そういう発想は20年前に捨ててくれ。
いわゆるコールバックをしたいのなら、呼び出し元のオブジェクトへの参照を渡せばよい。
こんな感じ。
public interface ICaller{
 public int callbackMethod(int arg);
}

public class Foo implements ICaller{
 public void aMethod(){
  Bar b = new Bar();
  System.out.println(b.buz(12));
 }
 public int callbackMethod(int arg){
  return arg * 10;
 }
}

public class Bar{
 public int buz(ICaller caller){
  ..;
  int ret = caller.callbackMethod(10);
  ..;
  return ret;
 }
}
>>55
finally 使えば良いとか言う話でなくて?
staticでないメソッドをstaticコンテキストから参照する事は出来ません。
とコンパイラから怒られたんですが、どうすればいいんでしょう・・・
staticなメソッド以外はstaticなmainメソッドから呼び出せないんですか?
staticは一つのオブジェクト(?)なのでstaticは
定数などにしか使わないほうがいいと聞きました。
mainから呼び出してるのはStringを返すメソッドなんですが
Stringに格納して、間接的に呼び出すようにしてみても怒られます
これはどういうことなんですか?(つдT)
6461:03/05/12 01:49
うわぁ、大勘違い。長々と無関係なコードを書いてしまった。スマソ
その条件に当てはまったらnullを返して、
呼び出し元でnullかどうかのチェックをするようにすればいいんでない?
プリミティブ型を返すのなら、エラーを示す値(0とか)を決めておくとか、
自作例外を投げるとか。
65デフォルトの名無しさん:03/05/12 01:50
>>58
適当に return 0; って・・・。立派なint型じゃないですか。
期待しないことは、普通、例外投げますが。

そもそも、呼び出し元はどんな作り?ソース晒してください。

>>59
Object返したら戻り値がプリミティブ型のときに怒られます。
>>60
> オッス、メソッドの出口は1つになるように考えてみた方がいいよ。
ようするに途中で抜けたい場合はgotoで最後に飛ばせばいいんだろ?
意味ねー。
>>63

> staticなメソッド以外はstaticなmainメソッドから呼び出せないんですか?
そだよ。

> mainから呼び出してるのはStringを返すメソッドなんですが
> Stringに格納して、間接的に呼び出すようにしてみても怒られます
???
6855:03/05/12 01:51
>>60
えっと(汗)只今研修総仕上げの開発演習に追われてまして…
で、明日(今日)までに自分の担当モジュールをある程度完成させなければならないんです…
既に行数がエラい事になってるんで、ここから分岐いじりなおしたりとかやると、
終わらないんじゃないかと…

>>61
すみません、goto文は算法とコンピュータの所で知りました。
それと、戻り値として何も値を無しにして戻らせたいんです。

>>62
finallyって例外処理じゃないんですか??
>>58
ぬるぽ返せば良いよ。ふつーはそうする。
>>63
> staticなメソッド以外はstaticなmainメソッドから呼び出せないんですか?
static でないメソッドはインスタンスが無いと呼びだせんね。
7155:03/05/12 01:53
>>65
ソース晒したいですが、どこからどこまで晒せば解ってもらえるのか(汗)
幾分初心者が書いたものですし…
7255:03/05/12 01:54
あ、呼び出し元の処理まだ書いてなかった(氏)
>>65
> Object返したら戻り値がプリミティブ型のときに怒られます。
Objectに変換しろよ。
>>71
とりあえず

> でもメソッドの途中で、戻り値を持たせないで強制的に呼び出し元に戻れる文

を含むメソッドを全部。
例外が発生したときに、例えば、
} catch (Exception e ) {
の e から java.io.FileNotFoundException のような例外のクラスの名前(だけ)を拾うにはどうすればいいのですか?
>>74
500行ぐらいあるのですが?
77デフォルトの名無しさん:03/05/12 01:57
>>71
呼び出し元のメソッドと、そこでコールしてるメソッドをきぼんぬ。
7855:03/05/12 01:58
>>74
そのメソッドは200行位あるんですが…おk?
OK
80デフォルトの名無しさん:03/05/12 01:59
>>69
実務で、ぬるぽを返すソース見たことないのですが?
catchする必要ないから良いのだろうけど。
>>75
e.getClass() とか。
82デフォルトの名無しさん:03/05/12 02:01
晒せ晒せ
83名無しさん@Monalipse:03/05/12 02:01
>>75
e.getClass().getName()
8455:03/05/12 02:02
うーん、どう切って晒せばいいんだろう(汗)
短くしたのに「改行多すぎ」といわれる…
>>84
25行 * 8部分 ぐらいにわけろ。
86名無し@沢村:03/05/12 02:05
おまいらよ、おれはHelloWorldというアプリケーションを開発したよ。
このHelloWorldはActiveBaiscで組んだものだよ。
おまいらも、アプリケーションを開発するときの参考にしてみろ?

http://hp.vector.co.jp/authors/VA015412/

名前 本田 守/ほんだ まもる
ハンドル Mr.あねさん

http://www.vector.jp/vpack/browse/person/an015412.html

"Mr.あねさん"
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%22%EF%BC%AD%EF%BD%92%EF%BC%8E%E3%81%82%E3%81%AD%E3%81%95%E3%82%93%22&lr=
87デフォルトの名無しさん:03/05/12 02:06
>>75
基本的には

try{
}
catch(捕まえる必要がある例外1 e1) {
}
catch(捕まえる必要がある例外2 e1) {
}
catch(Exception e) {  // その他の例外(予期せぬ例外を捕まえるつもりで)
}
finnaly{
}

なんてことをやる。
8854:03/05/12 02:07
>>54ですが、誰か教えてください。
8955:03/05/12 02:08
Member kensakum(Vector vm, Vector vv, Vector vc, int nv)throws IOException
{
this.vecm= vm;
this.vecv= vv;
this.vecc= vc;
this.tdnv= nv;

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

System.out.println("会員番号を入力してください");
String msearch= br.readLine();

for(int i=0; i<vecm.size(); i++){
m= new ((Member)vecm.elementAt(i));

if((msearch).equals(m.mno)){
System.out.println("会員情報が見つかりました");
break;
}
else{
System.out.println("会員情報が見つかりません");
System.out.println("登録を行ってから再度貸出業務を行ってください");
return 0;
}
}
>>80
public String method(String str){
 return str.toUpperCase();
}
も str が null だった場合、NullPointerException 投げるけど。
そーゆー意味では NullPointerException 投げないプログラムってめったに無いような…

確かに自力で throw new NullPointerException する事は少ないかな。
俺はコンストラクタとかでは null チェックして投げるようにしてるけど。
9163:03/05/12 02:08
>>70
処理部分を別Classにして、それをインスタンス化したものを呼び出したら
コンパイラに怒られませんでした
ありがとうございました。

これはどういうことなんでしょうか????
かなり初心者的質問だと思うんですが教えて頂けませんでしょうか
9255:03/05/12 02:08
if(m.hon > 0){
System.out.println("この会員は既にレンタル中の品があります");
System.out.println("返却されるまで新たにレンタルすることはできません");
return 0;
}

System.out.println("会員が希望するレンタル品の総本数を入力してください");
int honsu= Integer.parseInt(br.readLine());

if(honsu > 10){
System.out.println("希望本数が多すぎます!");
System.out.println("ランダム処理にかけられるのは10本までです");
System.out.println("本数を10本以下に減らすように伝えてください");
return 0;
}

String temp[]=new String[10];//配列内初期化
for(int i=0; i<10; i++){
temp[i]="0";
}

9355:03/05/12 02:09
for(int i=1; i<=honsu; i++){
System.out.println("レンタル品に付与されている管理番号を入力してください");
System.out.println("※中止する場合は 0 を入力してください");
int managn= Integer.parseInt(br.readLine());

for(int j=0; j<vecv.size(); j++){
v= new ((Video)vecv.elementAt(j));

if(managn == v.knr){
if((v.flag).equals("在庫あり")){
String ren= (managn+"v");

if((v.gen).equals("a")){
ren= (ren+ "a");
}
else{
if((v.gen).equals("v")){
ren= (ren+ "v");
}
else{
ren= (ren+ "n");
}
}
temp[i-1]= ren;
break;
}
9455:03/05/12 02:09
else{
System.out.println("現在貸出中です");
System.out.println("レンタルできません");
temp[i-1]= "no";
break;
}
}
}

if((temp[i-1]).equals("0")){
for(int k=0; k<vecc.size(); k++){
c= new (vecc.elementAt(k));

if(managn == c.knr){
if((c.flag).equals("在庫あり")){
String ren= (managn+"c");
temp[i-1]= ren;
break;
}
else{
System.out.println("現在貸し出し中です");
System.out.println("レンタルできません");
temp[i-1]= "no";
break;
}
}
}
}
9555:03/05/12 02:11
あっ、Tab消えるんだ(汗)
す…すみません…
>>89
> else{
>  System.out.println("会員情報が見つかりません");
>  System.out.println("登録を行ってから再度貸出業務を行ってください");
>  return 0;
> }
の return の部分は例外投げた方が良いような。
>>81
>>83
できますた。 thanks
9855:03/05/12 02:15
>>96
えーと、そこで呼び出し元に戻って欲しいんです…
登録処理は呼び出し元から飛ぶんで…
>>96
でなきゃ null 返すとか。
>>98
呼び出し元で catch すればよいのでは?
10155:03/05/12 02:15
>>99
nullを返すって可能なんですか?
>>101
可能。
10355:03/05/12 02:17
あ、今になって
戻り値で渡すのはVectorの方が良い様な気がしてきた…

皆さん答えて頂いてるのにすみません
もうなんか、頭の中パニックです…
104デフォルトの名無しさん:03/05/12 02:17
せめて、ここで言ってる「呼び出し元がどこであるか」のコメントつけようよ・・・。
0の代わりにnullは無理だろう
>>105
そもそも戻り値が参照型なのに return 0 はコンパイル通らないから、
コンパイルエラーになる return 0 の代わりに return null しろって話。
107デフォルトの名無しさん:03/05/12 02:21
パニック パニック パニック 55が あわててる〜♪
10855:03/05/12 02:21
>>102
null返せるみたいでつ!
エラー減りました!
ただ、実行結果がどうなるかはやってみないとわかりませんが…

>>104
えと、〜メソッドに戻る とかですか?
throw new AllreadyRentalledException("ぬるぽ");
110デフォルトの名無しさん:03/05/12 02:23
今からでは酷かもしれんが
会員オブジェクト、レンタルオブジェクト、在庫オブジェクト
にしてみたら?
11155:03/05/12 02:23
>>109
ごめんなさい、意味が解らないです…スロー宣言?
僕の知識不足です…
11255:03/05/12 02:24
>>110
会員obj、レンタル品obj(ビデオとCDに分かれる)があります。
それらはそれぞれVector配列に格納されています。
113デフォルトの名無しさん:03/05/12 02:26
今からでは酷かもしれんが
マジックナンバー使うの止めて、意味のあるフィールド名で
関連するオブジェクトにもたせてみたら?
11455:03/05/12 02:27
ま…まじっくなんばーってなんですか…
今からでは酷かもしれんが
Vectorを引数に渡すんじゃなくて、
レンタル商品型を渡してみたら?
11655:03/05/12 02:29
>>115
配列ごと渡さないと検索処理とかが出来ないと思うんです。
ところでみんなはVector派?ArrayList派?
今からでは酷かもしれんが
それをAppletにしてみたら?
特に理由はないけど。
119名無しさん@Monalipse:03/05/12 02:30
>>111
kensakumの定義がこうなって、
Member kensakum(Vector vm, Vector vv, Vector vc, int nv)throws IOException,
AllreadyRentalledException{
会員がレンタル中かどうかの判定のコードがこうなって、
if(m.hon > 0){
 throw new AllreadyRentalledException("ぬるぽ");
}
呼び出し側がこうなる。
Member m;
try{
 m = kensakum(,,,); // 長いので略
} catch(AllreadyRentalledException e){
 System.out.println("この会員は既にレンタル中の品があります");
 System.out.println("返却されるまで新たにレンタルすることはできません");
 ...; // 他の例外処理
}
>>109
× allready
○ already

× rentaled (rental は名詞 rent が動詞)
この場合 have lent とかにしなきゃいかんのかな?
121デフォルトの名無しさん:03/05/12 02:32
>>117
ArrayList派。同期を意識するなら

List list = Collections.synchronizedList(new ArrayList(...));

ってやる。cloneしたかったら、

ArrayList array = new ArrayList();

というふうに直接生成する。前スレでも話題になったことです。
12255:03/05/12 02:32
>>119
ああ、そういうのもアリか…
勉強になりまつ!!
12355:03/05/12 02:33
>>117
ArrayListって普通の配列と違うんですか?

浅いコピーと深いコピーについて、だれか教えてください。
125デフォルトの名無しさん:03/05/12 02:39
>>123
List構造。Javaにはコレクションフレームワークってのがあって、
java.util.* にそれが入ってる。どんなものかというと、
データ構造を自作しないでいいように、予め、枠を作ってあるわけよ。
データ構造ってのは、TreeとかListとか、あんたが専門学校で習ったようなこと。
~~~~~~~~~~~~~
実際のところ、コレクションフレームワークを元にラップしてやるわけだが。
12655:03/05/12 02:40
すみません、続いてなんですが、
先ほど晒したソース中、
m= new ((Member)vecm.elementAt(i));
という文がエラーになるんです。
identifierがありません
( か [ がありません
という二つのエラーで引っかかってます…
12755:03/05/12 02:43
>>125
大きさって可変長ですか?

ところで何で僕が専門卒って解ったんですか…
やっぱ頭悪そうに見えるのかなぁ(´・ω・`)
>>124
浅いコピー
 int[][] array = new int[3][3];
 int[][] copy = new int[3][];
 copy[0] = array[0];
 copy[1] = array[1];
 copy[2] = array[2];
array[0][1] = 1; とかすると copy[0][1] が 1 に書き換わってしまう。

深いコピー
 int[][] array = new int[3][3];
 int[][] copy = new int[3][3];
 for(int i = 0 ; i < array.length ; i++){
  for(int j = 0 ; j < array[i].length ; j++ ){
   copy[i][j] = array[i][j];
  }
 }
array[0][1] = 1; とかしても copy[0][1] が 1 に書き換わってしまうような事は無い。
129デフォルトの名無しさん:03/05/12 02:44
>>126
マメに、行番号でも付加してあったら見る気になったけど
もう見返したくない。
m= new (Member)vecm.elementAt(i);
に直して、ソース中のカッコをつき合わせてみるべし。
>>126
new いんね
安心しる、俺も専門卒だ
>>128
それはたぶん、インスタンスが違うからでしょ?明らかじゃん。
クローン処理ではどうなの?
>>131
同じこと。
133デフォルトの名無しさん:03/05/12 02:50
>>130
意図したnewだったら可能。2行下に「 } 」が足りてねーよ。それが原因。
13455:03/05/12 02:50
>>129
すみません、確かに見にくいし、教えていただく立場なのに配慮が足りませんでしたm(__)m
やってみます。ありがとうございました(^^
135名無しさん@Monalipse:03/05/12 02:51
kensakum()が仕事しすぎだな。
会員番号を受け取って、貸し出し可能な会員かどうか調べるメソッドloginForBollow()と、
1つだけ貸し出すメソッドlendOneItem()を分けてみるといい。
ほんとは根本的なリファクタリングをしたいが、時間的に無理だろうな
今回はどこまでがネタなのか見分けるのに手間取った。と。
137名無しさん@Monalipse:03/05/12 02:54
>>126
そうそう、4大情報工学部卒の新人が書いたコードもこんなもんだ。
13855:03/05/12 02:55
>>130
ぶはぁ
new無くしたら消えた…
ありがとうございます。大卒や院卒に負けないようにがんがりまつ!!

>>133
2行下に「}」を足すと、for文が終わってしまうんです。
>>89の、ラストにfor文の閉じカッコがあります。
139デフォルトの名無しさん:03/05/12 02:58
>>138
>>133には勝ったようだね。
14055:03/05/12 03:00
>>135
メソッドを分けるというのは考えてました。
一つのメソッドに全部書くと、後々大変なので…
とりあえず、この後時間が許す限りやってみまつ!
どうもです〜
141Sparc:03/05/12 03:44
JBuilder使ってて、実行することができないですがJDKは内蔵されてる
やつじぇなきゃいけないですか?
javac使えても、Builder上では、実行できません
Borlandの本とかありませんか?
142sparagmos:03/05/12 03:57
今回はちょっと難しかったが日本語に訳してみた。

JBuilderを使っています。
コンパイルはできるのですが、実際に実行しようとするとエラーが出ます。
エラー内容を書き取るのを忘れてしまいましたが、次に書き込みする時までに準備しておきます。
後、お薦めのJBuilder用の本があれば教えてください。
143sparagmos:03/05/12 04:09
sun1 使えフリーでしょ
なんだこりゃ
145デフォルトの名無しさん:03/05/12 04:35
>>142
お前は、燃料タンクがない車に乗ってるようなもの。
検索してみろ。Java 動作原理 だけでも1000件近くヒットする。
146デフォルトの名無しさん:03/05/12 05:15
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));

バッファリングしてるだけでも、新人の一発目としてはいいんでない?
147927:03/05/12 10:31
前スレの927以降印刷プログラムが起動しないとかって
質問したものですがdat落ちしたもので見れなくなりました。
もし解答が書かれているのであれば失礼ですが教えてください。
よろしくお願いします。
すいません、ZIP圧縮プログラムのことで
質問したいのですが、
ZIP圧縮プログラムを作成して、LhasaやWinRARなどの解凍ツールを
使えば正常に解凍はできるのですが、WinXP標準搭載の解凍Wizardを
使用するとフォルダのみ生成されて中身がスッカラカンという状態になってしまうのですが
何故このような中身が空になってしまうのか分かる人いますでしょうか?
またどうやったら回避することができるのか分かる方いましたら
是非お願い致します。
149デフォルトの名無しさん:03/05/12 15:04
>>148
圧縮スレで聞いたらいい
Javaでif文や、switch文が少なくなるようなクラス設計ってどうやったいいのですか?
151148:03/05/12 15:32
>>149
圧縮スレに書こうとも思いましたがJavaプログラムで制御していること
なのでこちらに書きました
ついでに書き忘れましたがJDKは1.31です
>>150
・ポリモーフィズムを使う
 (これを使ったデザインパターンやJ2EEパターンを使う)
・例外処理を使う
153デフォルトの名無しさん:03/05/12 16:05
JAVA学習の身です。よろしくお願いします。
画像(jpg)をフルスクリーン表示させたいのですが、やり方が分かりません。
いろいろとやり方があるかとは思いますが、何か参考になるような
ご意見をお願いします。
154デフォルトの名無しさん:03/05/12 16:14
>>153
みなさんどう思いますか JNI が一番いいと私は思うのですが
155デフォルトの名無しさん:03/05/12 16:42
class A{
 public void f(){}
}

public class B
{
 static void main(String[] arg)
 {
  new A(){
   public void f(){....}
  };
 }
}

このような継承と同時にインスタンスを作ることを何と呼ぶのですか?
(簡略のためこのプログラムに意味はありません)
>>155
言い方が逆じゃないか? インスタンスを作ると同時に継承を・・・まぁいいか。

new A() されている何者かは、A を継承した"無名クラス"という。
普通 class Hogehoge extends A して継承するところを、
Hogehoge などという名前をつけないからそう言う。
157デフォルトの名無しさん:03/05/12 17:54
>>152
試しにソース書いてみて。そしたらあんたの言うこと信じる。
>>153
フルスクリーンの意味をもうちょっと具体的に。

Image.getScaledInstance() -> ImageIcon -> JLabel ->
JWindowをフルスクリーンサイズ表示で出来るぞ。
159デフォルトの名無しさん:03/05/12 18:47
>>156 無名クラスですか。ありがとうです^^
処理の順番は継承してインスタンス化、
記述の順番はインスタンス化して継承、
言い方はどちらもありそう。
160153:03/05/12 19:00
>158
お返事、ありがとうございます。
最大化という意味合いではなく、
画像のみを枠無しで表示、ようはスライドショーなんかを実行したときの
ようなイメージを作りたいと思ってます。
たぶん、158さんのおっしゃるやり方でできると思いますが・・・勉強してきます。
161デフォルトの名無しさん:03/05/12 19:13

javaとは以下の公式で成り立っている。
[java = C++に標準クラスまたは関数を追加]

162bloom:03/05/12 19:13
>>159
スプラッシュウィンドウでいけるかな?
ttp://numata.aquasky.jp/programming/java/component/SplashWindow.html
164デフォルトの名無しさん:03/05/12 22:03
javaを勉強し始めた者です。何を教材にしたらいいのか迷ってます。
JAVAドキュメント以外におすすめの参考書やホームページ教えてください。
C++のstd::stringとかstd::vectorって標準じゃないの?
>>165
標準だがスレ違い
>>166
まあそうだが、>>161+その他への質問のつもり
168デフォルトの名無しさん:03/05/12 22:16
>>164
javaとかJAVAとか書くな。「Java」と表記しろ!!!

お勧めは「あんたが本屋で一冊目に購入するもの」です。
169167:03/05/12 22:17
ちなみにJavaは知らないんで、標準クラスの意味を間違えていたらスマソ
" "
を使って、複数行にわたって書きたいときはどうすればいいのですか?
>>170
無理。

" " +
" "
みたいに + で次行に繋ぐとか。
172デフォルトの名無しさん:03/05/12 23:18
appletviewer ってCLASSPATHを参照しないのかな?
アプレットクラスが使用しているパッケージが他の場所にある場合、
どうやって指定するの?

17355:03/05/13 00:09
先日お世話になった55でつ。
無事仕上がりました!
ありがとうございました〜(^^
>>172
HTMLにcodebase書くんじゃなかったっけ。
実際にはWebブラウザ上で呼び出されるわけで、HTML上
で指定する以外は無意味だと思うが。
175デフォルトの名無しさん:03/05/13 00:31
>>174
テストはコマンドラインからappletviewer実行して行うのが普通。
>>175
それはわかってるってば。ボケですかあんた。
177172:03/05/13 00:52
・AppletMain.class アプレットクラス
・libPackage アプレットクラスがimportしているパッケージ(ディレクトリ)
これらが同じディレクトリにあれば問題ないけど、別のディレクトリに存在する場合どうするのかなと
appletviwerがCLASSPATHを参照するか、実行時にクラスパスを設定できれば良いんだけど
テスト時、最新ライブラリクラスをアプレットが存在するディレクトリにコピーするのが面倒くさい
178デフォルトの名無しさん:03/05/13 01:33
>>176
肥溜めに落ちて氏ねよ、あんた。
179デフォルトの名無しさん:03/05/13 01:34
女の子も男の子もどうぞ。
http://homepage3.nifty.com/coco-nut
180デフォルトの名無しさん:03/05/13 13:09
J2SEのjava.xml.parser.DocumentBuilderFactoryとDocumentBuilderの
関係は、AbstractFactoryパターンに当たるのですか?
181動画直リン:03/05/13 13:13
182デフォルトの名無しさん:03/05/13 13:49
横スクACT作ってみたいなあと思い立ったのですが、どの言語が適しているでしょうか。
スレタイ読めてないし ごめんなさい
184デフォルトの名無しさん:03/05/13 14:58
画像やボタンを表示させたとき、コンテンツ区画?、ようは背景が
灰色で表示されますが、これをDOS窓のような黒にしたいと思ってます。
あれが黒なのか、表示されてないだけなのかは知りませんが・・・
よろしくお願いします。
>>184
背景色を変えたい部品でsetBackground(Color.black)を呼ぶ。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/Component.html#setBackground(java.awt.Color)
>>175
つーかhtml上での動作を確認するためのシミュレータで
環境によって動作結果が違ってしまうのは変だろ。
>>182 Javaでやるなら付き合うぞ
>187
javaで2Dゲーム用のライブラリ誰か作ってない?
スプライトとかAudioとかその辺のライブラリを使いやすく
して欲しい
189184:03/05/13 18:06
JFrameの中を単一色で塗りつぶしたいと考えています。
今は,JFrameをフルスクリーン表示、そしてボタン(画像)を表示させてます。
setBackground(Color.black)を追加してるんだけどどうも・・・
よろしくお願いします。
190ICQ:3458525@hn:03/05/13 18:36
基本は絵画ポインタ( Graphics object )を絵画オブジェクトのコレクションに次々と渡していくっていう感じだ。
191JunkuTK:03/05/13 20:25
JTextFieldにリアルタイムで3桁区切り(111,111,111)で表示するには,どうすればいいか
だれか教えてくださいよろしくお願いします。
>191
javax.swing.JFormattedTextField
193JunkuTK:03/05/13 21:09
>192
もっと詳しく教えてくれませんか?
194名無しさん@Monalipse:03/05/13 21:51
>>192
へぇ、1.4からそんなのできてたんだ。
commitとかrevertとかよさげ。今度使ってみよう。
>>193
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JFormattedTextField.html
195デフォルトの名無しさん:03/05/14 00:28
GUIの処理以外で、マルチスレッドにすると効率的な
処理って何がありますか?Servletもマルチスレッドですね。
なんでもマルチスレッドにしたら
良い結果が得られるってもんじゃないですよね?
196デフォルトの名無しさん:03/05/14 00:31
メソッドの中にwhile文があるのですが、
return文を書いてあるのに"return文がありません"と出るのは何故ですか?
>>196
それだけしか書かないのに答えられる奴がいると思うのは何故ですか?
>>196
return出来ないルートがあるからだろ
199デフォルトの名無しさん:03/05/14 00:56
>>197
すみません、どうやって説明すれば良いのか…
言い方が良く解らないんでつ

>>198
何度も見かえして、必ず何らかの処理の後にreturn文を書いているし、
ループさせたい場合のみreturnを書いてないのですが。
200デフォルトの名無しさん:03/05/14 01:00
>>199
そのメソッド晒せ
言葉で説明できんのならソース貼れ。
>>195
プログレスバーとか
>>196
怪しい部分の抜粋でもいいからソース
204デフォルトの名無しさん:03/05/14 01:03
マルティスレッド?わしはシングルスレッドでいっぱいいっぱーい。わけわか。
>>202
GUI以外で
>>195
ダウンロードとか。
>>205
CUIとか
ゲームの思考ルーチン
209デフォルトの名無しさん:03/05/14 01:10
while(true){
      System.out.println("間違いありませんか? y/n");
      System.out.println("※中止する場合は0");
      ans= br.readLine();
      if(((ans).equals("y")) || ((ans).equals("y"))){
           vecv.remove(delno);
           return vecv;
      }

      if((Integer.parseInt(ans))==0){
           System.out.println("終了");
           return vecv;
      }

      if(((ans).equals("n")) || ((ans).equals("n"))){
           System.out.println("入力しなおして下さい");
           break;
      }
      else{
           System.out.println("yかn、もしくは0を入力して下さい");
      }
}
210デフォルトの名無しさん:03/05/14 01:10
↑でつ。
お願いします…
ブレイクしたあと何を返したいのかと小一時間
whileの外にreturnが無いに2000ペリカ
213動画直リン:03/05/14 01:13
214デフォルトの名無しさん:03/05/14 01:14
ブレイクしたあとは、このwhile文の外のwhile文の処理になります。
215デフォルトの名無しさん:03/05/14 01:16
>>212
↑のwhile文は、別のwhile文の入れ子になってまして、
そのループに戻りたいのでreturnは書いてません。
>>215
その別のwhileを抜けるとどうなるんだ?
全部さらしてくれ
>>215
そもそもなんで>>209のwhile文を問題にしているんだ。
>>218
while文のところにしかreturnが無いんじゃないの?
情報足りなすぎでみんな推測・憶測でしか回答できてない!
221デフォルトの名無しさん:03/05/14 01:36
while(true){
   for(*** == 0){
if(************){
break;
}
}

if(***********){
return vecv;
}
   while(true){
ここが上記に書いたwhile文
}
}
ループを抜けた後に何もreturnしてないぞ
予想通りのようです。
では解答をどうぞ
224デフォルトの名無しさん:03/05/14 01:38
while(true){
   for(*** == 0){
      if(************){
         break;
      }
   }

   if(***********){
      return vecv;
   }
   while(true){
      ここが上記に書いたwhile文
   }
}

すみません、表示がおかしかったので書き直しました。
アホな質問すみません。

System.out.println()

System.err.println()
がありますが、どういうように使い分けるといいのでしょうか?

普段は out 一つで十分だと思うのですが、どういった場面で err を使うと効果的なのですか?
whileのワケワカランネストなんか書くな。
privateメソッドで切り出せよ。breakじゃなくてreturnになるので
見通しがたちやすくなる。コード整理の初手ですぞ。
>>225
単にデフォルトが両方コンソールに向いているというだけで、
もともと違う出口。どちらか、あるいは両方の向きを変えるこ
とだって可能。片方だけファイルに落したり、別々のファイル
に落したり、別の画面に描いたり。

普通はエラー表示をerrに、通常の表示をoutに書くもんだけど、
別にどう使い分けても自由。

いまどきJavaでSystem.outだのSystem.errだの使うのは
デバッグの時だけですけど。
GUIに吐くかファイルに落すなどが普通で、コンソールを
標準の入出力インターフェイスにするのは、馬鹿か素人が
やること。
228デフォルトの名無しさん:03/05/14 02:11
>>226
ありがとうございます。参考にします!
System.errとSystem.outでは出力タイミングが少々違ったと思ったが。
C言語でのstdoutとstderrのように。
(stdoutはある程度バッファされる、stderrはバッファされない。
よって、outとerrのprintは必ずしも時系列に出力されない。)
勘違いなら失礼しました。
>>227
> GUIに吐くかファイルに落すなどが普通で、コンソールを
> 標準の入出力インターフェイスにするのは、馬鹿か素人が
> やること。
ウェーン
>>229
デフォルト(ただしどちらも端末に結びつけられている場合)でそうなっている場合が多いというだけで、
決まっているわけではないよ。それにsetvbufでいくらでも変えられるし。
232デフォルトの名無しさん:03/05/14 02:40
>>227
馬鹿か素人?自分が何も知らない頃のこと覚えてる?
そんな言い方されるとムカツクんだよ。もっと言い方があるだろうに。
> コンソールを標準の入出力インターフェイスにするのは、馬鹿か素人がやること。

Javaってそんな言語なの?
>>233
いや、そのプログラムの目的次第かと・・・。
>>234
だよね(ホッ・・)
236デフォルトの名無しさん:03/05/14 02:54
>コンソールを標準の入出力インターフェイスにする
プロでやってる香具師でこの言い回しをするやつは見たことない。趣味で初学者か?
junitのデフォルトのFormatterはコンソールに出力された標準出力とエラー出力を
分けてレポート出力してくれるので、テスト結果の資料を作るときに便利だったりする。
つーか、コンソール出力のまま普通に使うけどな、俺は。
ロギングは別API使う場合が多いし。
コンソール出力は出力結果を「目で見る」しかないよね。編集しづらくて
不便。カットアンドペーストとかをやるのも面倒なので、なるべく使わん
ようにしているが。
スクローラブルなテキストエリアにでも張っておくほうが、幾分でも気が
利いていると思うけどな。
emacsとかのテキストエディタにパイプで標準出力をリダイレクトして、加工に使う
とか、やらなかった?

>>237
そりゃJUnitがSystem.outやerrを置き換えしてるんでしょ。
それをしているなら、それは「賢いPrintWriter実装」であって、
単純なコンソールへの出力じゃないですぞ。
>「賢いPrintWriter実装」であって、
あ、そっか。話ずらしちまった。
240デフォルトの名無しさん:03/05/14 03:59
J2SEとJ2EEはどうちがうんですか?
J2SEにサーバサイドのAPIを加えたのがJ2EE。VMは同じ。
>>241
ベン図書くと重ならないけどね。

コアAPIライブラリやコンパイラ等の基本ツールはJ2SEのSDKに。
J2EEのSDKにはEE用の拡張APIライブラリやアプリケーションサーバ
のリファレンス実装などがはいってる。
>>227
DQN?
> いまどきJavaでSystem.outだのSystem.errだの使うのは
>デバッグの時だけですけど。
そんなことするのは馬鹿か素人がやること。
デバッグやデバッグ用コードの削除といった作業そのものがバグを招く元になるし
そんなところに工数をかけるな。
プロはjava.util.loggingとかLog4jとか
それらをラップするJakarta-Commons-Loggingとか使う。
> コンソールを標準の入出力インターフェイスにするのは、馬鹿か素人がやること。
おまいは、パイプ使わないのかと小一時間(略
ほかのミドルウェアとかと動かしたりするとき、標準出力に吐いたほうが動作の時系列がわかりやすかったりするんだよ!
GUIだけで食っていけるプロならSWTのまめ知識の一つでもさらしてからやれ。
246デフォルトの名無しさん:03/05/14 11:08
いま作ってるプログラムをコンパイルすると
Hoge$1.class
のように最後に$nと付いたクラスが生成されます。
これは、スレッドを使う際に無名インナークラスを使用しているからなのだと思うのですが、
これをなくすには、どうする方法がよいのでしょうか?
外部で宣言するしかないのでしょうか?

また、このせいだと思うのですが、javadocコマンドで生成したドキュメントにも
オーバーライドしたメソッドのみのあまり意味のないファイルが出来てしまいます。
無名インナークラスをjavadocコマンドで表示させないようにするには
どうしたらよいのでしょうか?

すみませんが、教えてください
247bloom:03/05/14 11:13
>>244
ちょっと興味のあるレスハッケソ
ロギングか・・・・お、おれも覚えようかなニヤリ
Eclipse + antでうまくつかえるかな・・・


>>246
>これをなくすには、どうする方法がよいのでしょうか?
無名インナークラスを使わない以外にない。

>無名インナークラスをjavadocコマンドで表示させないようにするには
無名インナークラスはjavadocには出力されないが。
250デフォルトの名無しさん:03/05/14 13:09
>>249
お答えありがとうございます。

>無名インナークラスを使わない以外にない。
無名インナークラスだからまずいのであれば、
ただのインナークラスにするにはどうしたらよいのでしょうか?
今回はスレッドを使っていて疑問に思ったのですが、
AWTなどでアクションリスナーを追加したりしたときも使いますよね。

>無名インナークラスはjavadocには出力されないが。
普通にpublicのみ指定してればそうなのですが、
privateもすべて出力しようとすると出力されるのです。
で、クラスの一覧に ***$n が並んですごくみっともなくなってしまうのです・・・・。
privateでもpackageでも無名インナークラスは出力されないんだが。
こちらのJ2SEは、SunのJ2SE-1.4.1_02、Windows。
javadocが入っているJ2SEは何?
ひょっとして標準以外のdoclet使ってる?
252250:03/05/14 15:19
>>251
ありがとうございます。
J2SEはSunの1.4.0_01のWindows版
Javadocも同じです。
カスタムDocletは使ったことないです。
Antを使ってましたが、今はEclipseのJavadocへのエクスポートで十分なので
それを使ってます。

いま気になったので、新たに無名インナークラスを持ったAppletを制作したのですが。
おっしゃるように無名インナークラスは出力されませんでした・・・・。
javadoc.xmlのオプションは何も違いないのですが・・・・。

すみませんがよろしくご指導ください。
253195:03/05/14 21:02
俺の問いに自信を持って答えられる奴は誰もいないのか?
未熟者め。
254438:03/05/14 21:09
>>253
パクるなボケ
>195=253
[JAVA]JAVAの宿題・課題は俺に任せろ v1.004[JAVA]
http://pc2.2ch.net/test/read.cgi/tech/1047538922/l50
>>224

while から抜けることが保証されていない。

抜けられるような入力しか与えないのだろうから
現実には抜けられるんだろうけど、
処理の流れ的には無限ループに入りっぱなしの可能性があります。
257195:03/05/14 22:55
>>254
俺の問いに自信を持って答えられない雑魚は>>483か?
未熟者め。
258デフォルトの名無しさん:03/05/14 22:57
エクリプスってどうしてフリーズしやすいんですか?
エクリプスとJビルダー以外で使えるJava環境ってありますか?(メモ帳はいや〜ん)
>258
うちのeclipseはフリーズしないけど。
あんたのエクリプスとは別物なんだろうな。
260デフォルトの名無しさん:03/05/14 23:39
Cで言うgetchみたいな処理を止める処理を
Javaでも実装したいんですがどうすればいいでつか?
getchは処理を止める関数ではありません
262デフォルトの名無しさん:03/05/14 23:45
>>260
Thread.sleep(100000);
263デフォルトの名無しさん:03/05/14 23:50
>>261及びその他の方
まぁなんしか今の環境ではDOS画面が出てきてもすぐに閉じられてしまうので
処理が終わった段階で実行結果が映るようにしたいんです。
映るようにするにはJavaの場合はどうすればいいですか?
264オイオイ:03/05/14 23:54
>>263
DOS画面をあらかじめ開いておけ。
265オイオイ:03/05/14 23:57
>>244
デバッグビルドのロギング文挿入削除には、AspectJを使え。
実行時の変数のインスペクションには、IDEのデバッガを使え。

266デフォルトの名無しさん:03/05/15 00:05
>>264
それではムリポ
ちなみに私はJ++を使ってます。
>>264
アホですか?
268267:03/05/15 00:14
間違い
>>266
アホですか?
>>263
起動バッチの最後にpause
main() の最後で

System.out.println("何かキー押せ");
try{
 while(System.in.availabale() <= 0)
  Thread.sleep(1000);
}catch(InterruptedException e){
}

とかすれば?
271デフォルトの名無しさん:03/05/15 00:29
スンマセン。
JAVA超初心者なんで基礎本買ってきて勉強始めてみたんです。
本の一番最初に載ってるサンプルプログラムを入力してみました。
けど画面に”ようこそ”とか何もうつらないんです。
何か設定おかしいんでしょうか?
御指摘願います。
>>271
もっと優しい本を買ってきましょう。
274sage:03/05/15 00:59
>>268
一概にそうとも言えないと思う
ウォッチとか便利だし
jdkと併用してマス
275274:03/05/15 01:00
鬱.....
JAVAが出てきません。
うまくいきません。
初心者なのでお願いします。
なんだネタか
>>276
女か?
男なら早々に去れ。
279デフォルトの名無しさん:03/05/15 01:35
ウィンドウズ限定で構わないのですが、
標準出力(DOS画面)を使って
rogueライクゲームを作れるのでしょうか?
System.inだと、Enterキー押すまでスレッドが止まってしまうし
なにかいい方法はないのでしょうか。
>>270
一秒も待たせてたらユーザは怒りだすと思うが。
read専用のThreadを割り当てて、つねにReadブロックの状態で
待機させておくべきかと。
>>279
無理じゃないか?画面クリアとか同一位置に再描画とか、どうやるんだ?
TextAreaとか使うほうが簡単だと思う。
>>244
リリース版でのデバッグログ出力ロジックの削除が目的なら、
AspectJをつかうか

public static final boolean DEBUG = true;//or false
if(DEBUG){}

をつかいませう。
ロギングAPI自身の呼び出しコストも勿体無いこともあるし。
283デフォルトの名無しさん:03/05/15 01:52
>>281
やっぱ無理かな・・・
なんかいいライブラリとかあればいいのに。
284デフォルトの名無しさん:03/05/15 01:59
>>280
すまんが、理解できないので詳細解説おながいしまつ。
仕事で同じ問題に直面してるので・・・。
>>284
System.iinのInputStreamだのSocketInputStreamだのは、readしよう
としたときに、何も入力されていなければ何か入力されるまでずっとブ
ロック状態になるのよ。で、なんか入力されたら、その入力をreadして
ブロックが解除になる。

final StringBuffer buf = new StringBuffer();
Thead th = new Thread(){
 public void run(){
  while(true){
   try{
    buf.append((char)(System.in.read()&0xFF));
    System.out.println(buf.toString());
   }
   catch(IOException e){}
  }
 }
};
th.start();

とか、やってみそ。
このままだとプログラムの終了条件がないから、とめたいときには
killしないといかんけど。

あとは、read専用スレッドと、メインの処理スレッドの同期の問題
があるので、その辺はThreadプログラミングの初歩の勉強が必要。

個人的には、こんなことをするよりイベントドリブンなフレームワーク
が完成しているAWTやSwingを使うほうが楽だと思うがな。
なんでみんなコンソール使いたがるんだ???
素直にGUIフレームワーク使うほうが簡単だよ〜。何で嫌がるの?
GUI関連のAPIライブラリを使うなんてのは、他のことに比べれば
ずっと簡単だと思うんだけどな〜。
287デフォルトの名無しさん:03/05/15 03:00
>>286
UNIXサーバにtelnetで入って作業することが多いから。
個人でチンケなことやる分にはGUI面白いけどね
288デフォルトの名無しさん:03/05/15 03:05
>>285
マルチスレッドと、別なVMプロセス起動するのとではどちらが効率的ですか?
CPU割り当て、スレッドの優先順位を考えると、複数VMプロセスで良いような。
プロセスレベルだと、パイプラインに任せられる。
>>288
OSのネイティブスレッドモデルに1対1対応です。
でもって、Linuxなら1ネイティブスレッド1プロセス。

VM分けるとVM間のデータ交換はプロセス間通信になって、
極端に効率落ちるよ。分けたほうがイイ場合は少ないかと。
>>287
おいおい、TELNETいまだに使うのか?
うちはRMIで簡単なマネージャクライアントを作るけどな。
>>288
どんな仕事ですか?
業務アプリなら、CPUバウンドの性能要件は気にしないほうが。
I/Oの効率化が殆どすべて。
292デフォルトの名無しさん:03/05/15 04:11
最近JAVAの入門書を読み終わりました。GUIやネットワークのプログラミングを
かじった程度です。
次に読むお勧めの本ってありますか?自分はGUIの知識を深めたいので
そのような本を買いたいと思っているのですが、どういうのがいいでしょうか?
出版社や、著者でもかまいませんので、ご教授ください。
>285と同じ事感じたた事があるが、cursesライブラリみたいな事がしたい
のか?
独習JAVAのP.288理解度チェックの解答に

static {
grasshoppers = new Grasshopper[NUMGRASSHOPPERS];
for(int i = 0; i < NUMGRASSHOPPERS; i++) {
grasshoppers[i] = new Grasshopper();
}
}

なるモノがあったのですが、こんなふうにstatic をブロックでくくるのは
普通に書くのと違ってなにか意味があるのでしょうか?
個人的にはミスが増えそうな気がするんですが・・。
>>279
jcursesとかいうcursesをラップしたAPIがあります。
>294のタコい質問もそうだがオマエラ本当はJavaのことあんましシラネーんじゃネーノ?
このHPでいちからやりなおせ>ALL

http://www.asahi-net.or.jp/~rc4t-ishr/Saru/
ここは初心者大歓迎スレですよ?
>>294
独習JAVAに書いてあるだろ。
>>296
スレ違い
人としての初心者はこちらではありませんよ。
300デフォルトの名無しさん:03/05/15 15:49
JSPで〜や−等が?に化けてしまうのですがどうすればいいですか?
日本語や正しく表示されています。
subject = new String(subject.getBytes("ISO_8859_1"),"JISAutoDetect");
301300:03/05/15 15:50
×日本語や
○日本語は
>>300
JISAutoDetect って SJIS JIS EUC_JP だけじゃなかったっけか?

〜 とか − は MS932 と SJIS で割り当て違うから化けて当然かも。
"JISAutoDetect"じゃなくて"Windows-31J"使ってみれ。

「Shift_JISのエイリアスの変更について」
http://www.ingrid.org/java/i18n/encoding/shift_jis.html
>>303 300を読むとわざわざコード変換入れているわけだから、
フォームでクライアントから渡された文字列をJSPで扱っている気がするぞ。
それするなら、気休めだけどフォームにaccept-charset=Windows-31J
入れたほうがいいんじゃないかな。
>>302
どのエンコーディングを使用するかは、どんなリクエスト属性で判別すれば
いいのでしょうか?
MS932を適用するには、リクエスト発信者がWindowsプラットフォームであ
ることを確認しないとだめですよね?charsetだけじゃ不十分ですよね…
306初心者:03/05/16 01:05
クラスパスってどうやって追加するのですか?

っていうのは冗談ですが、
VM起動時にVMが取得したクラスパスは
どこに格納されているのでしょうか?

Launcherの内部クラスとか
リフレクションを使ってトレースして
色々探したのですが出てきません。

結局は何がしたいかというと、
クラスパスを動的に設定したいのです。
例えばXMLに書かれているパスを参照して
ディフォルトのクラスローダでクラスを取得するためです。

一応回避策としてClassLoaderを継承したクラスローダの中で、
URLClassLoaderでクラス取得するところまでできたのですが、
パッケージ等の扱いが非常に面倒です。

是非教えていただけないでしょうか?
>>305
どのエンコーディングにするかは、JSPファイルをどのエンコーディングで書くかに
よって決める。
Windows-31Jで書いてWindows-31Jで受け取る。
または、Shift_JISで書いてShift_JISで受け取る。等。ズレると悲惨。

あと、request.setCharactorEncoding(enc)を使え。>>300のコードは大昔エンコーディングが
指定できなかった時代のもの。

あと「Windows-31J」と「Shift_JIS/EUC-JP/JIS」は別の系統のコードだから
意識して使わないと「−」や「〜」が?になってしまうことがある。
これらの相互変換(Windows31Jで入力してJISで出力する等)には注意が必要。
詳しくはぐぐれ。
308デフォルトの名無しさん:03/05/16 01:15
おまえらマルチスレッドの話題をヤレ
309初心者:03/05/16 01:17
>>308
Runnable派?Thread派?
>>307

ああ、フォームを記述するHTMLのエンコーディングがそのまま
フォームから飛んでくるリクエストに反映されるんですね。なるほど。
JSPやHTMLを書く時に、charset指定を気をつければトリアエズよし、
ですか。

この動作を保証しないようなブラウザって、あるのかな?
311末男:03/05/16 01:25
>>309
作るときの気分で。
>>306
1度ClassLoaderのインスタンスが完成してしまったら、
そのインスタンスが参照するCLASSPATHを変えるというのは
無理チャウかな。そんなことができてしまったらセキュリティホ
ールかも。

SystemClassLoaderは、初期設定のCLASSPATHを見るで固定
なので、残念ですが自作ClassLoaderを子に与えて、面倒事は
耐えるしかないだろね。
313デフォルトの名無しさん:03/05/16 01:26
>>310
IEだけ考慮したらいい。
>>308
なるべくシングルスレッドにする。
Threadをnewするのは、それをしないとどうにもならない場合だけ
にします。
1.3以前でSocketその他のブロッキングI/Oを管理するときとか。
1.4以降ではSelector使って、ワーカースレッドはCPU数+αで固定。
316初心者:03/05/16 01:29
>>312
SystemClassLoaderは私の環境(標準的なJDK1.4)では
ClassLoader.getSystemClassLoader()で
Launcher$AppClassLoaderが帰ってくるのですが、
クラスパスを保持しているようなフィールドがないですね。
あればリフレクションで書き換えてしまえるのだが。
>>316
ちゃんと読んでくれました?そんなことが出来たらセキュリティホールですよ。

318初心者:03/05/16 01:34
>>315
んーやっぱ監視用スレッドが必要なときとかね。
以前ロガーを作ったときは
メッセージ用のキューに値を格納するスレッドは
もともとのスレッドだが
そのキューを処理して出力するスレッドは
別スレッドにした。
319末男:03/05/16 01:35
>>315
>1.3以前でSocketその他のブロッキングI/Oを管理するときとか。
ここがわからないよ。僕、末男。
320初心者:03/05/16 01:41
>>316
ちなみにLauncher$AppClassLoaderのgetParent()で
Launcher$ExtClassLoaderが返ってくるのですが、
Launcher$ExtClassLoaderにprivateフィールドの
File[] dirsがあって、%java_home%/jre/lib/extを参照していて、
ためしにリフレクションで書き換えたら、
好きなところに設定できた・・・
これもセキュリティホール??
321デフォルトの名無しさん:03/05/16 01:42
クラスパス情報保持してるよ。
URLClassLoader#getURLs()メソッドでクラスパスの設定を読むのはできる。
書き換えは出来んだろ。
322初心者:03/05/16 01:45
>>321
LauncherのgetBoottrapClassPath()でも
クラスパスの取得はできたのですが、
これではSystem.property("java.class.path")とあまり変わらん・・・
>>319
いつavailableになるかわからないInputStreamは、常にreadブロックを
掛けておかないとまずいので、ストリーム一個毎にThreadを一個当て
ておくのです。
もしavailableになったら、VMがThreadをrunnableにしてくれるので、
おそらく直ぐにreadが動作してくれます。

SocketInputStream soket = ???;
byte[] buf = byte[64];
while(true){
 socket.read(buf,0,buf.length);
 //bufの内容に基づく処理
}

簡単に書くとこんなかんじ。
RECVBUFが空になったら、socket.read()の位置でThreadはwaitに入る。
RECVBUFに何か書き込まれたら、VMがThreadをrunnableにする。
の繰り返し。

Threadは1インスタンス当たり数百KBのスタックエリアを予約してしまううえに
実行時にはコンテキストスイッチのオーバーヘッドがVMの上とOSの上の
2層で発生するので、無駄に作るのはもったいない。

JDK1.4のnioでは、上みたいなことをしないでよい仕組みが導入されたので、
性能がキニナルならそれ使うのが吉。まだバグ多いみたいだけど。
>>310
ほとんどのブラウザはその動作をする。IE,Netscape,Mozilla,Opera,Safari
0.01%の糞ブラウザに対応したかったら別の方法を考える。
325初心者:03/05/16 01:47
>>321
sun.miscパッケージをもうちょっと調べてみます。。。
326デフォルトの名無しさん:03/05/16 01:47
>>320
リフレクションを用いたprivateフィールドのハックは、
セキュリティホールもヘッタクレもないね。

本当はそんなことが出来ないように、特定のクラスの
リフレクションハックについてPermissionコントロール
がVMに設定されていないといけない気がするけどね…
328初心者:03/05/16 01:51
今思いついたんだけど、
XMLからクラスパスを取得して、
そのパスを保持する別VMを起動して
そのVMにクラスを取得させて
VM間で通信っていうのはどうなんでしょう?
そういうのってできるのかな?
>>328
プロセス間通信のオーバーヘッドが気にならない仕組みなら、ね・・・
TCPベースの送受信が発生するので、激しく遅くなるのは覚悟しよう。
330デフォルトの名無しさん:03/05/16 01:54
>>328
RMI
331初心者:03/05/16 01:56
>>330
なるほどね。
RMIはやったことないのですが、勉強してみます。
>>325
sun.*パッケージのリフレクションハックは、お勧めしないよ。
JDKのバージョンごとにメソッド名やフィールド名や機能が変わるから、
JREのバージョンやプラットホームが違うだけで、動作が保証でき
なくなる。

いろいろすごいことが出来るようになってしまうので、つい遊んでしま
うけど、人に使ってもらう仕組みを作る際には、公開インターフェイス
以外は使用しないのが吉。なるべくライブラリ作成者の意思は尊重
したほうが。
333初心者:03/05/16 02:05
>>332
確かにクラスを動的生成してinvokeするようなAPIに
クラスパスを操作するようなものは見たことがないな・・・
たいていクラスパスを設定させていますね。

実はテキストファイルのテンプレートエンジンの
あまり複雑じゃないのを作っているのですが、
サーブレットコンテナみたく、独自にクラスローダを
実装するのがよさそうですね。

334kyou:03/05/16 09:29
初めまして。
importを使ってパッケージをimportしようとしたのですが、

import AA.bbは存在しません
というエラーメッセージが出てコンパイルできません。
パッケージのファイルはコンパイルするファイルと同じ階層に置いてあるのですが・・・。
ご教授お願いいたします。
335デフォルトの名無しさん:03/05/16 09:30
>>334
importではパッケージをimportできません。
クラスをimportしてください。
336デフォルトの名無しさん:03/05/16 12:55
>>334
コンパイル環境のクラスパスorディレクトリ構成がちゃんと設定されてる?
javacする前に、>javap AA.bb.UsedClass[enter]
って実行してクラス情報をダンプできるようになってないとだめだよん。
337デフォルトの名無しさん:03/05/16 14:23
ウィザードリーオンライン開発中〜
http://game3.2ch.net/mmominor/dat/1052667275.dat
このスレでサーブレットの質問しても大丈夫でしょうか?
スレがDAT落ちしたみたいで・・・。

>>338
上の方で、ServletやJSPの質問、何度も出ているわけだが。
>>334
> パッケージのファイルはコンパイルするファイルと同じ階層に置いてあるのですが・・・。
これがダメダメぽ
341デフォルトの名無しさん:03/05/17 12:46
二つのインターフェースを継承しようと思っているのですが、
そのインターフェースの両方に同じ名前、同じシグネチャのメソッドがあります。
どうやって継承したらいいですか?

C#やVB.NETやVBは簡単にできるのですが・・・。
>>341
> C#やVB.NETやVBは簡単にできるのですが・・・。
本当かね。簡単にできるということはソースコードのメンテナンス性が悪くなるということだとも
いえるがね。
スレ違いだけど。

>>341
class A implements B,C{ public m(){...}; }
interface B{ public m(); }
interface C{ public m(); }

ってやった時、C#、VBでは以下のコードはどうなるんですか?(Javaで書いちゃってるけど これをそれぞれの言語で書き直して)

A a = new A(); a.m();
B b = new A(); b.m();
C c = new A(); c.m();
>>341
昔 JavaHouse で話題になってたね。
そのメソッドが別々の動作をしなきゃいけないときは
どっちかの implement をあきらめなきゃいかんような…

検索しようと思ったけど JavaHouse 停電で落ちるって通知があったのを思い出した。
JavaHouse 月曜には復活するらしいけど
>>343
341じゃないけど。VB(否VB.NET)では

Dim a As A: Set a = New A: a.m
Dim b As B: Set b = New A: b.m
Dim c As C: Set c = New A: c.m

ちなみにコード
クラスA
Implements B
Implements C
Public Sub m()
End Sub
Private Sub B_m()
End Sub
Private Sub C_m()
End Sub

インターフェースB
Public Sub m()
End Sub

インターフェースC
Public Sub m()
End Sub

他言語はまかせた。
346デフォルトの名無しさん:03/05/17 14:14
>>342
お前話読んでないだろ。
ここでは「簡単にできること」が何を指しているのか良く考えろ。
「簡単にできること」が指している物のせいでメンテナンス性は悪くならんんだろ。
347_:03/05/17 14:14
348345:03/05/17 14:55
>>343
よく考えたらそのコードは、どのm()を使用してもclass Aのm()が呼び出されるんだな。
>>345の例はそれぞれのmが別々の動作をする場合。>>341が別々の動作をしたいように見えたので勘違いした。

もし、どのm()でも同じ物を呼び出す場合は、次のように委任する。

クラスA
Implements B: Implements C
Public Sub m(): End Sub
Private Sub B_m(): m: End Sub
Private Sub C_m(): m: End Sub

インターフェースB
Public Sub m(): End Sub
インターフェースC
Public Sub m(): End Sub

C# だとこんな感じらしい。
interface IB { void method(); }
interface IC { void method(); }
class A : IB, IC { void IB.method(){} void IC.method(){} }
A a = new A();
a.method(); //コンパイルエラー(多分)
((IB)a).method(); //IB.method()
((IC)a).method(); //IC.method()
JavaではInterfaceによって違う動作をさせることは出来ない、んじゃないの?
設計を変えるしかない。

シンプルではあるけど少し不便かもね。
Interfaceを経由しない場合は、どちらのInterfaceのメソッドか指定する
必要があるだろうけど、可能なだけC#の方が良いね。
さすがこの辺りは後発だけあって柔軟にできてる。
>>350
JavaはVBよりも後発。と言おうと思ったけどインタフェースはVB5からだから
インターフェースに関しては、VBの方が後発か。

ところでDelphiはどうなっているんだろうか?
VBの話はもういいよ。なんの価値も無い。
DelphiもJavaと同じく「区別できない」模様<同じシグネチャのinterface
ver6で確認。
>>352
VBの話はって聞かれたから答えただけだぞ。
そうやって話の腰を折る奴むかつく。
354デフォルトの名無しさん:03/05/17 15:58
>>352
Delphiの話はもういいよ。なんの価値も無い。(藁
355困った:03/05/17 16:25
Java2 Runtime Environment, Standard Edition 1.4.1_02
をダウンロードして解凍したんですが、
binフォルダの中にjavacと名の付くファイルが入ってません。
どうしてなんでしょうか?
Java2 Runtime Environmentだから。
Java2 Software Development Kit をダウンロードせい。
357343:03/05/17 16:28
>349 >345
おお、サンクス。なるほどシグネチャを変えるのか。

>344
そうそうJavaHouseではドアのopenとコネクションのopenを実装する時云々って話だった。
ま、結論としてはJavaではできませんって事だが。
358343:03/05/17 16:32
あ、これじゃ誤解招くな。同じシグネチャでもimplementsするだけならできるぞ。見分けつかんけど。
359kyou:03/05/17 17:16
>>335
>importではパッケージをimportできません。
>クラスをimportしてください。

すいません、間違えました。
import [パッケージ名].[ファイル名]です。
きちんと書かなくてごめんなさい。

>>336
>コンパイル環境のクラスパスorディレクトリ構成がちゃんと設定されてる?
>javacする前に、>javap AA.bb.UsedClass[enter]
>って実行してクラス情報をダンプできるようになってないとだめだよん。

やってみました。そうしたら、
Class 'AA.bb.UsedClass' not found
と出てしまいました。
クラスパスの設定は大丈夫なのですが、ディレクトリ構成の設定ってどうやるのでしょうか?
何度もすみませんが、教えてください。

>>340
>> パッケージのファイルはコンパイルするファイルと同じ階層に置いてあるのですが・・・。
>これがダメダメぽ

ええと、実はこのプログラムは先生が作ったのを改造して作ったものなのです。
その時の構成ではパッケージのファイルはコンパイルするファイルと同じ階層に置いてあったので、今回も大丈夫かと思って同じにしてみました。

皆さん、レスありがとうございます。
eclipseなんかでスーパーインプリメンテーションを追うと、
implementsの一番後ろに記述されてるinterfaceを示すね。
>>360
ほんとだ。
ま、「別々に実装したい」という時点でinterfaceを使うにふさわしくないわけで。
>>361
interfaceを作るときに、「別々に実装したい」ことを考えて作るわけないでしょ。
「別々に実装したい」ことを考えたらinterfaceなくなっちゃうよ。
363デフォルトの名無しさん:03/05/17 18:15
eclipse専門学校を始めました。
各種資格取得、サポートします。
就職率は120%です。
>>362
interfaceの問題じゃなくて、それを継承するクラスの問題。
365デフォルトの名無しさん:03/05/17 19:31
>>361,362

おかしいぞw
interfaceに実装の詳細を強制するのか?どんな場合も?
それとも意味が違うのか?
例えば、こうも使うよね。

interface 動物 { void 泣く(); }
class ネコ implements 動物 { public void 泣く() { System.out.println("にゃー"); }}
class いぬ implements 動物 { public void 泣く() { System.out.println("わん"); }}

これは「別々に実装」している例。
interface の多重継承で同じ名前が出てくるのであれば
別の名前に代えてやればいいんでないの。

interface B{ public m(); }
interface C{ public m(); }

interface B2 extends B{ public b_m(); }
interface C2 extends C{ public c_m(); }
class A implements B2, C2{ public b_m(){...}; public c_m(){...} }
367366:03/05/17 20:01
間違えた。366のコードは間違い。
368デフォルトの名無しさん:03/05/17 20:48
サーブレットで、serviceメソッドってどんなときにオーバーライドするの?
369デフォルトの名無しさん:03/05/17 21:03
すいませんおしえてください
java.lang.String#split()
使ってるんですが
String[] temp="abc,def".split(",");
のとき
temp.lengthは2になるんですが
String[] temp="abc.def".split(".");
のとき
temp.lengthは0になります
「.」は特別扱いなんでしょうか?
どうやればいいでしょうか?
>369
splitは正規表現だろ?

"\\."でどうだ?
>>366
メソッド名変えちゃったらInterface継承してる意味ナス
372デフォルトの名無しさん:03/05/17 21:22
すいません。教えてください。
WindowsXP(Home)でVJ++6.0使ってるんですけどコンパイル後、プログラムが実行されたら
DOS窓が閉じられてしまうんですが自動的に閉じないようにするには
どうすればいいですか?
>>372
1. DOS 窓を開く
2. VJ++ でビルド
3. DOS 窓で実行
374デフォルトの名無しさん:03/05/17 21:28
>>373
今はそれでやってるんですが非常にめんどくさいです。
VJ++上で出来ないんですか?
375デフォルトの名無しさん:03/05/17 21:36
サーブレットとJDBCについての質問です。
MySQLを使ってデータベースを作りました。jdbcドライバーも用意しました。
サーブレットから、このDBにアクセスしたいので、

Class.forName("com.mysql.jdbc.Driver").newInstance();

と記述しました。
で、ブラウザからこのサーブレットを起動すると、例外エラーになってしまいます。
デバッグのため、この行のあとに、まったく関係ない適当な処理を記述して、上の行をコメントアウトしてやると、適当な処理はしっかり動いています。
ですから、この行に問題があると思われます。

ちなみにサーブレットではなく、普通のjavaアプリからのDBアクセスは普通にできています。
どうかよろしくおねがいします。
話がちょっと戻るが>>365
interface側を問題にするんではなくて、継承してる側がふさわしくないと言いたかった。
多重継承したinterfaceでメソッド名がダブる時点で、その継承が適正かをちゃんと検討すべき。
場合によっては、interface側のメソッド名を変更する事もありだと思う。
そういうリファクタの繰り返しでシステムが良くなっていくのだと思うし。
>>374
cmd /k で実行。
>>375
せめて何のexceptionかぐらい張れよー。
379デフォルトの名無しさん:03/05/17 21:56
>>377
すいません。意味がわかりません。
VJ++で実行後、すぐにDOS上で実行結果が見れるようにしたいんですが
無理なんでしょうか?
380デフォルトの名無しさん:03/05/17 22:06
JTextFieldで、文字数をセットするとき、たとえばコンストラクタで10を引数に与えると、
横一列で10文字分になってしまいますが、
2chのレスをかきこむところのように、複数の行にまたがって入力できるようにするにはどうしたらいいんでしょうか?
さらに、その際に幅の指定もしたいです。
幅は10文字分で、10文字こえたら自動的に改行っていうかんじに。
どうすればいいんでつか?
>幅は10文字分で、10文字こえたら自動的に改行っていうかんじに。
その処理を実装する。そんな面倒じゃないでしょ。
382デフォルトの名無しさん:03/05/17 22:10
すみません、
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
でした。
>>381
切り捨てたのを連結したりまぁ、面倒ではあるよ。
>>382
クラスパス通ってないだけでは・・・。
385デフォルトの名無しさん:03/05/17 22:12
>>381
ってことは、そういう風に実装する手段は自分でやるしかないんでつか!?
あんたがいう処理を実装できる力はオレにはない・・・。
386デフォルトの名無しさん:03/05/17 22:16
>>372の内容について何方か宜しくおながい致します。
>385
JTextAreaでダメならそうするしかないだろう。
388382:03/05/17 22:28
>384
JSPではなく普通のJAVAアプリだと、アクセスできたんですが・・・。
JSPの時は何か特別なことをしなければならないんでしょうか?
もしくは、クラスパスをいじる必要があるとか・・?
389デフォルトの名無しさん:03/05/17 22:29
小数点付きの数字を
小数点第二位までで切り落とすようなことやってくれる
便利なメソッドってないですか?

自分で100倍してintにキャスト
さらにそれをdoubleにキャストして100.0で割っていますが
こんなやり方でいいんですかね?
390デフォルトの名無しさん:03/05/17 22:40
char型にint型の小さい数値を代入するとき、
int i = 1;
char c = i;
だとコンパイルできないんですがどうしたらいいですか?
お願いします。
>>390
コンパイルエラーはエラーのうちに入らん。
393デフォルトの名無しさん:03/05/17 22:50
>>390
狭い型への参照として代入する際には
キャストする必要がある。
(このときのキャストをJavaに限らず
一般的にダウンキャストと呼びます。)
つまり、次のようにすればOKです。
char c=(char) i;
394デフォルトの名無しさん:03/05/17 22:54
>>392 >>393
ありがとうございます
この場合ダウンキャストていうか?
>>395
って言うか嘘レスだろ。
397デフォルトの名無しさん:03/05/17 23:10
389 名前:デフォルトの名無しさん 投稿日:03/05/17 22:29
小数点付きの数字を
小数点第二位までで切り落とすようなことやってくれる
便利なメソッドってないですか?

自分で100倍してintにキャスト
さらにそれをdoubleにキャストして100.0で割っていますが
こんなやり方でいいんですかね?
398bloom:03/05/17 23:11
オブジェクトのSubtypeへのキャストならダウンキャストと言えるだろうけど
精度を低くする事もダウンキャストって言うかな?
わからん。
400デフォルトの名無しさん:03/05/17 23:12
サーブレットで、serviceメソッドってどんなときにオーバーライドするの?
>>388
JSPだったら特にクラスパスを通す必要はない。
/WEB-INF/libにJDBCドライバが入っているjarファイル入れておけ。
402デフォルトの名無しさん:03/05/17 23:34
>>379
今時「VJ++」なんて使ってたら笑われるわよ!
マイクロソフトなんてJava打ち切ったじゃない・・・
私は「jcpad」使ってるわ。とっても使いやすくてフリーソフトよ(~o~)//
私プロジェクトで今Cでやってるけど会社でこれのC版を使いたいわ。
でも規則で持ち込み禁止よ。
それとSEの小○。わけのわからない仕事受注してくんじゃないわよボケ!
IDEとしてはVJは最高なんだがな。
404デフォルトの名無しさん:03/05/17 23:49
>>403
メモ帳としてはViは最強なんだがなw
>>403 その通り。
>>404 その通り。
406デフォルトの名無しさん:03/05/17 23:53
NoClassDefFoundErrorが出たときそのクラスがどのjarファイルに
入ってるかを調べるのってどうするのが正しいですか
わたしはjar -tf とかで中を見て探してるんですが
これって正しいですか
>>406
おれもそうしてる。
IDEなら中まで手軽に見れるが。
408デフォルトの名無しさん:03/05/17 23:56
>>402
オレもjcpad。楽だよね。趣味でやる分には、下手な統合環境よりも
洗練されていて使いやすい。
これのC版ってことはBCpadかと思うが、そっちは一応シェアウェアだよ。
送金義務はないってことだけど。
オレは両方とも頻繁に使わせてもらってるからきとさんには感謝だな。
NoClassDefFoundErrorが出てるならそのクラスは存在しない
410デフォルトの名無しさん:03/05/18 00:03
>でも規則で持ち込み禁止よ
こんな会社あるんかい?
どれ使ってもいいんじゃないの?
411406:03/05/18 00:26
>>407
ありがとうございます。
>>389
科学計算でもない限り小数値をdoubleで扱うのはやめとけ。
java.math.BigDecimalを使うとよろし。
413デフォルトの名無しさん:03/05/18 00:49
>>412
389じゃないけど
その心は?
414デフォルトの名無しさん:03/05/18 01:01
>>413
ビッグデシマルは丸め誤差を考慮してくれるんだべ?
プッハァーー??∴∵∴∵∵∴∵∵∴∵∴
413じゃないけど412,414のいいたいことがわからない

389の要求に対してはNumberFormatあたりがよさげ。
416デフォルトの名無しさん:03/05/18 01:11
>>414
3行目じゃなくて、2行目の方だよ。
『doubleを扱うのはやめとけ』の理由。
ちなみに『プッハァーー』の後は文字化け?
417415:03/05/18 01:16
NumberFormatじゃなくDecimalFormatの方がいいか
DecimalFormatで####.##とかフォーマット指定してパースするのが一番楽かな。
ただし精度指定の無い小数点以下は四捨五入になるが。
419デフォルトの名無しさん:03/05/18 01:50
>>416
文字化けじゃない。気を狂わせてみただけだ。
420413:03/05/18 01:52
おいらはdoubleを扱わない方がいい理由で
doubleはアトミックじゃないからとか
書いてくること期待していたのに。

まぁ、やりたいこと的にはDecimalFormat使うか
一度Stringにして切り出すかな。
Intel x86的には、floatよりdoubleを使った方が、処理は高速(メモリは消費)ですか?
422382:03/05/18 03:36
>401
ありがとうございました!解決しました。
JSPもSQLも初心者なので、いろいろ勉強になりました。
423デフォルトの名無しさん:03/05/18 04:02
サーブレットで、serviceメソッドってどんなときにオーバーライドするの?
424デフォルトの名無しさん:03/05/18 04:03
サーブレットで、serviceメソッドってどんなときにオーバーライドするの??
425デフォルトの名無しさん:03/05/18 04:03
サーブレットで、serviceメソッドってどんなときにオーバーライドするの???
うっさい
427デフォルトの名無しさん:03/05/18 04:38
>>426
サーブレットで、serviceメソッドってどんなときにオーバーライドするの???
428デフォルトの名無しさん:03/05/18 04:39
>>440
サーブレットで、serviceメソッドってどんなときにオーバーライドするの???

>>428
すべてのdoXXXXに共通した処理を記述したいとき。
430デフォルトの名無しさん:03/05/18 08:18
おい、聞いてくれ
javax.swing.JTextAreaで日本語入力で「\」を2回押すと
日本語入力がキャンセルになる
と、おもったらかちゅ〜しゃの書き込みでも同じことが起こった
どうやら俺のPCの設定のようだ
ま、俺が言いたいことはjavax.swing.JTextAreaでは『\』の文字が『/』になってしまうってことだ
おぼえておけよ
>>430
糞レスでageるなヴォケ
432デフォルトの名無しさん:03/05/18 10:48
>>410
なにいってるの!
コンパイラが違えば結果が微妙に違うのよ!
JavaのThreadなんかいい例じゃない。プラットホームが違うと
タイムスライスとラウンドロビンソンのどちらで処理するか
わからないのよ!しかもそれを知るすべがないのよね!
CなんかANSI関数以外はJava以上に違いが発生するのよ。
業界標準はVC++だけどJavaは何かしら?
でもねjcpadとBCpadは外部コンパイラを使用するので関係ないと思うのですがね
>>432
何使ってもたいていはコンパイラにはSunのjavac使うんじゃないの?
IDEや開発環境が独自にコンパイラ持っているなんてほとんど無い。
Javaの業界標準はSunのjavacでしょ?
434デフォルトの名無しさん:03/05/18 11:35
Graphicsで
太い線を描画するにはどうすればよいでしょうか?
>>433 VAJとかEclipseとかIBM系のIDEは独自のコンパイラだね。
436デフォルトの名無しさん:03/05/18 12:48
>>435
イイエ
>>435
???EclipseでSun JDK使ってますが何か????
普通でしょ?????
438デフォルトの名無しさん:03/05/18 13:01
>436
EclipseってJDKのパスを設定しますけど
Jikesとnative2ascii使ってコンパイルすることも出来ますか?
> 業界標準はVC++
ワロタ。Windowsが業界標準なの?
IBMのRobocodeは独自のエディタとJikes使っていたみたいです
フロントエンドの意味もわからなくてよく開発できるな
>>402
持ち込み禁止でもこっそり持ちこんでインストールしてみれば。
ノートPC経由でもFTP経由でもHTTP経由でも適当に。

>>432
> コンパイラが違えば結果が微妙に違うのよ!
> JavaのThreadなんかいい例じゃない。プラットホームが違うと
> タイムスライスとラウンドロビンソンのどちらで処理するか
> わからないのよ!しかもそれを知るすべがないのよね!
へぇーどれどれ? ソースキボン。
本当に知るすべがないのかな。デバグで知るすべも無し?
>>432
そんなもんに依存するプログラムが糞だと気づけ
444デフォルトの名無しさん:03/05/18 14:10
>>432
> ラウンドロビンソン
warata
445デフォルトの名無しさん:03/05/18 14:14
「Java の言語仕様で保証していないこと」
1、実行中のスレッドが常に最も高い優先度を持つこと
2、一定の間隔で実行権をスイッチすること
3、特定の順序でスケジューリングされること
つまり、同時処理においてタスクがどの順序で実行されるかはプラットホーム
により異なるのよ!これがシステムに与える影響は特に速度に影響があるし
3番目の順序が違うことで結果に違いが出るのよ!詳しくは下を見て
http://www-6.ibm.com/jp/developerworks/linux/java2.html
スケジューリングの違いでデットロックが発生する場合もあるのよ!
レベルが低い人たちね!笑われるわよ!うふふ・・・
いいから synchronized 使えよ。
447デフォルトの名無しさん:03/05/18 14:22
日本の名物は過労死
田中真紀子と親密な日本ロジテム(日清系 上場企業 みずほの融資先)の
子会社せいも素(みずほの融資先)で
サービス残業させすぎの過労による自殺者が出たんだってね。
http://www.samos.co.jp
http://tmp.2ch.net/test/read.cgi/company/1046775680/l50
.      / ̄\  +.  ∧_∧アハハハ テンゴクヘイッチャウヨー  +
  イクナヨー( ´∀`)    (´∀` )  
      (つ  つ     (つ  つ■
.   +  ( ヽノ      ( ヽノ        +
>>445
どうしてもシンクロ使いたくなかったら
自分でJava用に適したラウンドロビンなどのアルゴリズムでも作れ。
速度なんかいちいち気にするな。
ラウンドロビンソンってのがレベル高いのか?
450デフォルトの名無しさん:03/05/18 14:33
だからいくら同期を採ろうとも実行速度はIBMの方が早いわよ!
プラットホームに違いがなければみんなSunしか使わないじゃない。違いがあって
それに依存して標準よりいいものができるんでしょ。
451435:03/05/18 14:34
>>436-438
VAJはSmalltalkで出来たコンパイラとSunからライセンスされたライブラリを同梱。
EclipseはJavaで出来たコンパイラを内蔵。J2SEは単に標準ライブラリを含んでいる
rt.jar等を利用するためと作成したアプリケーションを実行するときだけに必要。
だからsrc.zipとJavadocを参照する必要が無ければ、別にJ2SEではなくJREでも
かまわん。もしかして使われているコンパイラが違うことを知らずにEclipse
使っているやついそうで怖いな。
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-core-home/howto/batch%20compile/batchCompile.html
>>450
速度が違うのか、実行結果が違うのかはっきりしろ。
453デフォルトの名無しさん:03/05/18 14:39
すっかり忘れてたわ!
確かに同期を取れば結果は同じね!
負けたわ・・・
454435:03/05/18 14:40
上のURLよりこっちのほうがはっきり書いてあるか。
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/jdt-core-home/main.html
JDT Core is the Java infrastructure of the Java IDE.
It includes:
 An incremental Java compiler. Implemented as an Eclipse builder,
 it is based on a JCK1.3a compliant compiler evolved from VAJ
 compilers. In particular, it allows to run and debug code which
 still contains unresolved errors.
なんかコンパイラの話と同期みたいなVMの動作の話がごちゃまぜに
なってねーか。コンパイラに関してはSunのやつでさえJACKSの互換性
テストを全てパスしてないし、気にするやつは気にするけどな。
456デフォルトの名無しさん:03/05/18 14:45
>>448
でもサーブレットは速度命よ。
質問です。

タイムスライス:実行中のプロセスを一定期間単位強制的に切り替え、マルチタスク、マルチスレッドを実現する方法。
ラウンドロビン:そうやって細切れになったプロセスの破片をどういう順番で実行するかというスケジュールの話。

だと覚えてたんですが、ここではこれらが同列に語られています。私の認識間違ってますか?
タイムス ライス と ラウン ドロビン ってなに?
>>457
なんかKABAちゃんみたいのが勘違いしてるだけだから気にするな
>>451
> EclipseはJavaで出来たコンパイラを内蔵
へ?そうなん?知らなかった。
JREでもEclipseはコンパイルできるのか。。。。。
>JREでもEclipseはコンパイルできるのか。。。。。

出来ないだろう。Eclipseをコンパイルするには何らかのJavacがいる。
混ぜっ返すな。
>Eclipseをコンパイルする
463435:03/05/18 15:07
>>461 その「何らかのJavac」を内蔵しているんだよ。Windows版の
例でいえば、デフォルトではJ2SEのインストール時に
c:\Program files\java 以下に同時にインストールされたJREを
認識して、そこのrt.jarを参照はするけれども、c:\j2sdk_1.4.x以下
は一切参照しない。つーか、JAVA_HOMEとかPATHとか一切設定して
いなくてもコンパイルが通る。疑うなら、Eclipseをインストールして、
c:\j2sdk_1.4.xを削除してから立ち上げてコンパイルしてごらん。
464435:03/05/18 15:08
>>462 ごめん、そういう意味か...
465413:03/05/18 15:16
>>445
まぁ、通常のJava言語仕様的には
スケジューリングの仕様規定は
されていないし、2年前のLinuxでは
yieldメソッドも聞かなかったしな。
タイムスライスが200mecで。
要するに、スケジュール依存するような
プログラミングをするなってことだね。

通常のJavaじゃなきゃ何があるんだって
ツッコミが入りそうなので答えとくと
それはリアルタイムJavaだな。
スケジューリングの仕様も規定されている。
くだらない質問かもしれんが
JAVAで乱数出すのってどうしたらいいの?
手持ちの参考書に載ってないもので・・・
>>458
OSの専門書でも読んで勉強して来い。
以上
469デフォルトの名無しさん:03/05/18 16:31
Math.random()じゃねえの?
import java.util.*;



Random rand = new Random();
int ransu1 = rand.nextInt();
double ransu2 = rand.nextDouble();
ransu
>>466
StrictMath.random()
ケンサクシロ!
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>466
>>456
どうせ速度余裕なサーバなんだろ。
不要になったオブジェクトにはnullをポイントするとか
数式のの折り畳みとか別のところで速度稼げよ。
速度にとらわれるあまりバグふやすわけにもいかないだろ。
logger用スレッド作ってログ吐きは全部そっちに回すとかな。
476デフォルトの名無しさん:03/05/18 16:50
>>475
そんなことしねーよ
>>438
全部UTF-8にしてしまえばnative2ascii使わなくても済みそうな気がするが
そうもいかないのか?

昔javadocがUTF-8に完全対応していないときはantでnative2asciiでascii用ソース作ってから
Javadoc生成した覚えがある。
>>476
できねぇの間違いだろ (ギャハ
479デフォルトの名無しさん:03/05/18 17:02
わざわざ
「logger用スレッド作って」
っていうのが引っかかる
ログなんてどれもパフォーマンスに影響しないように
設計されてんのに
おまえの設計はわざわざ負荷かけてまでログに命かけるんか?
480デフォルトの名無しさん:03/05/18 17:14
>>479
>ログなんてどれもパフォーマンスに影響しないように
>設計されてんのに
影響が最小限で押えられるように。だろ。
I/Oって知ってる?
>>480
ハッカー向け雑誌だな。
482デフォルトの名無しさん:03/05/18 17:19
>>481
すまんが意味不明
>>481
ワラタ。懐かしいな。工学なんとかという出版社がだしていたヤシだろ
>>481
9年前にその雑誌読んだことあるけど
ハッカー向けとは思えなかったな。
JavaもCも知らなかったM$-DOS時代の当時PC初心者向けの漏れにはうってつけだった。
>>474 ここで
>不要になったオブジェクトにはnullをポイントするとか
に言及するのが意味不明なんだがどういう意味?
保持していた変数がスコープを外れてオブジェクトがどこからも
参照されなくなればgc対象になるし、スタティックに保持されて
いたとしても、そもそもメモリリークの原因になるからプログラマが
気をつけるのはいうまでもなくあたりまえ。つーかそもそも速度
と関係するのか? GCがかかるとそこでVMがもたつくから、GCの
タイミング制御したいって話かなという気もするが、null入れても
GCの対象になるってだけでそれでタイミングを制御できるわけじゃないしな。
>>485
メモリを増やす−>速度が上がる

とか言うPC初心者用の常識を引きずっている人がいるって感じなのだろうか?
487デフォルトの名無しさん:03/05/18 17:49
>>486
間違ってるわけじゃーない。
ガベコレ時のパフォーマンスが多少良くなるだろ。
Iアプリとかなら参照にnull入れてから明示的にガベコレ起動させたりするけど

サーバの話か
>ガベコレ時のパフォーマンスが多少良くなるだろ。

なんで?
ぬるぽはいいけどガベゴレはムカツク
491デフォルトの名無しさん:03/05/18 17:56
>明示的にガベコレ起動
コード晒せ
>>491
System.gcってとこかいな?
>>485
一つのメソッド内で多重ループを何千回もかわすことはないのか?
そういうとき、アルゴリズムによってはnull代入するだろ。
変わりに同じ変数を再利用とか。
>>485
悪いが説明するのが面倒くさいから「Javaの鉄則」を読んでくれ、
でいいだろ。
>>493
>一つのメソッド内で多重ループを何千回もかわすことはないのか?

アルゴリズムを見直す。
って言うかそのループ内で参照が有効なメモリがどんどん累積してる方がおかしい。

for(int i = 0;i < 5;i++)
{
Vector v = new Vector();//前回のインスタンスへの参照は新しいインスタンスによって上書きされる。


}
496デフォルトの名無しさん:03/05/18 18:05
>>492
それで起動したつもりかい? プ
>>496
いや、俺関係ないぞ?
498デフォルトの名無しさん:03/05/18 18:06
【未経験】職人気質なITスクール【就職転職】

ITスクールを開催しています。
スクール形式は1dayパックで3時間だけです。
授業料金は安く、即、実践へ活用できます!

http://homepage3.nifty.com/it3s/index.htm
>>496
メモリがしょぼい環境なら多分動くだろ
保証なんて何もないが
>>495
参照は切れるけど、GC されるまではメモリに残ってるでしょ。
null 代入じゃなくて、オブジェクトの生成をいかに少なくするかだと思う。
>>493
>変わりに同じ変数を再利用とか。
多重ループの中にオブジェクトを保持することが問題になるくらい
長いスコープが存在するのなら、そのソースはリファクタリング対象。
502501:03/05/18 18:12
訂正
>多重ループの中にオブジェクトを保持することが問題になるくらい

>多重ループの中にオブジェクトを保持しつづけることが問題になるくらい
Labelオブジェクトに表示させるテキストを2行に渡って表示
させることってできる?

Label label=new Label();
label.setText("AAABBB");

をAAABBBでなく、
AAA
BBB
と表示したいです。

過去スレに<BR>を使えばできるようなことも書いてあったの
ですが、AAA<BR>BBBと表示されてうまくいきません。
詳しい方、教えてくださいませ。
>>503
HTML解釈するのは JLabel だったような。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Label.html
> ラベルは、単一行の読み取り専用テキストを表示します。
って事なので無理では?
505デフォルトの名無しさん:03/05/18 18:50
J2SEをやってきましたが、どうやら企業ではJ2EEがもてはやされているようです。
J2EEを学びたいのですが、J2SEとどこが違うのでしょうか?
J2EEってAPIが増えただけですか?
J2EEってどこから入った方がいいですか?どなたかご教授ください。
よろしくお願いします。
>>505
JSP/ServletやXMLのAPIがふえてる。
とりあえず、サンプルプロジェクト(Java pet storeとか)で
お試し実践してみて、そこからJBossや他のAPサーバに置き換えてみるとか、
色々ためしてみたら?
507デフォルトの名無しさん:03/05/18 19:25
ソースの整形ツールってあります?
>>503
JLabel でない Label でできるかわからないが
文字列の先頭に <html> をつけるようにせよ。
509デフォルトの名無しさん:03/05/18 19:41
>>506
J2SE + Tomcat とどう違うんですか?JNDIとか??
位置付けがよくわからんのです。
>>509
J2SE+TomcatですでにJ2EEの一部。
そのほかにJ2EEに含まれるAPIはEJBとかJCAとかJTAとかJMSとか。
JNDIはTomcatでも使えるよ。
>>507
Eclipse [ソース]-[フォーマット]
IntelliJ IDEA [Tools]-[Reformat Code]

ところで、Eclipse って複数ファイルまとめて整形できる?
すごく単純なJavaアプレットを作ったのですが、
(Hello!と表示するだけ)
JDKを入れてないPCでは起動せず灰色のままです。
JDKの入ってないPCで他所のJavaアプレットは起動できるのに、
自分のコンパイルしたものは全部ダメです。

コンパイラが最新だと、互換性を失うような場合
ってあります?
> コンパイラが最新だと、互換性を失うような場合
> ってあります?
ある。
>>512 よそで動かすってのはどういう状態?
アプレットをWebにおいてインターネット経由でロードしたんだったら、
Java Pluginとhtmlコンバータのマニュアルを読んで適切な
htmlファイルを書けば必要なものは全部自動的にインストールして
アプレットを実行してくれるよ。
515503:03/05/18 21:48
>>504,508
ありがとう。やっぱりダメみたいです。
516412:03/05/19 00:26
ゆうべは>>412のカキコのあとすぐ寝ちまったんで
反応できなくてすまんかった。

>>413
とりあえず、「浮動小数点 丸め誤差 桁落ち 情報落ち」とかで
ググってみそ。
あと、以下のコードを実際に実行してみるとか。
--
double d = 0.0;
for(int i = 0; i < 100; i++)
 d += 0.01;
System.out.println(d - 1.0);
--
doubleでは0.01って数も正確には表現できないのに、
>>389
> 小数点第二位までで切り落とす
ってのがいかにナンセンスなことか、わかるでしょ。
正確に表現する必要がないから小数点第二位までで切り落とすのでは
100倍するとか、文字列のまま持っておくとか。
519412:03/05/19 01:23
>>517
では次のコードを試してみるよろし。
--
double d = 1.0;
for(int i = 0; i < 50; i++)
 d += 0.001;
System.out.println(d);
double d2 = (double)((int)(d * 100))/100.0;
System.out.println(d2);
--
>>389の言う通りの実装だが、どういう結果になりますか?
520412:03/05/19 01:45
しかし、浮動小数点演算の落し穴なんて常識だと思ってたんだが、
理解してた(っぽい)のは>>414だけだって、どういうこと?

もしかして、世の中には金利計算をdoubleでやってるプログラムがあって、
知らず知らずのうちに漏れの定期預金の利息も減らされてたりするのか?!
521512:03/05/19 01:50
>>514さん
とくに難しいことはしてません。拡張とかは一切なしです。
Helloと表示されるだけのソースを拾ってきて、
J2SDK1.4.1_02でコンパイルして、Webにアプ。
JDKの入ってるマシンからは普通に見られます。

JDKの入っていない別のPC(Win98)で見ると
アプレットが表示されない状態です。
ソースを拾ってきたサイトのclassファイルを代わりにアプすると、
表示されることからJVMは起動していて、ソースやHTMLではなく、
コンパイラのverが問題ではないかと調べているところです。。。
>>520
もと銀行システムの人が言ってた。
利息って結構間違ってること多いって。
自分で計算した人が来て修正すること有るらしいよ。
523デフォルトの名無しさん:03/05/19 01:55
>>522
マジで・・・ガクガクブルブル
俺なんて1年で数百万は損してるな・・・
と、いえるような収入が欲しいでつ。

安月給Javaプログラマのぼやきでした。。。

>>521
JDK 1.4 を使っているなら、コンパイル時に -target 1.1 を付けなきゃだめ。
つうかなんのためにデシマル型や通貨型があるのか考えろと
526osはxp:03/05/19 02:26
スターメニューにあるコマンドプロンプトからはjavacできるのに、
system32にあるcmd.exeだとjavacできません。
pathはちゃんと通してあります。

xyzzyからC-x cでプロンプトを立ち上げるとsystem32にあるcmd.exe
のほうがたちあがるのでjavacできないです。

なにか解決法を〜
527526:03/05/19 02:32
というか スタートメニューのコマンドプロンプトもsystem32のcmd.exeも同じ
だと思うんですけど、できないです。たすけてください
プロパティをチェキ
529526:03/05/19 02:44
プロぱてぃをチェキしてみたんですが、
スタートメニューのコマンドプロンプトのリンク先はちゃんとsystem32のcmd.exe・・・
つまりどっちからやっても同じ結果になるはずなのに。。。だめなんです。

で、スタートメニューのプロンプトからsetで環境変数pathを見てみると
ちゃんと通ってます。
で、system32のcmd.exeでsetで見てみると、何故か通ってないのです。

どうすればいいかわかんないです。。。。。。。。。。。。。。。。。。。。
cdしてないとかいうオチではないだろうな
   このレスを見た人間は十三日以内に死にます。
      ※あなたに訪れる死を回避する方法が一つだけあります。
     それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です
    /\___/ヽ   ヽ
   /    ::::::::::::::::\ つ
  . |  ,,-‐‐   ‐‐-、 .:::| わ
  |  、_(゜)_,:  _(゜)_, :::|ぁぁ
.   |    ::<      .::|あぁ
   \  /( [三] )ヽ ::/ああ
   /`ー‐--‐‐―´\ぁあ  

532526:03/05/19 02:58
>>530
ちゃんとしてますですよ


で、今試しにsystem32からのcmd.exeの環境変数pathをコンソールから
設定してみて、javacしてみたら一応できたんです。でも、もう一度
立ち上げ直してjavacするとまたできなくなっていて環境変数ももどってるんです;-)
>>532
普通にシステムのプロパティから環境変数設定してみたら
534526:03/05/19 03:16
>>533
それも最初にやってだめだったんです。。。。


んで、今再起動したらなんかできちゃいました(;´Д`)
XPなら再起動はいらないと思ってたんで。。。。
どうやらsystem32のcmd.exeからで、設定を反映させるには再起動
がほしいみたいです。。いやーすんません。単純なミスで。。。

答えてくれた方 ありがdございました
535デフォルトの名無しさん:03/05/19 03:16
MEってなんすか?
536514:03/05/19 08:06
>>521 直接的な問題がhtmlにあるって話をしてるんじゃない。
JDKのバージョン違いが問題になるときにね、htmlのほうで必要
なJREのバージョンを指定する書き方をするとブラウザが勝手に
sunのサイトからJREをダウンロードしてPCにインストールして
くれるんだよ。Flashのプラグインみたいにね。例えば、Sunの
JREのダウンロードページにはJRE1.4が必要なアプレットが埋め
込んであって、1.4がない環境ではページをブラウザで読み込ん
だときに自動的に1.4がインストールされる。ためしに
http://java.sun.com/getjava/ja/
から、そのJDKをインストールしていないPCでみてごらん。
537デフォルトの名無しさん:03/05/19 09:27
>>536
無関係な上に板違いくさいんですがその書き方ってのを教えてください
でも実際に使ったら観覧者にかなりうざがられそうでつね。
>>537
Java Plug-in の話題だから板違いではないと思うが、
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/using_tags.html
実際には J2SE 付属の html コンバータが勝手に吐き出してくれるけどね。
つか 514 も Java Plug-in のマニュアルってかいてるやん。
javax.print で気に喰わないことがあります。
例えば B4横に用紙設定したいんですが、

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.LANDSCAPE);
aset.add(MediaSize.ISO.B4); //だめ
aset.add(MediaSize.getMediaSizeForName(MediaSizeName.ISO_B4)); //だめ

どうしても ClassCastException が出てきます。
別の方法をめっけたんですが(手許にソース無し、かつ忘れてしまいまった)、
なんでこれでダメなのか理解に苦しみます うぐぐ
540デフォルトの名無しさん:03/05/19 11:46
Servletに関して質問です。

現在のサーバのServlet内から、別のサーバへPOSTすることは可能なのでしょうか。

sendredirectがPOST不可なのはなんとなくわかりました。
GETで値を送ってもいいのですが、URL欄にそのまま送信内容が表示されてしまうので、
なんとかPOSTで行いたいと考えています。

ドキュメントを読んでいて、次に目星をつけたのが
context.getRequestDispatcher().forward()
ですが、「http://」から指定すると、エラーが発生しました。
同一サーバー内であれば、飛ばすことができたのですが。

例えば、getRequestDispatcher("http://www.yahoo.co.jp")と指定しようにも、
ドキュメントにも、「/」で指定するようにとかかれていることですし、やはり無理でしょうかね。

環境は、以下の通りです。
JAVA SDK 1.4.1_02
Tomcat 4.1.24

ご教授をお願いいたします。
541デフォルトの名無しさん:03/05/19 11:50
>>540
fukanou
>>549 PrintRequestAttributeSet.add(Attribute attribute)の引数
attributeはAttributeではなくそのサブインターフェースの
PrintRequestAttributeでなくてはならないから。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/print/attribute/PrintRequestAttributeSet.html#add(javax.print.attribute.Attribute)
543542:03/05/19 12:31
#切れちゃった。
に、ちゃんと説明が書いてある。とりあえずこれ読む。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jps/spec/jpsTitle.fm.html
544540:03/05/19 13:05
>>541
あう、そうなんですか。
悲しいっす。

こうなったら、HTMLをはき出して、その中にPOSTデータを埋め込み、
onLoadで目的のサーバへ飛ばすしかないですねえ。

どうもありがとうございました。
545デフォルトの名無しさん:03/05/19 13:57
J2EEパターンの「Value Object」ですが、
いつからその呼称が「Transfer Object」に変わったのですか?
またその理由は何なのでしょうか?

http://java.sun.com/blueprints/patterns/TransferObject.html
Sunのサイトにも「以前はValue Objectと呼ばれていた」としか
説明がありません。名称変更に関する説明をしているソース
(Webサイトとかメーリングリストとか)をご存知ないでしょうか?
546デフォルトの名無しさん:03/05/19 14:05
64bitのLinuxがワッショイ状態ですが、どなたか
J2SE Itanium Developer Release v 1.4.1の
Linux版を試したor試そうとしているという方
良かったら感想などをお教えください
547デフォルトの名無しさん:03/05/19 18:12
Xdocletについて質問です。
Xdocletを使ってJavaのソースファイルを走査させると、
次のようなLexicalエラーというのが無数に生じてしまいます。
ソースはShift_JISで書かれているのですが、それが原因なのでしょうか。
Lexical error: xjavadoc.TokenMgrError: Lexical error at line 39, column 4. Encountered: "\u00af" (175), after : ""
548デフォルトの名無しさん:03/05/19 19:52
とあるclassのmainメソッドをJSPから動かしたいんですが
どうしたらいいんでしょうか?
>>548 もしかして >>147 だったりしないよね。
550デフォルトの名無しさん:03/05/19 20:01
だったりしないわけでもない
どっちやねん。
552549:03/05/19 20:43
とりあえず答えとくか。別にmainっていっても単なる
public static voidなメソッドにすぎないからそのまま
よんじゃえばいい。ただ注意しないといけないのは、
世の中のJavaアプリケーションにはメモリとかウィンドウの
リソースの後始末をいいかげんにして、System.exit()して
お茶を濁すものがある。こういうのを対策なしでよぶと
VMが終了してしまう。SecurityManagerを使うことでVMの
終了自体はキャンセルできるが、もとの後始末が出来てない
ことにはかわりがない。
で、どうして 147 かどうか聞いたかというと、彼の場合、まさにこの
問題が生じていて、それを自分で認識できていなかったから。
553デフォルトの名無しさん:03/05/19 21:11
>>552
回答ありがとうございます。
ただ、初心者なものでできれば具体的なコードを
教えていただけたら嬉しいのですが^^;

答えていただいたのに気を悪くしたらすみません。
554549:03/05/19 21:17
552=147かどうかで、その具体的なコードの内容も変わるから保留。
つーか、ほんと呼ぶだけなんだけどなぜ試さないの?
他に面倒な条件あるの? たとえば、プログラム上で動的に呼び出すクラスが
かわるからリフレクション使わなきゃ駄目とか。
555デフォルトの名無しさん:03/05/19 21:21
javamailでメールを送信するコードを書いてるんですが、
テストで会社のサーバを使用したんですが、
とくに何の認証もなしに送れちゃいました。
他のプロバのサーバでも同じように送れちゃうようなもんなのですか?
どれかどうぞ。
・host.allow で smtp 通す相手を制限
・POP before SMTP
・SMTP-AUTH
557デフォルトの名無しさん:03/05/19 21:28
やっぱりたいがいはそうやってセキュリティ関係を考慮しますよね?
ためしにプライベートのプロバでも試したら
送るだけ遅れちゃったんす。

ちょっと話がスレタイとそれちゃって申し訳ないのですが、
そういうのってセキュリティ的にはどうなのでしょうか?
なにか利点があるから、認証無しにおくれちゃうのでしょうか?

javamailを使用する上でも知っておきたいので
ぜひとも教えていただきたいです。
JavaでHalfLife2は作れますか?
>>557
迷惑メール対策でオープンリレー摘発へ
http://www.zdnet.co.jp/news/0305/16/nebt_05.html
でもよめ。ただそのテストの内容にもよる。
会社のサーバに、会社のアドレス宛てのメールを投げれば
当然受け取るしな。プライベートのプロバイダだったら
契約ユーザからのメールは大抵受け取る。
560デフォルトの名無しさん:03/05/19 21:42
>559
どうもありがとうございます。

プライベートでは二つのプロバを使ってるのですが、
片方のプロバイダにつないで、もう片方のプロバイダの送信サーバだけを
指定して送ったら送れました。
そのときのメールはのあて先は転送メアドでっす。

会社のサーバにも
自宅からプライベートのプロバにつないで
送信サーバだけ指定して送信したら
おくれちゃったので、これでいいのかなって
ついつい考え込んでしまいました。

つまり、これってSPAM業者がわが社のサーバ(プライベートのプロバイダも)を
経由してメールが送信できるってことなのかな〜
って思ったのですが、的外れなのでしょうか?
素の SMTP ならその可能性あり。
セキュリティ板で訊いてみ。
http://pc.2ch.net/sec/
562デフォルトの名無しさん:03/05/19 21:52
>561
どうもありがとうございます!
そちらの板で勉強してまいります!
563549:03/05/19 21:52
>>554
>>つーか、ほんと呼ぶだけなんだけどなぜ試さないの?
えっと呼び方がほんとわからないんですが・・
beansとして普通に (id名).main(); として読み込むと
main(java.lang.String[]) は () に適用できません。
とエラーがでてきてしまいますし・・

未だ問題か解決できなくて申し訳ないです。
564548:03/05/19 21:57
↑すいません、548でした。
565名無しさん@Monalipse:03/05/19 22:05
>>563
void main()とvoid main(String[])は別物。(id名).main(null)で呼んでみそ。
>>548
そりゃエラーでるでしょ。mainの定義は
public static void main(String[])なんだから、
それに応じて引数いれないと。
567512:03/05/19 22:11
ありがとうございます。
>524
-target1.1でコンパイルしたところ
無事にアプレットが表示されました。

>514
HTMLジェネレータで作られたHTML使うと
プラグイン落とし始めるんですね。
新たに拡張された機能とか使う場合は
こっちが必要なんですね。
プラグインを落としてでも表示したくなるものを
いつか作ってみたいです。
568デフォルトの名無しさん:03/05/19 22:48
JSPをインターネットエクスプローラで開こうとしたら
解決策が分かりません。CLATHPATHかなあ。
単純なJSPだと起動するみたいだけど複数のクラスとかいろんなもん絡んでくると
こんな感じのエラーが出てきます。うーん。

サーブレットコンテナはTOMCAT4.1
JAVASDK1.4
テキストどおり打ってみただけなんだけどなあ。
(だからミスったとき分からんとも言う。)
生成されたサーブレットのエラーです:
[javac] Since fork is true, ignoring compiler setting.
[javac] Compiling 1 source file
[javac] Since fork is true, ignoring compiler setting.
[javac] C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\jsp\L1033_jsp.java:7: '.' がありません。
[javac] import MyCounter;
[javac] ^
[javac] C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\jsp\L1033_jsp.java:44: シンボルを解決できません。
[javac] シンボル: クラス MyCounter
[javac] 場所 : org.apache.jsp.L1033_jsp の クラス
[javac] MyCounter counter = null;
[javac] ^
[javac] C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\jsp\L1033_jsp.java:46: シンボルを解決できません。
[javac] シンボル: クラス MyCounter
[javac] 場所 : org.apache.jsp.L1033_jsp の クラス
[javac] new MyCounter(
[javac] ^
[javac] エラー 3 個
>>568
そのJSPのソースをコピペしてみろ
570デフォルトの名無しさん:03/05/19 23:03
>>569
JSPソースコードです。続きはまた載せます。
<%@ page import="MyCounter"
contentType="text/html; charset=Shift_JIS"%>
<%
MyCounter counter = null;
counter =
new MyCounter(
pageContext.getServletContext().getRealPath("/")
+ "count.dat");
int intCounter = 0;
try {
intCounter = Integer.parseInt(counter.getCount());
}catch(Exception ex){
out.println("Error:" + ex);
}
String str1;
String str10;
String str100;
571デフォルトの名無しさん:03/05/19 23:05
>>570の続き
if (intCounter < 10) {
str1= "<img src=../images/"
+ String.valueOf(intCounter) + ".gif>";
str10 = "<img src=../images/0.gif>";
str100 = "<img src=../images/0.gif>";

}else if (intCounter < 100){
String strTemp = String.valueOf(intCounter);

str1 = "<img src=../images/"
+ strTemp.substring(1) + ".gif>";
str10 = "<img src=../images/"
+ strTemp.substring(0,1) + ".gif>";
str100 = "<img src=../images/0.gif>";
}else {
String strTemp = String.valueOf(intCounter);

str1 = "<img src=../images/"
+ strTemp.substring(2) + ".gif>";
str10 = "<img src=../images/"
+ strTemp.substring(1,2) + ".gif>";
str100 = "<img src=../images/"
+ strTemp.substring(0,1) + ".gif>";
}
572デフォルトの名無しさん:03/05/19 23:07
>>571の続き(最後です。)
マイカウンタークラスはコンバイル済み
数字のイメージ画像ともどもテキスト指定の場所に入れてます。
intCounter++;
counter.setCount(intCounter);
%>
<html>
<head>
<title>JSP - Image Counter</title>
</head>
<body>
<center>
<br><br>JSP - Image Counter<hr size=0><br><br>

ようこそMY HOMEPAGEへ!<br><br>
<%= str100 + str10 + str1 %>
<br><br>
(このカウンタの値はファイルに保存されています)
</center>
</body>
</html>
573デフォルトの名無しさん:03/05/19 23:19
>>570ですが、
エラーの上2行をコピーし損ねていました。

org.apache.jasper.JasperException: JSPのクラスをコンパイルできません

JSPファイル: null の中の行: -1でエラーが発生しました

574517:03/05/19 23:23
>>519,520
浮動小数点数の丸め誤差について知らないと思われるのは心外。
今回の件については丸め誤差の話はどう考えても的外れな指摘だと思うが。
575名無しさん@Monalipse:03/05/19 23:35
>>568
MyCounter.classが、クラスパスの通ったディレクトリにコピーされていないに100カノッサ。
このエラーメッセージはMyCounterが見えないときにでる物だ。手元で確認済み。
>'.' がありません。
>import MyCounter;

>数字のイメージ画像ともどもテキスト指定の場所に入れてます。
実際にはなんてディレクトリに入れたの?
576デフォルトの名無しさん:03/05/19 23:46
>>575
マイカウンタークラスは
C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes
数字のクラスは
C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\images
となってます。
ちなみに環境変数は
TOMCAT_HOME
C:\Program Files\Apache Group\Tomcat 4.1
クラスパス
C:\Program Files\Apache Group\Tomcat 4.1\common\lib\servlet.jar
にしてます。
577デフォルトの名無しさん:03/05/19 23:48
576の訂正
数字のクラス→数字の画像イメージ
578名無しさん@Monalipse:03/05/19 23:54
>>576
ちなみに、ServletからMyCounterは見える?
こっちも見えないとするとweb.xmlの中身を疑いたくなる。
579デフォルトの名無しさん:03/05/19 23:54
またまたすいません。環境変数の追加です。
以下の設定も済みです。
CATALINA_HOME
C:\Program Files\Apache Group\Tomcat 4.1
580デフォルトの名無しさん:03/05/20 00:00
>>578
げげげ、見えてないです。
かなりやばいんでしょうか。
>>580 とりあえず、テキストの名前なに?
582デフォルトの名無しさん:03/05/20 00:05
>>581
翔泳社の「10日で覚えるJAVA実践教室」ってヤツです。
583名無しさん@Monalipse:03/05/20 00:08
>>580
C:\Program Files\Apache Group\Tomcat 4.1\conf\server.xmlに
なんて書いた?ちゃんとコンテクストを追加したか?例えばこんな風に。
<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true"/>
584583:03/05/20 00:10
んあぁ、Servletが動いたのならコンテクストが追加されていない可能性は無いか。
583は無視してもいいかも。
585デフォルトの名無しさん:03/05/20 00:17
>>583
例文そのまんまの文章ありますね。
というより、べつにディレクトリ作成などしてないので
初期状態のままといったほうがいいかもしれませんが。
全部ファイルはテキストどおり置いてるだけなんで。
すまん、おれ初心者だからよくわからんのだけど、デフォルト
パッケージのMyCounterクラスを使うのにimport "MyCounter";
ってするものなの? MyCounterクラスがMyCounterパッケージに
属しててそれをimport "MyCounter.*";って指定して
つかうのならわかるんだけど。
587583:03/05/20 00:29
>>586
ソレダ!!(゚∀゚)
588デフォルトの名無しさん:03/05/20 00:31
>>586
importはあくまでクラスのインポートだからそれでいいとおもうんですが・・。
(初心者もいいとこなんで確証まったくなし)
あと、パッケージ式に書き換えてコンバイルしても結果は同じでした。
マジ分からん。
いっそトムキャットから何から再インストールしてみようかって感じです。
はあ。
このばあい<% page import="MyCounter" %>は不要ということか。
590586:03/05/20 00:36
>>589 いや、もとのMyCounter.javaの内容がわからないから
断言できないけど、パッケージ構成がMyCounter.MyCounterに
なってて、それをインポートするのにimport "Mycounter.*"って
したいのをimport "MyCounter"にしちゃっている気がする。
だからjavacのパーサーがMyCounterの次にくるはずの「.」がないから
もんくいってんじゃないのかなあなんて。でもそれでもディレクトリ
構成へんだよね。classes/のしたにMyCounter.classおくのって。
>>590 なるほど。
ところでMyCounterをfoo.MyCounterにして(ソースの最初にpackage foo;と宣言)、
MyCounter.classをWEB-INF\classes\fooにコピーしたらうまく動いた。
MyCounter.javaの中身は違うが、クラス名の解決に関しては解決していると思う。
そういや、JSPのパッケージってorg.apache.jspになるんだよね。
これじゃデフォルトパッケージのクラスは読めなくて当然か。
592デフォルトの名無しさん:03/05/20 00:54
>>590>>591
やったー!!問題が解決しました。
デフォルトパッケージじゃやっぱりだめなんですね。
これで本格的にJSPできるぞー。
の前にもう一回クラスやパッケージを勉強しなおしたがいいかな。
とにかくこれで先に勧めます。
ありがとうございました!!
いやいや、デフォルトパッケージのクラスは読めるぞ
というか読めないわけ無いだろ
>>593
jdk1.4 以降、デフォルトパッケージの扱いが変わったため
問題となる状況に遭遇した記憶がある。
具体的にどういうものだったかは忘れたけど。
595デフォルトの名無しさん:03/05/20 01:22
>>594
> jdk1.4 以降、デフォルトパッケージの扱いが変わったため
すまんが、詳しく教えてはくれまいか。
596デフォルトの名無しさん:03/05/20 02:02
よく、ICQや、WinAmpのスキンみたいに、円形や多角形の自由な、ウインドウというのでしょうか?、アプリがあるのですが、
あれをJAVAでする場合、Swingか、SWTで作っていくのでしょうか?

SWTでウインドウは出せたのですが、四角いウインドウしか出せないので、なんとか、MAC風な角の取れたウインドウや
WinAmpのスキンみたいな、色々な形で表現してみたいです。

このページ見てみろとかでも良いので、足がかりになるアドバイスがいただければ幸いです。
お願いいたします

597デフォルトの名無しさん:03/05/20 02:21
>>596
あれはだな、アレだ。JPEGをペッタンコしてるんだ。
>>595
jdk1.4だとimportにクラス名だけ書いても、「.」が無いと言ってコンパイルエラーになる。
599デフォルトの名無しさん:03/05/20 02:29
>>598
俺はimportするとき、完全修飾名しか使わないが。
1.4以降で、デフォルトパッケージをimportするときはどうすんの?
600594:03/05/20 02:35
601594:03/05/20 02:37
>>599
1.4 以降はデフォルトパッケージは import *できない* ようだ
Java で User-Agent を設定するにはどのクラス&メソッドを使えばいいのですか?
604563:03/05/20 10:09
>>565
main(null)でいけましたー。
しかしエラーはなくなったものの
mainメソッドに書いてあるフォームが表示されてこないのはなんでだろー?
ところで549さんはいなくなりました?
>>604
ちなみにそのmainメソッドでやってることは何?出力内容は?出力先は?
System.out.println()とか呼んで、何で表示されないんだなんて悩んでないよね?
ひょっとしてクライアントに Frame 出したいんじゃなかろうか
607デフォルトの名無しさん:03/05/20 12:49
   このレスを見た人間は十三日以内に死にます。
      ※あなたに訪れる死を回避する方法が一つだけあります。
     それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です
    /\___/ヽ   ヽ
   /    ::::::::::::::::\ つ
  . |  ,,-‐‐   ‐‐-、 .:::| わ
  |  、_(゜)_,:  _(゜)_, :::|ぁぁ
.   |    ::<      .::|あぁ
   \  /( [三] )ヽ ::/ああ
   /`ー‐--‐‐―´\ぁあ  
っつか、サービスで起動しているサーバからFrame表示させて、
いったい誰に入力させる気なんだろう…
>>608 EclipseはヘルプシステムにTomcatつかってて
ローカルからアクセスさせるから、そういうとこだと用途
ありそうではある。
>>596
WindowかJWindowを使ってタイトルバーのないウィンドウを作って
やっています。
611デフォルトの名無しさん:03/05/20 15:36
Stringから、文字数を取得する方法ありますか?
おしえてえろいひと。
>>611
ある
613611:03/05/20 15:51
>>612
ありがとうございます。
614611:03/05/20 15:52
あと、文字コードの取得もできるのでしょうか?
>>611
APIドキュメントぐらい読んでから質問しろ
616デフォルトの名無しさん:03/05/20 16:06
JavaというよりもDBに関する質問かもしれませんが

DBへのConnectionなのですが
SELECTを複数回繰り返す場合には

con.setAutoCommit(false);

for (int i = 0; i < xxx; i++) {
rs = stmt.executeQuery();
・・・
}

con.commit();

と言う感じでトランザクション内でするべきでしょうか?
パフォーマンス的にはこちらの方が高速なのですが
何か別な問題を引き起こしたりしないでしょうか。
617デフォルトの名無しさん:03/05/20 16:28
JDK 1.4 で行われている、インスタンスの存在期間を new/old に分けて
段階的に GC を行う方法って何て呼ばれてます?
618デフォルトの名無しさん:03/05/20 16:54
>>617
JDK1.4じゃなくHotSpotだろ
619U ◆CZtFsGiu0c :03/05/20 17:16
>>617
JDKじゃなくてJVMだと思うけど、「世代別コピー方式」かな。
J#ってどうなんすか?
>>620
どうって何が?
質問なんですが、
gc()メソッドを使うことにより明示的にガベージコレクションを動作させることは出来ますか?
623604:03/05/20 19:30
>>605 そのとおりFrame等をだしたいんです。
>>604 
実際はmainメソッドで印刷処理をしたいんです。
出力内容はダイアログボックス(印刷プロパティ)をだしたいのですが
とりあえず簡単なFrameでもと思っています。
出力先はクライアントです。
Webから印刷させたいんです。
可能なんでしょうか?
624デフォルトの名無しさん:03/05/20 19:43
>>616
トランザクションログのサイズを見積もっておけ。
その上で、適度にコミットしないとログが増えてアポーンになる。
625596:03/05/20 19:59
>>597
ありがとうございます!!!!
626597:03/05/20 20:18
>>625
今頃気づくとは・・。
>>626
今の今までせっせこやってた姿を思い浮かべます
628デフォルトの名無しさん:03/05/20 21:42
質問ですが、
com.sun.tools.javac.v8.*
について詳しく解説しているサイトはないでしょうか?
629549:03/05/20 21:54
>>548 = 623
あなたが最終的に動かそうとしているクラスの
mainメソッドには一番最後に
  // job.printDialog()で起動したダイアログが残っていて
  // プログラムが終了しないので, ここで明示的に終了さ
  // せる。
  System.exit(0);
ってあるでしょ。それは552に書いた、直接呼び出したら
はまるJavaアプリケーションなんだよ。現に前スレでこの
mainメソッドの名前をprintとリネームして呼び出したら
進行ダイアログが出っぱなしになったってあなた自分で
書いてたじゃん。まあ、自分でFrame出してひとつずつ
押さえていきたいってのは理解の仕方としては一見着実
なのかもしれないけど、最終的にうまくいかないことが
わかっているのなら、mainメソッドを呼び出すって方針は
見直したほうがいいんじゃないかなと思う。

>出力先はクライアントです。
>Webから印刷させたいんです。

このままだと印刷ダイアログはサーバー側にしか開かないから
クライアントではどうしようもないよ。設計、見直したら?
>>628
com.sun.tools.javac.Mainをつかいたいってだけじゃなくて、
中身まで知りたいの?
631デフォルトの名無しさん:03/05/20 22:17
>>630
はい。
色々試しているのですが、なかなかうまく動かないです。。。
APIドキュメントがあればなーって思うのですが。

com.sun.tools.javac.Mainだとコンパイルエラーとかは
標準エラー出力にはかれるだけなんですよね。
今は、標準エラー出力を
ByteArrayOutputStreamに差し替えて
エラーの内容を取得しているのですが、
エラーの内容を解析するのはつらくて・・・
>>631 なるほど。でも中身まで解説したところはきいたことはありませんね。
ソース公開しているとこだと、jikesとかEclipseのコンパイラがあるけど、
jikesはC++か... Eclipseだと、
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java?rev=HEAD&content-type=text/vnd.viewcvs-markup
がコマンドラインから使うコンパイラのMainクラスで、エラーの
受け取りはgetBatchRequestor()のなかでやっているね。
こういうのを利用させてもらうってのはどうですか? オープンソースだし。
633デフォルトの名無しさん:03/05/20 23:43
>>632
Eclipseのコンパイラもありですね。
さっき調べたのですが、
GATE Java2HTML(?)っていうのがあって、
それにv8のクラスを使用したコードが載っていたので
現在解析中です。

v8のJavaCompilerクラスの引数にLogっていうのがあったので、
結構詳細なエラーが取得できそうです。
Javaを勉強中です。
質問なんですが、イテレータはどういうときに使うのでしょうか。
というか、イテレータを使うメリットなどを教えて欲しいのですが

List list = new ArrayList();
list.add("ぬ");
list.add("る");
list.add("ぽ");

// (1)
Iterator it = list.iterator();
while(it.hasNext()){
  System.out.print((String)it.next());
}

// (2)
for(int i=0; i<list.size(); i++) {
  System.out.print((String)list.get(i));
}
たとえば、これだと(1)(2)は同じ結果になりますが、あえてIteratorをimportしてまで使う意義はどこにあるのでしょうか。
お願いします。
635634:03/05/21 00:26
また、Iterator を使った方がよい場面、
Iterator を使う典型的な場面などあれば
(どういったときに使えばよいのか)
お願いします。
>>634
1万とか大量のデータをArrayListに放り込んで、
時間を計測してみな。
>>635
あえてIteratorを利用するメリットとしてはListやSetなどのCollectionのサブインターフェースで統一してオブジェクトを取り扱うことが出来るということがあげられます。
デメリットとしてはパフォーマンスが悪いことがあげられます。
特にSetを使うことがなければListを利用して、forループを書くのが良いと思います。
638634:03/05/21 00:37
>>636
> >>634
> 1万とか大量のデータをArrayListに放り込んで、
> 時間を計測してみな。
実はイテレータの方が遅かったのですが
639デフォルトの名無しさん:03/05/21 00:40
Iteratorにした方がカッコイイじゃん
640デフォルトの名無しさん:03/05/21 00:40
>>638
ArrayList でなく LinkedList でやってみたら >>636氏の言った意味がわかるっしょ。
641634:03/05/21 00:42
>>637
ありがとうございます。
というかそもそもSet自体どういうときに使うのやらよくわかりませんので
添字で回してがんがります
>>640
> 1万とか大量のデータをArrayListに放り込んで、
って書いてあるしなあ。
Iterator使うとLinkedListがArrayListに近い速さになるのは知ってるけどさ
>>636
件数多いとIterator使うよりfor文で回したほうがはやいよ…

>>634
単純に、size(),get(int i)で要素を走査(操作)できるClassより、
Iteratorを使って操作できるClassのほうが多いってのがある。

たとえば、上記の要素をすべて出力部分をサブルーチン化する場合、
引数にListを受け取るよりもIterator(Collection)を受け取ったほうが、
引数に適用できるObjectの種類が増える。
644633:03/05/21 00:47
>>632
com.sun.tools.javac.v8.*でコンパイルが成功しました。
ただ、コンパイラのインスタンスを生成するための
コンストラクタの引数が複数あって、
いまいち訳が分りません。
645デフォルトの名無しさん:03/05/21 00:49
>>642
ていうか LinkedList で get(i) 使うと O(n^2)になるのだ。
RandomAccessをimplementしてるかどうかの違いですかね。
Iterator使えばどのコレクションでも同じようなパフォーマンスは得られると。
647646:03/05/21 00:53
あ、順次アクセスに関してです。
>>645
それを知っての書き込みのつもりだったのだが
素直に配列使えよ
別に素直じゃねーが
可変長だったらList使うほうが素直だろ
652テフォルトの名無しさん:03/05/21 02:08
JDKを入れかえたんですが、コマンドプロンプトでjavaを実行すると
むかしのjava.exeを実行しようとしてローディングエラーと出ます。
環境変数の設定は変えました。

javacは実行できます。新しいjavaexeのディレクトリで実行すると
実行できます。
どうやらPATHのむかしの設定をコマンドが記憶しているようなんですが
どうすればいいでしょうか?
助けてください。OSはWin2000です。
>>652 まずどこのjava.exeが参照されているか確認する。
もしそれがc:\winnt\system32の下にあるjava.exeだと
まずレジストリに記録されているJREのインストール
ディレクトリを参照してこれが見つからない/バージョンが違う
と、上述のエラーが出る。JREのインストールディレクトリ
から起動されたjava.exeの場合はレジストリを見た後で、
さらに自分のとこのディレクトリから辿ってdllを探して
くるから文句はいわない。
でもJ2SEごと再インストールしちゃったほうが
早いかなという気もしないでもない。
>>653
ありがとうございます。
再インストールしてみます。
655デフォルトの名無しさん:03/05/21 02:34
>>634
Iteratorで実装することの最大のメリット?
それはパフォーマンスではないな。

おいらが思うIterator最大のメリットは
数え上げに対する責任の一切を依頼できることだな。

通常Iteratorを取得して
next()を実行していけばすべてのデータを走査するよね。
で、配列やListの場合もIteratorを使わなくてもこれは
簡単に実現できる。しかもRandomAccessなListなら
for (int i=0,n=list.size(); i<n; i++) ...
とした方が高速だね。

じゃあ、あるリストがあって特定の要素だけイテレート
して処理したい場合はどうする?

 for文の中でその特定の要素の場合だけ処理するようにする?
  それがいくつもあったら大変だな。
 じゃぁ、ユーティリティクラス作ってstaticメソッドにしておく?
  最悪だな。無駄なクラスができるわけだ。独立性も落ちるな。
 Listがその特定のパターンの取得方法を提供する?
  その特定パターンの走査を提供するのがIteratorの役目だな。

そんなときに配列でもなく、Listでもなく、Iteratorにしておけば
イテレーションに対する責任はそのIteratorにあるため、
イテレーションに対するコードの修正が発生してもそのIteratorを
修正するだけでよい。
このため、利用者側では特別な理由がある場合を除いて
イテレーションに対するコードに影響がなくて済む。
>>655
解説、ありがとうございました。
657デフォルトの名無しさん:03/05/21 02:47
コレクションの中身のオブジェクトがどういう構造になってようが、
その順次アクセス方法はイテレータだけが知ってればいい。
javaの既存のapiが例だとパフォーマンスの話に行きがちだけど、
基本的なプログラミング手法として便利だよ。
658デフォルトの名無しさん:03/05/21 02:57
>>657
イテレータを返すようなメソッドを作ったらいいのですか?
イテレータをimplementsするんですか?どう実装したらいいのかと。
>>653
system32の下にあるjava.exeを消去してから
再インストールしたら実行できました。
本当にありがとうございました。
660655:03/05/21 03:04
ちなみに注意点ももちろんある。
質問者さんが初心者っぽいので補足しておくよ。
当然ながら、通常、イテレーション中にそのListの
要素を追加・削除などをするのは危険ですぞ。
危険というのはどうなるかわからないという意味。
イテレーションの動作はそれぞれのIteratorの
実装依存だからね。

もしも、イテレーションしながらListの要素を
追加・削除したいのであれば、2つの方法がある。
1つはListのディープコピーをとり、イテレーションは
そのコピーに対して行い、追加・削除はもとのListに
対して行う。
もう一つはIteratorがイテレーション中に要素が
追加・削除されることに対応する実装にすること。

まぁ、2番目の方法ではListとの共同作業になるだろうけどね。
Listは自分が生成したIteratorの状態を見て、
適切にそのItereatorの状態を変化させるみたいな。

#ディープコピーっていうのは実体ごとコピーすること。
>>660
横レスですが、

>#ディープコピーっていうのは実体ごとコピーすること。

ってのは誤解を生むかも。

君の言っているディープコピーってのは

Listのインスタンスを作成→
元Listが所有するObject参照のコピーを、コピー先Listに挿入

だと思うけど、それは"ディープコピー"ではないな。

ディープコピーは

Listのインスタンスを作成→
元Listが所有するObject参照が参照する先のObjectの実体コピーを作成→
作成したコピーオブジェクトの参照をコピー先Listに挿入

じゃないかな。
1番目の作業に"ディープコピー"をする必要はないですよ。
662デフォルトの名無しさん:03/05/21 06:29
IBMの2チャン的書き方
「旧M」最高だね?
今日から使えよお前ら
私が考えました
私が考えました
こちら、ちょい美人系 女プログラマー
26歳、髪の毛チョイ薄
ハヤクキテ
スグキテ
663604:03/05/21 10:40
>>549さんありがとうございます。
では今までのことをまとめてみると結局mainメソッドのSystem.exit(0); 
の処理が原因であり、これを直したらうまくいくということで
よろしいんでしょうか?
また、mainメソッドの呼び出しが駄目なのであれば
どのようにしてこのclassを実行させればいいのでしょうか?
TomcatをSYSTEMで起動してるからといってクライアントに
ダイアログを出せないわけではないんですよね?
1つのFrameでもクライアントにだせるソース・方法なんか教えて頂ければ
誠に嬉しく思うのですが甘いですかね?

>>663
Windows XPでAとBの二人が「ユーザーの切り替え」してるとする。
ユーザAが実行したプログラムのウィンドウがユーザBの画面に表示できると本当に思ってるのか?

この場合、ユーザAがSYSTEMで、ユーザBが普段使ってるアカウントだ。

解決方法は、普段利用するときにSYSTEMでログインする事。
そんな方法知らないし、興味もないけどな。

Javaの問題じゃないからWindowsの勉強でもしてくれ
>>663
取りあえず >>629 の最後の2行読め
666549:03/05/21 12:34
>>604
甘いとかそういう話じゃなくてできないものはできない。
X Window System みたいにネットワーク等価なウィンドウシステム
じゃないから。
まあ、Frameとか技術的な要件に落としこむ前に、どういう目的で
ユーザがどうつかうかっていう仕様を書き込んだほうがはやいんじゃない
ですか? 誰が何をどこのプリンタに、誰がどこで指定した印刷設定で、
出力するかとか、あなた一度もまとめて書いたことないでしょう。
前スレの流れも自分で全然フォローしてないし。
それなりに質問の体裁を整えれば、親切でひまな人が相手してくれるかも
しれないよ。

>>664
まえにダイアログは開いたっていっているから、アカウントは
なんとかなってんじゃないですかね。どういう環境かは不思議だけど。
前にサービスじゃなくてログインユーザでTomcatを動かしたら、
Runtime.execできたとかいってたから、このときもログインした
ユーザでやってたのかな?よくわからん。
667549:03/05/21 12:51
ごめん、なんかXならリモートで使えるかのような
書き方しちゃったけど、もちろん標準APIの範囲内ではX使ってても
当然無理。alphaworksでAWTをネットワーク経由で使うライブラリ
があったような気もするけど。
学校の課題がわからないんですがいい本ありませんか?
課題は図を描くのが主です。
JAVAの本を読んで勉強中です。質問なんですが、

1つのコマンドライン引数を受け取り、この文字列をint型の値に変換してと
あるのですが、
int i = Integer.valueOf(args[0]).intValue();とある場合と
int i = Integer.parseInt(args[0]);とあるときがあるのですが、
この2つの違いがわかりません、
上は現在のオブジェクトの値をint型で返す。
下は基数10の数値として変換してint型で返す。
と言葉ではこうあるのですが、理解できません。
どうかこの初心者にもわかるように教えてください。
お願いします。
670デフォルトの名無しさん:03/05/21 19:13
コマンドプロンプトからJAVAコマンドでプログラム起動しようとするとこんなエラーが。なんですかね。
Exception in thread "main" java.lang.NoClassDefFoundError: クラス名
どんな簡単なクラス(ハローワールドとか)入れてもこれだし、
コンバイル自体はフツーにできるし。
ただ見れないだけ。
パスの設定とかも見直してみたし、別に設定が間違っているようにも見えませんが。
クラスパスの設定がおかしいってことなんですかね。
>>670
日本語しゃべれ。
67239:03/05/21 19:29
>>669
説明のままかと

上は
Integer I = Integer.valueOf(args[0]);
int i = I.intValue();
と同じ

一度args[0]の値を持つInteger型のオブジェクトを作った後、
そのオブジェクトの持つint型の値を取得している。

下はargs[0]を直接解釈してint型の値を取得している。

Integer.valueOf(args[0])は内部で
Integer.parseInt(args[0])を呼んでたりするし、
普通は下を使う。

>>670
>クラスパスの設定がおかしいってことなんですかね。
おかしいんだと思う。
.
入ってる?
673デフォルトの名無しさん:03/05/21 19:36
>>672
直りました。いつのまにかクラスパスの設定を変更してました。
ここ一ヶ月いろいろパソコンをいじってたのでいつ何で変更したか分かりませんが、とりあえずよかった。
>>669
覚えやすい方を使ってくれという程度かと。
valueOf は Float や String などにもあるので、
色々覚えるのが面倒な人向き?

>>670
>>1-11 の FAQ 読め。
675デフォルトの名無しさん:03/05/21 19:41
Log4jを使うときって、
Category cat = Category.getInstance(HelloWorld.class.getName());
といった書き方をするけど、
この、
HelloWorld.class.getName()
の、
class
って、getClass().getName()
と同じこと?

どーも釈然としないのです。
APIにも乗ってないし。
676デフォルトの名無しさん:03/05/21 19:49
イテレータの話が出た流れで・・・。
世のjavaプログラマたちはデザインパターンをどのぐらい意識してるんだろう?
template、strategy、bridge、facadeあたりは意識しなくても自然とそうなってた
って事が多いと思うんだけど。
677デフォルトの名無しさん:03/05/21 20:08
>>676
デザインパターンという言葉を知らない人が多いのが現状。
殆どの香具師はデキル香具師が実装したTemplateのサブクラスを(Sample実装に従って)実装。
ほんの一握りのデキル香具師と、力仕事要因の頭数揃えたらJavaの開発は楽だね。
エラー処理もなにもかも責任転嫁できるし。
678デフォルトの名無しさん:03/05/21 20:08
○要員
×要因
○補充要員
×要因
BGM 星条旗よ永遠なれ
>675

log4jではなく、Java一般の話だが、

HelloWorld.class
は、Class.forName("xxx.yyy.HelloWorld")
のシンタックスシュガーです。
681デフォルトの名無しさん:03/05/21 21:08
おい、おまいらに頼みがある。
漏れの息子がやってるサイトなんだが、
http://laguz.gaiax.com/home/vb_net
誰かここの常連になってやってくれ。
そして、ここでプログラミングについて語って欲しい。
頼む。お願いだ。( ´∀`)
682名無し:03/05/21 21:21
>>681
荒らし依頼請けたまわりました
683デフォルトの名無しさん:03/05/21 22:28
>682
それが狙いだったりする罠

683 :名無し :03/05/21 22:37
   >>682
   それぐらい猿でもわかるつーの

683 :デフォルトの名無しさん :03/05/21 23:37
   >683は猿以下
684669:03/05/21 23:48
ご返答ありがとうございます。
とにかく今は使いやすい方を使うということで、
難しく考えず、先へと勉強して行きます。
685デフォルトの名無しさん:03/05/22 00:03
tomcatでJSPの実験をしたいので、xxx.jspというファイルを書き、c:\jspというフォルダに保存しました。
そして、tomcatのインストールフォルダ\conf\server.xmlの<HOST>の中に、
<Context path="/jsp" docBase="C:\jsp" debug="0" reloadable="true"/>
と記述し、tomcatをrestartさせました。
その後,localhost:8080/jsp/xxx.jsp を表示させましたが、xxx.jspはavailable、みたいなエラーが出で、うまく表示させることができませんでした。
なお、xxx.jspファイルと同じ場所においたHTMLファイルを指定すると、ちゃんと表示するし、
ディフォルトのサンプルなどが入っているフォルダ(\webapps)内にxxx.jspをおいて、server.xmlを変更すると、ちゃんと表示されました。
なぜ、c:\jspにおいたときは上手くいかなかったのでしょうか?

よろしくおねがいします。
>>685
JSPから生成されるclassファイル(servlet)はどこに置けば良いんだ?
>>685
docBase="C:/jsp"にしてみて。
688675:03/05/22 00:22
>680
ありがとうございます。
初めて聞く言葉でした。

しかし、.classというのはメソッドにあたる思うのですが、
APIに載ってないので、どうもすっきりしないですね。
同じ意味だよってことはわかったのですが。
>classというのはメソッドにあたる
メソッドではない。言語仕様。
forとかifとかwhileとか配列の要素数を表す.lengthとかもAPIドキュメントには
載ってないでしょ?
オブジェクトのAPIではないのだよ。
685と同じ環境を再現したつもりだが、普通に動くな…。
おれは685ではないんだが
>>686
Contextの属性workDirを指定しない場合は、デフォルトのディレクトリ
($TOMCAT_HOME\workなど)の下に作られるはず。
この場合だと、work\Standalone\localhost\jspのようなディレクトリの
下にできるんじゃない?
手元の環境(Tomcat-4.1.18)ではそうなった。

>>689
そういやint[].classなんて書けるんだよね。
この間リフレクションAPI使ってて初めて書いた。こんな感じで。
Method method = Foo.class.getDeclaredMethod("bar", new Class[]{int[].class});
691660:03/05/22 01:19
>>661
ディープコピーの認識は間違いないな。
・・・そうだね。
あの流れならディープコピーではなく
シャローコピーでいいね。
別件でディフェンシブコピーの説明してたせいで
混ざっちゃったのかもw

ご指摘ありがとう。
692デフォルトの名無しさん:03/05/22 03:14
>>689
配列自体はオブジェクトで、配列のlengthは
public final なフィールドだろ。

>>690
.classは型名の後につけることでその型に関連した
クラスリテラルを取得することができる。
つまり、int[]も型名の1つだからOK。
もちろん配列ではなくても取得できる。
int.classとかね。
当然、int[].classとint.classで取得できる
クラスリテラルは異なるけど。
ただし、同一のものならどう参照しても同じものが
取得できる。たとえば、
java.lang.String.classと指定しても
String.classと指定しても
同じクラスリテラルが取得できる。
>>692
ちなみに配列自体はオブジェクトだが
lengthというフィールドは持っていない。

Object[] obj = new Object[xxx];
だったら、
obj.lengthが
Array.getLength(obj)に
コンパイラによって置き換えられるのでは?

694デフォルトの名無しさん:03/05/22 08:30
どうしてもtest.javaコンパイルされませんが。。
誰かおしえてくれ!

D:\Program Files\jdk1.3.1_08\bin>javac test.java
エラー: test.java を読み込めません。
エラー 1 個

test.java ソースはこれです。

mport java.io.*;
class Test{
public static void main(String args[]){
System.out.println("Hello Java World.");
}
}
>694
test.java を読み込めません。 ってあるじゃん
D:\Program Files\jdk1.3.1_08\binにtest.javaがないからだよ
>>694
javac.exeはファイル名の大文字と小文字を区別する。
ファイル名の大文字小文字はクラス名の大文字小文字と関連する。

以上
>>696
class Testがpublicじゃないからそれは当たらない気がする。
まあ流儀としては正しいのだが
>>696
>>697 が正しい。
publicではないクラスはファイル名とクラス名が一致している必要はない
699696:03/05/22 13:10
>>697-698
脊髄反射してます他
>>700

結局こういう古典的な話に行き着くんだよね。
>>700

http://hwb.ecc.u-tokyo.ac.jp/topics/spreadsheet/login.html
Windowsのログイン画面にSunロゴがあるんでつが。。。
703デフォルトの名無しさん:03/05/22 13:34
オブジェクト指向全般に関する質問なんですが、
Personクラスがあって、アドレスを登録するset_address()メソッドを持ってるとします。
1000人の個人情報を管理するためにPersonのインスタンスを1000個生成したとき
ひとつひとつのインスタンスがset_address()メソッドを持ってることが無駄な気がします。
個人情報管理クラスをつくってその中でset_address()を定義したほうがいいのでしょうか?
>>703
なんだそれ?コンテナのこと?

ArrayList<Person> persons
HashMap<String, Person> idHash

public void setAddress(String id, String address) {
 idHash.get( id ).setAddress( address );
}
705デフォルトの名無しさん:03/05/22 13:49
>>703
メソッドのコピーがインスタンスの数だけ作られるのでは、と思っているのなら
そんな心配は御無用です。メソッド(関数)の実体は一つだけです。
>>697
>>698
mainクラスがあるから、本来publicにしなきゃいけないのでは?
>>703

>1000人の個人情報を管理するためにPersonのインスタンスを1000個生成したとき
>ひとつひとつのインスタンスがset_address()メソッドを持ってることが無駄な気がします。

そうですね。
ところで、そんな設計になってると思ってるんですか?
すみません。教えてください。

Windows2000Serverにjdk1.2をインストールし、(インストール先はデフォルトのまま)
環境変数Pathを
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\jdk1.2\bin;
のように設定しました。

「C:\J」に置いた「Kantan.java」をコンパイルしようと
C:\J>javac Kantan.java
と入力するのですが
何事もなかったかのように
C:\J>
に戻ってしまいます。

何が悪いのでしょうか・・・
OSの再起動は行いました。
>>708
コンパイルに失敗していません。
710708:03/05/22 15:58
>>709

そう思って「C:\J」を見てみても
クラスファイルができてないんです・・・
>>708
java って打ったら
Usage: java [-options] class [args...]
とか出る?
712708:03/05/22 16:12
>>711
はい、でます。
C:\>java -version
だと
java version "1.2"
Classic VM (build JDK-1.2-V, native threads)
と表示されます。

なので環境変数は通っているような気がするのですが
なぜかダメなんです。

昔、別のPCでやった時にはちゃんと作成されたのに・・・
どれが一番綺麗な書き方ですか?

1) if (! key.equals("")) { ... }
2) if (!key.equals("")) { ... }
3) if (!(key.equals(""))) { ... }
4) if (! key.equals("") ) { ... }
5) if ( !key.equals("") ) { ... }

ちなみに普段は 2) なのですが・・・最近 1) がいいかなーと
if ( key.length() > 0 ){....}
>>712
Kantan.javaがなにもしないプログラムだから
>>712
実はCドライブがCDドライブだから…
>>714
あ、なるほど・・・
でもすいません、"" のしたのが間違いでした
主旨は、 ! 演算子と boolean を返すメソッドの組み合わせのとき、です
718708:03/05/22 16:55
>>715
public class Kantan {
public static void main(String[] args) {
System.out.println("意外に\"Java\"って簡単だ。");
System.out.println("意外に\"Java\"って簡単だ。");
System.out.println("意外に\"Java\"って簡単だ。");
}
}
Kantan.javaの内容です。ある書籍の練習問題です。

>>716
大丈夫ですよ〜。
Cがシステムドライブ
Dがデータ用ドライブ(NTFS)
Eがデータ用ドライブ(FAT32)
FがCDドライブです。
>>718
Kantan.java を内容なしで作った後、
何かの理由で Kantan.java.txt を編集してしまっている
コンパイルしているのは Kantan.java なので何も出力されない
どうよ
そういう時は、
javac Kantan.java -verbose
だだだ。
721デフォルトの名無しさん:03/05/22 17:52
desimalformatで123を0123と表示する方法を教えてください。
>>721
String str = (new DecimalFormat("0000")).format(123);
>>713
俺は 5)

if ( key.equals("") == false ) { ... }
なんてのもたまに見るな…
724708:03/05/22 18:00
>>719
エディタは秀丸を使用していて
初回保存時にjavaファイルを選択して保存しました。
拡張子を確認しましたがOKです。
C:\Jをdirしても
.
..
Kantan.java
の三つしかないです・・・

>>720
試してみます!
・・・同じく無反応でした。
入力ミスをおそれて二回ためすも残念ながら。

冗長出力指定オプション。
調べてみましたがよく意味がわかりませぬ。
>>708
正常ならこんな感じで出る

C:\J>javac Kantan.java -verbose
[Kantan.java を構文解析開始]
[330ms で構文解析完了]
[C:\jdk1.3.1_02\jre\lib\rt.jar(java/lang/Object.class) を読み込み中]
[C:\jdk1.3.1_02\jre\lib\rt.jar(java/lang/String.class) を読み込み中]
[Kantan を確認中]
[C:\jdk1.3.1_02\jre\lib\rt.jar(java/lang/System.class) を読み込み中]
[C:\jdk1.3.1_02\jre\lib\rt.jar(java/io/PrintStream.class) を読み込み中]
[C:\jdk1.3.1_02\jre\lib\rt.jar(java/io/FilterOutputStream.class) を読み込み中]
[C:\jdk1.3.1_02\jre\lib\rt.jar(java/io/OutputStream.class) を読み込み中]
[Kantan.class を書き込み完了]
[合計 1432ms]

どっかにjavac.bat と言うバッチがあるに500ペリカ!
726デフォルトの名無しさん:03/05/22 18:57
>>705
ありがとうございました
727708:03/05/22 19:09
>>725
説明ありがとうです。

ローカルハードドライブ(C・D・E)に「javac」で検索をかけた結果・・・
C:\jdk1.2\bin\javac.exe
C:\WINNT\ServicePackFiles\i386\javacypt.dll
C:\WINNT\system32\javacypt.dll
C:\WINNT\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\DAJAVAC.CAT
の四つのみヒットしました。
500ペリカいただきます♪

本当に何故ダメなんだろう・・・
再インストール

とかいってみる
729708:03/05/22 19:49
>>728
今、ためしてみました。
OSの再インストールは手間過ぎるので、JDKの再インストールを。
残念ながら結果は同じでした・・・
よくワカラソ
パス全部書いてもダメ?

C:\J>C:\jdk1.2\bin\javac C:\J\Kantan.java
731708:03/05/22 20:05
>>730
はい、ダメでした・・・
DOSまどで、
SET CLASSPATH

SET JAVA_HOME

SET PATH
して、
のせてみ!
$mv Kantan.java Gekimuzu.java

たぶんこれでうまくいく
734デフォルトの名無しさん:03/05/22 20:36
マジレスするとjavacにオプションつけてコンパイルしる
735708:03/05/22 21:22
>>732
Java1.2以降ならCLASSPATHの設定いらないんですよね?
一度CLASSPATHに「.」を設定したのですが
ダメだったので設定解除しました。
現在は・・・

SET CLASSPATH
環境変数 CLASSPATH が定義されていません
SET JAVA_HOME
環境変数 JAVA_HOME が定義されていません
SET PATH
Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\jdk1.2\bin;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.JS;.JSE;.WSF;.WSH



>>733
Windowsなのでmvできないっす。ネタにマジレスなんとやら?

>>734
どんなオプションがオススメでしょうか?
>>735
JAVA_HOMEにC:\jdk1.2をセットだ
>736
それしかないよね!
俺も今書こうと思ってた
738708:03/05/22 21:45
>>736 >>737
セットしてOS再起動してリトライしてみました。
・・・ダメでした。
なんかくやしいです。
せっかく皆様に助けてもらってるのになぁ。
>>738
とりあえずHDD内を「Kantan」で検索してみろ
どこかにできてるかも(無いとは思うが)
740デフォルトの名無しさん:03/05/22 21:51
すみません、どなたか教えてください。
javaからperlを動かすことはできるのでしょうか?
またその場合、perlの実行が終わるまで次の処理を待ったり、
perlからのリターンコードを得ることは可能でしょうか?
741708:03/05/22 22:02
>>739
検索してみました。
C:\J\Kantan.java
結果、ファイルが一つだけさびしそうに発見されました。
743デフォルトの名無しさん:03/05/22 22:07
>>738
使用してるOS、作業ディレクトリの構造、全て晒せ。
Win98で開発やってんのか?

>>740
java.lang.Runtimeでお幸せに。
別なプロセスのリターンコードを得るのって、
スレッドやプロセスで監視する以外に方法あるのかな?
744708:03/05/22 22:13
>>743

環境については>>708をご覧くだされ。
>>743
Runtime.getRuntime().exec(引数忘れた).exitValue()
>>744
ただ単にjavacとだけ打つとどう出るんだ?
747740:03/05/22 22:19
>>745
ありがとうございます!
これでうまくできそうです。
748デフォルトの名無しさん:03/05/22 22:23
>>745
killされたら?
749708:03/05/22 22:25
>>746
無反応で再びプロンプトに戻ります。
SocketをVector配列に入れて扱うにはどうすればよいのでしょうか?
JVMもう一個起動する場合
Runtime.getRuntime().exec(java hoge).exitValue();
でいいの?カレントクラスローダで同一VM内にロードする場合
Class.forName(hoge).getNewInstance();
合ってますでございましょうか?
752デフォルトの名無しさん:03/05/22 22:29
>>750
Vector型の配列作って、そこに放り込めばいい。
>>751
hoge.main(???)じゃねえの?

socket=serverSocket.accept();

Vector socketArray=new Vector();

socketArray.add(num,socket);
とやったら

socket2=socketArray.elementAt(num);
というふうにできますか?
なぜかできないんですが。
>>751
質問の趣旨からすると
hogeクラスを起動したいんでしょ?
だったら
前者はいいとして
後者は単にインスタンスの生成を行っているだけ。
しかもデフォルトコンストラクタが存在しなければ
NoSuchMethodExceptionだったかな?
そんな感じの例外が投げられる。

c:xxx>java xxxとやると、
xxxのmainメソッドが呼ばれるが、
同じVMで起動するなら、
単純にhoge.main(null)とかでいい。
別にnullじゃなくてもString[]なら何でもいいが。
>>754
キャストしろ。
socketArray.elementAt(num)の戻り値は
Object型だから
socket2=(Socket) socketArray.elementAt(num);
でOKだと思われ。
>>754
キャストしろ
あと Vector 使うくらいなら ArrayList にしろ
キャストですか。
それは気が付かなかった。

ありがとうございましたよ、おまいら。
759デフォルトの名無しさん:03/05/22 22:55
>>755
後者の場合、hogeクラスにpublic static void main(String[] args)は存在しないものとする。
>>758
まだまだだな。まあ、がんがれや。
>758
なんで気付かなかったのかが凄く気になる。コンパイルを一回もせずにどうやって「なぜかできない」という結論に至ったんだろう。
762755:03/05/22 23:10
>>759
デフォルトコンストラクタがあるなら
Class.forName("hoge").newInstance()で、インスタンスを生成。
デフォルトコンストラクタがない場合は、
hoge instance = (hoge) Class.forName("hoge").
getConstructor(new Class[]{xxx.class}).
newInstance(new Object[]{new xxx()})
まあ、Class.forNameを使うって事は
1・特定のインターフェイスが実装されている
2・コンストラクタの引数も最初から決まっている
3・実行したいクラス名は未定
多分こんな前提条件があっての話なんだろ。
>>761
eclipseというソフト
書いてる段階でエラーが出る
764デフォルトの名無しさん:03/05/22 23:22
>>763
は?エラー時点で修正候補出るだろ??
765デフォルトの名無しさん:03/05/22 23:24
>>762
その通りです。敢えて、前提言わなかったのだが。
御主、なかなかデキルな。
候補はでないなぁ
type mismatch:cannnot convert Object to Socket
とは出るけど。
だから初心者はエディタ+javacで鍛えなきゃダメだって
Eclipseは基本抑えてから使えよ
じゃないと勉強にならないだろ
>>767
エディタ&Antじゃダメ?
>>766
2.1では出るのよぅ。2.0.xと2.1は偉い違いです。
>>767
いきなりIDEでもいいと思うが、基本押さえろという意見はよくわかる。
今度新人にJava教えるんで、彼らにいきなりIDE使わせて
基本がおろそかになるかどうか確かめてみよう。
770デフォルトの名無しさん:03/05/23 00:11
基本ってなんだろ...
実装系の話なんて最後に覚えてもいいと思うんだけどな。
言語仕様と標準ライブラリ仕様を先に覚えるってのもありだとおもうぞ。
771デフォルトの名無しさん:03/05/23 00:18
>>754
早く1.5が出てGeneric Typeが使えるようになるといいですね。
こういうダサいキャストはつけなくてすむのに。
>>770
IDE使わないといつまでたっても
『'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
ってのを解決できない、なぜこれが起こるのかを理解できない奴が増えまくる予感。
基本ねぇ・・・
俺なら、
継承・実装・スレッド・内部クラス・匿名クラス・インスタンス・例外
java.lang系・util系・io系は抑えて欲しいところだ。
あと、modifierの使い分けを理解して欲しいな。

>>772 それでいいんじゃないの?
おれは8bit世代だから参考にならんが、学生になって初めてプログラムを
やりはじめた連中は、TurboPascalのIDEっていう箱庭だけで暮らしてたぞ。
コード書いたらメニューからRun... えらんでさ。違うプログラム
走らせるときは、File...から読み込ませて、またRun...
EXEを普通に実行するのを覚えたのはかなり経ってからのようだ。
そんなんもありだとおもうけどな。プログラム、はじめて書いて
コンパイルや実行からつまづくってのはちょっとかわいそうだ。
Hello World!の感動くらいはすんなり味わせてあげたい。
>>773
IDEの使用とは関係無いな。
上で言っている基本とは、クラスパスの話とかじゃないかな。

ソンナモンがわからないようなアホはどの言語でもプログラム組む資格ない
と思うけどね。真性初心者でそのへんを「知らない」だけなら、単に
FAQなり何なりを探して読んで試せばいいだけさ〜。
776デフォルトの名無しさん:03/05/23 02:05
本気で初心者なのですが、家のパソコンでJavaのプログラムをしたいのですが
まず何をどうしたらいいのですか?
いろいろとダウンロードしてみましたが、うまく動きません。。。
>>776
まず本屋いって初心者向けの教習本を買え。
pathをいれろ。
>>776
> 家のパソコンでJavaのプログラムをしたいのですが

まず考えなくてはならないのは、なぜそう考えるようになったか。
心を病んでいる可能性もあるので、カウンセラーに相談すべし。
780デフォルトの名無しさん:03/05/23 02:27
JCPADが動きません。どうすればいい?
781デフォルトの名無しさん:03/05/23 02:27
WizOnline開発中!プログラマ緊急募集(C,Java)
http://219.96.231.242/wizonline/
2chスレ
http://game3.2ch.net/mmominor/dat/1053536167.dat
782 :03/05/23 09:25
Javaアプレットで画像ファイル(bmp)を読み込んで表示する単純なプログラムを
作ってみたのですがうまくいきません。
別のPCではうまく動くのでソースに問題があるわけではなさそうです。
いったい何が問題なのでしょうか?

ちなみにeclipseでアプレットを実行するとコンソール画面に
java.lang.NullPointerException
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:50)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:749)
                         :
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
と表示されています。
>708
どうなった?
できた?
>>782
ここ↓の例だと、URLの取り方がまずいとヌルポになるらしい。もちろん他の原因もあるだろうが。
http://forum.java.sun.com/thread.jsp?forum=20&thread=398799
785782:03/05/23 10:21
>>784
修正例を参考に直したら、うまく画像表示できました。
どうもURLの取り方がまずかったようです。
本当に助かりました。ありがとうございました。
786デフォルトの名無しさん:03/05/23 11:20
servletやjspでエラー出たときエラーログがずらずらでないようにするにはどうすればいいのですか?
指定した500.htmlとかに飛ばしたいのですが
>>786
JSPならこう。
<%@page errorPage="error.jsp"%>
これで、JSPでエラーがあったときにerror.jspにフォワードされる。
JSPを指定していることに注意。
サーブレットだったらtry catchして指定したJSPにフォワードとかすんのかね。
>>786
web.xmlにerror-pageを設定する
789デフォルトの名無しさん:03/05/23 11:47
>>787>>788
ありがとうございました
やはりエラーページもjspじゃないとダメなのですね
ドット絵の色情報を取得するものを組んだんですが、
取得した色の一覧を自動的に並べ替えるものがうまく出来ません。

色そのもので、赤、青、緑みたいな感じで分けて、
さらに、明るさの順に並べたいのですが、
Javaだったらこんな方法あるよーみたいなものが
あったら教えてください。
Comparatorで順序付けを定義してTreeSet
>>787
それってJSPじゃないとダメだったっけ?
昔Tomcatで試したときは、HTMLでも行けたと思うんだけど
例外を受け取るには、JSPである必要があったんじゃないかな。
794デフォルトの名無しさん:03/05/23 15:10
1.Map m = new HashMap();
  m = null;

とするのと、

2.Map m = null;

では、どういう違いがあるのかよく分からないのですが、
説明できる方います?
>>794
↑は変
↓は普通
>>790
Arrayクラスオブジェクトのsortを再利用して、
Comparatorでソート
>>794
何がしたいのか意味がわからん
>>794
本屋に行って、一番簡単な入門書買ってこい。
JavaTM Cryptography Extension (JCE)
無制限強度の管轄ポリシーファイル 1.4.2
http://java.sun.com/j2se/1.4.2/ja/download.html


こいつをインストールしてからOperaでいくつかのあるサイトにアクセスしたら
Operaが毎回アラーとウィンドウで文句を言うようになった。
>799

Operaが毎回毎回アラーのネ申様と窓に文句いうのか・・・(((( ゜д゜ ))))
あらあら
('A`)('A`)
803デフォルトの名無しさん:03/05/23 20:32
java初めて2週間の大房です。
ブロック崩しを作ってるんですが、オブジェクトが触れたかどうかの判定をしてくれるクラスなんて
ないんですか?ブロックに玉が当たったらけしますよね?
最初は、ブロックの周りの各辺に触れたかどうかで判定すればいいと思ったんですが、
ボールも完全に少しずつ動いているわけではないので・・・。
5ずつくらい動かしてるんですが、それだとブロックの辺の座標を、上手く超えちゃったり
平気でするんで困ってます。
神の降臨をお待ちしてます。
自作しろや
>799>800
どうしてもアラーメッセージが消えないんですが  というレスを思い出した
>>805 なんか電波を受信しているみたいでいいな。
>>803
アレな方法としては、[1ドット動かす->衝突判定]*5 とか。
808708:03/05/23 22:20
>>783
親切にありがとう!たった今できました!!

>>712の以前に設定したPCを確認したらJDK1.3が入っていたので、
JDK1.2をJDK1.3に変え、それに伴って環境変数もなおしたらできました。

結局、原因がわからないのですが
書籍についていたJDK1.2をインストールしていましたので
そいつに問題があるのでしょうかね?
>803
辺じゃなくて面で判定するだけの話では?
それともブロックは5ドットよりも大きいのか? なら前回の座標を保存しとけ。
810デフォルトの名無しさん:03/05/23 22:59
Java → VC++
という順番で言語を学ぶことに対してどう思いますか?
811デフォルトの名無しさん:03/05/23 23:00
「2chからきました」ってコメントに書いたら値引きしてくれたよ。

 http://www.dvd-yuis.com/
前回の座標と現在の座標を結ぶ線分がブロックに重なっているかどうかで判断
交差判定でググれば、アルゴリズムがいくつか見つかるよ
814デフォルトの名無しさん:03/05/23 23:48
TogetherControlCenter6.0(TCC)でEJBの開発をしているのですが、
TCCでWebLogic用のEJB-jarファイルを作ると、
EJB-jarファイルが2つできます。
(DEPLOYABLE-XXXX.jar & XXXX-jar)
このときWebLogicにはどっちをデプロイすればよろしいのですか?
>>810
簡単なアプリならVCの方が簡単。
複雑なアプリだったらJava。

Delphiは両方いける(ヲ
816デフォルトの名無しさん:03/05/23 23:55

VC++覚えたらCも使えることになるのでしょうか?
>>816
ならねーよ(藁
818799:03/05/24 00:07
>>800
笑ってしまったじゃないか。
そんなレスが返ってくるとは思わなかった。

だれかあのセキュリティエクステンションやった人はいないんですかねぇ?
819デフォルトの名無しさん:03/05/24 00:57
str="/a//b/c"とあったとき
StringTokenizer(str,"/")で//の間の文字列が取得できません。
表示させようとしてもa,b,cとしかでません。なぜ無視されるのでしょうか?
>>819
APIリファレンス読んで出直せボケが。
>>819
API仕様書読むと幸せになれます。
このスレでもStringTokenizerで同じ質問出てたけどね。
823デフォルトの名無しさん:03/05/24 01:18
下のようなクラスをマルチスレッドで使うと、
Test.nextInt()でちゃんとした乱数が返ってこないことがありえる
というのは正しいですか?

public class Test{
 private static Random rand = new Random();

 public static int nextInt(){
  return rand.nextInt();
 }
}
>>823
ちゃんとしてない乱数ってなんですか?

Randomオブジェクトをスレッドごとに持てば?
AWTのコンポーネントの中に別のコンポーネントを複数置くと、
先に置いたコンポーネントから順に手前に表示されました。

コンポーネント同士の一部が重なり合っているときに、後ろ側をクリックすると
一番手前に移動する、要はマルチウィンドウっぽい表示をやりたいんですが、
コンポーネントを配置後にZオーダーを変更する方法ってないんでしょうか?

ちなみに、それぞれのコンポーネントは親(=背景)コンポーネント上の
任意の位置に移動できる必要があるので、レイアウトマネージャはnullにしています。
826デフォルトの名無しさん:03/05/24 01:31
>>823
正しくない
827デフォルトの名無しさん:03/05/24 01:35
>>823
とりあえずやってみれ。やってみたて結果を晒せ。
それでも疑問が残るなら、俺が親身になって

















教えることはない。
828デフォルトの名無しさん:03/05/24 01:54
servletの日本語版のapiリファレンスって何処で手に入りますか?
それとも存在しないのでしょうか。
829828:03/05/24 01:59
jakaltaにありました。
失礼しました。
>>828
探したのか?
j2eeの日本語版リファレンスは普通にある。
そっちからかよ(w>jajakarta
え、どこどこ?
便乗でプリーズ
833デフォルトの名無しさん:03/05/24 02:50
かなりDQNな質問かと思いますが、普通のjavaプログラムのソースを
アプレットのソースに変える簡単な方法ってないでつか?
ソフトとかでもいいんですが・・・。
834デフォルトの名無しさん:03/05/24 02:54
>>833
100%あると思うよ。ぐぐってみ。
>>833,834
コマンドラインでしか表示できないものをAppletに変換できるものがあるのか?
>>835
できるだろう。コンソール開けばひまわりが咲いている
>>828
java.sun.comにあるだろうがよ
>>835
一本のソースで、
プログラムとして起動すればFrameを開き、
ブラウザから開けばアプレットとして開けるやつを見たことがある。
public class A extends Applet{
 public void init(){
  ...
 }
 ....
 public static void main(String[] args){
  Frame f = new Frame();
  A a = new A();
  a.init();
  f.add(a,"Center");
  f.pack();
  f.show();
 }
}
こんな感じにしとけばいいんじゃないか?
840デフォルトの名無しさん:03/05/24 16:26
例えばサーブレットからbeansの
public void test(){
//適当な処理
}
なメソッドを呼び出して例外が発生した場合には
String型のe.getMessage()なんて戻り値を返すなんてことは
できませんでしょうか?
Beans内でエラーが起きた場合にServletでわかりやすく知る方法って
なんかあります?
>>840
842840:03/05/24 18:32
java単体で動かせば
try{}catchでSystem.out.println(getMessage)とかで
エラーメッセージがだせるじゃないですか。
このエラーメッセージを呼び出し元のサーブレットに渡したりできないかなー
って思いまして・・
>>842
tomcatなら例外が起こったらコンソールにスタックトレース吐いてくれるけど。
>>842
???呼び出し元のServletでおなじことやればいいんじゃないの?
>>842
catchしたい例外がRuntimeExceptionじゃない場合は
public void test()
にthrows句追加すれ
>>838
ああ、「続Java言語入門」に載っていたアプレットケーションね。
なるほど。
Robocodeやったことある人、助けてくださいお願いします。
大会に出たロボットのソースを落としてきたのですがコンパイルできないのです。
ttp://www-6.ibm.com/jp/event/robocode/home/robojcup/i/katana.zip
これを展開すると2つのjavaファイルができて
そのうちの一つはコンパイルできるのですがもう一個の方はできません。
なんかのパッケージが足りないと言われてしまいます。
makeファイルみたいなのはないのでしょうか?
javaファイルがたくさんあったときのコンパイル手順はどのようにすればよいのでしょうか?
おながいします。
>>847
エラーメッセージ読まぬ者、プログラムする資格無し。
なんでこの子はエラー内容を書かないかねぇ。
「パッケージ robocode は存在しません。」だったら、必要なパッケージが入っていない。
解決法は、そこのページを良く読む。
>847
でもこのZIPファイル、
package mt;
なのに格納ディレクトリはkatanaだね。847に同情。
コメントとかもがしがし書いてあって
自分の書いたプログラムじゃないので
エラーメッセージ出したらまずいかなと
思いまして。。。
>>850
ありがとうございます。できました。
ディレクトリ名katanaをmtにリネームして
robocde\robotsの直下に置いたら難なくコンパイルできますた。
>>839見てなるほど〜と思ったんですが、
これだと WindowListener とかどうやって付けるんですか?
>>853
addWindowListener

つかお前センス0
855デフォルトの名無しさん:03/05/24 23:23
これって、C++を趣味でやってや香具師が、やっぱり趣味でJavaったコード?
汚くはないけどJavaの匂いが薄い。
856デフォルトの名無しさん:03/05/24 23:28
Javaは大規模開発に向いてると言うけど
大規模って事は単純に言うとデータ量が大きいと言う事だろ。
スピードが遅いのは大規模開発には致命的だと思うんだが。
>>856
DBサーバまで Java にする気かおまいは
>>856
1件/1秒ぐらいのリクエストの処理だったらJavaよりCの方が速いのかもしれない。
しかし、1000件/1秒だったらJavaの方がOSにかける負荷は断然低いし速いぞ。
大規模ってのはデータ量が大きいだけじゃなくてどれだけ並行処理できるかって
ことも重要。
859デフォルトの名無しさん:03/05/24 23:41
>>857
基本的にデータを扱う物って
ロボット検索エンジンと同じと思うんだが、
Javaを使っている検索エンジンってどうなのよ?
例えばGoogleがJavaで出来てたら使い物になっただろうか?
つーか本当速度が必要なら Java は選ばないよ。
開発のしやすさと保守のしやすさで選んでるけど。
861デフォルトの名無しさん:03/05/25 00:02
>>857
俺は大抵の話には付いていける技術ボキャブラリがあると自負していたが、
おまえの話しだけには付いていけない。
>>860
まあな。同意。
64CPU環境をクラスタリングできるプラットフォームや
アプリサーバが既にいくつも用意されていて選べるのはJavaだもんな。
これをCとかC++でやろうとしたら面倒くさいかも。
Windowsで開発できるのも大量の開発者が必要な
大規模プロジェクトには必要な条件だしな。
J2EEとWindowsDNAを理解したらとりあえず飯食える。
Web系でCったらCGIか?
CGIとServletは違うっちゅーに
865デフォルトの名無しさん:03/05/25 00:18
>>864
どう違うか説明きぼんぬ
>>863
>WindowsDNA
懐かしい言葉だ。とっくに死語だと思ってた。
.NETも既にやばそうだが。
>>865
本気で知りたければググれ
ぐぐぐぐって何でもぐぐるのはどーかと。
ちゃとした書籍で相違点押えろ。O'REILLYがイイぞ。
>>868
あとは@ITとかね。わかりやすいとおもう
>>861
そうか?Oracle DatabaseはJavaで書かれてるわけではないが、
Javaを知ってると使いやすい。
>870
おまえの言おうとしていることがさっぱり分からない。
Java を知っていると Oracle が使いやすいって、自分で何言ってっか分かってる?
>>871
お前何も知らんのか
PerlでもVBでもCでもほとんどの言語でOracleに繋げる訳だが・・・
>>873
Javあですとあどかける
875デフォルトの名無しさん:03/05/25 01:58
>>871
あんた技術者として終わってる。
876デフォルトの名無しさん:03/05/25 02:01
「DBサーバをJavaにする」
惜しい。実に惜しい。もう少しでこの日本語の意図が解りそうなんだけどよ。
やっぱ無理だわ。
>>857=>>870=>>872=>>875
おまえ表現力低い上に頭悪そうだな、高卒だろ (プ
878870:03/05/25 02:06
>>872
もうほっておけ、ホントに何も知らないらしい。
>>873
そう、繋がる。繋げるだけなら、Javaを使う必要なんてない。
Pro*Cを使っても良い訳だ。
879晒し上げ:03/05/25 02:12
857 名前:デフォルトの名無しさん 投稿日:03/05/24 23:35
>>856
DBサーバまで Java にする気かおまいは

861 名前:デフォルトの名無しさん 本日のレス 投稿日:03/05/25 00:02
>>857
俺は大抵の話には付いていける技術ボキャブラリがあると自負していたが、
おまえの話しだけには付いていけない。

870 名前:デフォルトの名無しさん 本日のレス 投稿日:03/05/25 01:23
>>861
そうか?Oracle DatabaseはJavaで書かれてるわけではないが、
Javaを知ってると使いやすい。
880デフォルトの名無しさん:03/05/25 02:17
>>879
はい、間違い。何をもって晒してるか知らないが適当なこと言うな。
>>>872
>もうほっておけ、ホントに何も知らないらしい。

もう苦しくなってきたのでほっておいてくださいの間違いでは (藁
>881
確かに香ばしい匂いがしてきたな。
一度でもオブジェクトブラウザ使ったことがあるなら目につかないか?
Javaってさ
884870:03/05/25 02:27
で、リンクのどこを読んで「Oracle は Java を知っていると使いやすい」とかいう
間の抜けた発言が出たわけ?
886870:03/05/25 02:51
>>885
これは驚いた。885は普段どのようにOracleを使ってるのだろう?
マ板でやれよ…
>>886
具体的に答えろよ。やっぱタダの知ったかだろ?
Oracle とか言ってみたかっただけだろ?
素直に知りませんでした教えてくださいと言えばいいのにね。
まあ、871は一生VBでOracleいじってろってこった
891デフォルトの名無しさん:03/05/25 03:15
ま、お前らは用語辞典でもひっぱってから会話しろってこった
要は噛み合ってないんだよ。

あ〜あ、答えられないもんだから開き直っちゃったよ (禿藁
>>891
何を要約したら「噛み合ってない」に行き着くんだ?
そんなにJavaのストアドって使われてるんですか?
存在は知っていたものの、自分の回りではみんな
PL/SQLを使うのが当たり前になっているんですが?
>>894
普通そうだろ。中小なら DB 設計者 = Java 開発者かも知れないけど、
データベース設計や運用のスペシャリストが使えない言語で記述する
わけないし、実績ある方を望んで当然。まぁ Java でストアドマンセーなんて
言ってる自称職業プログラマもこのスレに混じっているようだが。
896デフォルトの名無しさん :03/05/25 03:52
Javaを勉強し始めようと思うんですが、わかりやっすい書籍は何でしょうか?
たくさんありすぎてどれを選んでいいもんやら。
897_:03/05/25 03:55
>>896
Javaの絵本
899デフォルトの名無しさん:03/05/25 04:03
>>898
どうもです。

>>895は日本語の読解能力に難ありですね
>>900
ハァ?
902デフォルトの名無しさん:03/05/25 04:09
>>901
どうやらこのスレを荒らしていたのはVB厨じゃなくてJava厨
http://pc2.2ch.net/test/read.cgi/tech/1053190979/
javaがORACLEがとか言ってるボケ。
OCIのプログラミングでも経験してからもの言えアホ。
このスレに出てくるなスカポンタン。
結局Javaを知ってるとOracleが使いやすいって何の話だったわけ?
ストアドまんせーなんて奴いるか普通?
oracleのAPサーバのPL/SQLカートリッジなんて使ってる奴いるか?
そんな奴居たら、尊敬すると同時に、そいつは絶対採用しない。

>>904
最近JAVAとORACLEを知った馬鹿のたわごと。
ああ、ちなみに DB2 は SQL でストアド使うと C コンパイラのライセンスが要るから
(中で C にコンバートしてコンパイルしてるらしい)、ライセンス料の要らない
Java でストアド書くってのは聞いたことがあるな。
ちなみにOracleはgccでもコンパイル・リンクできる。
DB2は商用のcコンパイラが必須って事か。
>>908
仕事で使うのは AIX 版だからなぁ。IBM の xlC (C コンパイラ) が必要なのでストアドは
却下、と言われた事までしか知らない。Linux 版 DB2 なら gcc でも大丈夫らしいが、
まだ試したことは無い。
910デフォルトの名無しさん:03/05/25 06:24
みなさんが手本にしてるサイトor人とかありますか?
>>903
OracleのJDBCドライバは、つい最近までOCIの単純なラッパでしたよ。
OCIのインターフェイスを使わなきゃいけない何ていっているなら、
そりゃあんたがアホですがな。やることやってくれればインターフェ
イスは何でもエエヤン。
913デフォルトの名無しさん:03/05/25 09:34
初心者ですがプログラマーの人はいつも些細なことでケンカしたり揚げ足取り合ったりしてるのですか?
>>913
みんな性格悪いし負けず嫌いだし自分の過ちを認められない人ばかりだし
自分の無知を棚に上げる知ったかしかいないので自然とそうなります
> いつも些細なことでケンカしたり揚げ足取り合ったりしてるのですか?
こーゆー事しなくて済む職種があるなら教えてくれ。
例えば
int c=0;
char array[]=new char[10];
とか決めておいて

while(array[c]!=null){
なんらかの処理
c++;
}

このときのc++;はwhile条件の中のarray[c]にも反映されるのでしょうか?
>>915
ワンマン社長とか。
>>916
char は数値のプリミティブ型なので null にはならない。
よって無限ループ。

それと、int c=0; は止めて、int i=0; にすれ。char c; なら OK だが。

>>916
その前にarray[c]!=nullでコンパイルエラーになる。
これをarray[c]!=0と読み替えるとしてあなたの疑問に答えるなら、
答えはYES。多分C上がりだと思うが、Cでも一緒だろ?
ただ、Cでもそうだがc>=10の時を忘れないように。
920デフォルトの名無しさん:03/05/25 16:17
J2EEチュートリアルをやってるのですが、例題ソースコードがどこにあるかわかりません。
チュートリアルには「http://java.sun.com/j2ee/download.html#tutorial」から入手。
と書いてあるのですが・・・。誰か直リンおながいします!
922デフォルトの名無しさん:03/05/25 17:01
>>921
ソースコードが欲しいのです!おながいします!
>>922
おまい、ダウソロードしてから言ってっか?
ZIPファイルに入っているだろうがよ
Vectorの場合に空のところにポインタ指したら
nullが帰って来ますか?

ヌルポ出たような・・
>>924
何言ってるか分からん。
vector1.elementAt(ココ)で全然違う数字指定したらってことです。
>>926
それを試すこともできないほどアホなのですね
928デフォルトの名無しさん:03/05/25 18:16
>>924
VC++の話か?
>>926
全然違う数字って何だよ、といいつつ

仕様どーりに作ってあれば vector.elementAt(index) で
index < 0 || vector.size() <= index の場合は
ArrayIndexOutOfBoundsException を投げるはず。
つまり、!=nullを条件として使えないということですね。
>>930
本当に頭が悪いのですね。
知ったかぶりはもう良いので基本から勉強し直してください。
もしくは別の道をお選びになったほうが良いでしょう。
私は後者をお薦めします。
この業界、知ったか君ほどウザイ人間はおりませんので。
>>930
vector.addElement(null) が可能なので。

vector.elementAt(index) で
index < 0 || vector.size() <= index の場合 null を返す、という仕様だった場合
addElement(null) されたのか範囲外なのか、戻り値からでは区別がつかん。
比較の前に落ちるっつってんだよヴォケカスどもがあああああああああ
934デフォルトの名無しさん:03/05/25 19:07
この業界だって・・・プッ
どっちにしろ例外捕まえれば良いだけの話だしなぁ。その前に自前で範囲チェックしろよと。
>どっちにしろ例外捕まえれば良いだけの話だしなぁ。

クソシステム
範囲外に平気でアクセスするのはクソじゃないのかと(以下略)
try{
do.mybest();
}error{
do.ageinAndAgain();
}

どこか駄目?
>>938
ここはJavaスレですよ。
>>938
> }error{
これは何? Javaじゃないなら別のスレ行ってくれ。
>>938
諦めが肝心
>>937
クソ以外の何者でもないじゃん
結論。範囲チェックしろボケ。でいいですね。
944デフォルトの名無しさん:03/05/25 19:30
>>937
クソじゃないよ、クソ以下
textFiledを使うと、1行分しか入力できないんですが、
普通、ここのレスみたいに何行にも渡ってかけますよね?
こういう風にするにはどうしたらいいんでつか?
>>945
TextArea を使え。
(J)TextField は 1 行分しか入力できません
複数行入力したい場合は (J)TextArea を使ってください
>>946,947
できました。ホントにありがd
949デフォルトの名無しさん:03/05/26 11:19
JSPの中身にアプレットを使って処理を書いたときに、クライアント側でアプレット
を使いたいときはどうすればよいのですか?
jsp の質問しに来る連中って、何でどいつもこいつもこうなんだ?
>JSPの中身にアプレットを使って処理を書いた
これと
>クライアント側でアプレットを使いたい
これはほぼ等価なんだが、何がしたいんだ?
952デフォルトの名無しさん:03/05/26 12:37
ちょっとした応用もできない香具師はプログラ民具なんて止めたほうがいいよ。
ましてや仕事でやったら苦痛以外のなんでもない。周りの人がね。
953デフォルトの名無しさん:03/05/26 13:50
アプレットからマウスを強制クリックさせたりマウスカーソルの座標を設定したりってできんの?
>>953
できない セキュリティ上、できる見込みは、はるか遠い未来まで行っても無い
>>953
ブラクラでも作りたいのか?
網掛けなどのパターン描画で、
画面にも印刷 (Graphics に) にも適したやり方はどんなんでしょうか?
drawLine なんか使うのは嘘実装だろうとは思ってますが
957デフォルトの名無しさん:03/05/26 15:49
今の日時を取得するにはどうすればいいのでしょうか?
958デフォルトの名無しさん:03/05/26 15:56
間違えました。
yy/mm/ddの形式を得るにはどうすればよいのでしょうか?
以下のFTPプログラムを動かしてみたのですが
〜accept();の行で止まってしまいました。
IP等は変えているのですがどうしてでしょうか?
エラーメッセージは何も表示されません。
http://www.hellohiro.com/ftp.htm
>>956
ごめん、アプレット分かんない。

>>957
SimpleDateFormat使え。

>>959
1.ルータかましててFTPサーバ側から接続できていない。
2.Socket.getLocalAddress()がローカルのアドレスを返してきている。
961956:03/05/26 17:45
>>960
アプレットじゃないです。

今 TexturePaint を使ってみたんですが、
激しく VM 毎落ちたり、何度も何度も Printable#print が呼ばれたりします。
後者は透過色で塗りつぶしをやったときも出たんですが、
Java の印刷は未だこんなショボショボなんでしょうか?
962デフォルトの名無しさん:03/05/26 18:18
はじめまして!JAVA初心者です。
JAVAをやる際、VJ以外に良いソフトウェアありますか?
もしよかったら紹介してくださいw
963959:03/05/26 18:25
>>960
他のFTPクライアントソフトからはいけるので1はないかと。
LocalAddressのところはあれじゃ駄目なんですか?
相手先のアドレス?

後パケットをチェックしていたら
502 Illegal PORT Command というエラーメッセージが表示されました。
PORT *,*,*,*,ポート/256,ポート/256の端数でいいんですよね
>>963
とりあえず getLocalAddress() の戻り値を確認すれ。

あとは PASV モードでも試してみれば?

ちなみに FTP では改行は \r\n じゃないとダメで、
PrintStream の println は line.separator を使うので
Mac とか Unix では動かない可能性あり。
>>962
Ant
>>958
カレンダーを見て手入力
967デフォルトの名無しさん:03/05/26 21:40
下がってるのでage。

例えばこーいう配列があったとして

String ret[];
ret = new String[6];


ref1:
ret[0]="一";
ret[1]="ニ";
ret[2]=SUN";
ret[3]="四";
ret[4]="誤";

ret[2]="" ;//添え字の2番を消去して

ref2:
ret[0]="一";
ret[1]="ニ";
ret[2]="四";
ret[3]="誤";

みたいに配列の内容を詰めるのって出来るの?
>>962
【Java/C/他】統合開発環境Eclipse RC6
http://pc2.2ch.net/test/read.cgi/tech/1051840417/
969デフォルトの名無しさん:03/05/26 21:58
Javaの変数は日本語がいい。

String 変数 = "";

ってな感じでな。
>>967
出来る。

ArrayListやLinkedListのAPIドキュメントを読むと良い。
>>967
とりあえず、

> ret[2]=SUN";
コンパイルエラー食らうね。

> ret[2]="" ;//添え字の2番を消去して
「消去」って何だよ、というツッコミはおいておくとして
配列の先頭から三番目の要素を空文字列に変更してるだけですね。
>>967
結論としては 元の配列のインスタンスの長さを変えたりするのはできないので、

temp = new String[ret.length - 1];
temp[0] = ret[0]; temp[1] = ret[1]; temp[2] = ret[3]; temp[3] = ret[4];
ret = temp;
とかするか、

List の実装クラスとか(LinkedList とか Vector とか ArrayList とか)を使ってくれ。
973デフォルトの名無しさん:03/05/26 22:13
ネットのバイト見つけた。バナー収入登録したら1000円くれるってさ。
http://members.goo.ne.jp/home/madcap0  
974967:03/05/26 23:33
>>970 >>971 >>972
できますた。どうもありがとう。

ArrayList lst = new ArrayList();
String str_test[];
str_test = new String[6];
str_test[0] ="一"; str_test[1] ="ニ";str_test[2] ="SUN"; str_test[3] ="死"; str_test[4] ="誤"; str_test[5] ="六";

for ( a =0; a < 6; a++)
{
lst.add(str_test[a]);
System.out.println( a + " " + str_test[a]);
}
System.out.println("削る前 " + lst.size());

for ( a =0; a < 6; a++)
{
System.out.println(a + " " + lst.get(a));
}

lst.remove(2);
System.out.println("削った後 " + lst.size());

for ( a =0; a < lst.size(); a++)
{
System.out.println(a + " " + lst.get(a));
}
>>974
配列をListにするときは
Arrays.asList(Object[])を使え。
逆にListを配列にするときは
List#toArray(Object[])を使え。
976959:03/05/27 13:34
>>964
PASVモードでも状態は変わりませんでした。

また getLocalAddress() の戻り値は” /(自IPアドレス) ” でした。
さらにLocalAddress().getAddress()の戻り値は 16進みたいに英数字と記号が
まざっているものがでました。
>>976
> PASVモードでも状態は変わりませんでした。
状態が変わらないわけないだろ…
PORT だとこっちは ServerSocket で accept()、
PASV だとこっちが指定されたアドレス/ポートに接続にいかにゃいかんのだから。

> また getLocalAddress() の戻り値は” /(自IPアドレス) ” でした。
自IPアドレスだけじゃわからんよ。
ローカルなのかグローバルなのかとかも書いてくれんと。

とりあえず現在使ってるマシンにFTPサーバ立てて実験するとかすれ。
>>976
とりあえず RFC959 をちゃんと読んでから出直せ。
AWTとSWINGってどっちを使うのが賢いんでしょうか?
確かにAWTの知識も必要かとおもいますが
実際に使うのはSwingだけでいいのではないかと思うのですが
980デフォルトの名無しさん:03/05/27 16:46
>>979
まぁ現状、実質的には swing で事足りるが
imode やら PDA やらに手を出したければ必要だし
awt だけでの設計方法は一応踏まえておいていいと思うぞ
JPanel に区切り線を入れたいのです
draw3DRect するような無名クラスを用意してるんですが、
何か汎用的なものはありますか?
JSeparator じゃうまくいきません。Border をつけても。メニュー専用?
982デフォルトの名無しさん:03/05/27 17:45
javaのクラスでwidowsの残りディスク容量を
計算するのがあれば教えて下さい
983デフォルトの名無しさん:03/05/27 18:43
「JBuilder 8 Personal」のインストールキーの発行をしようと思い、
BorlandのHPにある「インストールキーの発行」をクリックしたところ、
「サーバーが見つかりません」と表示されました。

日時を変えても、何度やっても同じ表示がされます。
なにが原因なのかサッパリわからないです。教えてください。
次スレ頼む
>>982
Runtime.getRuntime().freeMemory()
986982:03/05/27 19:48
あ、すまん、これは、メモリだ。
987985:03/05/27 19:49
↑二重にすまん、間違えた
988デフォルトの名無しさん:03/05/27 19:52
最近までTOMCAT4.1を問題なく使っておりました。
がApacheと連携とか言うのを何度か試したがうまくいかず、
しょうがない、Tomcatだけでいいやどうせスタンドアローンなんだし。
と思っていたのですが肝心のTomcatがおかしくなってしまいました。
うまく説明できないのですが、tomcat起動〜プログラムを打ってさあ起動とするとどうしてもエラーになり、
なぜかTomcatのほうでプログラムが起動してるみたいに見えます。
エクスプローラ上の表示
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception

org.apache.jasper.JasperException: 5
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
以下延々とat org.apache.....が続く

tomcatでの表示(一部下の部分)
サービス Tomcat-Standalone を起動します
Apache Tomcat/4.1.2.24-LE\jdk14
2003/5/27 19:30:30 org.apache.coyote.http11.Http11Protocol start
情報:Coyote HTTP/1.1をポート8080で起動します。
こんにちは渡辺さん
こんにちは山田さん
(こんにちは渡辺山田は私がプログラムで打ってた内容なんだが
なぜにTomcatに?)
やはりserver.xmlをいじったのがいけなかったんでしょうか?
おろかにもコピーとってなかったので元の状態が分からない。
やはり再インストールなんでしょうか。
989985:03/05/27 19:54
>>982
ディスクの残量は知らなかったが。
JavaHouseに投稿あった。
http://java-house.jp/ml/archive/j-h-b/036619.html
質問なんですけど
Xerces2でDocumentクラスからXML文書を
直接で生成することってできないんですかね?
前、XMLDocumentクラスってのがあった気がするんですけど・・・。
991デフォルトの名無しさん:03/05/27 21:39
>>988のものですが、再インストールしても同じ結果になりました。
よっぽどまずいところをいじったんでしょうか。
そんな覚えはないつもりですが・・・。
992デフォルトの名無しさん:03/05/27 21:42
JAVA WORLDやらJAVA Developerなどいろいろありますが、
皆さん、JAVA雑誌でお気に入りって何ですか?
>>988
Java2SDKとJ2REをアンインストールしてからTomcatを入れなおしたら?
>>992
漏れはなぜかJavaPoressしか買わなくなってしまった。
広告が少なく中身が濃いように見え隙間が殆ど無くぎっしりと記事を詰め
文字が見やすく価格に見合っているように見えてしまうのだ。

JavaWorldはスペースが多く中身が殆どないようにしか見えない。
995デフォルトの名無しさん:03/05/27 21:56
情けない話だけどJavaPressは見た目でいまいち好きになれない。
「合格情報処理」とか書いてそう・・・
996デフォルトの名無しさん:03/05/27 21:57
>>988
そこまではやってませんね。早速やってみます。
JavaPressの中身って濃いか?
上っ面しか書いてないと思うが。
3回連続で質問に答えてもらえなかった
呪まーす
999
>>992 どれでもかわらんきがするが、おれはJavaDevをたまに買う。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。