1 :
デフォルトの名無しさん :
03/05/11 12:50
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
マルチポストですいません。 javaの質問ですが、例えば -------xxx.txt-------- <% name = param.get("name"); weater = param.get("weather"); %> こんにちは、<%=name%>さん。 今日の天気は<%=weather%>です。 ---------------------- というような、JSP風のテキストファイルを パースして出力すると、 こんにちは、田中さん。 今日の天気は雨です。 と、出力されるようなライブラリってあります? あればいいのですが、なければ作ろうと思って。 XMLの動的生成や、外部化したSQLの動的生成に 使えそうな予感がして・・・
>12 Tomcatではダメなのか? 出力先が違うだけなんだから、Tomcatのソースをかなり使えると思うけど。
>>13 Tomcatのソース流用とか考えたのですが、
解析して流用するなら、1から作ったほうが早そう・・・かなって。
タグリブもいらないし、ビーンもいらないので。
velocityもいいかなと思ったのですが、
文法を新たに覚える必要があって。。。
最低限のJSPやASPがわかる程度の
プログラマ向けのライブラリが欲しかったのです。
使わせる人にあれこれ教える手間が省けそうで。
15 :
デフォルトの名無しさん :03/05/11 14:52
画像ファイル(例えばJPEG)の解像度(dpi)の判定や変更を 行いたいのですが、どうやったらできますか?
image.getResolution()みたいなAPIないかなあ・・・
というか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 サーブレットの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ということを知れ。
そーゆー硬い事言ってるとハゲるよ。
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
>>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のサブクラス]()
とでもやってください。
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
57 :
デフォルトの名無しさん :03/05/12 01:38
>>55 別な型の戻り値を1つ以上返せるシグネチャがあったらみてみたい。
配列返すとか、List返すとかは抜きね。
>>56 returnは知ってます。
>>57 やっぱないですかね…
えと、メソッドの中で分岐とかあって、条件に当てはまらなかったら
戻り値を持たずに戻る。
当てはまったら戻り値(オブジェクト型)を持って戻るようにしたいんです…
適当に
return 0;
とか書いたら 互換性の無い型 とか出た。
60 :
デフォルトの名無しさん :03/05/12 01:45
>>55 オッス、メソッドの出口は1つになるように考えてみた方がいいよ。
うまくクラス設計するとif文減らすこともできる。一度やってみなよ。
仕事じゃなくて趣味でやってて、面倒くさいなら条件分岐でreturnすればいいだけ。
オブジェクト指向はデザインパターンとか色々あるからマジでお勧め。
>>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)
うわぁ、大勘違い。長々と無関係なコードを書いてしまった。スマソ その条件に当てはまったら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に格納して、間接的に呼び出すようにしてみても怒られます
???
>>60 えっと(汗)只今研修総仕上げの開発演習に追われてまして…
で、明日(今日)までに自分の担当モジュールをある程度完成させなければならないんです…
既に行数がエラい事になってるんで、ここから分岐いじりなおしたりとかやると、
終わらないんじゃないかと…
>>61 すみません、goto文は算法とコンピュータの所で知りました。
それと、戻り値として何も値を無しにして戻らせたいんです。
>>62 finallyって例外処理じゃないんですか??
>>63 > staticなメソッド以外はstaticなmainメソッドから呼び出せないんですか?
static でないメソッドはインスタンスが無いと呼びだせんね。
>>65 ソース晒したいですが、どこからどこまで晒せば解ってもらえるのか(汗)
幾分初心者が書いたものですし…
あ、呼び出し元の処理まだ書いてなかった(氏)
>>65 > Object返したら戻り値がプリミティブ型のときに怒られます。
Objectに変換しろよ。
>>71 とりあえず
> でもメソッドの途中で、戻り値を持たせないで強制的に呼び出し元に戻れる文
を含むメソッドを全部。
例外が発生したときに、例えば、 } catch (Exception e ) { の e から java.io.FileNotFoundException のような例外のクラスの名前(だけ)を拾うにはどうすればいいのですか?
77 :
デフォルトの名無しさん :03/05/12 01:57
>>71 呼び出し元のメソッドと、そこでコールしてるメソッドをきぼんぬ。
>>74 そのメソッドは200行位あるんですが…おk?
OK
80 :
デフォルトの名無しさん :03/05/12 01:59
>>69 実務で、ぬるぽを返すソース見たことないのですが?
catchする必要ないから良いのだろうけど。
82 :
デフォルトの名無しさん :03/05/12 02:01
晒せ晒せ
>>75 e.getClass().getName()
うーん、どう切って晒せばいいんだろう(汗) 短くしたのに「改行多すぎ」といわれる…
87 :
デフォルトの名無しさん :03/05/12 02:06
>>75 基本的には
try{
}
catch(捕まえる必要がある例外1 e1) {
}
catch(捕まえる必要がある例外2 e1) {
}
catch(Exception e) { // その他の例外(予期せぬ例外を捕まえるつもりで)
}
finnaly{
}
なんてことをやる。
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 チェックして投げるようにしてるけど。
>>70 処理部分を別Classにして、それをインスタンス化したものを呼び出したら
コンパイラに怒られませんでした
ありがとうございました。
これはどういうことなんでしょうか????
かなり初心者的質問だと思うんですが教えて頂けませんでしょうか
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"; }
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; }
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; } } } }
あっ、Tab消えるんだ(汗) す…すみません…
>>89 > else{
> System.out.println("会員情報が見つかりません");
> System.out.println("登録を行ってから再度貸出業務を行ってください");
> return 0;
> }
の return の部分は例外投げた方が良いような。
>>96 えーと、そこで呼び出し元に戻って欲しいんです…
登録処理は呼び出し元から飛ぶんで…
>>98 呼び出し元で catch すればよいのでは?
あ、今になって 戻り値で渡すのはVectorの方が良い様な気がしてきた… 皆さん答えて頂いてるのにすみません もうなんか、頭の中パニックです…
104 :
デフォルトの名無しさん :03/05/12 02:17
せめて、ここで言ってる「呼び出し元がどこであるか」のコメントつけようよ・・・。
0の代わりにnullは無理だろう
>>105 そもそも戻り値が参照型なのに return 0 はコンパイル通らないから、
コンパイルエラーになる return 0 の代わりに return null しろって話。
107 :
デフォルトの名無しさん :03/05/12 02:21
パニック パニック パニック 55が あわててる〜♪
>>102 null返せるみたいでつ!
エラー減りました!
ただ、実行結果がどうなるかはやってみないとわかりませんが…
>>104 えと、〜メソッドに戻る とかですか?
throw new AllreadyRentalledException("ぬるぽ");
110 :
デフォルトの名無しさん :03/05/12 02:23
今からでは酷かもしれんが 会員オブジェクト、レンタルオブジェクト、在庫オブジェクト にしてみたら?
>>109 ごめんなさい、意味が解らないです…スロー宣言?
僕の知識不足です…
>>110 会員obj、レンタル品obj(ビデオとCDに分かれる)があります。
それらはそれぞれVector配列に格納されています。
113 :
デフォルトの名無しさん :03/05/12 02:26
今からでは酷かもしれんが マジックナンバー使うの止めて、意味のあるフィールド名で 関連するオブジェクトにもたせてみたら?
ま…まじっくなんばーってなんですか…
今からでは酷かもしれんが Vectorを引数に渡すんじゃなくて、 レンタル商品型を渡してみたら?
>>115 配列ごと渡さないと検索処理とかが出来ないと思うんです。
ところでみんなはVector派?ArrayList派?
今からでは酷かもしれんが それをAppletにしてみたら? 特に理由はないけど。
>>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();
というふうに直接生成する。前スレでも話題になったことです。
>>119 ああ、そういうのもアリか…
勉強になりまつ!!
>>117 ArrayListって普通の配列と違うんですか?
浅いコピーと深いコピーについて、だれか教えてください。
125 :
デフォルトの名無しさん :03/05/12 02:39
>>123 List構造。Javaにはコレクションフレームワークってのがあって、
java.util.* にそれが入ってる。どんなものかというと、
データ構造を自作しないでいいように、予め、枠を作ってあるわけよ。
データ構造ってのは、TreeとかListとか、あんたが専門学校で習ったようなこと。
~~~~~~~~~~~~~
実際のところ、コレクションフレームワークを元にラップしてやるわけだが。
すみません、続いてなんですが、 先ほど晒したソース中、 m= new ((Member)vecm.elementAt(i)); という文がエラーになるんです。 identifierがありません ( か [ がありません という二つのエラーで引っかかってます…
>>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 それはたぶん、インスタンスが違うからでしょ?明らかじゃん。
クローン処理ではどうなの?
133 :
デフォルトの名無しさん :03/05/12 02:50
>>130 意図したnewだったら可能。2行下に「 } 」が足りてねーよ。それが原因。
>>129 すみません、確かに見にくいし、教えていただく立場なのに配慮が足りませんでしたm(__)m
やってみます。ありがとうございました(^^
kensakum()が仕事しすぎだな。 会員番号を受け取って、貸し出し可能な会員かどうか調べるメソッドloginForBollow()と、 1つだけ貸し出すメソッドlendOneItem()を分けてみるといい。 ほんとは根本的なリファクタリングをしたいが、時間的に無理だろうな
今回はどこまでがネタなのか見分けるのに手間取った。と。
>>126 そうそう、4大情報工学部卒の新人が書いたコードもこんなもんだ。
>>130 ぶはぁ
new無くしたら消えた…
ありがとうございます。大卒や院卒に負けないようにがんがりまつ!!
>>133 2行下に「}」を足すと、for文が終わってしまうんです。
>>89 の、ラストにfor文の閉じカッコがあります。
139 :
デフォルトの名無しさん :03/05/12 02:58
>>135 メソッドを分けるというのは考えてました。
一つのメソッドに全部書くと、後々大変なので…
とりあえず、この後時間が許す限りやってみまつ!
どうもです〜
141 :
Sparc :03/05/12 03:44
JBuilder使ってて、実行することができないですがJDKは内蔵されてる やつじぇなきゃいけないですか? javac使えても、Builder上では、実行できません Borlandの本とかありませんか?
今回はちょっと難しかったが日本語に訳してみた。 JBuilderを使っています。 コンパイルはできるのですが、実際に実行しようとするとエラーが出ます。 エラー内容を書き取るのを忘れてしまいましたが、次に書き込みする時までに準備しておきます。 後、お薦めのJBuilder用の本があれば教えてください。
sun1 使えフリーでしょ
なんだこりゃ
145 :
デフォルトの名無しさん :03/05/12 04:35
>>142 お前は、燃料タンクがない車に乗ってるようなもの。
検索してみろ。Java 動作原理 だけでも1000件近くヒットする。
146 :
デフォルトの名無しさん :03/05/12 05:15
BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); バッファリングしてるだけでも、新人の一発目としてはいいんでない?
前スレの927以降印刷プログラムが起動しないとかって 質問したものですがdat落ちしたもので見れなくなりました。 もし解答が書かれているのであれば失礼ですが教えてください。 よろしくお願いします。
すいません、ZIP圧縮プログラムのことで 質問したいのですが、 ZIP圧縮プログラムを作成して、LhasaやWinRARなどの解凍ツールを 使えば正常に解凍はできるのですが、WinXP標準搭載の解凍Wizardを 使用するとフォルダのみ生成されて中身がスッカラカンという状態になってしまうのですが 何故このような中身が空になってしまうのか分かる人いますでしょうか? またどうやったら回避することができるのか分かる方いましたら 是非お願い致します。
149 :
デフォルトの名無しさん :03/05/12 15:04
Javaでif文や、switch文が少なくなるようなクラス設計ってどうやったいいのですか?
>>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 無名クラスですか。ありがとうです^^
処理の順番は継承してインスタンス化、
記述の順番はインスタンス化して継承、
言い方はどちらもありそう。
>158 お返事、ありがとうございます。 最大化という意味合いではなく、 画像のみを枠無しで表示、ようはスライドショーなんかを実行したときの ようなイメージを作りたいと思ってます。 たぶん、158さんのおっしゃるやり方でできると思いますが・・・勉強してきます。
161 :
デフォルトの名無しさん :03/05/12 19:13
javaとは以下の公式で成り立っている。 [java = C++に標準クラスまたは関数を追加]
162 :
bloom :03/05/12 19:13
164 :
デフォルトの名無しさん :03/05/12 22:03
javaを勉強し始めた者です。何を教材にしたらいいのか迷ってます。 JAVAドキュメント以外におすすめの参考書やホームページ教えてください。
C++のstd::stringとかstd::vectorって標準じゃないの?
168 :
デフォルトの名無しさん :03/05/12 22:16
>>164 javaとかJAVAとか書くな。「Java」と表記しろ!!!
お勧めは「あんたが本屋で一冊目に購入するもの」です。
ちなみにJavaは知らないんで、標準クラスの意味を間違えていたらスマソ
" " を使って、複数行にわたって書きたいときはどうすればいいのですか?
>>170 無理。
" " +
" "
みたいに + で次行に繋ぐとか。
172 :
デフォルトの名無しさん :03/05/12 23:18
appletviewer ってCLASSPATHを参照しないのかな? アプレットクラスが使用しているパッケージが他の場所にある場合、 どうやって指定するの?
先日お世話になった55でつ。 無事仕上がりました! ありがとうございました〜(^^
>>172 HTMLにcodebase書くんじゃなかったっけ。
実際にはWebブラウザ上で呼び出されるわけで、HTML上
で指定する以外は無意味だと思うが。
175 :
デフォルトの名無しさん :03/05/13 00:31
>>174 テストはコマンドラインからappletviewer実行して行うのが普通。
>>175 それはわかってるってば。ボケですかあんた。
・AppletMain.class アプレットクラス ・libPackage アプレットクラスがimportしているパッケージ(ディレクトリ) これらが同じディレクトリにあれば問題ないけど、別のディレクトリに存在する場合どうするのかなと appletviwerがCLASSPATHを参照するか、実行時にクラスパスを設定できれば良いんだけど テスト時、最新ライブラリクラスをアプレットが存在するディレクトリにコピーするのが面倒くさい
178 :
デフォルトの名無しさん :03/05/13 01:33
179 :
デフォルトの名無しさん :03/05/13 01:34
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窓のような黒にしたいと思ってます。 あれが黒なのか、表示されてないだけなのかは知りませんが・・・ よろしくお願いします。
>>175 つーかhtml上での動作を確認するためのシミュレータで
環境によって動作結果が違ってしまうのは変だろ。
>187 javaで2Dゲーム用のライブラリ誰か作ってない? スプライトとかAudioとかその辺のライブラリを使いやすく して欲しい
JFrameの中を単一色で塗りつぶしたいと考えています。 今は,JFrameをフルスクリーン表示、そしてボタン(画像)を表示させてます。 setBackground(Color.black)を追加してるんだけどどうも・・・ よろしくお願いします。
190 :
ICQ:3458525@hn :03/05/13 18:36
基本は絵画ポインタ( Graphics object )を絵画オブジェクトのコレクションに次々と渡していくっていう感じだ。
JTextFieldにリアルタイムで3桁区切り(111,111,111)で表示するには,どうすればいいか だれか教えてくださいよろしくお願いします。
>191 javax.swing.JFormattedTextField
>192 もっと詳しく教えてくれませんか?
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
言葉で説明できんのならソース貼れ。
204 :
デフォルトの名無しさん :03/05/14 01:03
マルティスレッド?わしはシングルスレッドでいっぱいいっぱーい。わけわか。
ゲームの思考ルーチン
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を抜けるとどうなるんだ?
全部さらしてくれ
>>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
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 いや、そのプログラムの目的次第かと・・・。
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ライブラリやアプリケーションサーバ
のリファレンス実装などがはいってる。
> いまどき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コマンドで表示させないようにするには どうしたらよいのでしょうか? すみませんが、教えてください
247 :
bloom :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使ってる?
>>251 ありがとうございます。
J2SEはSunの1.4.0_01のWindows版
Javadocも同じです。
カスタムDocletは使ったことないです。
Antを使ってましたが、今はEclipseのJavadocへのエクスポートで十分なので
それを使ってます。
いま気になったので、新たに無名インナークラスを持ったAppletを制作したのですが。
おっしゃるように無名インナークラスは出力されませんでした・・・・。
javadoc.xmlのオプションは何も違いないのですが・・・・。
すみませんがよろしくご指導ください。
俺の問いに自信を持って答えられる奴は誰もいないのか? 未熟者め。
>>224 while から抜けることが保証されていない。
抜けられるような入力しか与えないのだろうから
現実には抜けられるんだろうけど、
処理の流れ的には無限ループに入りっぱなしの可能性があります。
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の場合はどうすればいいですか?
>>244 デバッグビルドのロギング文挿入削除には、AspectJを使え。
実行時の変数のインスペクションには、IDEのデバッガを使え。
266 :
デフォルトの名無しさん :03/05/15 00:05
>>264 それではムリポ
ちなみに私はJ++を使ってます。
main() の最後で System.out.println("何かキー押せ"); try{ while(System.in.availabale() <= 0) Thread.sleep(1000); }catch(InterruptedException e){ } とかすれば?
271 :
デフォルトの名無しさん :03/05/15 00:29
スンマセン。 JAVA超初心者なんで基礎本買ってきて勉強始めてみたんです。 本の一番最初に載ってるサンプルプログラムを入力してみました。 けど画面に”ようこそ”とか何もうつらないんです。 何か設定おかしいんでしょうか? 御指摘願います。
>>268 一概にそうとも言えないと思う
ウォッチとか便利だし
jdkと併用してマス
鬱.....
JAVAが出てきません。 うまくいきません。 初心者なのでお願いします。
なんだネタか
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があります。
ここは初心者大歓迎スレですよ?
>>296 スレ違い
人としての初心者はこちらではありませんよ。
300 :
デフォルトの名無しさん :03/05/15 15:49
JSPで〜や−等が?に化けてしまうのですがどうすればいいですか? 日本語や正しく表示されています。 subject = new String(subject.getBytes("ISO_8859_1"),"JISAutoDetect");
×日本語や ○日本語は
>>300 JISAutoDetect って SJIS JIS EUC_JP だけじゃなかったっけか?
〜 とか − は MS932 と SJIS で割り当て違うから化けて当然かも。
>>303 300を読むとわざわざコード変換入れているわけだから、
フォームでクライアントから渡された文字列をJSPで扱っている気がするぞ。
それするなら、気休めだけどフォームにaccept-charset=Windows-31J
入れたほうがいいんじゃないかな。
>>302 どのエンコーディングを使用するかは、どんなリクエスト属性で判別すれば
いいのでしょうか?
MS932を適用するには、リクエスト発信者がWindowsプラットフォームであ
ることを確認しないとだめですよね?charsetだけじゃ不十分ですよね…
クラスパスってどうやって追加するのですか? っていうのは冗談ですが、 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
おまえらマルチスレッドの話題をヤレ
>>307 ああ、フォームを記述するHTMLのエンコーディングがそのまま
フォームから飛んでくるリクエストに反映されるんですね。なるほど。
JSPやHTMLを書く時に、charset指定を気をつければトリアエズよし、
ですか。
この動作を保証しないようなブラウザって、あるのかな?
>>306 1度ClassLoaderのインスタンスが完成してしまったら、
そのインスタンスが参照するCLASSPATHを変えるというのは
無理チャウかな。そんなことができてしまったらセキュリティホ
ールかも。
SystemClassLoaderは、初期設定のCLASSPATHを見るで固定
なので、残念ですが自作ClassLoaderを子に与えて、面倒事は
耐えるしかないだろね。
313 :
デフォルトの名無しさん :03/05/16 01:26
>>308 なるべくシングルスレッドにする。
Threadをnewするのは、それをしないとどうにもならない場合だけ
にします。
1.3以前でSocketその他のブロッキングI/Oを管理するときとか。
1.4以降ではSelector使って、ワーカースレッドはCPU数+αで固定。
>>312 SystemClassLoaderは私の環境(標準的なJDK1.4)では
ClassLoader.getSystemClassLoader()で
Launcher$AppClassLoaderが帰ってくるのですが、
クラスパスを保持しているようなフィールドがないですね。
あればリフレクションで書き換えてしまえるのだが。
>>316 ちゃんと読んでくれました?そんなことが出来たらセキュリティホールですよ。
>>315 んーやっぱ監視用スレッドが必要なときとかね。
以前ロガーを作ったときは
メッセージ用のキューに値を格納するスレッドは
もともとのスレッドだが
そのキューを処理して出力するスレッドは
別スレッドにした。
>>315 >1.3以前でSocketその他のブロッキングI/Oを管理するときとか。
ここがわからないよ。僕、末男。
>>316 ちなみにLauncher$AppClassLoaderのgetParent()で
Launcher$ExtClassLoaderが返ってくるのですが、
Launcher$ExtClassLoaderにprivateフィールドの
File[] dirsがあって、%java_home%/jre/lib/extを参照していて、
ためしにリフレクションで書き換えたら、
好きなところに設定できた・・・
これもセキュリティホール??
321 :
デフォルトの名無しさん :03/05/16 01:42
クラスパス情報保持してるよ。 URLClassLoader#getURLs()メソッドでクラスパスの設定を読むのはできる。 書き換えは出来んだろ。
>>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%の糞ブラウザに対応したかったら別の方法を考える。
>>321 sun.miscパッケージをもうちょっと調べてみます。。。
326 :
デフォルトの名無しさん :03/05/16 01:47
>>320 リフレクションを用いたprivateフィールドのハックは、
セキュリティホールもヘッタクレもないね。
本当はそんなことが出来ないように、特定のクラスの
リフレクションハックについてPermissionコントロール
がVMに設定されていないといけない気がするけどね…
今思いついたんだけど、 XMLからクラスパスを取得して、 そのパスを保持する別VMを起動して そのVMにクラスを取得させて VM間で通信っていうのはどうなんでしょう? そういうのってできるのかな?
>>328 プロセス間通信のオーバーヘッドが気にならない仕組みなら、ね・・・
TCPベースの送受信が発生するので、激しく遅くなるのは覚悟しよう。
330 :
デフォルトの名無しさん :03/05/16 01:54
>>330 なるほどね。
RMIはやったことないのですが、勉強してみます。
>>325 sun.*パッケージのリフレクションハックは、お勧めしないよ。
JDKのバージョンごとにメソッド名やフィールド名や機能が変わるから、
JREのバージョンやプラットホームが違うだけで、動作が保証でき
なくなる。
いろいろすごいことが出来るようになってしまうので、つい遊んでしま
うけど、人に使ってもらう仕組みを作る際には、公開インターフェイス
以外は使用しないのが吉。なるべくライブラリ作成者の意思は尊重
したほうが。
>>332 確かにクラスを動的生成してinvokeするようなAPIに
クラスパスを操作するようなものは見たことがないな・・・
たいていクラスパスを設定させていますね。
実はテキストファイルのテンプレートエンジンの
あまり複雑じゃないのを作っているのですが、
サーブレットコンテナみたく、独自にクラスローダを
実装するのがよさそうですね。
初めまして。 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
このスレでサーブレットの質問しても大丈夫でしょうか? スレが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 お前話読んでないだろ。
ここでは「簡単にできること」が何を指しているのか良く考えろ。
「簡単にできること」が指している物のせいでメンテナンス性は悪くならんんだろ。
>>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の話はもういいよ。なんの価値も無い。(藁
Java2 Runtime Environment, Standard Edition 1.4.1_02 をダウンロードして解凍したんですが、 binフォルダの中にjavacと名の付くファイルが入ってません。 どうしてなんでしょうか?
Java2 Runtime Environmentだから。 Java2 Software Development Kit をダウンロードせい。
>349 >345 おお、サンクス。なるほどシグネチャを変えるのか。 >344 そうそうJavaHouseではドアのopenとコネクションのopenを実装する時云々って話だった。 ま、結論としてはJavaではできませんって事だが。
あ、これじゃ誤解招くな。同じシグネチャでもimplementsするだけならできるぞ。見分けつかんけど。
>>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(){...} }
間違えた。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側のメソッド名を変更する事もありだと思う。
そういうリファクタの繰り返しでシステムが良くなっていくのだと思うし。
>>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 切り捨てたのを連結したりまぁ、面倒ではあるよ。
385 :
デフォルトの名無しさん :03/05/17 22:12
>>381 ってことは、そういう風に実装する手段は自分でやるしかないんでつか!?
あんたがいう処理を実装できる力はオレにはない・・・。
386 :
デフォルトの名無しさん :03/05/17 22:16
>>372 の内容について何方か宜しくおながい致します。
>385 JTextAreaでダメならそうするしかないだろう。
>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
この場合ダウンキャストていうか?
397 :
デフォルトの名無しさん :03/05/17 23:10
389 名前:デフォルトの名無しさん 投稿日:03/05/17 22:29 小数点付きの数字を 小数点第二位までで切り落とすようなことやってくれる 便利なメソッドってないですか? 自分で100倍してintにキャスト さらにそれをdoubleにキャストして100.0で割っていますが こんなやり方でいいんですかね?
398 :
bloom :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
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
>でも規則で持ち込み禁止よ こんな会社あるんかい? どれ使ってもいいんじゃないの?
>>389 科学計算でもない限り小数値をdoubleで扱うのはやめとけ。
java.math.BigDecimalを使うとよろし。
413 :
デフォルトの名無しさん :03/05/18 00:49
414 :
デフォルトの名無しさん :03/05/18 01:01
>>413 ビッグデシマルは丸め誤差を考慮してくれるんだべ?
プッハァーー??∴∵∴∵∵∴∵∵∴∵∴
413じゃないけど412,414のいいたいことがわからない 389の要求に対してはNumberFormatあたりがよさげ。
416 :
デフォルトの名無しさん :03/05/18 01:11
>>414 3行目じゃなくて、2行目の方だよ。
『doubleを扱うのはやめとけ』の理由。
ちなみに『プッハァーー』の後は文字化け?
NumberFormatじゃなくDecimalFormatの方がいいか
DecimalFormatで####.##とかフォーマット指定してパースするのが一番楽かな。 ただし精度指定の無い小数点以下は四捨五入になるが。
419 :
デフォルトの名無しさん :03/05/18 01:50
>>416 文字化けじゃない。気を狂わせてみただけだ。
おいらはdoubleを扱わない方がいい理由で doubleはアトミックじゃないからとか 書いてくること期待していたのに。 まぁ、やりたいこと的にはDecimalFormat使うか 一度Stringにして切り出すかな。
Intel x86的には、floatよりdoubleを使った方が、処理は高速(メモリは消費)ですか?
>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では『\』の文字が『/』になってしまうってことだ おぼえておけよ
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 ???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
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
>>445 どうしてもシンクロ使いたくなかったら
自分でJava用に適したラウンドロビンなどのアルゴリズムでも作れ。
速度なんかいちいち気にするな。
ラウンドロビンソンってのがレベル高いのか?
450 :
デフォルトの名無しさん :03/05/18 14:33
だからいくら同期を採ろうとも実行速度はIBMの方が早いわよ! プラットホームに違いがなければみんなSunしか使わないじゃない。違いがあって それに依存して標準よりいいものができるんでしょ。
>>450 速度が違うのか、実行結果が違うのかはっきりしろ。
453 :
デフォルトの名無しさん :03/05/18 14:39
すっかり忘れてたわ! 確かに同期を取れば結果は同じね! 負けたわ・・・
上の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
質問です。 タイムスライス:実行中のプロセスを一定期間単位強制的に切り替え、マルチタスク、マルチスレッドを実現する方法。 ラウンドロビン:そうやって細切れになったプロセスの破片をどういう順番で実行するかというスケジュールの話。 だと覚えてたんですが、ここではこれらが同列に語られています。私の認識間違ってますか?
タイムス ライス と ラウン ドロビン ってなに?
>>457 なんかKABAちゃんみたいのが勘違いしてるだけだから気にするな
>>451 > EclipseはJavaで出来たコンパイラを内蔵
へ?そうなん?知らなかった。
JREでもEclipseはコンパイルできるのか。。。。。
>JREでもEclipseはコンパイルできるのか。。。。。 出来ないだろう。Eclipseをコンパイルするには何らかのJavacがいる。
混ぜっ返すな。 >Eclipseをコンパイルする
>>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を削除してから立ち上げてコンパイルしてごらん。
>>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
>>438 全部UTF-8にしてしまえばnative2ascii使わなくても済みそうな気がするが
そうもいかないのか?
昔javadocがUTF-8に完全対応していないときはantでnative2asciiでascii用ソース作ってから
Javadoc生成した覚えがある。
479 :
デフォルトの名無しさん :03/05/18 17:02
わざわざ 「logger用スレッド作って」 っていうのが引っかかる ログなんてどれもパフォーマンスに影響しないように 設計されてんのに おまえの設計はわざわざ負荷かけてまでログに命かけるんか?
480 :
デフォルトの名無しさん :03/05/18 17:14
>>479 >ログなんてどれもパフォーマンスに影響しないように
>設計されてんのに
影響が最小限で押えられるように。だろ。
I/Oって知ってる?
482 :
デフォルトの名無しさん :03/05/18 17:19
>>481 ワラタ。懐かしいな。工学なんとかという出版社がだしていたヤシだろ
>>481 9年前にその雑誌読んだことあるけど
ハッカー向けとは思えなかったな。
JavaもCも知らなかったM$-DOS時代の当時PC初心者向けの漏れにはうってつけだった。
>>474 ここで
>不要になったオブジェクトにはnullをポイントするとか
に言及するのが意味不明なんだがどういう意味?
保持していた変数がスコープを外れてオブジェクトがどこからも
参照されなくなればgc対象になるし、スタティックに保持されて
いたとしても、そもそもメモリリークの原因になるからプログラマが
気をつけるのはいうまでもなくあたりまえ。つーかそもそも速度
と関係するのか? GCがかかるとそこでVMがもたつくから、GCの
タイミング制御したいって話かなという気もするが、null入れても
GCの対象になるってだけでそれでタイミングを制御できるわけじゃないしな。
>>485 メモリを増やす−>速度が上がる
とか言うPC初心者用の常識を引きずっている人がいるって感じなのだろうか?
487 :
デフォルトの名無しさん :03/05/18 17:49
ガベコレ時のパフォーマンスが多少良くなるだろ。 Iアプリとかなら参照にnull入れてから明示的にガベコレ起動させたりするけど サーバの話か
>ガベコレ時のパフォーマンスが多少良くなるだろ。 なんで?
ぬるぽはいいけどガベゴレはムカツク
491 :
デフォルトの名無しさん :03/05/18 17:56
>明示的にガベコレ起動 コード晒せ
>>485 一つのメソッド内で多重ループを何千回もかわすことはないのか?
そういうとき、アルゴリズムによってはnull代入するだろ。
変わりに同じ変数を再利用とか。
>>485 悪いが説明するのが面倒くさいから「Javaの鉄則」を読んでくれ、
でいいだろ。
>>493 >一つのメソッド内で多重ループを何千回もかわすことはないのか?
アルゴリズムを見直す。
って言うかそのループ内で参照が有効なメモリがどんどん累積してる方がおかしい。
for(int i = 0;i < 5;i++)
{
Vector v = new Vector();//前回のインスタンスへの参照は新しいインスタンスによって上書きされる。
〜
}
496 :
デフォルトの名無しさん :03/05/18 18:05
498 :
デフォルトの名無しさん :03/05/18 18:06
>>496 メモリがしょぼい環境なら多分動くだろ
保証なんて何もないが
>>495 参照は切れるけど、GC されるまではメモリに残ってるでしょ。
null 代入じゃなくて、オブジェクトの生成をいかに少なくするかだと思う。
>>493 >変わりに同じ変数を再利用とか。
多重ループの中にオブジェクトを保持することが問題になるくらい
長いスコープが存在するのなら、そのソースはリファクタリング対象。
訂正 >多重ループの中にオブジェクトを保持することが問題になるくらい ↓ >多重ループの中にオブジェクトを保持しつづけることが問題になるくらい
Labelオブジェクトに表示させるテキストを2行に渡って表示 させることってできる? Label label=new Label(); label.setText("AAABBB"); をAAABBBでなく、 AAA BBB と表示したいです。 過去スレに<BR>を使えばできるようなことも書いてあったの ですが、AAA<BR>BBBと表示されてうまくいきません。 詳しい方、教えてくださいませ。
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ファイルを書けば必要なものは全部自動的にインストールして
アプレットを実行してくれるよ。
>>504 ,508
ありがとう。やっぱりダメみたいです。
ゆうべは
>>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倍するとか、文字列のまま持っておくとか。
>>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 の言う通りの実装だが、どういう結果になりますか?
しかし、浮動小数点演算の落し穴なんて常識だと思ってたんだが、
理解してた(っぽい)のは
>>414 だけだって、どういうこと?
もしかして、世の中には金利計算をdoubleでやってるプログラムがあって、
知らず知らずのうちに漏れの定期預金の利息も減らされてたりするのか?!
>>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 を付けなきゃだめ。
つうかなんのためにデシマル型や通貨型があるのか考えろと
スターメニューにあるコマンドプロンプトからはjavacできるのに、 system32にあるcmd.exeだとjavacできません。 pathはちゃんと通してあります。 xyzzyからC-x cでプロンプトを立ち上げるとsystem32にあるcmd.exe のほうがたちあがるのでjavacできないです。 なにか解決法を〜
というか スタートメニューのコマンドプロンプトもsystem32のcmd.exeも同じ だと思うんですけど、できないです。たすけてください
プロパティをチェキ
プロぱてぃをチェキしてみたんですが、 スタートメニューのコマンドプロンプトのリンク先はちゃんとsystem32のcmd.exe・・・ つまりどっちからやっても同じ結果になるはずなのに。。。だめなんです。 で、スタートメニューのプロンプトからsetで環境変数pathを見てみると ちゃんと通ってます。 で、system32のcmd.exeでsetで見てみると、何故か通ってないのです。 どうすればいいかわかんないです。。。。。。。。。。。。。。。。。。。。
cdしてないとかいうオチではないだろうな
このレスを見た人間は十三日以内に死にます。 ※あなたに訪れる死を回避する方法が一つだけあります。 それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です /\___/ヽ ヽ / ::::::::::::::::\ つ . | ,,-‐‐ ‐‐-、 .:::| わ | 、_(゜)_,: _(゜)_, :::|ぁぁ . | ::< .::|あぁ \ /( [三] )ヽ ::/ああ /`ー‐--‐‐―´\ぁあ
>>530 ちゃんとしてますですよ
で、今試しにsystem32からのcmd.exeの環境変数pathをコンソールから
設定してみて、javacしてみたら一応できたんです。でも、もう一度
立ち上げ直してjavacするとまたできなくなっていて環境変数ももどってるんです;-)
>>532 普通にシステムのプロパティから環境変数設定してみたら
>>533 それも最初にやってだめだったんです。。。。
んで、今再起動したらなんかできちゃいました(;´Д`)
XPなら再起動はいらないと思ってたんで。。。。
どうやらsystem32のcmd.exeからで、設定を反映させるには再起動
がほしいみたいです。。いやーすんません。単純なミスで。。。
答えてくれた方 ありがdございました
535 :
デフォルトの名無しさん :03/05/19 03:16
MEってなんすか?
>>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 無関係な上に板違いくさいんですがその書き方ってのを教えてください
でも実際に使ったら観覧者にかなりうざがられそうでつね。
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
>>541 あう、そうなんですか。
悲しいっす。
こうなったら、HTMLをはき出して、その中にPOSTデータを埋め込み、
onLoadで目的のサーバへ飛ばすしかないですねえ。
どうもありがとうございました。
545 :
デフォルトの名無しさん :03/05/19 13:57
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から動かしたいんですが どうしたらいいんでしょうか?
550 :
デフォルトの名無しさん :03/05/19 20:01
だったりしないわけでもない
どっちやねん。
とりあえず答えとくか。別にmainっていっても単なる public static voidなメソッドにすぎないからそのまま よんじゃえばいい。ただ注意しないといけないのは、 世の中のJavaアプリケーションにはメモリとかウィンドウの リソースの後始末をいいかげんにして、System.exit()して お茶を濁すものがある。こういうのを対策なしでよぶと VMが終了してしまう。SecurityManagerを使うことでVMの 終了自体はキャンセルできるが、もとの後始末が出来てない ことにはかわりがない。 で、どうして 147 かどうか聞いたかというと、彼の場合、まさにこの 問題が生じていて、それを自分で認識できていなかったから。
553 :
デフォルトの名無しさん :03/05/19 21:11
>>552 回答ありがとうございます。
ただ、初心者なものでできれば具体的なコードを
教えていただけたら嬉しいのですが^^;
答えていただいたのに気を悪くしたらすみません。
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は作れますか?
560 :
デフォルトの名無しさん :03/05/19 21:42
>559 どうもありがとうございます。 プライベートでは二つのプロバを使ってるのですが、 片方のプロバイダにつないで、もう片方のプロバイダの送信サーバだけを 指定して送ったら送れました。 そのときのメールはのあて先は転送メアドでっす。 会社のサーバにも 自宅からプライベートのプロバにつないで 送信サーバだけ指定して送信したら おくれちゃったので、これでいいのかなって ついつい考え込んでしまいました。 つまり、これってSPAM業者がわが社のサーバ(プライベートのプロバイダも)を 経由してメールが送信できるってことなのかな〜 って思ったのですが、的外れなのでしょうか?
562 :
デフォルトの名無しさん :03/05/19 21:52
>561 どうもありがとうございます! そちらの板で勉強してまいります!
>>554 >>つーか、ほんと呼ぶだけなんだけどなぜ試さないの?
えっと呼び方がほんとわからないんですが・・
beansとして普通に (id名).main(); として読み込むと
main(java.lang.String[]) は () に適用できません。
とエラーがでてきてしまいますし・・
未だ問題か解決できなくて申し訳ないです。
↑すいません、548でした。
>>563 void main()とvoid main(String[])は別物。(id名).main(null)で呼んでみそ。
>>548 そりゃエラーでるでしょ。mainの定義は
public static void main(String[])なんだから、
それに応じて引数いれないと。
ありがとうございます。 >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 個
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でエラーが発生しました
>>519 ,520
浮動小数点数の丸め誤差について知らないと思われるのは心外。
今回の件については丸め誤差の話はどう考えても的外れな指摘だと思うが。
>>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の訂正 数字のクラス→数字の画像イメージ
>>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 げげげ、見えてないです。
かなりやばいんでしょうか。
582 :
デフォルトの名無しさん :03/05/20 00:05
>>581 翔泳社の「10日で覚えるJAVA実践教室」ってヤツです。
>>580 C:\Program Files\Apache Group\Tomcat 4.1\conf\server.xmlに
なんて書いた?ちゃんとコンテクストを追加したか?例えばこんな風に。
<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true"/>
んあぁ、Servletが動いたのならコンテクストが追加されていない可能性は無いか。 583は無視してもいいかも。
585 :
デフォルトの名無しさん :03/05/20 00:17
>>583 例文そのまんまの文章ありますね。
というより、べつにディレクトリ作成などしてないので
初期状態のままといったほうがいいかもしれませんが。
全部ファイルはテキストどおり置いてるだけなんで。
すまん、おれ初心者だからよくわからんのだけど、デフォルト パッケージのMyCounterクラスを使うのにimport "MyCounter"; ってするものなの? MyCounterクラスがMyCounterパッケージに 属しててそれをimport "MyCounter.*";って指定して つかうのならわかるんだけど。
588 :
デフォルトの名無しさん :03/05/20 00:31
>>586 importはあくまでクラスのインポートだからそれでいいとおもうんですが・・。
(初心者もいいとこなんで確証まったくなし)
あと、パッケージ式に書き換えてコンバイルしても結果は同じでした。
マジ分からん。
いっそトムキャットから何から再インストールしてみようかって感じです。
はあ。
このばあい<% page import="MyCounter" %>は不要ということか。
>>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するときはどうすんの?
>>599 1.4 以降はデフォルトパッケージは import *できない* ようだ
Java で User-Agent を設定するにはどのクラス&メソッドを使えばいいのですか?
>>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 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だろ
>>617 JDKじゃなくてJVMだと思うけど、「世代別コピー方式」かな。
J#ってどうなんすか?
質問なんですが、 gc()メソッドを使うことにより明示的にガベージコレクションを動作させることは出来ますか?
>>605 そのとおりFrame等をだしたいんです。
>>604 実際はmainメソッドで印刷処理をしたいんです。
出力内容はダイアログボックス(印刷プロパティ)をだしたいのですが
とりあえず簡単なFrameでもと思っています。
出力先はクライアントです。
Webから印刷させたいんです。
可能なんでしょうか?
624 :
デフォルトの名無しさん :03/05/20 19:43
>>616 トランザクションログのサイズを見積もっておけ。
その上で、適度にコミットしないとログが増えてアポーンになる。
>>626 今の今までせっせこやってた姿を思い浮かべます
628 :
デフォルトの名無しさん :03/05/20 21:42
質問ですが、 com.sun.tools.javac.v8.* について詳しく解説しているサイトはないでしょうか?
>>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に差し替えて
エラーの内容を取得しているのですが、
エラーの内容を解析するのはつらくて・・・
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してまで使う意義はどこにあるのでしょうか。 お願いします。
また、Iterator を使った方がよい場面、 Iterator を使う典型的な場面などあれば (どういったときに使えばよいのか) お願いします。
>>634 1万とか大量のデータをArrayListに放り込んで、
時間を計測してみな。
>>635 あえてIteratorを利用するメリットとしてはListやSetなどのCollectionのサブインターフェースで統一してオブジェクトを取り扱うことが出来るということがあげられます。
デメリットとしてはパフォーマンスが悪いことがあげられます。
特にSetを使うことがなければListを利用して、forループを書くのが良いと思います。
>>636 >
>>634 > 1万とか大量のデータをArrayListに放り込んで、
> 時間を計測してみな。
実はイテレータの方が遅かったのですが
639 :
デフォルトの名無しさん :03/05/21 00:40
Iteratorにした方がカッコイイじゃん
640 :
デフォルトの名無しさん :03/05/21 00:40
>>638 ArrayList でなく LinkedList でやってみたら
>>636 氏の言った意味がわかるっしょ。
>>637 ありがとうございます。
というかそもそもSet自体どういうときに使うのやらよくわかりませんので
添字で回してがんがります
>>640 > 1万とか大量のデータをArrayListに放り込んで、
って書いてあるしなあ。
Iterator使うとLinkedListがArrayListに近い速さになるのは知ってるけどさ
>>636 件数多いとIterator使うよりfor文で回したほうがはやいよ…
>>634 単純に、size(),get(int i)で要素を走査(操作)できるClassより、
Iteratorを使って操作できるClassのほうが多いってのがある。
たとえば、上記の要素をすべて出力部分をサブルーチン化する場合、
引数にListを受け取るよりもIterator(Collection)を受け取ったほうが、
引数に適用できるObjectの種類が増える。
>>632 com.sun.tools.javac.v8.*でコンパイルが成功しました。
ただ、コンパイラのインスタンスを生成するための
コンストラクタの引数が複数あって、
いまいち訳が分りません。
645 :
デフォルトの名無しさん :03/05/21 00:49
>>642 ていうか LinkedList で get(i) 使うと O(n^2)になるのだ。
RandomAccessをimplementしてるかどうかの違いですかね。 Iterator使えばどのコレクションでも同じようなパフォーマンスは得られると。
あ、順次アクセスに関してです。
>>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を
修正するだけでよい。
このため、利用者側では特別な理由がある場合を除いて
イテレーションに対するコードに影響がなくて済む。
657 :
デフォルトの名無しさん :03/05/21 02:47
コレクションの中身のオブジェクトがどういう構造になってようが、 その順次アクセス方法はイテレータだけが知ってればいい。 javaの既存のapiが例だとパフォーマンスの話に行きがちだけど、 基本的なプログラミング手法として便利だよ。
658 :
デフォルトの名無しさん :03/05/21 02:57
>>657 イテレータを返すようなメソッドを作ったらいいのですか?
イテレータをimplementsするんですか?どう実装したらいいのかと。
>>653 system32の下にあるjava.exeを消去してから
再インストールしたら実行できました。
本当にありがとうございました。
ちなみに注意点ももちろんある。 質問者さんが初心者っぽいので補足しておくよ。 当然ながら、通常、イテレーション中にその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歳、髪の毛チョイ薄 ハヤクキテ スグキテ
>>549 さんありがとうございます。
では今までのことをまとめてみると結局mainメソッドのSystem.exit(0);
の処理が原因であり、これを直したらうまくいくということで
よろしいんでしょうか?
また、mainメソッドの呼び出しが駄目なのであれば
どのようにしてこのclassを実行させればいいのでしょうか?
TomcatをSYSTEMで起動してるからといってクライアントに
ダイアログを出せないわけではないんですよね?
1つのFrameでもクライアントにだせるソース・方法なんか教えて頂ければ
誠に嬉しく思うのですが甘いですかね?
>>663 Windows XPでAとBの二人が「ユーザーの切り替え」してるとする。
ユーザAが実行したプログラムのウィンドウがユーザBの画面に表示できると本当に思ってるのか?
この場合、ユーザAがSYSTEMで、ユーザBが普段使ってるアカウントだ。
解決方法は、普段利用するときにSYSTEMでログインする事。
そんな方法知らないし、興味もないけどな。
Javaの問題じゃないからWindowsの勉強でもしてくれ
>>604 甘いとかそういう話じゃなくてできないものはできない。
X Window System みたいにネットワーク等価なウィンドウシステム
じゃないから。
まあ、Frameとか技術的な要件に落としこむ前に、どういう目的で
ユーザがどうつかうかっていう仕様を書き込んだほうがはやいんじゃない
ですか? 誰が何をどこのプリンタに、誰がどこで指定した印刷設定で、
出力するかとか、あなた一度もまとめて書いたことないでしょう。
前スレの流れも自分で全然フォローしてないし。
それなりに質問の体裁を整えれば、親切でひまな人が相手してくれるかも
しれないよ。
>>664 まえにダイアログは開いたっていっているから、アカウントは
なんとかなってんじゃないですかね。どういう環境かは不思議だけど。
前にサービスじゃなくてログインユーザでTomcatを動かしたら、
Runtime.execできたとかいってたから、このときもログインした
ユーザでやってたのかな?よくわからん。
ごめん、なんか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: クラス名 どんな簡単なクラス(ハローワールドとか)入れてもこれだし、 コンバイル自体はフツーにできるし。 ただ見れないだけ。 パスの設定とかも見直してみたし、別に設定が間違っているようにも見えませんが。 クラスパスの設定がおかしいってことなんですかね。
>>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
683 :
デフォルトの名無しさん :03/05/21 22:28
>682
それが狙いだったりする罠
683 :名無し :03/05/21 22:37
>>682 それぐらい猿でもわかるつーの
683 :デフォルトの名無しさん :03/05/21 23:37
>683は猿以下
ご返答ありがとうございます。 とにかく今は使いやすい方を使うということで、 難しく考えず、先へと勉強して行きます。
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"にしてみて。
>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});
>>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ではないクラスはファイル名とクラス名が一致している必要はない
>>700 結局こういう古典的な話に行き着くんだよね。
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 メソッドのコピーがインスタンスの数だけ作られるのでは、と思っているのなら
そんな心配は御無用です。メソッド(関数)の実体は一つだけです。
>>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の再起動は行いました。
>>709 そう思って「C:\J」を見てみても
クラスファイルができてないんです・・・
>>708 java って打ったら
Usage: java [-options] class [args...]
とか出る?
>>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がなにもしないプログラムだから
>>714 あ、なるほど・・・
でもすいません、"" のしたのが間違いでした
主旨は、 ! 演算子と boolean を返すメソッドの組み合わせのとき、です
>>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 ) { ... }
なんてのもたまに見るな…
>>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
>>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ペリカいただきます♪
本当に何故ダメなんだろう・・・
再インストール とかいってみる
>>728 今、ためしてみました。
OSの再インストールは手間過ぎるので、JDKの再インストールを。
残念ながら結果は同じでした・・・
よくワカラソ パス全部書いてもダメ? C:\J>C:\jdk1.2\bin\javac C:\J\Kantan.java
DOSまどで、 SET CLASSPATH と SET JAVA_HOME と SET PATH して、 のせてみ!
$mv Kantan.java Gekimuzu.java たぶんこれでうまくいく
734 :
デフォルトの名無しさん :03/05/22 20:36
マジレスするとjavacにオプションつけてコンパイルしる
>>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 それしかないよね! 俺も今書こうと思ってた
>>736 >>737 セットしてOS再起動してリトライしてみました。
・・・ダメでした。
なんかくやしいです。
せっかく皆様に助けてもらってるのになぁ。
>>738 とりあえずHDD内を「Kantan」で検索してみろ
どこかにできてるかも(無いとは思うが)
740 :
デフォルトの名無しさん :03/05/22 21:51
すみません、どなたか教えてください。 javaからperlを動かすことはできるのでしょうか? またその場合、perlの実行が終わるまで次の処理を待ったり、 perlからのリターンコードを得ることは可能でしょうか?
>>739 検索してみました。
C:\J\Kantan.java
結果、ファイルが一つだけさびしそうに発見されました。
743 :
デフォルトの名無しさん :03/05/22 22:07
>>738 使用してるOS、作業ディレクトリの構造、全て晒せ。
Win98で開発やってんのか?
>>740 java.lang.Runtimeでお幸せに。
別なプロセスのリターンコードを得るのって、
スレッドやプロセスで監視する以外に方法あるのかな?
>>743 Runtime.getRuntime().exec(引数忘れた).exitValue()
>>744 ただ単にjavacとだけ打つとどう出るんだ?
>>745 他
ありがとうございます!
これでうまくできそうです。
748 :
デフォルトの名無しさん :03/05/22 22:23
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 なんで気付かなかったのかが凄く気になる。コンパイルを一回もせずにどうやって「なぜかできない」という結論に至ったんだろう。
>>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
765 :
デフォルトの名無しさん :03/05/22 23:24
>>762 その通りです。敢えて、前提言わなかったのだが。
御主、なかなかデキルな。
候補はでないなぁ type mismatch:cannnot convert Object to Socket とは出るけど。
だから初心者はエディタ+javacで鍛えなきゃダメだって Eclipseは基本抑えてから使えよ じゃないと勉強にならないだろ
>>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
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 どうなった? できた?
>>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
ドット絵の色情報を取得するものを組んだんですが、 取得した色の一覧を自動的に並べ替えるものがうまく出来ません。 色そのもので、赤、青、緑みたいな感じで分けて、 さらに、明るさの順に並べたいのですが、 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; では、どういう違いがあるのかよく分からないのですが、 説明できる方います?
>>790 Arrayクラスオブジェクトのsortを再利用して、
Comparatorでソート
>>794 本屋に行って、一番簡単な入門書買ってこい。
>799 Operaが毎回毎回アラーのネ申様と窓に文句いうのか・・・(((( ゜д゜ ))))
あらあら
('A`)('A`)
803 :
デフォルトの名無しさん :03/05/23 20:32
java初めて2週間の大房です。 ブロック崩しを作ってるんですが、オブジェクトが触れたかどうかの判定をしてくれるクラスなんて ないんですか?ブロックに玉が当たったらけしますよね? 最初は、ブロックの周りの各辺に触れたかどうかで判定すればいいと思ったんですが、 ボールも完全に少しずつ動いているわけではないので・・・。 5ずつくらい動かしてるんですが、それだとブロックの辺の座標を、上手く超えちゃったり 平気でするんで困ってます。 神の降臨をお待ちしてます。
自作しろや
>799>800 どうしてもアラーメッセージが消えないんですが というレスを思い出した
>>805 なんか電波を受信しているみたいでいいな。
>>803 アレな方法としては、[1ドット動かす->衝突判定]*5 とか。
>>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
前回の座標と現在の座標を結ぶ線分がブロックに重なっているかどうかで判断
交差判定でググれば、アルゴリズムがいくつか見つかるよ
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も使えることになるのでしょうか?
>>800 笑ってしまったじゃないか。
そんなレスが返ってくるとは思わなかった。
だれかあのセキュリティエクステンションやった人はいないんですかねぇ?
819 :
デフォルトの名無しさん :03/05/24 00:57
str="/a//b/c"とあったとき StringTokenizer(str,"/")で//の間の文字列が取得できません。 表示させようとしてもa,b,cとしかでません。なぜ無視されるのでしょうか?
>>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
827 :
デフォルトの名無しさん :03/05/24 01:35
>>823 とりあえずやってみれ。やってみたて結果を晒せ。
それでも疑問が残るなら、俺が親身になって
教えることはない。
828 :
デフォルトの名無しさん :03/05/24 01:54
servletの日本語版のapiリファレンスって何処で手に入りますか? それとも存在しないのでしょうか。
jakaltaにありました。 失礼しました。
>>828 探したのか?
j2eeの日本語版リファレンスは普通にある。
そっちからかよ(w>jajakarta
え、どこどこ? 便乗でプリーズ
833 :
デフォルトの名無しさん :03/05/24 02:50
かなりDQNな質問かと思いますが、普通のjavaプログラムのソースを アプレットのソースに変える簡単な方法ってないでつか? ソフトとかでもいいんですが・・・。
834 :
デフォルトの名無しさん :03/05/24 02:54
>>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でわかりやすく知る方法って なんかあります?
java単体で動かせば try{}catchでSystem.out.println(getMessage)とかで エラーメッセージがだせるじゃないですか。 このエラーメッセージを呼び出し元のサーブレットに渡したりできないかなー って思いまして・・
>>842 tomcatなら例外が起こったらコンソールにスタックトレース吐いてくれるけど。
>>842 ???呼び出し元のServletでおなじことやればいいんじゃないの?
>>842 catchしたい例外がRuntimeExceptionじゃない場合は
public void test()
にthrows句追加すれ
>>838 ああ、「続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
>>863 >WindowsDNA
懐かしい言葉だ。とっくに死語だと思ってた。
.NETも既にやばそうだが。
ぐぐぐぐって何でもぐぐるのはどーかと。 ちゃとした書籍で相違点押えろ。O'REILLYがイイぞ。
>>868 あとは@ITとかね。わかりやすいとおもう
>>861 そうか?Oracle DatabaseはJavaで書かれてるわけではないが、
Javaを知ってると使いやすい。
>870 おまえの言おうとしていることがさっぱり分からない。 Java を知っていると Oracle が使いやすいって、自分で何言ってっか分かってる?
PerlでもVBでもCでもほとんどの言語でOracleに繋げる訳だが・・・
875 :
デフォルトの名無しさん :03/05/25 01:58
876 :
デフォルトの名無しさん :03/05/25 02:01
「DBサーバをJavaにする」 惜しい。実に惜しい。もう少しでこの日本語の意図が解りそうなんだけどよ。 やっぱ無理だわ。
>>872 もうほっておけ、ホントに何も知らないらしい。
>>873 そう、繋がる。繋げるだけなら、Javaを使う必要なんてない。
Pro*Cを使っても良い訳だ。
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ってさ
で、リンクのどこを読んで「Oracle は Java を知っていると使いやすい」とかいう 間の抜けた発言が出たわけ?
>>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を勉強し始めようと思うんですが、わかりやっすい書籍は何でしょうか? たくさんありすぎてどれを選んでいいもんやら。
899 :
デフォルトの名無しさん :03/05/25 04:03
902 :
デフォルトの名無しさん :03/05/25 04:09
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]にも反映されるのでしょうか?
>>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
922 :
デフォルトの名無しさん :03/05/25 17:01
>>921 ソースコードが欲しいのです!おながいします!
>>922 おまい、ダウソロードしてから言ってっか?
ZIPファイルに入っているだろうがよ
Vectorの場合に空のところにポインタ指したら nullが帰って来ますか? ヌルポ出たような・・
vector1.elementAt(ココ)で全然違う数字指定したらってことです。
>>926 それを試すこともできないほどアホなのですね
928 :
デフォルトの名無しさん :03/05/25 18:16
>>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 > }error{
これは何? Javaじゃないなら別のスレ行ってくれ。
結論。範囲チェックしろボケ。でいいですね。
944 :
デフォルトの名無しさん :03/05/25 19:30
textFiledを使うと、1行分しか入力できないんですが、 普通、ここのレスみたいに何行にも渡ってかけますよね? こういう風にするにはどうしたらいいんでつか?
(J)TextField は 1 行分しか入力できません 複数行入力したい場合は (J)TextArea を使ってください
949 :
デフォルトの名無しさん :03/05/26 11:19
JSPの中身にアプレットを使って処理を書いたときに、クライアント側でアプレット を使いたいときはどうすればよいのですか?
jsp の質問しに来る連中って、何でどいつもこいつもこうなんだ?
>JSPの中身にアプレットを使って処理を書いた これと >クライアント側でアプレットを使いたい これはほぼ等価なんだが、何がしたいんだ?
952 :
デフォルトの名無しさん :03/05/26 12:37
ちょっとした応用もできない香具師はプログラ民具なんて止めたほうがいいよ。 ましてや仕事でやったら苦痛以外のなんでもない。周りの人がね。
953 :
デフォルトの名無しさん :03/05/26 13:50
アプレットからマウスを強制クリックさせたりマウスカーソルの座標を設定したりってできんの?
>>953 できない セキュリティ上、できる見込みは、はるか遠い未来まで行っても無い
網掛けなどのパターン描画で、 画面にも印刷 (Graphics に) にも適したやり方はどんなんでしょうか? drawLine なんか使うのは嘘実装だろうとは思ってますが
957 :
デフォルトの名無しさん :03/05/26 15:49
今の日時を取得するにはどうすればいいのでしょうか?
958 :
デフォルトの名無しさん :03/05/26 15:56
間違えました。 yy/mm/ddの形式を得るにはどうすればよいのでしょうか?
>>956 ごめん、アプレット分かんない。
>>957 SimpleDateFormat使え。
>>959 1.ルータかましててFTPサーバ側から接続できていない。
2.Socket.getLocalAddress()がローカルのアドレスを返してきている。
>>960 アプレットじゃないです。
今 TexturePaint を使ってみたんですが、
激しく VM 毎落ちたり、何度も何度も Printable#print が呼ばれたりします。
後者は透過色で塗りつぶしをやったときも出たんですが、
Java の印刷は未だこんなショボショボなんでしょうか?
962 :
デフォルトの名無しさん :03/05/26 18:18
はじめまして!JAVA初心者です。 JAVAをやる際、VJ以外に良いソフトウェアありますか? もしよかったら紹介してくださいw
>>960 他のFTPクライアントソフトからはいけるので1はないかと。
LocalAddressのところはあれじゃ駄目なんですか?
相手先のアドレス?
後パケットをチェックしていたら
502 Illegal PORT Command というエラーメッセージが表示されました。
PORT *,*,*,*,ポート/256,ポート/256の端数でいいんですよね
>>963 とりあえず getLocalAddress() の戻り値を確認すれ。
あとは PASV モードでも試してみれば?
ちなみに FTP では改行は \r\n じゃないとダメで、
PrintStream の println は line.separator を使うので
Mac とか Unix では動かない可能性あり。
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]="誤"; みたいに配列の内容を詰めるのって出来るの?
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
>>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[])を使え。
>>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()
あ、すまん、これは、メモリだ。
↑二重にすまん、間違えた
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をいじったのがいけなかったんでしょうか? おろかにもコピーとってなかったので元の状態が分からない。 やはり再インストールなんでしょうか。
質問なんですけど 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をたまに買う。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。