【初心者】Java質問・相談スレッド73【大歓迎】
660 :
デフォルトの名無しさん:
>>658 失礼しました。
JButtonでなく、JLabelの間違いでした。
現在、
for (int i=0; i<label.length; i++){
label[i].addMouseLMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
label.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
}
}
}
という風にやっているのですが、コンパイルできません。
「ローカル変数iは内部くらすからアクセスされます
finalで宣言される必要があります」
というエラーがあります。
座標の位置を記憶する変数をマウスリスナの中で呼び出しているのですが、
それが原因でしょうか?
エラーメッセージのままでは?
リスナのメソッド内部でループ変数参照してません?
>>660 そのコードだと括弧の対応がそもそも合っていないからコンパイルできないんだけどけど、
確かにローカル変数は final でないと匿名クラスからアクセスすることは出来ないね。
この場合は、JLabel を継承して独自のラベルを作成するか、
またはイベントリスナを共通にして、リスナ側でどのラベルが押されたか判断すると良いよ。
ちなみに、座標の位置は JLabel.getLocation() で取得できる。
エラーメッセージのままでは?
リスナのメソッド内部でループ変数参照してません?
664 :
デフォルトの名無しさん:2005/10/21(金) 23:10:16
>>661 >>662 アドバイスありがとうございます。
お示しくださったとおりで、メソッド内でループ変数を参照しています。
どうしても、ループ変数と同じ数値を使いたくて駒っています。
そこで、変数をループ外に用意するという方法を思いついたのですが、
具体的にどうしてよいかわかりません。
方法があれが、ご教授いただけないでしょうか?
for (int i = 0; i < ・・・) {
final int n = i; // 内部クラスから参照できるようにfinalに
label[i].add・・・
}
エラーメッセージどおりfinal変数にすればいいだろ。
内部クラスからはiの代わりにnを参照するようにする。
二度打ちスマソ
参照出来ない理由はforループ内部で宣言したからではなく、ローカル変数だからです。
for(final int i = ...
のように宣言すればリスナのメソッド内部から
ループ変数を参照できます
今携帯からなのでコード書けません
無名クラス ローカル変数 参照
でググれば参考になるコードとか解説が見つかると思います。
つーか、へんなことするくらいならインナークラス辞めて
普通にコンストラクタで引数を受け取るようにすればいいだけだろ
>>666 final 変数をどうやってループ変数にするつもりなんだか。
マターリいこーぜ
右も左もわからないままグイなアプリ作ろうとすると
参考になりそうなコードが大概無名クラス使ったスタイルで書かれてるわけで。
>>666 まて。
for(final int i = 0; i < labels.length; i++)
がマトモに通るとは思えないんだが;
ごめん
チョー適当な事書いてました
無名クラス調べてね
でやめときゃよかった 鬱
相変わらず解答者のレベル高いな (・∀・)
>>672 回答者じゃなくて「解答者」というところがポイントだね(・∀・)
各メソッドの行数を数えてくれるツールないですか?
eclipse のプラグインだとなおいいんですが。
は?
>>635 >> J2SE入れれば、JDK入れたことになりますか?
>J2SEは仕様を指す言葉でしかないので、「入れる」という概念が存在しないから、答えはNO。
前提が成立しない場合は命題は真になる。ゆえに答はYES
チャチャスマソ
677 :
デフォルトの名無しさん:2005/10/22(土) 09:28:31
同一パッケージ内のクラスで、メソッドを共有したいので、static protected
のメソッドを作成するのは間違いなんですか?先輩にそういわれたとです。
インターフェースで良いじゃん
>>677 staticである理由は?
protectedである理由は?
同一パッケージ内限定ならデフォルトアクセスでいいじゃん。
インターフェースじゃ駄目だな
>デフォルトアクセス
パッケージプライベートな
どっちでも良いと思う。
あるメソッドに、特定パッケージ外で使用して欲しくない場合どうするべきでしょうか。
アノテーションとかでは何ともならないみたいで・・・・
/**
* このメソッドはcom.xxxxx.core内でのみ使用してください
*/
public boolen checker(Object arg) {
//
}
>683
せめて一つ二つ上のレスぐらい読めんのか
>アノテーションとかでは何ともならないみたいで・・・・
アノテーションがなにするものかわかっている人間だったらこんな質問しないべ
アノテーションもよくわかっていないようだ
どうでもいいんだけど、「特定クラスからのみ呼び出されることを保障した公開メンバ」 みたいなアクセス制限が欲しい。
687 :
683:2005/10/22(土) 13:23:47
>>684 パッケージ可視だと、配下になっちゃうからcommonパッケージを切れないので。
>>685 コンパイルやクラスロードのタイミングで開発者にクラスやメソッド等の
付加的な情報を提示するものだと思ってたのですが・・・
>>686 それをやるとしたらどうなるんだろう?
例えば、mypackage.A、mypackage.Bクラスからのみ呼び出し可能な公開メソッドの場合
public(mypackage.A,mypackage.B) hoge() {}
とか?
A、Bクラスから呼び出されてはいけない場合
public(!mypackage.A,!mypackage.B) hoge() {}
特定パッケージから呼び出されてはいけない場合
public (mypackage.*) hoge(){}
>>683 ソースレベルで何をやるのかわからないけれども
内部クラスで君のやりたい事はできないか?
public classA{
private classB{}
}
>>687 パッケージ可視だと、配下になっちゃうってどう言う事?
commonパッケージってなんすか?
>>686,688
コンパイル時に解決したい場合:
アノテーションとそれを解釈するツールをうまく作れば可能だと思うよ。
その他、AspectJみたいなAOPでも可能だと思うよ。
実行時に解決できればよい場合:
メソッド内でnew Exception().getStackTrace()を使って
呼び出し元を判別してやれば可能。
692 :
686:2005/10/22(土) 13:48:10
>>691 アノテーションがよさげだな。別なクラスから呼び出されていると、コンパイルは通るけど警告出るような感じ。
javac 対応してくれないんかなぁ。
アノテーションだと、apt じゃなくて javac 使われただけで意味が無くなるような気もする。
実行時にもチェックとかすんなら話は別だけど。
apt についてドキュメント見てた。検出したいだけならこれで十分のような気もする。
注釈ついたメソッドを呼び出している場所を参照できるのかなこれ。
できるのなら暇をみて作ってみようとおもう。
mouseDraggedについての質問です。
1秒間あたりというかある一定時間内に転送できる回数
っていうのは決まっているのですか?
今、ペイントアプレットを作っているのですが、
すばやくドラッグして描いた時に点線になってしまいます。
>>694 Mirror API の Visitor は宣言部分しか visit してくれないみたいだから
注釈ついたメソッドが何処で呼ばれてるかは自分で解析するとかしないとダメなんでは?
そーいや compiler API って 1.5 からだっけ?
>>695 どういうソース書いているかわからんけど
ポインタの位置再評価の間隔が長いだけ CPUの速度とかも関係あるかもね
ポインタの位置読み取ったタイミングで、前回読み取った位置までLine引くというのが一般的な方法
そのあと、そのLineをどこまで自然な曲線にするかはいろんな方法があるが
698 :
695:2005/10/22(土) 15:08:42
>>697 なるほど、そういうことですか。
自分はペン先を●と■で任意の太さでかけるようにするため
fillOvalとfillRectを使ってます。
ソースに誤りが無いかもう1度見直して、
補完する方法を考えてみます。
ありがとうございました。
699 :
694:2005/10/22(土) 16:25:25
色々考えたけど、やっぱり難しいね。
一番簡単なのは、RUNTIME な注釈で public メンバのアクセス許可クラスを指定しておいて、
コンパイル済みの class ファイルを片っ端から逆アセンブルして、リテラル文字列から使用状況を判断しチェック&レポート。
ソースレベルから判断するとなるとコンパイル前にチェックできるけど、結構骨折れる作業になりそう。
リファクタリングツールを1つ作るくらい面倒だよ。
700 :
デフォルトの名無しさん:2005/10/22(土) 16:38:59
JAVAであるwebページをIEで開くには
どうすればいいのでしょうか?
「JAVAであるwebページ」ってなんだ?
JAVA(からの制御)で、あるWebページをIEで開く
ではないかとエスパーしてみる
703 :
デフォルトの名無しさん:2005/10/22(土) 16:59:45
JNIだな
705 :
デフォルトの名無しさん:2005/10/22(土) 17:10:50
JNIってのでできるのですか?
C/C++言語を呼び出す方法って
書いてありましたけど。
その前に聞くが、アプレットを作っているのかアプリケーションを作っているのか。
707 :
デフォルトの名無しさん:2005/10/22(土) 17:15:10
アプリケーションです。
初心者なもんですいませんm(__)m
JNIなんか関係なく単にiexplorer.exeを起動すればいいだろ
709 :
デフォルトの名無しさん:2005/10/22(土) 17:32:43
>>708 どうすればiexplorer.exeを起動できるんですか?
処理ごとに別々のwebページを
開きたいのですけど。
Runtime#exec("about:blank");
これで出るんじゃない?制御はしんどいと思うよ
msのvmにはあったよねcomがらみ操作の敗訴パッケージ
711 :
デフォルトの名無しさん:2005/10/22(土) 17:54:20
Runtime#execでテストしてみましたけど、
スタートページしか開けません
712 :
デフォルトの名無しさん:2005/10/22(土) 18:11:11
http://developer.apple.com/ja/qa/java/java12.html にのってました。
コンパイルしてみましたがエラーがでます。
C:\>javac ExeExternalProcess.java
ExeExternalProcess.java:40: '.class' がありません。
Runtime.getRuntime().exec(newString[ ] {browserName, url});
^
ExeExternalProcess.java:40: ')' がありません。
Runtime.getRuntime().exec(newString[ ] {browserName, url});
何がいけないのでしょうか?
>>712 その直前が間違ってるよ。キーワードが色分けされる環境を使ってれば一発で分かる。
714 :
デフォルトの名無しさん:2005/10/22(土) 18:38:22
>>713 直前に } などが抜けているってことでしょうか?
715 :
デフォルトの名無しさん:2005/10/22(土) 18:46:09
Tomcat4上で動かしているサーブレット(正確にはAxisのサービス)でクラスローディングをしているのですが
WEB-INF/libの中においてあるjarファイル内のクラスが正しく解決されません。
例
ClassLoader loader = ClassLoader.getSystemClassLoader();
try {
loader.loadClass("foo.bar.xxxxException");←/WEB-INF/lib/xxx.jar内のクラス
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
とすると、ClassNotFoundExceptionが発生してエラー
対象のクラスは普通に宣言して使用する分にはまったく問題なく使えています。
自分としては、各サービス用のクラスローダーがあって、それを取得して、それのloadClass
を使う、というような方法で解決できるのではないだろうかと思うのですがあたってますで
しょうか?また、あたっているとしたらそのクラスローダーのインスタンスの取得方法はどのようにすれ
ばよいでしょうか?
どなたかご教授下さい。よろしくおねがいします。
>>714 newString じゃだめ。new String じゃないと。
717 :
デフォルトの名無しさん:2005/10/22(土) 19:08:27
>>716 new Stringにしてもまたエラーがでます・・
C:\>javac ExecTest.java
.\Runtime.java:6: クラス ExecTest は public であり、ファイル ExecTest.java で宣
言しなければなりません。
public class ExecTest extends Frame
^
ExecTest.java:40: Runtime にアクセスできません。
クラスファイル .\Runtime.java は不正です。
ファイルにクラス Runtime が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
Runtime.getRuntime().exec(new String[ ] {browserName, url});
>>717 下は無視。上のエラーについて、言われたようにすれば良いと思うよ。
お? いやクラスパスの設定が誤ってる希ガス。
>717
作業ディレクトリをかえて心機一転作業しよう、たぶん解決する
それとC:\がちらかってると気分わるくならない?
721 :
デフォルトの名無しさん:2005/10/22(土) 20:02:42
>>720 できました!!
どうしてディレクトリを変えたらできたのでしょうか?
本当にありがとうございました!
助かりました。
ルートディレクトリで作業してたのが問題
>>722 ExecTest.javaのフルパスしていでも動くか?
>>648,650
だからJakarta Velocityを使えとあれほど(ry
なんでVelocityなんだ?
726 :
デフォルトの名無しさん:2005/10/22(土) 22:24:13
メソッドやらクラスやらの概念からしてさっぱり分からないんだけど、
こんな俺にも分かりやすく解説してるサイトとかないっすか?
MVC(Model、View、Control)にそってコーディングするときって
皆VがCを持つ形にしてます?
それともCがVを持つ形にしてます?
参考書とかではCとMとの関係は書いてあるんですが
それにVがどう絡めてよいのか良く分らなくて
>721
たぶんカレントにRuntime.java
なるものがあったと思う、それテストしたかなんかじゃない?
そんでそいつの中身はExecTest.javaと同じとかそんなん?
もし違ったら上手くいったのは助言関係なく偶然だよ
>>727 Javaped(ry
なら少しはありえるかも
731 :
デフォルトの名無しさん:2005/10/22(土) 23:16:15
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class sample1 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResoponse res)
throws IOException,ServletException{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
out.println("<html><head>");
out.println("<title>Hello Servlet!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello Java Servlet!</h1>");
out.println("</body></html>");
}
}
コレどこか間違ってます?サーブレットの初期設定のヤリ方がいまいちわかんなくて四苦八苦してます・・・・・助けて
>721
予想はずれてたら恥かしい発言になるけど
ダメな理由は
C:\Runtime.exe
C:\java\lang\Runtime.exe
と存在して
C:\> Runtime
と打ったら実行されるのどっちかって事で
だからjava.lang.Runtimeって表記ならいけたと思うよ
>731
717見習え、設定ができないのになぜServlet晒すの
ダメと言われたのなら同じの見せてくんないと無理だと思うよ
733 :
デフォルトの名無しさん:2005/10/22(土) 23:27:27
JAVA超初心者です。
先日リカバリをかけたら実行できなくなりました。
助けてください。
Exception in thread "main" java.lang.NoClassDefFoundError: HelloJava
という、おなじみのエラーです。
現在の状況は以下のとおりです。
ファイル名:HelloJava.java、HelloJava.class
環境:WinXP Java2SDK1.4.1使用
環境変数の設定:PATH→;C:\j2sdk1.4.1_07\binと入力
CLATHPATH→デフォルト
プログラム内容:
class HelloJava{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
以前もCLASSPATHは、デフォルトではエラーになりましたので、
「.」を入力するというアドバイスを受け、実行することができました。
リカバリをかけた後、また同じ設定をしてもだめでした。
デフォルトに戻してもダメ・・・
コンパイルはできてます。
ソース、クラスファイル共に同ディレクトリにあり、同名であることを確認しています。
734 :
デフォルトの名無しさん:2005/10/22(土) 23:28:42
そんな事言わずに教えて下さい
>>733 >環境変数の設定:PATH→;C:\j2sdk1.4.1_07\binと入力
此処本当にあってるのか?
仕事の関係上JAVAを学ぶことになりました。
これからこちらでお世話になることもあるとは思いますが、
よろしくお願いいたします。
いつかここで教える立場になれることを目指したい・・・
737 :
デフォルトの名無しさん:2005/10/22(土) 23:49:14
>>735 本どおりにやってみたんですけど。
スペルも何度も確認して。
なにかほかに入れるもの、ありますか?
738 :
デフォルトの名無しさん:2005/10/22(土) 23:52:22
>>735 733です
あれは最後に付け足したんです。
もともと入ってたやつの後に。
とりあえず
>>1のサイトの方法は全て試したんだよな?
>>733 あのさ、環境変数もひとつの手だけど
cd <Hello.classの存在するディレクトリ>
java -cp . Hello
でいけるだろ?
これでいけなかったら知らん
741 :
デフォルトの名無しさん:2005/10/23(日) 00:22:45
742 :
741:2005/10/23(日) 00:27:17
すいません誰か教えて下さい。表示できないんですよ
俺は表示されるよん
744 :
デフォルトの名無しさん:2005/10/23(日) 00:32:27
>>739 全部見て、ほとんど全部確認しました。
パス・クラスパスの設定ってとこ以外は。
「コマンドプロンプトでCLASSPATHをset CLASSPATH=%CLASSPATH%;.と設定」とありますが、
万が一実行がうまくいかなかったとき、どうやって元に戻すか分からなかったので。
745 :
741:2005/10/23(日) 00:33:42
>>743 なんででしょうか?設定のやり方ですか??
746 :
デフォルトの名無しさん:2005/10/23(日) 00:34:04
>>740 それをやってみても同じ結果でした。
ちなみに、それってなんなんですか?
>>745 つ [Apache] + [Tomcat]
748 :
741:2005/10/23(日) 00:45:25
>>747 それちゃんと入れてるんですよ。組み合わせ??
>>748 組み合わせてなくても Tomcat だけでいけたような気がするが……。
へんな FireWall とか使ってない?
Tomcatだけで動かすならlocalhost:8080だろうが
もしApacheとTomcatを「ちゃんと連携させて」動かせてるなら
localhost:8080じゃなくてlocalhost:80なんじゃないか?
>>741 まず
netstatでポーと開いてるのか調べろ
752 :
741:2005/10/23(日) 01:39:49
すいませんでした。解決はしたのですが、ディレクトリやパスの設定がいまいち意味不明です。サーブレット&JSPって難しいんですね。学校ではできたのに
>>741 基本を理解しないで先に先に行きたがるからそんなことになる
754 :
741:2005/10/23(日) 01:43:25
type Status report
message /java/sample/WEB-INF/classes/sample1
description The requested resource (/java/sample/WEB-INF/classes/sample1) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/4.1.31
こんな感じになっちゃいますよ〜〜〜どうしよ。かれこれ四時間くらい格闘してます!!!(涙)
755 :
741:2005/10/23(日) 01:47:07
type Status report
message /examples/servlet/sample1
description The requested resource (/examples/servlet/sample1) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/4.1.31
またですよ(涙)
757 :
741:2005/10/23(日) 01:55:16
それじゃダメですよね・・・表示されない。
HTTP Status 404 - /servlets-examples/servlet/HelloWorldExample
--------------------------------------------------------------------------------
type Status report
message /servlets-examples/servlet/HelloWorldExample
description The requested resource (/servlets-examples/servlet/HelloWorldExample) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/4.1.31
こうなっちゃいます。どうしたらいいですか?
>>741 それは、普通であればTomcatインストール時に利用可能なサンプル画面です
それが動かないのはおかしいなぁ・・・
Tomcatのzipのほう落としてきて、別のフォルダにインストールして確認してみろ
759 :
741:2005/10/23(日) 01:58:06
はい!わかりました!
つうかそもそも環境を書いとけよ
Windows?
JDK1.4?
最初にインストールしたのはexeタイプ?
761 :
741:2005/10/23(日) 02:01:10
Windowsです。JDK1.5?です。多分exeです。。
762 :
741:2005/10/23(日) 02:04:08
StartTomcatってのをダブルクリックするとすぐ画面が落ちちゃいます・・・
763 :
741:2005/10/23(日) 02:07:42
どうすればいいんだあ〜〜〜〜〜〜〜!!!!!!
764 :
741:2005/10/23(日) 02:09:51
寝るしかないか・・・
CATALINA_HOMEをいじっちゃったとか
766 :
デフォルトの名無しさん:2005/10/23(日) 02:32:08
>>741 ログファイルぐらい見れないのか?
それから、新しくTomcatインストールしたんなら
最初の奴は落としとけよ
768 :
741:2005/10/23(日) 10:51:05
表示できないっす・・・・鬱だ
つーかすれ違い。
>>768 鬱とか無意味な情報提供はいいから
とりあえずインストールの手順を解説したページを参考にやってみれ
んで、参考ページとどこまで正しくできたか報告
あとエラーは詳細に報告しる
画面が落ちるとか意味がわからん
あとTomcatのログも提出
ちなみにTomcat4.x系でJDK1.5だとJSP関係が動かないはず
>表示できないっす・・・・鬱だ
早く環境書いてね
Tomcatのログファイルの場所はzip形式なら
logsフォルダの中にある
772 :
741:2005/10/23(日) 11:46:18
JDK1.5だからだ!!!それを削除すればいいんですね!やってみます!
普通はTomcat5のほう使うけどな
セキュリティホール見つかってるんだしTomcat5つかえよ
>>699 クラスファイルを解析すんなら CLASS な注釈で良いのでは?
クラスをロードしてから reflection とか使ってチェックすんなら RUNTIME にしないとダメだけど。
776 :
デフォルトの名無しさん:2005/10/23(日) 14:26:53
質問です。
ループを使ってVectorの配列[0]から[8]までにVectorのインスタンス、
[9]から[16]までにStringBufferのインスタンスを格納する
にはどうしたらよいのでしょうか?
(Vectorの配列を使ってインスタンスを一まとめに扱いたいのです)
必要ようなメッソドはすべて部品化したいです。
教えてください。
ふつうVectorの配列にStringBufferは入れられないだろう。
>>777 >ふつうVectorの配列にStringBufferは入れられないだろう。
え?
779 :
デフォルトの名無しさん:2005/10/23(日) 14:35:24
色んな物をvectorに突っ込む。すばらしいパターンです。
>>778 Vector[] vectors = new Vector[16];
vectors[0] = new Vector();
vectors[9] = new StringBuffer();
782 :
776:2005/10/23(日) 14:37:58
>>780 あんまりやらないほうがよいのでしょうか?
戻り値が二つになっちゃってどうしようかと悩んでます。
RMIの一連の開発環境構築方法しっているよなぁ?
>>782 うーん、俺はよくやるけど、でもStringとStringBufferではやったことない。
ま、だめって事はないと思うよ。
785 :
デフォルトの名無しさん:2005/10/23(日) 15:30:46
例外を発生させ、catchで補足せよ。
とは、catchで例外を表示すれば良いのでしょうか?
補足というのが良く分からなくて・・・
786 :
776:2005/10/23(日) 15:47:53
>>784 Vectorの配列を準備するメソッドを別クラスでつくった場合
具体的にはどのようにすればよいのでしょうか?
Vectorあまり使ったことないのでよくわかりません。
Vector型の配列を戻り値で返してやる必要があるのでしょうか?
javaer黄金パターン
vector method();
tyr{
}
catch(Exception ex)
ex.printstacktrace();{
}
相変わらず解凍者のレベル高いな (・∀・)
tyr
790 :
デフォルトの名無しさん:2005/10/23(日) 16:07:37
補足せよとはcatchすればのでしょうか
>>776 Objectの配列ならいれることはできるが、
明示的なキャストが必要なので
実行時バグの温床となると思う
VectorとStringBuilderのどちらかを格納するクラスを作って
それの配列にするしか
でも、大概設計がおかしいということに気がついて欲しい
うは、牛丼と鉄火丼混ぜて一つのどんぶりで出すってのも
奇をてらってていいかもね。
俺は店員をぶん殴るけどねw
793 :
741:2005/10/23(日) 16:45:11
質問です。TOMCAT5.0を落としたのはいいんですが、スタートアイコンとストップアイコンが見つかりません。どうやって探すのですか?
794 :
741:2005/10/23(日) 16:48:04
すいませんが教えて下さい。。。学校の勉強ができないのです。。家で
何のために金払ってんだよ、ボケが
先生に聞けや
796 :
741:2005/10/23(日) 16:54:04
インストールかアップデートできないんですよ。どうすりゃいいのさ・・・・・・
>>776 もう少し話が具体的にならないと何とも言い様がない。
一体、何をどうしたいの?
798 :
デフォルトの名無しさん:2005/10/23(日) 17:28:49
>>776 なんでVector<StringBuilder>とVector<Vector>の2つのオブジェクトを
所有するクラスを作るとか、そういう発想にならないのか教えてくれ。
799 :
デフォルトの名無しさん:2005/10/23(日) 17:55:36
プロパティを読み込んで一意に格納しておきたいのですが、
格納用クラスを用意して、そこにstaticフィールドを用意しておき、
怠惰な初期化を行うのがいいんでしょうか。
もっと良い方法があったら教えて頂きたいのです。
>>784 うるせーバカ。おまえ30才超のプログラマまたは学生プログラマだなwww
801 :
741:2005/10/23(日) 18:20:14
HTTP Status 404 - /servlets-examples/servlet/HelloWorldExample
--------------------------------------------------------------------------------
type Status report
message /servlets-examples/servlet/HelloWorldExample
description The requested resource (/servlets-examples/servlet/HelloWorldExample) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/4.1.31
これを解決するにはどうしたら良いんだ~~~~!!!!!!!!!!!!!!!!!!わからん。発狂しそうだ
>>741 それはTomcat5の話?
ブラウザのエラーではなく
logs/の中にあるログファイル晒したほうがいいと思うよ
>>799 そういうのはPropertyBeanを書くのが定石。
いつからこのスレはTomcatのスレになったんだ?
聞く方も答える方もウザいんだけど
805 :
741:2005/10/23(日) 19:00:28
ログファイル長すぎて晒せません。分割してみます
此処駄目だな
@ITに戻るわ
807 :
質問です。:2005/10/23(日) 19:16:12
JPEGを読み込んでRGBの値を得るプログラムを教えてください。
808 :
784:2005/10/23(日) 19:21:35
よく見たら、StringBufferとVector型を入れたいって話だったのか。。
勘違いしてた。
なんで、こういうことやりたいって思ったのかねぇ?
他のプログラムを走らせて
そのプログラムが終了したかどうかを検知する方法を知りたいのですが
どのような方法があるのでしょうか?
>>809 Runtime.exec() で走らせて、特定スレッドで waitFor() するとか。
スレッドが isAlive() で生きてれば実行中、死んでればプログラムは終了した。
>>810 なるほど
ProcessにはListenerが無かったので如何すればと悩んでました
ありがとうございました
waitFor()よりストリーム監視したほうがいいかも
質問です。下のコードの while で一定時間が経ったら例外を投げたいのですが
何か良い方法はありますか?
ただし while の中身はいじれないとして。
public class SyncTest extends Thread {
private String title = null;
public SyncTest (String str) {
title = str;
}
public static void main (String args[]) {
SyncTest sync1 = new SyncTest("threa1");
sync1.start();
}
public void run () {
setX(title);
}
private static synchronized void setX (String str) {
while (true) {
// 無便ループ
}
}
}
>>813 無理っぽ。仕様に厳密に従わなくて良いなら main 内で sync1.join(一定時間) とかして
タイムアウトしてもスレッドが終了してなかったら例外投げれば良い、とか。
っつーか、「無便」ループとか、setter 内で while (true) とか恐ろしいプログラムだな。
安全ではないスレッドの破棄はダメだぞ
割り込みかけて対処してもらうのが普通
>>814 なるほど。アイデアどうもです。
ただ、スレッドはそのまま無便ループを走り続けるというのはどうしようもないのかな。
>>815 おっしゃる通り。
でもこの場合 while でループしてるんで、割り込みかけるにかけられんという気が。
いや、
割り込みかけたら割り込まれたスレッドは感知できるんで
それでループをやめるしかない
処理の内容によるがwhile()で無限ループさせるよりはJava.util.Timerでまわさせるとかなら
外部から飛ばさせることは可能だが
どっちにしろ残念ながらちみがやりたいこととは一致せんがね
818 :
デフォルトの名無しさん:2005/10/24(月) 12:30:12
Frameを継承したクラスで裏画面処理をしたいのですが
メンバに
Graphics bg; Image backimage;
の二つを宣言しておき、コンストラクタで
backimage=createImage(256,300);
bg = backimage.getGraphics();
とするとコンパイルは正常にできるのですが、実行中に
bg = backimage.getGraphics(); の部分でNullPointerExceptionが発生してしまいます。
原因のわかる方教えてください。
>>818 頼むからAPIドキュメント読んでくれ
nullを返す場合がちゃんと書いてある
Javaでibatisを利用してDB接続をしようとしてるんですが、
ibatisの設定のresultClass=""の中は、ibatisのjarファイルを置いた場所を指定すれば良いのでしょうか?
822 :
820:2005/10/24(月) 16:23:23
>>821 ありがとうございます。
どこかibatisに関して説明してる良いサイトって知りませんか?
説明サイトも本も少なすぎて全然だめぽorz
誘導もさんくすです
823 :
821:2005/10/24(月) 16:23:48
821に追記
記述するクラス名は、検索結果をマッピングさせたいクラス(通常は自作クラス)です。
例えば、検索結果をnameとpasswordプロパティを持ったexample.Userというクラスに
マッピングさせたい場合はこんな感じです。
<select id="getUsers" resultClass="example.User">
select name, password from T_User
</select>
あるインスタンスへの参照を、文字列でインスタンス名を指定して実行する方法ってありますか?
例えば、
Employe emp = new Employee();
emp.setID("0123");
emp.setName("Suzuki Ichiro");
なんていうふうに生成したインスタンスempがあったとして、
このempに対して、
Object obj = new Object();
obj = getReferenceBy("emp");
みたいなカタチで参照させて、実際のインスタンスへのアクセスは、
objから実行できないかと。
emp中のメソッドへのアクセスは、BeanUtils使って、
"emp.name"、"emp.ID"みたいにできることは確認したのですが、
インスタンスそのものへのアクセスはできないのかな、と。
>>820 >どこかibatisに関して説明してる良いサイトって知りませんか?
やはり公式サイトのドキュメントがメインだと思います。
・SQL Maps for Java, Tutorial
・SQL Maps for Java, Developer Guide
・DAO for Java, Developer Guide ← 必要に応じて
ただこれらのドキュメントは英語だし、これだけ見てもなかなかピンと来ないので、
補足としてこのあたりを見てみます。
・
ttp://634.ayumu-baby.com/ibatis/ ・
ttp://www.h7.dion.ne.jp/~a.d.1976/ これらのサイトを見て大まかな使い方を掴んでから再度公式ドキュメントを見れば、
理解しやすいと思います。後は実践あるのみかと。
クラス定義するの面倒なので
Object o = new Object() {
public void say() {
System.out.println("yes");
}
};
ってやってみたもののどうやってsay()すればいいのですか?
>>827 リフレクション
Object#getClass()
Class#getDeclaredMethod()
Method#call()
余計にメンドクサそうな希ガス
ORACLEのBLOB型へファイルの書き込みにチャレンジしています。
Servlet -> PL/SQL -> DBへ書き込み という手順なのですが、
小さいサイズのファイルならば書き込めるのですが、
サイズが大きくなると setBinaryStream にてエラーとなってしまいます。
エラーは「データ・サイズがこの型の最大サイズを超えています。」です。
なにか手立てはないでしょうか。
みなさんEclipseを使用するときのエンコーディングってデフォルトのままですか?
私はWindowsとLinuxでEclipseのデフォルトのエンコードが違うのでへばってます
両方で使えるUnicode使うとJavaのAPIのクラスファイルを参照すると
文字化けして訳が分からなくなるし orz
>>831 そんな事しないでローカルに取り込む際にエンコード変換とかじゃダメなん?
>>832 やっぱりその方法が結局一番楽なんだと
薄々思ってましたが・・・
レスありがとうございます
SDKなどIDEに依存しないエンコーディングの問題ならココでいいけど
Eclipse特有の話ならEclipseスレでな
836 :
JAVA初心者:2005/10/24(月) 23:27:03
CSVファイルをエクセルでつくるときにたとえば、tuyoshi,1,2というファイルをつくりたいのですが、
"tuyoshi,1,2"としたらDISPLAYでtuyoshiとなり、そのままtuyoshi,1,2としたままだったら、
"toyohsiという形で"が前についてきてしまいます。基本的な質問になるかも知れ
ませんが、理由を教えていただいてもよろしいでしょうか。
837 :
デフォルトの名無しさん:2005/10/24(月) 23:38:35
>>830 PL/SQLってことは、CallableStatement?大きいオブジェクトを受け付け
るようなI/Fないんじゃないの?
PreparedStatement使ってBLOBオブジェクトに書き込むよーにしたらだめか?
838 :
デフォルトの名無しさん:2005/10/24(月) 23:39:40
839 :
JAVA初心者:2005/10/24(月) 23:57:50
すいません、、、System.outのことです。CSVのファイルを読み込んで、その最初に
はいってるtuyoshiとマッチしたら処理させたいのですが、マッチするように
しているのに、処理しないのでおかしいと思っってSystem.outしてみたら
CSVにはちゃんとtuyoshiにしたのに、System.outで"tuyoshiになっています。
なんかすごい日本語だな
順を追って箇条書きで書いてごらん
そして書き終わったら自分で読んでごらん
841 :
824:2005/10/25(火) 00:09:44
>>825 あ、なるほど。Mapにインスタンス名でインスタンスを登録すればいいのか。。。
大正デモクラシーもとい、灯台もと暗しでした。
d
842 :
JAVA初心者:2005/10/25(火) 00:14:16
すいません、、、あせっちゃって、、、、
まず、CSVふぁいるを読み込みます。
そこはtuyoshi,2,1と書いてあります。
そして、ほかのクラスからもらったNAME情報(Uname)=tuyoshi
なら処理をします。
でも処理をしないので、おかしいと思ってSystem.outしてみたら
"tuyoshiとなっています。
なのでマッチしなかったみたいなのですが、、、なぜでしょう。。。
確かにCSVファイルの中身はtuyoshiであって"tuyoshiではありません、、、
csv ファイルをメモ帳で読み込んだときの内容と、
プログラムの System.out.println の周辺を貼り付けてくれ。
844 :
デフォルトの名無しさん:2005/10/25(火) 00:24:41
ArrayListにdouble型の数をいくつも入れて、最後にそれの和を計算したいのですが、
○○.add(new Double(x))などとして要素を入れた後、
それを取り出して和を計算する方法が分かりません。
get(i)とかで取り出しても、そのままじゃ足し算とかは出来ませんよね?
足せよ
>>844 実はできる
ArrayList list = new ArrayList<Double>();
list.add(1.1);
list.add(2.2);
list.add(3.3);
double sum = 0.0;
for(double x : list) {
sum += x;
}
多分。確認して無い。間違ってたらゴメン。
847 :
JAVA初心者:2005/10/25(火) 00:31:03
tuyoshi,2,1
if (st.hasMoreTokens()) {
String s = st.nextToken();
System.out.println("s="+ s);
}
if (s == username) {
winTotal = winResult + winTotal;
loseTotal = loseResult + loseTotal;
fileWrite();
>>847 ういうい。予想通り StringTokenizer 使ってたか。
読み込んだ CSV の行に、どこかで "" が混入してるんだと思うよ。
"tuyoshi,2,1" を区分けると、初めのトークンは "tuyoshi になるし
849 :
JAVA初心者:2005/10/25(火) 00:36:39
え、、、でも一番上の行が今使っているCSVなのですが、”はTuyoshiの前になくないですか?
StringTokenizer じゃなくて StreamTokenizer 使っているのならば、確かに妙だな。
851 :
830:2005/10/25(火) 00:39:56
>>837 CallableStatement 使っています。
Javaから直接Tableはどうしてもだめなんです・・
>>847 本当にそのコードとCVSで「"」が表示されるのか? プログラムの出力
をそのままコピペしてみたらどうでしょ。StroingTokenizer の入力に
している文字列も表示して、何が入ってるかちゃんと確認しましょう。
まあ、表示の件を除けば問題の本質は「if (s == username)」だろうけど。
一つのセルにtuyoshi,2,1が入ってるんだろ。
三つのセルにtsuyosiと2と1が入ってるんじゃなくて。
854 :
844:2005/10/25(火) 01:12:42
>>846 getで特定の要素だけを取り出しての演算も行いたいんです。
ArrayList list=new ArrayList();
list.add(new String(1));
sum = 1.0+(Double)list.get(0);
ってやっても、演算を行うところでエラーが出てしまうんです。
855 :
844:2005/10/25(火) 01:14:47
あ、2行目はStringではなくDoubleの間違いです。
>>854 java5 使ってる?
これちゃんと動くから試してみなはれ
ArrayList<Double> list = new ArrayList<Double>();
list.add(2.0);
double sum = 1.0 + list.get(0);
System.out.println(sum);
オートボクシングが通ってないってことは5.0じゃないっぽいな
Doubleは計算不可能だがdoubleは計算できる
Doubleからdoubleを取得して計算しなさい
858 :
デフォルトの名無しさん:2005/10/25(火) 03:15:08
申し訳ありませんが、行き詰っております。どなたかアドバイス頂けたら
嬉しいです。
簡単なチャットのサーバとクライアントを組みました。
サーバ側でObjectOutputStreamで発言と一緒にユーザ名を入れたArrayListを送信して、
クライアント側で受け取りました。
しかし、サーバ側とクライアント側でArrayListの中身が違うんです・・・。
具体的には、接続者が2人以上になると、最初に接続した人の受信するArrayListの中身が
1人から増えません。
送る側のリストの中身をSystem.out.printlnしてもちゃんと中身は2人以上になっている
のですが・・・。
ソースを以下にうpしました。
汚いソースですが、大量のコメントと、要所にはTODOを打ってるので、
もし原因が分かる方おられましたら、ご教授よろしくお願いします。
ttp://www.uploda.org/file/uporg222693.zip
チャット作るのなら、オブジェクトをシリアル化して送るんじゃなくて、全部文字ベースでやり取りするべき
……だと思ったのは余計なお世話?
>>858 重要な部分だけ抜き出しなされ
ソースまる投げは最終手段
デバッグをさせようというのかね
>>860 はぁ?
重要なとこったって、何行になると思ってんの?
こんなとこにつらつら書かすなボケ。
ぬきだせば肝心な部分なんて1レスで収まる範囲だろ
横着なソースコードだな。
局所的なスコープ要素をクラスメンバにしたり、
メソッド名が適正な動作内容を示してないし、見るのが苦痛。
すみません。Strutsのlogic:iterateタグで質問なのですが、
id属性名を動的に生成することは可能でしょうか?
板違いでしたら、すみません。
865 :
844:2005/10/25(火) 14:46:03
>>844 原因がちゃんと分かったの?
わからないで使うオートボクシングは危険だよ
867 :
デフォルトの名無しさん:2005/10/25(火) 15:00:59
始めまして。WACSを利用してJAVAを勉強し始めたものですが、
画像データを表示するところで悩んでいます。(jsp)
<img src="a.jpb" width='144' height='108'><br>27:17:15;02
の行を3000行ほどJSPで表示しようとすると、テキスト文字27:17:15;02は、
全て表示されるのですが、画像が全て表示されません。
表示されなくなるタイミングは、5分前後です。IEのタイムアウトが5分と
言う話ですがそのタイムアウトで表示できなくなってしまっているのでし
ょうか?また、レジストリでタイムアウトを変更することも出来ますが、
jspで画像を表示する事はできないでしょうか?
ご教授の程、よろしくお願い致します。
868 :
デフォルトの名無しさん:2005/10/25(火) 15:05:37
869 :
デフォルトの名無しさん:2005/10/25(火) 15:08:55
なんつーか、WACs という時点で答える気をなくした。
>>867 > 3000行ほどJSPで表示しようとすると
行数減らしてやってみた?
872 :
デフォルトの名無しさん:2005/10/25(火) 15:35:06
5分以内(2000行くらい)の画像は全て表示されています。
JSPでなんらかのアクションを起こせばいいのでしょうか?
>>858 ロジックの間違いではなさげだ。
サーバ側の74行目を書き換えて、
ArrayList オブジェクト自体を差換えてみたら直った。
list = new ArrayList(); //list.clear();
もしかしたら、JDKのバグかもしれん。
ちなみに、バージョンは1.5.0_02。
マルチスレッドだし同期化の問題じゃね?
ファイルをドラッグアンドドロップすると
そのファイルの拡張子を任意の拡張子に変更してくれるというものをプログラムしたいと思っています
複数ファイルをもってくと一括で変更してくれるようなものを作りたいです
ええ、用途はというと エロjpgファイルを一括で違う偽装拡張子にしたい次第です
よろしくお願いします
作ればいいじゃない
よくわからんが、ArrayListってスレッドセーフじゃないんじゃ?
Vectorが良いんじゃないかな。
>>877 「スレッドセーフ」という観点ならどっちを使っても同じ。
よくわかってないならいいかげんなことを言うなよ。
>>878 Secrets of the Java Masters(Java魂)にしっかり書いてあるんだが、
この本は、いいかげんなのかい?
書いてあることを理解もせずに書き込むのがいいかげんなのさ
>>880 いい加減なことを書くよりましだと思うが。
>>878 同じでは無いのでは?
Vector 使ったからと言って、それだけではリスト構造自体はスレッドセーフにはならないけど、
ArrayList だと最悪 add できねー(add してるだけなのに例外食らう)とかゆー状態になるし。
もっとも、
>>858 とは関係無いと思うけどね。
Vectorはスレッドセーフになるように設計されてるが遅い。
ArrayListはスレッドセーフを犠牲にして速度をアップしたもの。
遅いっつっても、プロファイラで計測してその影響が出てることなんて無いがな。
886 :
858:2005/10/25(火) 18:48:53
回答ありがとうございます。汚いソース晒して申し訳ありませんでした。;;
初めてまともに組むjavaなもので、まだ初歩的なことも出来ない未熟者です。^^;
>> 859さん
ObjectOutputStreamは余り好ましくないというのは聞いたのですが、
最大5人を想定して作ってるので、もうちょっと精進してから頑張ります!><
>> 860、862さん
申し訳ありません・・・。自分なりにここだ!てところにはTODOを打ったのですが、
一応動く形で渡した方が解決しやすいかと思ってそのままupしてしまいました。
>>863さん
すいません。;; まだ勉強し始めたばっかりで何も分かってません。
これから頑張って行きたいと思います。
>>873さん
ありがとうございます!ずっと悩まされてただけに感動です。;;
汚いソースなのに回答して頂いて本当に有難うございました。
あ、ちなみに861は僕ではありません。^^;
それでは、次はもっと精進して自分で解決出来るよう頑張ります。
本当に有難うございました。<(_ _)>
887 :
デフォルトの名無しさん:2005/10/25(火) 18:49:08
オブジェクトの配列を扱うときに
Test[][] tests = new Test[2][3];
と準備した時に、配列にオブジェクトを代入する方法は?
>>885 おもちゃの環境で差が出ないって言われてもな。。。
私Java研修生です(まだ1月たってません)。ほかの言語経験はありません。
Javaで10個ぐらいのクラスを使うプログラムをいくつか作ったのですが、
設計のやり方がいまだによくわかりません。どのように勉強すればよいのでしょうか?
具体的に「こんなプログラムの設計をしてみよう!」的な書籍などはあるのでしょうか?
途方にくれております。どうかいろいろと教えてください。
>>886 clearをnewにするのは問題じゃないぞ
みんなスレッドセーフのことについていってるんでそれみてなおせ
892 :
デフォルトの名無しさん:2005/10/25(火) 19:02:35
>>891 多次元配列に代入する方法がわかりません。
1次元は参考書に載っているのですが、、、
>>888 オモチャの環境って… 出るならそれこそおもちゃの環境だろー。
おまえはどういう環境で出たの? PC はおろか、糞みたいに負荷のかかる
Regatta や Z でパフォーマンスチューニングした時も出たことないんだが。
携帯ならまぁ納得。
>>892 その参考書のもう少し後に書いてないか
書いてなければ参考書を換えた方がいいかも
tests[n][m] = new Test();
>>893 MMORPG....(/_;)
いいのさ。。。シクシク
>>895 そーか、失礼。おたくも抜き差しならぬシステム作ってんだな。
>>858 はスレッド云々のせいじゃないだろ。
まあ確かに彼の書いたコードはスレッドセーフではない。
しかし、
>>873の書いた通りなのであれば、
list.clear() と list = new ArrayList()の目的として
得られる結果は一緒の筈だろう?
しかし、この問題非常に興味深いな。
899 :
898:2005/10/25(火) 20:37:39
ちょいとちゃんと検証してみようぜ。
むは。再現できた。
ソース上げるんで、検証よろ。
901 :
900:2005/10/25(火) 21:00:37
902 :
900:2005/10/25(火) 21:02:47
Server 側の flush のタイミングかと思ったら、そうでもないや。なんでだろう。
newしなおしたタイミングでフラッシュされただけだろ?
905 :
900:2005/10/25(火) 21:16:19
っていうか ObjectOutputStream 内で Serialized データをキャッシュしてそうな希ガス
906 :
JAVA初心者:2005/10/25(火) 21:28:44
>>852
なぜs==usernameが本質的にだめなのですか?実はそこのロジックでも
つまづいちゃってます。
>>853
あとエクセルのセル1の1つの中にtuyoshi,2,1とご指摘いただいた
通り書いてます。それだとなぜだめですか?3つのセルにわけて
かかなければいけないのですか?
>>906 これ実行すれば一発で分かるよ
String a = "abcdef";
String b = "abcdefghi".substring(0, 6);
System.out.println(a + " == " + b + " -> " + (a == b));
System.out.println(a + ".equals(" + b + ") -> " + (a.equals(b)));
909 :
900:2005/10/25(火) 21:36:58
>>907 んが。ObjectOutputStream.reset() の存在をすっかり忘れてた orz
っていうか俺大正解じゃん。
何が正解か分からんけど、最初のコード、マルチスレッドなのに同期化してない部分が一部あるのも問題ね
VMの最適化でおかしくなる場合有
シリアライズなら、いまはXMLEncoderおよび使ったほうが楽かと思われ
俺だったらクライアントと鯖をJava依存なくする(特にクライアントは流動的でいい)から
ApacheXML-RPCおとしてくるが、勉強用っぽいから実用はまあいいか
911 :
JAVA初心者:2005/10/25(火) 21:56:57
>。908ありがとうございます。今実行してみたら
上がFALSEで下がTRUEになりました。下のEQUAL文を使わなければと
いうことですね??でもなぜですか??
すっごく基本的な質問になるかもしれませんが、==とEQUAL
の違いは何ですか??
>>911 == は同じ参照かを比較する。
equals は同じ値かを比較する(ように実装しなければならない。
Object#equals() のデフォルト実装は == と同じ動作をする)
914 :
JAVA初心者:2005/10/25(火) 22:07:16
参照か値かの違いですか、ありがとうございます。でも、
if (s. equals (username)) {
winTotal = winResult + winTotal;
loseTotal = loseResult + loseTotal;
こういう風に変えてみて実行してみたら、NULLPOINTERのエラーがでました。
それはどちらかに値がはいっていないということですか?
>>913 そんなまどろっこしい説明しないで、プリミティブ型(intやcharなど)は==で比較する
文字列、クラスは.equals()で比較するって覚えときゃ良い
逆に自分でクラスを作る時はequalsで等しい場合にtrueを返す様にしないと正しく比較できない
それなら s の方だね。equals(null) はエラーにならずに false が返るから。
>>915 >逆に自分でクラスを作る時はequalsで等しい場合にtrueを返す様にしないと正しく比較できない
immutable なクラスなら equals を定義するべきだけど、mutable なら定義するべきじゃないと思う。
919 :
JAVA初心者:2005/10/25(火) 22:12:50
>。916
じゃあ、FALSEがかえるということは!equalsにしたらいいということですか??
エラーにしないためにはどうしたらいいですか?
何から何まですいません、、><
==は、同一のオブジェクトを参照しているかどうかを比較。
equals()は、同じ値を持っているオブジェクトかどうかを比較(するように実装することになっている)
java.lang.String型は、同じ文字列で構成されていればequals()の結果はtrueが返るようになっている。
>>917 例えば String は immutable だけど equals を実装してくれないと困る。
equals を実装しなくても良いのは enum みたいに同じ値を持つ参照が一つだけしかない場合っしょ。
922 :
917:2005/10/25(火) 22:20:26
>>918 逆じゃないだろう
class MutableObject {
public String text;
}
これに equals を定義するのが適切だとは思えない。
>>919 if (s != null && s.equals(username)) // でどうぞ
if (username.equals(s)) // username が null じゃないことが保障できるのなら、こっちでも良いけど
>>917 初心者スレで同値かどうかの話をしてる時に不変性が云々のちゃちゃを入れるな
初心者が困るだろ
ReadAir!って感じだ
>>922 単純に同値比較を行いたいかどうかで決めるべきなのでは?
ArrayList(っつか、AbstractList) も Calendar も mutable だけど equlas を実装してる。
925 :
JAVA初心者:2005/10/25(火) 22:30:18
while (br.ready()) {
String line = br.readLine();
// 1行をデータの要素に分割
StringTokenizer st = new StringTokenizer(line, ",");
if (st.hasMoreTokens()) {
String s = st.nextToken();
System.out.println("this.username"+ username);
System.out.println("this.s" + s);
}
if (username. equals (s)) {
winTotal = winResult + winTotal;
loseTotal = loseResult + loseTotal;
}
else {
winTotal = winResult ;
loseTotal = loseResult;
fileWrite();
}
}
br.close();
このロジックでthis.usernametuyoshi
this.stuyoshiのSYSTEm。OUTがでてきますが、tuyoshiで両方同じものが
はいっているのにこのEQUALSの方にはいりません、、、><
なぜでしょう、、、、もうこのtuyoshiになかされっぱなしです、、、
そういうときのおまじないを教えてあげよう
System.out.println("this.username"+ username);
System.out.println("this.s" + s);
を
System.out.println("this.username["+ username+"]");
System.out.println("this.s[" + s +"]");
として実行してみたらどうなる?
>>925 > if (st.hasMoreTokens()) {
> String s = st.nextToken();
> System.out.println("this.username"+ username);
> System.out.println("this.s" + s); // ← ※
> }
※の位置の s は this.s ではない。念のため。
928 :
917:2005/10/25(火) 22:37:20
>>923 すまぬ m(_ _;)m
>>924 オブジェクトの状態によって、equals の結果が変わるのってあまり好きじゃないんだよ。・゚・(ノД`)・゚・。
っていうかごめん。mutable がどうのこうのってのは hashCode の方だった orz
>>925 > if (st.hasMoreTokens()) {
> String s = st.nextToken(); //(1) s はここで宣言されて
> System.out.println("this.username"+ username);
> System.out.println("this.s" + s);
> } //(1) で宣言された s は、ここでアクセス不能になる。
> if (username. equals (s)) { //ここでアクセスしてる s は(1) で宣言されたものとは無関係
自力で書いたなら、スコープ見直せ。
本とかwebサイトのを写したなら、もう一回写し間違いが無いかチェックしろ。
930 :
JAVA初心者:2005/10/25(火) 22:41:58
>>926
this.username[tuyoshi]
this.s[tuyoshi]
で同じものがでてきましたーー!やっぱり中身は同じtuyoshiですー!
一致してるかどうかの判断はそのクラスのequalsしか判断できないだろう
状態によって結果が変わらないって正直信じられない発言だな
sortもコンパレータ実装するとき状態見てるだろ?それと同じだよ
932 :
917:2005/10/25(火) 22:45:52
悪い。頭冷やしてくるわ。
933 :
JAVA初心者:2005/10/25(火) 22:49:10
みなさん、、いろいろ優しく教えていただきましてありがとうございました。
インスタンス変数としてSを宣言していたのに、またろーかる変数として
SをIFの中でしなおしてたからだめだったみたいです。
そこはなんとかなおりましたが、ほかももう大変で今試行錯誤しています。
こんなにぜんぜんわかっていない私なのに、ご協力ありがとうございました。
また、何かありましたらこの掲示板に戻ってくるのでよろしくお願いします!
>>784 Genericsを使っていると同じVectorまたはListオブジェクトに
異なる型をつっこむのは抵抗がある。
ある型XがあってそのサブクラスA, Bという型を持つ二種類のオブジェクトならば、
とりあえずつっこむことは躊躇わないことが多いが。
Xのサブクラスならなんでも良しになるように、VectorまたはListをメソッド引数に
したメソッドで、
method(List<? extends X>){
}
を定義するので。
記述を間違えた
class Demo<T extends X>{
private List<T> list;
public Demo(){
this.list = new ArrayList<T>();
}
public void method(T t){
list.add(t);
}
}
937 :
853:2005/10/25(火) 23:17:28
>>906 csvは区切りがカンマなので
値にカンマが含まれるときは内部的には
ダブルクォーテーションで囲まれて表現される。
だから1つのセルにtuyoshi,2,1という値を書いた場合は
内部的には"tuyoshi,2,1"と表現されている。
3つのセルに書いた場合はtuyoshiも2も1もカンマが含まれないので
内部的にもそのままカンマ区切りでtuyoshi,2,1と表現される。
Vectorがスレッドセーフだと言ってる奴は池沼
>>839 Jakarta POIを使えばCSVの扱いも楽だ。
>>831 UTF-8を使っている。
デフォルトは使わない。
FedoraのデフォルトはUTF-8になったみたいだが。
APIクラスファイルを参照すると文字化けするとはいったいどういうものなんだろう
>>940 UTF-8で作ったソースをエンコーディング指定しないでJavadocにかけると当たり前だが文字化けしたHTMLができる
>>938 中途半端にスレッドセーフだとかだっけか
ArrayListとConnectionsとを組み合わせ他方がええってことで
Vectorは非推奨ということにしてと
>>941 >>831はそんなことを言いたかっただけなんだろうか・・・・
docencodingもソース園コーディングもcharsetもすべて同じUTF-8に
しておけばほぼ無問題ですな
native2asciiを使わずに古いバージョンのjavadocを使うとおかしくなるが
>>943 639 名前:デフォルトの名無しさん[sage] 投稿日:2005/10/24(月) 22:42:44
EclipseでJButtonを選択状態にして
宣言を開く とすると
クラスビューアーで宣言がJavaプログラムとして見れますが
EclipseのエディターのデフォルトエンコードをWindowsの場合はMS932以外
にしていると文字化けしてしまいます
これはEclipseの仕様なのでしょうか?それともWindowsのJDKのクラスファイルは
MS932で書かれているのでしょうか?
多分
>>831=
>>639 だろ意味はよく分らんが
>>937 CSVってカンマが値として入ってる場合ダブルクォーテーションで入れるかとか
ダブルクォーテーションのエスケープとかそういう部分はすべてローカルルールだった希ガス
Excelの吐き出すCSVは改行が1レコードとはきまってないのでややこしいけどな
エスケープなんか単なる決めの問題だから大抵は Excel の吐き出す奴に
仕様あわせるけどな。
>>945 > Excelの吐き出すCSVは改行が1レコードとはきまってないのでややこしいけどな
改行は改行でも\rと\r\nをちゃんと区別すればいいだけの話。
JAVA(TM) の TM って何?
登録商標
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|次でぼけて!!!! |
|_________|
∧∧ ||
( ゚д゚) ||
/ づ Φ
意味は?
SESってなんですか?
あんがと >954
登録商標って ® の方じゃなかったっけ?
™ は登録されてるとか関係無い単なる商標だとか聞いた記憶が。
逆だっけ?
>>948 レコード内のは\rでレコードの区切りは\r\nなんだから別にややこしくないじゃん。
すいません、javaを勉強しようと思い、
Java 2 Enterprise Edition 1.4 SDK というのはPCにインストールしようと思うんですが、
これは無料で使えるアプリなんでしょうか?
J2EEは主にサーバーサイドの業務系用なんだけど
Javaの基本自体ならJDK5.0かJDK1.5とかいうのさがしてみて
TradeMark != Registed
962 :
959:2005/10/26(水) 02:24:38
>>960 ありがとうございます。
Java 2 Enterprise Edition 1.4 SDKは個人用ではないんですね?
間違ってインストールしてしまいました。
これはアインストールした方が良いんでしょうか?
アンインストールしていいよ
>>961 登録を「regist」とか言っちゃうクチですね?
>>958 「君の CSV」 の仕様はそうなの ( ´_ゝ`)フーン
966 :
デフォルトの名無しさん:2005/10/26(水) 04:09:24
<identifier> がありません。
というエラーはどういう意味でしょうか?
967 :
デフォルトの名無しさん:
appletで文字を描画するコードを入門書で見たんですけど、よくわかりません。
paintというメソッドが、どのタイミングで実行されるのかわからなくて困っています。
sunのjavaTutorialも目を通したのですが、よくわかりませんでした。
appletを理解するのに役立つサイトがあったら、教えて下さい。