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

このエントリーをはてなブックマークに追加
>>951
そーゆー問題。でもメソッドに final 付けても変わらんはず。

やってみたけど変わらない。そりゃ static メソッドだから final 付けても意味無いや。
953944:03/09/16 15:12
>>951
class StringTest{
final public static void main(String args[]){
final String a = "hoge" + Integer.MAX_VALUE;
final String b = "hoge" + Integer.MAX_VALUE;
System.out.println(a==b);
}
}
falseでつ。
JDK 1.1.8 でも

final int CONSTANT_VALUE = 0;
byte b = CONSTANT_VALUE;

がエラー無しでコンパイル通るから定数式っていう情報はもってると思う。
単純なミスとかの類なんだろか?
>>953
コンパイルしたバージョンも書いてくれ。
956944:03/09/16 15:19
>>955
上にも書いたけどMac。
MRJ2.2.5(JavaVM)
MRJSDK2.2(開発環境)
JDK1.1.8相当。
957955:03/09/16 15:19
>>953
すまん、書いてあった。
958デフォルトの名無しさん:03/09/16 15:57
1にもかいてあるんですが

 「コンパイルはできたのにNoClassDefFoundErrorのせいで実行できない」という悩みも多いのですが、これはクラスファイルの場所とソースファイルの場所を混同しているのが原因です。
 クラスファイルの場所とソースファイルの場所には何の関係もありません。
 クラスファイルとソースファイルが同じディレクトリに置かれている場合は非常に多いのですが、これはたまたまであって、ソースファイルの隣にクラスファイルがあるからといって、そのままでそのクラスファイルがロードできるということではないのです。
 あくまでも、そのクラスファイルをクラスローダの検索先に置く(またはCLASSPATH変数にセットして検索

とかいてあったのですがCLASSPATHの設定をC:\usr\local\Tomcat4.1\common\lib\servlet.jarにしてあるのです。

これはサーブレットと普通のJavaは同時に使えないということでしょうか?
あるいは別の環境設定の方法があるんでしょうか?よろしくお願いします・
959デフォルトの名無しさん:03/09/16 16:03
>>958
クラスパスは、複数のパスを「;」で区切って設定できる。
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/classpath.html
>958
Tomcat4.1の catalina.bat はCLASSPATHを再設定してから動作するので、
Tomcatの起動前にCLASSPATHがどうなっていても無関係。

>CLASSPATHの設定をC:\usr\local\Tomcat4.1\common\lib\servlet.jarにしてあるのです。
無駄。
>>960
javacでのコンパイル時にはそのclasspathが使われるんだから無駄じゃない。

「Tomcat実行時のclasspathには影響しない」ということを認識した上で
環境変数CLASSPATHを設定したらいい。

むしろ実行時の動作に影響を与えないから好きに変えることができる。
962デフォルトの名無しさん:03/09/16 16:15
>>959-960
レスどうもです。

>CLASSPATHの設定をC:\usr\local\Tomcat4.1\common\lib\servlet.jarにしてあるのです。
無駄。


そうなんですか?やんなくても動くんですか?
antぐらい使ってくれよぉ。
964デフォルトの名無しさん:03/09/16 16:17
>>961
すいません。>>959でいいということですか?
965更新したらClassNotFound:03/09/16 16:26
TOMCATを4.1.12から4.1.27にしてみた。
すると、ClassNotFoundが頻発するようになった・・・。
どうやらClassファイルを更新すると出るみたい。
4.1.12では出来ていたのに、なぜか分かる人教えて。
reloadable="true"は設定してありまふ。
>>964
そう。Servletをコンパイルするならclasspathの設定は必須。
カレントディレクトリ"."も同時に設定しといた方が多分いい。>>2参照
960は無視。

>>963
HelloWorldぐらいjavacでやらせてやれ。
敷居を際限なく高くしてもしょうがないし、antは素javacでのコンパイルに慣れてからでも遅くない。
>カレントディレクトリ"."も同時に設定しといた方が多分いい。>>2参照
>>2じゃない>>1-4だ。
誰だよこんな馬鹿なことするやつは。<2
968デフォルトの名無しさん:03/09/16 16:33
>>966
ありがとうございました。
>>958 = >>923 = >>921 ?
970デフォルトの名無しさん:03/09/16 17:52
Javaアプリケーションで画像を表示させるにはどうしたらいいですか?
今getImageで画像を取得してやってるんですが
URLが変だというエラーがでます。
D:/work/img.jpgとかではいけないんですか?
getDocumentBase()使って、そこから相対パスで指定しる!
969==true
>>971
初心者はすっこんでろ

>>970
getResource() 使って、相対パスで指定しる
どうしても File から行きたかったら(ユーザに指定させるとか) toURL でも使っとけ。
ついでに toURL().toString() して眺めてごらん。
974デフォルトの名無しさん:03/09/16 19:12
javaのIDEって何がいいですかね?
やっぱeclipse?
>>965
おまい、Tomcatのダウンロードページ見たのか?
リロードに失敗するバグがあって、パッチが出てるぞい。
ttp://sunsite.tus.ac.jp/pub/apache/jakarta/tomcat-4/binaries/
976初心者:03/09/16 20:04
ボタンを押すとキャンパスが表示されるプログラムを描きたいのですがうまくいきません。
イベント処理中は大きな処理はpaintなどの大きな処理は後回しにされるとありました。
JFrameのpaintImmediatelyを呼出すよううに書き換えるしかないのでしょうか?
class Mycanvas extends Canvas {
public void paint(Graphics g) {
g.drawString("canvas", 10, 10);
}
}

public class Test3 extends Applet implements ActionListener{
Mycanvas c ;
public void init(){
Button b1 = new Button("表示");
b1.addActionListener(this);
add(b1);
}
public void actionPerformed(ActionEvent ae) {
c = new Mycanvas();
add(c);
}
}
977デフォルトの名無しさん:03/09/16 20:21
Object obj;
String str="abc";
obj=str;
System.out.println(obj==str);
ってやると、trueになりますよね。
3行目では、strが参照してる"abc"というインスタンスへの
参照情報がobjに代入されただけで、
objとstrが参照してるインスタンスは全く同じもののはず。
それなのに、obj=strみたいなのを「型変換」っていうのは
すごく不適当だと思うんだけど、僕の解釈が間違ってるのかな。
どなたか解説キボン。
参考
http://www2s.biglobe.ne.jp/~yuuki_ki/java_class14.htm
そういうのは普通型変換とは言わない。(Java言語仕様見たわけじゃないが。)
字面なんかどうでもいいから読み飛ばしとけ。
>>977
Java言語規定でいうところの、参照型の拡大変換って奴ね。
http://www.y-adagio.com/public/standards/tr_javalang2/conversions.doc.html#25215

思うに、「変換」というルールで括ると
コンパイラ作る時とか、言語仕様書くとき便利なんでしょ。
Java のコンパイラとかを作りたくて勉強する人は知っておかなきゃいかんだろーが、
(知ったかぶりして恥かきたくない人も勉強した方が良いかも)
Java を使いこなせるように勉強してるんだったら、放っといて とっとと先に進んだ方が得。

ちなみに、str = "abc"; でも恒等変換だし。
980デフォルトの名無しさん:03/09/16 21:13
変換についてもっとわかりやすく解説してあるサイト希望
>>977
あ、あとリンク先見たけど細かい間違いがいっぱいあった。
学校のテストだったら「コンパイル時のキャストのルール」の表なんか点もらえないよーな…
>981
文章なんか見ると、まるで中学生が書いたみたいだよね。
983デフォルトの名無しさん:03/09/16 22:12
JDBCでMS Accessに日付を挿入したいのですが、うまくいきません。
どなたか教えてください。

Date date = new Date();
DateFormat df =new SimpleDateFormat("yyyy/MM/dd");
df.format(date)

とやってはみましたが失敗しました。
984デフォルトの名無しさん:03/09/16 22:22
あるファイルの指定された行を削除するような処理をしたいのですが
一時ファイルを作り削除したい以外の行をそこに
一旦そこに書き込み最後に一時ファイルを元のファイル名に
変換しようかと思ったんですがrenameToでエラーがでます。
renameToでは既に存在するファイル名に置き換えることはできないのでしょうか?
それ以外にもいい方法があれば教えてください。
985デフォルトの名無しさん:03/09/16 22:40
>>984
元ファイルをdeleteしてから、renameしたらあかんの?
986984:03/09/16 22:46
>>985 あ、すいません。
それでもいいんですが
ファイル存在チェックと削除処理が必要になるので
もっと一気に出来る方法とかあればありがたいなと思ったまでで
失礼しました。<__>
>>986
元ファイルはちゃんとcloseしてるか?
988デフォルトの名無しさん:03/09/16 23:14
JSPで行っていることをサーブレットでやりたいです。
どこかいいページを紹介してくれませんか?
989デフォルトの名無しさん:03/09/16 23:20
>>983
Accessはつかったことないんだけど
そのカラムのデータ型はなに?
Accessにはto_date('yyyymm')みたいな関数ないの?
>>983
Accessでカラムを日付型で定義して、
Javaでカラムをjava.sql.Date型で取得すれば?
埋め
宇目
生め
次スレ立ててから埋めろよ。アホだな
うめ〜
倦め
10001000:03/09/17 01:49
埋め完了
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。