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
ナンデ16ナンダ?
【スレ立て後記】
>>7 が改行制限に引っかかったので続きが
>>12 にきてます。
【初心者】Java質問・相談スレ15【大歓迎】へのリンクが無いので
次スレ立てる人はできれば復活させておいてください。
16
マタバンゴウチョウフクカヨ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>1
>>13 正確には 16.0.0_01 なのです。きっと。
>>13 あ、、、 ほんとだ、、、
良かったらスレ立て直してくらさい。
立て直したてもらえたら こっちは削除依頼だしとくので。
質問してよいの??
hoge HG = null; ……… class hoge extends Thread { int x; public hoge(int x){ if(x < 10){ this.x = x; //this.start(); //←ここでstartしていたが、 } } public void run(){ 処理……… HG = null; //ここが実行されない!? } } ……… if(HG == null){ HG = new hoge(n); HG.start(); //問題があるので、こちらでstart()するようにした。 } -------------------------------------------------------- 最初は、hoge()内で、this.start()でスレッド開始していたのですが、 HG == null とならずに、二度とrun()が実行されなくなってしまいました。 HG = nullが飛ばされてしまっているかのようです。 hoge()内でスタートさせるのをやめたら、問題はなくなりました。 そこで質問なのですが、class hoge extends Thread {} のようなクラスのコンストラクタでは、スレッドを開始してはいけないのでしょうか?
>>20 まず思ったのだが、start()て必ず書かなきゃいけなかったっけ?
class hoge extends Thread のときは勝手に始まったような・・・。
よく覚えてないので調べて出直します。
>>21 今、試してみましたが勝手には始まらないみたいです。
>>20 ちゃんと調べてないけど run() の処理が非常に短時間で終わる場合だと
start() のあと、new hoge() が終わる前に run() が終わってる可能性も…
>>20 いま試してみたんだけど、できるみたいだけど。
で、あなたのコードっぽいことを試したけど、
HG=nullはちゃんと実行されてます。
こういうことが正しいやり方かどうかは私は知りません。
// HG=null になってると見た。
& や <> などを & < などに変換させるクラス(メソッド)を教えてください。
>>18 スレタイトルのナンバー打ち間違い如きで立て直す必要はないかと。
>>14 過去スレの一覧に15へのリンクがないのは
そもそも質問・相談スレの15が存在しないから。
その理由は過去スレ14の985番の書き込み、
スレを建てるかたは、できれば下のスレも過去ログの一覧に収納して、
あと新スレのタイトルは重複のFをふまえて
「【初心者】Java質問・相談スレ16【大歓迎】」あたりでお願いします。あと最大32行までしか書き込めないようです。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/l50 によります。なんの説明も前スレに書き込まずごめん。
まあそんなわけで、このスレッドが16であるのもあながち間違ってはないけど、
このスレッドが1000いったら次スレのタイトルは18でよろしく。
>>27 ありません。
WEBアプリならStruts使えばフレームワークがやってくれます。
30 :
デフォルトの名無しさん :03/01/27 22:02
質問です。 初心者なのでやさしめにお願いします。 javaで自分のwindowsの中にあるアプリケーションを実行したり関連づけ出来るようなシステムを作りたいんですが、 どのようにやればよいでしょうか?? それに関連してよい例の載っていそうなHPなども教えていただけないでしょうか?? お手数ですが出来るだけ詳しくよろしくお願いします。
31 :
デフォルトの名無しさん :03/01/27 22:28
前スレの969です。 Javaって標準で正規表現が使えたんですね。知りませんでした。 989さん情報ありがとうございました。 要素名の小文字化はうまく出来たので、今度は属性名の小文字化に挑戦しました。 Matcher m = Pattern.compile("<(.*)( [A-Za-z]+=)").matcher(s1); StringBuffer s2 = new StringBuffer(); while (m.find()) { m.appendReplacement(s2, "<$1"+ m.group(2).toLowerCase()); } m.appendTail(s2); という感じで書いて見ましたが、 <BODY BGCOLOR="WHITE" LINK="#00000"> を変換すると <body BGCOLOR="WHITE" link="#00000"> となり、 最初の属性が小文字になりません。 これって正規表現の書き方が違うのでしょうか?
32 :
デフォルトの名無しさん :03/01/27 22:29
>>30 ソースが欲しいだけだろ。宿題スレへどうぞ
33 :
デフォルトの名無しさん :03/01/27 22:36
>>30 関連付けってなあに?
WindowsシェルAPIとかを直接コールするならJNIが必要です。
javahとか使って味噌。
単にパラメータ指定でコマンドを実行したいだけならjava.
lang.Runtime#exec()でどーぞ。
34 :
デフォルトの名無しさん :03/01/27 23:07
Javaでoracleに接続した時の動きで質問です。 Java.sqlのsetAutCommitを使っているのですが、AutCommitをfalseに設定して、 updateすると、commitしていないのに、 そのトランザクションが終わったあと、updateされてしまうのです。 なんでこのような動きをするのかわかる方、お教え下さい。 ちなみにtrueにした場合は、commitなしでcommitされる本来のAutCommitの 動きをしています。
35 :
デフォルトの名無しさん :03/01/27 23:08
javaのアプリケーションとアプレットのちがいってなぁに? アプリケーションで出来るものはアプレットじゃ出来ないの?? JBuilderっての使ってるんだけどアプリケーションでつくったやつそのままアプレットでやれば同じの出来るの???
36 :
デフォルトの名無しさん :03/01/27 23:09
おいおい。。。
>>34 oracle yoku sirankedo tadasii dousa ja nai?
38 :
デフォルトの名無しさん :03/01/27 23:20
J2SE v1.4.0_03をインストールしたのですが、binの中にjavac.exeがありません。 javaw.exeというのはあるんですが。同じものなのでしょうか?
>>31 Java2SDK1.4以降から正規表現が使えるようになった
>>38 JREじゃなくてSDKをインストールした?
JREだとjavac.exeは無いよ。
この接続の自動コミットモードを指定された状態に設定します。 接続が自動コミットモードの場合、そのすべての SQL 文は実行され、 個別のトランザクションとしてコミットされます。そうでない場合、 その SQL 文は、commit メソッドまたは rollback メソッドへの呼び 出しによって終了されるトランザクションにグループ化されます。 デフォルトでは、新しい接続は自動コミットモードです。 これが、APIの説明なんですけど、 AutCommitをFalseにしている時で、updateしたあと、 commitもrollbackもしなかったら、 更新されないのではないか?、、と思っているのですが、 実際では、どうなのでしょう??
>>39 JREをインストールしてました。SDKでやりなおしてみます。
ありがとうございます。
>>40 それを見る限りAutoCommit=falseの場合にどうなるか、は定義されてないから、
ロールバックさせたければ、明示的にrollback()するべき。
実際には、select文を発行しただけでも(最後に)commitする必要があるから、
自動的にcommitが走るのは普通の動作のような気がする。
>>34 >>37 も書いてるが...。それが「正しくない」かどうかは、rollback()でもして確認してみるこった。
もっとも、「いやrollbackもかからないんです!」ならcommit()されてるんだと思うが。そうなると、
ドライバのせい。
>>35 Appletを継承するか否か。
>>38 javaw.exe は、特殊なVMです。あんまり資料無いんだけど、レジストリからクラスパス引っ張ってきて、
アプリケーションを実行するそうな。
商用APサーバとかは、うかつに必要なクラスへのパスを変更されたくないので、
そのVMを使う。らしい。
44 :
デフォルトの名無しさん :03/01/27 23:43
>>33 例えばjavaでつくったアプリケーションでExcel.exeを開いて、 ツールバーとかの中のものをかえたりです。 なにぶん超初心者なもので質問自体もわかりずらいかもしれませんがよろしくおねがいします。
46 :
デフォルトの名無しさん :03/01/27 23:58
javaで作ったサーバをLinuxのデーモンプロセスとして動かす方法を教えてくれ。
>>37 >>42 >>43 rollbackした時は、ちゃんとrollbackできてました。
て、ことはちゃんと正しい動きをしていたのですね(汗)
皆様、ありがとうございました。
>>43 さん、も少しお教えいただけますか?
仮にrollbackがかからなかった場合は、ドライバのせい、とありますが、
ドライバって、oracleのドライバですか??
ドライバによっては、違う動きをすることもある、ってことですか?
質問ばかりですみません。。
ドライバ云々言う前に明示的にrollbackしないオマエが悪い
>>48 そですね。。
いろいろ勉強になりました。
ありがとうございます。
51 :
デフォルトの名無しさん :03/01/28 01:26
52 :
デフォルトの名無しさん :03/01/28 02:11
>>45 JNI使ってもExcel.exeの内容を改変するのは難しいと思うぞ。
Excelのファイルを表示するくらいで勘弁してくれ。
>>45 SWT で OLEコンテナとか使うとか、
POI と Swing で頑張るとか…
54 :
デフォルトの名無しさん :03/01/28 02:20
>>46 jakartaにjamesっていうメールサーバがあるから、そのソースでも
見れば。
>>31 とりあえず、要素名と属性名を小文字に。
String html = "<BODY BGCOLOR=\"WHITE\" LINK=\"#00000\">";
html = html + html;
Pattern p1 = Pattern.compile("<([^<>]*)>");
Pattern p2 = Pattern.compile("\\b(\\w+)(=\"[^\"]*\")?");
Matcher m1 = p1.matcher(html);
StringBuffer sb1 = new StringBuffer();
while (m1.find()) {
Matcher m2 = p2.matcher(m1.group(1));
StringBuffer sb2 = new StringBuffer();
while (m2.find()) {
m2.appendReplacement(sb2, m2.group(1).toLowerCase() + "$2");
}
m2.appendTail(sb2);
sb2.insert(0, "<");
sb2.append(">");
m1.appendReplacement(sb1, new String(sb2));
}
m1.appendTail(sb1);
もっとうまくすれば二重ループにしなくてもいけるかもしれん
>>47 Oracleはセッションがクローズされるときに暗黙にコミットを発行します。
他のDBはどうかは知りません。
ロールバックするやつもあるかもしれません。
JDBC仕様の範囲外だと思います。
とりあえずautocommitなしでやるならば更新後、明示的にcommit()、rollback()を
発行するべきです。
>>55 レスありがとうございます。
いろいろな解法を見せて頂くと参考になります。
実は自分の書いたコードでも
[A-Za-z]+ の部分を [a-zA-Z]+に直したらちゃんと動きました。
正規表現の書き方が悪かったみたいです。お騒がせしました。
とかいっておきながらやはり失敗です。 単純に ( [a-zA-Z]+=) とだけ書いたので、 タグの中にあるかどうか関係なく置換してしまってました。 <A HREF="aa" NAME="aa"> A="aa" </A> <a href="aa" name="aa"> a="aa" </a> となってしまいます。 タグの内部にあるかどうかの条件を加え、 <(.*)( [a-zA-Z]+=)(.*)> と書くと、なぜか最後の属性だけが変換されます。 やはりタグの内部にあるかどうかと属性名かどうかの条件を分けて 2重ループにするのがいいみたいです。 もう少しいろいろ自分でいじってみて解決しないようでしたら またご相談させていただきます。ありがとうございました。
59 :
デフォルトの名無しさん :03/01/28 15:30
: DefaultHandlerとDebugController(MSV)って何が違うんですか?
>51 英語わからん。 >54 わかった。
61 :
デフォルトの名無しさん :03/01/28 16:49
>>60 英語でしか得られない情報があるってことを覚えておこうね。
すべての情報が日本語化されているとは限らない。
英語がわからなかったらあきらめなければいけないこともあるってこと。
62 :
デフォルトの名無しさん :03/01/28 18:07
どの辺まで覚えたらjava使えますって言えるのでしょか?
ど-も。javaの基本が、大体わかってきた初心者です。思うに、(1)javaは、使用頻度の高いpackageと 使用頻度の高いclass、更に使用頻度の高いmethodを覚えろば、大体、業務的に対応 できるのかな?、て思います。これに、ついての意見を、出来ればお聞かせ願いたい です。(あめ-かな。) (2)また、最低限憶えるpackageは、以下のものかな、と考えてますが、どうでしょうか? (もち、その中のclassとmethodもね。) ・java.lang(特にimport指定は、省略できるので不要だが。) ・java.applet.APPLET ・java.util ・java.io ・java.txt(txtだった、思うが。textだったかな。チョット忘れた。) ・java.net(network関係で、確かこれだったような。) ・java.awt ・java.graphics(だったかな。) (3)そして、その、ま、暇こいてる時に、他のpackageや、class、method、とかを一通りみて、こりゃ、便利だ、と 思ったら、それを、活用していく、て感じかな、と思うんですが。どうでしょうか? (4)あと、sample programを、適当にみて、新たな、そして有用なclassなりmethodを見っけていって、それを憶えて使っていく、 と思ってんですが、どうでしょうかね。 <その他気付いた事> ・class名は、先頭は大文字なんだね。 ・method名は、先頭は小文字なんだね。 ・method名でも、単語が連結したものは 先頭は、小文字だが次以降の単語のもの は大文字で始まるんだね。 (う-ん、適当な例が思い出せない。 APIを参照すれば、すぐ、わかるんだが、 今は、この程度のレベルです。) ※すんません、技術的な事ではないですが、考え方と言おうか、取組み方、と言おうか、チョット、お願いします(だ)。 なんでも、イッス。
>>63 >大体、業務的に対応できるのかな?
業務の内容による。
>・java.graphics(だったかな。)
ありません。
・HDには常にAPIドキュメントを用意して、いつでも開けるようにする 結局これだろ。全部なんか覚えてられないんだから
>>64 様
さんくすこ。
>>大体、業務的に対応できるのかな?
>業務の内容による。
↑そうですね。その通りですね。失礼しました。
>>・java.graphics(だったかな。)
>ありません。
↑ あ、すいません。なかったんでしたっけ。う〜ん。勘違いか----。
>>65 様
貴重なご意見ありがとうございます。
その手が、ヤッぱ、フツウですよね。
(と、当方も思ってたりして。)
>>63 java.langとjava.util知っていればServletの習得も苦労しない。
>>68 様
「Servlet」、ときましたか。
う〜ん、そうなんだ。
ありがとうございます。
70 :
デフォルトの名無しさん :03/01/28 21:42
int型の16進数を10進数に変換する方法を教えてください
int型は16進数であるとともに10進数でもあるのだよ。
72 :
デフォルトの名無しさん :03/01/28 21:45
>>70 int型は整数型です。16進数、10進数と言った情報は持っておりません。
sage
int型(整数型)には10進数とか16進数といった区別はない。 あるint型の値は10進数で表せば○、16進数で表せば△、といった具合。
>>75 だから△で表されたint型を○で表すって事だろ。
78 :
デフォルトの名無しさん :03/01/28 22:21
integer.tostring()で16進にした文字列とか得られなかったっけ。
>>78 文字列はString。 「int型」じゃない。
80 :
デフォルトの名無しさん :03/01/28 22:36
>>79 つまり、質問者はアホですね、といいたいわけですね。
81 :
デフォルトの名無しさん :03/01/28 22:55
>>67 補完機能付きIDEを使えば、クラスのメソッドを覚える必要はなくなるよ。
どんなクラスがあって、そのクラスがどんな機能を提供しているのか
だけ覚えてれば、なんとかなるようになる。
Eclipse使うようになってから、コアAPIのドキュメンテーションはあん
まりみないで済むようになったよ。
あーーーーファイルって何ですか?
補完機能付きIDEって当たり前だと思っていたのに。 Eclipseですげーって思ってる奴って今まで何使ってたんだ?(w
84 :
デフォルトの名無しさん :03/01/28 23:11
>>83 ふつうにテキストエディタでゴリゴリ〜。
もうあの世界の戻るのはいやですね。
Javaで似たようなことができるのがすごいんだろ。
86 :
デフォルトの名無しさん :03/01/28 23:57
87 :
デフォルトの名無しさん :03/01/29 00:04
JAVAでJPEGやGIFを読み込んでpixelgrabberで配列に展開、 その配列をいじった後にcreateImageでImageを作るじゃない? その画像をJPEGやGIFファイルで保存する方法があったらおしえてくださいな
imageioパッケージ
89 :
デフォルトの名無しさん :03/01/29 00:14
java 1.4 APIのパッケージを見てもjava.awt.imageくらいしか見当たらない・・・ もうちょい掘り下げてクラスとかメソッドも教えてくださいませ
でもサポートしているフォーマットの多さでJIMIのほうが 好き。古いけど。
>>53 > SWT で OLEコンテナとか使うとか、
SWT の OLE 関係のクラスは面白いね。
Excel や Word や IE コンポーネントが自由に操れて気持ちいい。
>>92 OLE は Excel や Word が入ってないと使えないのがねぇ。当たり前だけど。
IE は Win だったら何処でも使えるのかな?
94 :
デフォルトの名無しさん :03/01/29 01:24
J2 1.3で検索エンジンの様なものを作りたいと考えています。 検索文字列から空白を除去し、文字列をAND結合したいのですが 方法がわかりません。 どなたか教えてください。
>>94 StringTokenizer を使うべし。
96 :
デフォルトの名無しさん :03/01/29 13:32
javaって変数の型を宣言しない場合って自動的に 適当な型として扱われたりしますか? なんか、説明サイトにそう書いてあったんですが。。
97 :
デフォルトの名無しさん :03/01/29 14:00
>>96 JavaScriptとJavaは別物だと何度言えば、、、、
Javaは宣言せずに変数を使う事は『不可能』
javaのアプリケーションからwindowsのスクリーンセーバーを 終わらせる方法にはどのようなものがありますか? linuxでも同じようなことはありますが ディスプレイの再表示をjavaのプログラムでできますか
Servlet+JSPシステムの中でファイルを クライアントからWEBサーバにアップロードする機能で com.oreilly.servlet を使ってるんですが、 これって日本語ファイル扱えますか? 日本語ファイルの転送でエラーになるんですが。 転送部分(JSP)のソースは com.oreilly.servlet.MultipartRequest up = new com.oreilly.servlet.MultipartRequest(request,UploadDir,1000000000*1024); File uploadedFile = up.getFile("FILE_NAME"); デゲス。
>>99 MultipartRequestオブジェクトの生成時にエンコーディングが指定できますよね?
そこでHTTPリクエストのエンコーディングを指定してみてはどうですか?
101 :
デフォルトの名無しさん :03/01/29 17:07
SWTのことで質問です。 org.eclipse.swt.widgetsでのコンポーネントへいろいろドロップしてみる、 というアプリ作成中なのですけど、TreeへIEからの情報をドロップできない。 org.eclipse.swt.dndで解決できますか? ついでにTransferの種類等も
103 :
h.t ◆fN6DCMWJr. :03/01/29 18:33
会社の仕事で申し訳ありませんが、 JAVAで組んだプログラムが下記メッセージで落ちて困っています。 誰か知恵を貸してください。 プログラム=JAVAサープレット ORACLEよりデータを吸い上げ、サーバー側でEXCELに集計、 Web上にEXCELを展開するプログラム。 4個以上起動が掛かると下記メッセージでTomCatが落ちます。 **************** Another exception has been detected while we were handling last error. Dumping information about last error: ERROR REPORT FILE = (N/A) PC = 0x10008F0D SIGNAL = -1073741819 FUNCTION NAME = (N/A) LIBRARY NAME = (N/A) Please check ERROR REPORT FILE for further information, if there is any. Good bye.
104 :
h.t ◆fN6DCMWJr. :03/01/29 18:37
環境は、 APACH1.3.2 JDK1.3.1 TOMCAT3.2.4 EXCEL2000 ORACLE8i (8.17) OS:WIN2000 です。 本番環境はツインCPUでRAID1 アンチウィルスが常駐しています。 心当たりの方教えてください。
105 :
デフォルトの名無しさん :03/01/29 21:26
>>103-104 >Please check ERROR REPORT FILE for further information, if there is any.
とかいてあるだろ、そっちも示せ
Hashtableを使って、KEY(String) Stirngのペアを作っていました。このデータ構造に、intを足して KEY(String) String intのデータにしたいです。この場合、どのコレクションを使えば良いですか?あるいは小さな クラスでも作った方が良いでしょうか?
> このデータ構造に、intを足して この時点で、再設計の必要を認めなされ。
109 :
デフォルトの名無しさん :03/01/30 02:22
>>107 java.utilに、プリミティブをエントリにできるコレクションは無いです。
解決策は以下のとおり。
1.Integerオブジェクトでラップして放り込みましょう。
2.プリミティブをエントリにできるコレクションを善意で作ってWebで
公開している(ヒマ)人がいるのでググって探して味噌。ちなみに日本人
じゃないよ。
3.物凄くヒマなら、プリミティブをエントリにできるコレクションを自作。
でも、実装する行為自身に意義を感じないなら、単なる無駄ですよ。
4.JDK1.5を待ちましょう。
ああ、値がString+intなのね。 じゃあ、Stringとintをメンバに持つクラス作れば終わりですね。 憶測ですが、もしそのintとやらが順序を保存する為に使うもの ということでしたら、 1.KEYを別途Listに放り込んで、そのList上の位置を使用する。 2.JDK1.4で追加になったLinkedHashMap(↑を内部でやってく れるクラス)を使う。 というやり方もありますお。
KEY(String) String intのデータにしたいです ていう部分の意味がいまいちよくわからん。 例えば Map map = new Hashtable(); map.put("key", "hoge", 1); とでもしたいのか?
>>108-109 どうも、再設計しまふ。
string2つとint一つしかないので、クラスにするのは大げさかなって思ったもので。
String String intの三つを一つの配列にして、それをまた、配列に入れる方法もあるかなとは思いました。
どちらにしろ再設計してみます。
書いている間に続々とありがとうございます。 作りたいのは、英単語,それに対応したモールス信号そしてモールス信号が何カウントするかって 言うintのデータです。 カウントするデータを最初に作り出しておきたかったので、三つのデータが欲しいと思いました。 mapを調べてみます。
一つのキーにStringとintをひもづけたいってことか? Hashtable hash = new Hashtable(); hash.put("Key", "hoge,1") と入れて String value = (String)hash.get("Key"); で取り出した"hoge,1"をStringTokenizerで切り分けて intにしたい"1"をInteger.parseIntで… とか
115 :
デフォルトの名無しさん :03/01/30 02:39
>>112 大げさということはない。
それでわかりやすくなるなら、小さなクラスでもどんどんつくるべき。
ためらっていては、だめですよ。
116 :
デフォルトの名無しさん :03/01/30 02:46
>>114 いくらなんでも、ンナアホナ。
map.put("key",new Object[]{"hoge",new Integer(1)});
のほうがまだマシ。
>>116 さんども、
map.put("key",new Object[]{"hoge",new Integer(1)}); この方法でやってみます。
クラス作った方がすっきりするのかな。
フィールド三つで特にメソッドとかなくてもクラスって作ります?
せめてフィールドの値取得用にgetメソッドか何か作ったらいいと思う。
もう一回質問してみます chatのアプリケーションなどで外部からの入力を待ってると その間にスクリーンセーバーが動いてしまう ソケットの接続を知らせる表示は出せるが、その時はまだスクリーンセーバーが動いているので画面の変化は見えない こういうときにスクリーンセーバーをjavaアプリケーションから 終わらせる方法にはどのようなものがありますか?
120 :
デフォルトの名無しさん :03/01/30 10:35
WinMe + j2sdk1.4.0_01 です。 swing の JTextField 内で日本語変換しようとすると、 IME が候補一覧を出そうとした瞬間以下のエラー出力して落ちます。 FATAL ERROR in native method: Native code expects wrong return type from Java ca llback at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(WToolkit.java:183) at java.lang.Thread.run(Thread.java:479) ただし、JFrame と JTextField だけを使ったちっこいプログラムでは落ちず、 今開発してる馬鹿でかいのだと落ちるのです。 JNI なんかの部分は外してみましたが改善しませんでした。 また、Win2K などでは落ちません。 こんな問題について何か前例があればお教え下さい。
>>119 Java 単体だとそういうのは無理っぽいので,
void PressShiftKey(void) {
BYTE vk = VK_SHIFT;
UINT sc = MapVirtualKey(vk, 0);
keybd_event(vk, sc, 0, 0);
keybd_event(vk, sc, KEYEVENTF_KEYUP, 0);
return;
}
こんな関数を JNI 使って呼び出すというのはどうだろうか。
122 :
h.t ◆fN6DCMWJr. :03/01/30 10:56
>>105 すいません。会社にしか資料が無かったので返事遅くなりました。
>>Please check ERROR REPORT FILE for further information, if there is any.
>とかいてあるだろ、そっちも示せ
の件ですが、「ERROR REPORT FILE」がどこに出てるのかがわからないので
余計に難儀しています。
ちなみに上記エラーは、tomcatのフォルダ内logs\jvm.stderrファイルのもので
他のエラーログらしいものは見当たりません。(見つけられないだけかも・・・)
Apach,jdkにもログらしいものは出ていません。
ウィンドウズのイベントビュアーでシステムログを見ると
ソース:Service Control Manager 分類:なし
種類:エラー イベントID:7031 ユーザ:N/A
説明:Tomcat サービスは不正に終了しました。これは 2 回発生しています。
次の修正動作が 0 ミリ秒以内に行われます: 何もしない
と出ています。
100行ほどあるJTableをJScrollPaneへ貼り付けました。 そしてJTable#setRowSelectionIntervalを使って任意の行に フォーカスさせる処理をやっているのですがのですが、この時 画面に見えていない行を指定しても自動的にスクロールされません。 4行目、85行目、等と飛び飛びにフォーカスを移すのでスクロールされないと 不便です・・・。良い方法があったらお願いします。
>>123 JComponent の setRectToVisible と
JTable の getCellRect とかの組み合わせでなんとかならん?
テキストフィールドからgetText()で取得した小数(0<x<1)の文字列を Double.parseDoubleでdouble値にして、1.0からその値を引いて、 setTextでラベルにその値を貼ったら、テキストフィールドの値次第で 表示がとんでもないことになるんだけど・・・。いい回避法ないですか? labelsetText(1.0-Double.parseDouble(textfield.getText()))って ことなんですけど。ちなみにtextfield=0.3だとlabel=0.7, textfield=0.8だとlabel=0.199999999999999・・・・となってしまいます。
>>123 JViewport vp = jScrollPane.getViewport();
Point p = vp.getViewPosition();
p.y = column_number * jTable.getRowHeight();
vp.setViewPosition(p);
てな風にやるのが良いのでは。
>>125 そういうときは BigDecimal を使うのが定番。
127 :
デフォルトの名無しさん :03/01/30 20:18
>>125 log とってオーダー見て掛け算して
整数化して文字列化して付け直す
でなきゃ NumberFormat
>>126 ,127
レスありがとうございますでつ
早速試してみます
そしてもっと勉強しよう・・・。
しまった。column_number * getRowHeight() って激しく意味不明ですな。 正しくは p.y = row_number * jTable.getRowHeight(); です。スマソ。
>>129 細かい事いうと、IntercellSpacingが設定されてる場合は
それも考慮した方が良いね。
131 :
デフォルトの名無しさん :03/01/30 22:55
質問です。 Javaで日付を取得するにはどうしたらよいでしょうか? Calendarクラスを使うのはわかるのですが、ちんぷんかんぷんになってしまって 日付の取得が全然出来なくなってしまいました。 どなたか知恵を貸してください(_ _)
132 :
デフォルトの名無しさん :03/01/30 23:05
133 :
デフォルトの名無しさん :03/01/30 23:23
質問があります。 コンパイルした際のエラーなのですが \12288は不正な文字です、というエラーがでるんですが \12288とはなんですか? ちなみにエラーの指定されている行は+"</center></body>\n" となっているんですが。 というかこれ以外のところでもよく\12288は不正な文字です といわれます。これはなんでしょうか? というかこれだけの情報で伝わるでしょうか? ちなみにjdk1.4.0_03です。
すいません解決しました 自害します さげ
135 :
デフォルトの名無しさん :03/01/30 23:28
>>133 新しいファイルを作って打ち直せ。
ファイル中にゴミデータが入っている
>>133 U+3000(Ideographic Space)かな。不自然な空白探して
半角スペースに直してみたら?
質問させていただきます。 「0から3までの整数の中からランダムで2つ選ぶ」 って風にしたい場合はどう書けば良いのでしょうか? 初心者でスミマセン。
>>122 力になれなさそう。すまぬ。
>ERROR REPORT FILE = (N/A)
というか、エラーファイルが出力できなかったようなエラーみたいだね
最新のエラーをハンドリングしようとしたときに例外が発生した ってことだと思う。
SIGNALが何かわかれば調べられるのかなぁ・・・。
と、このくらいはもう調べているとはおもうけど。
>>98 ,121
java.awt.Robotを使うとプログラムからマウス操作、キー操作が可能。
ということでこれを使ってShiftキーでも押させればいいだろう。
>>129 の方法でうまくできました。ありがとうございます
147 :
デフォルトの名無しさん :03/01/31 03:19
AppletでJLabelにてhtmlを使い自動改行できたぞワーイ、までは良かったのですが、 一旦決定されたあとウィンドウ幅を変えても、改行位置がそのまま固定されたままなんです。 ┏━━━━┓ ┃ほげほげ┃ ┃はげはげ┃ブラウザのウィンドウを変えると、 ┗━━━━┛ ↓ ┏━━━━━━┓ ┃ほげほげ ┃このまま。 ┃はげはげ ┃ ┗━━━━━━┛ ┏━━━━━━┓ ┃ほげほげはげ┃こうとか、 ┃はげ ┃ ┗━━━━━━┛ ┏━━━━━━━━┓ ┃ほげほげはげはげ┃こうなってほしいんですが。 ┃ ┃ ┗━━━━━━━━┛ JLabelじゃ無理でしょうか。
148 :
h.t ◆fN6DCMWJr. :03/01/31 10:51
>>105 氏
どうも色々すいませんでした。
もう少し、検収して、具体的な現象を掴んでから、また、質問させていただきます。
150 :
デフォルトの名無しさん :03/01/31 13:41
つかないことですが、最新のJAVAの開発環境(JDSK1.41?) )はWINDOWS XP HomeEdision上で動作可能 でしょうか。恐れ入りますが、どなたか教えてください?
151 :
デフォルトの名無しさん :03/01/31 13:59
>>147 アプレットの表示領域をHTMLで決めたと言うこと?
JLabelのtextがHTMLで表記できるの?<-ちがうよなぁ・・・。
もう少し詳しくかきましょう。
>>150 可能です。
>>147 ウインドウのサイズ変更をマウスなどで行った場合にJLabel(?)の大きさも
ウインドウサイズに合わせて変化して欲しいというのと、それに伴って
JLabel上の文字列も幅いっぱいで折り返して欲しい。
という事かな?
153 :
デフォルトの名無しさん :03/01/31 14:31
プログラムを書いてみたのですが、アップレットビューワーだと できるんですが、ブラウザだとできないのですが、どういう原因が 考えられますか? 一応、ブラウザは3種類試したんでプログラムの方に問題があると おもうのですが。。
Javaコンソール見れ。
155 :
デフォルトの名無しさん :03/01/31 15:42
VMってプラットフォームのAPI使って書かれてるの? たとえばWindows用のJDKならばWin32APIは使われているのですか?
>>153 なにが出来て何が出来ないかを教えてください。
>>155 SunにVMのソースコードがおいてあります。
探してみてください。
>>155 環境変数とってくるとか、標準入出力のハンドル得るとか、
メモリ確保とか、スレッド関連とかでWin32API使ってるはず。
ところで、VMと標準APIのnativeの部分とは区別してる?
プラットフォームネイティブなAPI使わないって… POSIX 準拠の関数だけで JVM 構築するとか? JITコンパイルしたネイティブコードを メモリのコード領域にロードするのとかって POSIX で出来たっけか?
>>153 jdk1.4以降は jdk1.1.x レベル(IE標準のMSJVMとかはjdk1.1.4レベル)で実行できないクラスファイル吐くけど、
そーゆーのではなくて?
それが原因だったら、コンパイル時に -target 1.1 つければ大丈夫だけど。
160 :
デフォルトの名無しさん :03/01/31 16:31
データを保存するためのクラスを作成しました。双方向のリンクリストです。 このクラスは、データを取り出すためなどのメソッドを幾つか含みます。 メソッドは特に、staticとは宣言していません。 このクラスのインスタンスを沢山作る(配列にする)場合、 メソッドもインスタンス化されて、多くのメモリを占有することになってしまう のでしょうか?? javaの基本なのでしょうケド、お願いします。
>>160 >メソッドもインスタンス化されて、多くのメモリを占有することになってしまう
>のでしょうか??
メソッドのインスタンス化?って何?
>>160 >メソッドもインスタンス化
いいたいことは分かる。
VM の (あるいはオブジェクト指向言語の) 素直な実装としては、そういうことは無い。
static メソッドにせよそうでないにせよ、
コードは一箇所にしか生成されず、動的メソッドを呼び出した場合は、
インスタンスに対するアドレス値が引数として暗に渡されているはず。
そのアドレス参照先には
「なんのクラスのインスタンスか」の情報と
動的メンバの分しかメモリを占有していないはずだ。
後半のアドレス云々はネイティブ環境 (VM内部) の話ね。
164 :
デフォルトの名無しさん :03/01/31 18:49
質問させてください。 あるアプリでJAVAが必要ということで、SUNのHPで以下のものをインストールしました。 JRE 1.4.1_01 Java HotSpot(TM) Client VM ところがマシンが不安定になったためにこれをアンインストールしたところ、 JAVAを使ったwebで仮想マシンをダウンロードしろと出るのです。(元々あったものまで消されたのかも) で、ダウンロードのボタンを押してもマイクロソフトにはそんなものはありませんと出ます。 初期状態でWin98SEに入っていたとっても軽いJAVAを復元することは無理なのでしょうか? 長々と失礼しました。
165 :
デフォルトの名無しさん :03/01/31 18:51
test
>>162 ずばり、それを調べたかったのですよ!!
どうもありがとうございます。
安心してインスタンスつくりまくりの人生を歩めます。
>>164 アンインストールする前にコントロールパネルのJavaPlug-inで
ブラウザところのMicrosoftInternetExplorerのチェックをはずしておけばよかったと思われ。
>初期状態でWin98SEに入っていたとっても軽いJAVA
ってのは数々のセキュリティホールを含んだものなので使用しないことを推奨。
最新版はWindowsUpdateから手に入れられたと思ったけど、今はどうか知らない。
168 :
デフォルトの名無しさん :03/01/31 19:45
>>167 返信ありがとうございました。
MSのホームページをうろうろ探してみることにします。
(Updateもしてみます)
>>168 もう一度JRE 1.4.1_01 Java HotSpot(TM) Client VMをインストールしなおして、
>>167 >アンインストールする前にコントロールパネルのJavaPlug-inで
>ブラウザところのMicrosoftInternetExplorerのチェックをはずしておけばよかったと思われ。
を実行してからアンインストールする。
171 :
デフォルトの名無しさん :03/01/31 21:42
友達から参考書借りて始めてみたのですが、まずメモ帳で書いたものをなにでコンパイラして classファイルにできるのでしょうか? SunのページでSDK?なるものを落としてみても使い方さっぱりです。 コンパイルのソフトもしくは方法教えて下さい。 ・・・てか本当にJ2SEさっぱり。
173 :
デフォルトの名無しさん :03/01/31 22:10
SDK入れてみたのですが、PATH設定が分りません。インストールガイドに PATH ステートメントを探します。ない場合は追加します。パスを追加する場所がわからないときは、パスの右端に追加します。 たとえば、次の PATH ステートメントでは、右端に bin ディレクトリを追加しています。 PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C: \J2SDK1.4.1_<version number>\BIN ここですが PATH=C:にその文字列をコピペすればいいということですか?
>>173 プログラムの勉強するなら Try and Error を覚悟しよー。
ってことで、とりあえずコピペでもなんでもやってみてください。
失敗しても元に戻せるように元のPATHの値はどっかに保存しておいた方が良いかも。
175 :
デフォルトの名無しさん :03/01/31 22:27
SDKのパス設定はWINDOWS XPのプロフェッショナルと ホームエディションは同じ方法で可能でしょうか? どなたか教えていただけますでしょうか?
>176 ありがとうございます。初心者でお薦めの本があれば教えていただけますでしょうか?
SunのJavaプログラマー資格は学生のうちにとっておいた方がいいでしょうか? 受験料高いですが・・・
>>146 よく分からんが・・・がんばります。
ありがとうございました。
180 :
デフォルトの名無しさん :03/02/01 00:57
JBuilder7で使用中にMS-DOSコマンドを使うと下記エラーになります。 JBuilder7をアンインスツールすると実行可能になります。 原因はなんでしょうか? C:\startjava\test\Article\STEP1>JAVA FirstProgram Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.3', but '1.4' is required. Error: could not find java.dll Error: could not find Java 2 Runtime Environment.
181 :
デフォルトの名無しさん :03/02/01 00:59
>>180 >原因はなんでしょうか?
has value '1.3', but '1.4' is required.
>>178 そういった無駄なものは、取るなら時間とお金に余裕がある学生のうちに取ったほうがいいですね。
183 :
デフォルトの名無しさん :03/02/01 01:17
>>181 JBuilder7をインスツール中は'1.3'が有効ということ?
184 :
デフォルトの名無しさん :03/02/01 01:44
j2sdk1.4.0_03とtomcat3.2.3を使いたいのですが C:\tomcat3\bin>startup とすると Including all jars in c:\tomcat3\lib in your CLASSPATH. Using CLASSPATH: c:\tomcat3\classes;c:\tomcat3\lib\JAXP.JAR;c:\tomcat3\lib\SERV ET.JAR;c:\tomcat3\lib\ANT.JAR;c:\tomcat3\lib\PARSER.JAR;c:\tomcat3\lib\WEBSER~1 JAR;c:\tomcat3\lib\JASPER.JAR;.;C:\jdk1.4.0_03\bin;C:\tomcat3\lib\servlet.jar;. c:\j2sdk1.4.0_03\lib\tools.jar Starting Tomcat in new window とでてるのですが、その後新しいウインドウが一瞬で閉じてしまうのですが、 わけがわかりません。 どなたか是非アドバイス下さい
>>184 CLASSPATHの指定してるんだろうな。
>Including all jars in c:\tomcat3\lib in your CLASSPATH
>その後新しいウインドウが一瞬で閉じてしまうのですが 死んでます。 set TOMCAT_HOME=C:\tomcat3
187 :
デフォルトの名無しさん :03/02/01 05:20
SpringLayoutを試しているのですが、 ウインドウサイズ変えたらサイズにあわせて自動的に伸びるコンポーネントとか配置できないでしょうか?? それさえできればSpringLayout相当便利
>>131 Calender.getInstance();
とリモートレスしてみる。
>>187 これかなぁ
javax.swing.Spring
190 :
デフォルトの名無しさん :03/02/01 09:40
>>180 binフォルダにclassファイルを置けば実行できました。
C:\j2sdk1.4.1\bin>JAVA FirstProgram
それ以外はエラーでJBuilder7の設定優先のようです。
JBuilder7をアンインスツールすればどの階層でも実行可能です。
JBuilder7に乗っ取られたという嫌な感じ。
>>190 JREはインストール時にjava.exeを %WINDIR%\SYSTEM32\ におく。
ここから起動されたjava.exeはレジストリの情報がある場合はそれをもとに
他の必要なファイルを見つける。レジストリの情報がない場合はjreの
ディレクトリから起動されたものと仮定して、java.exeが起動された場所
から必要なdllがないか探す。で、今回は1.4の情報がレジストリになくかつ
java.exeがjre以外のディレクトリから起動されているからdll等が見つからない。
JBuilder7に必要な環境がわからないから(パス中にどのバージョンの
java.exeが必要か等)へたなアドバイスはしないけど、とりあえずコマンドプロンプトから
set PATH=C:\Program Files\Java\j2re1.4.0\bin;%PATH%
とでもうってからjava.exeを起動したら? javacを使いたいときはJDKの
ディレクトリね。
>>177 本屋に並んでいるJavaの本を右から順番に1冊ずつ買え。
全部出来たとしてもJavaプログラマとしてはたいしたレベルじゃない。
JDK(SDK)のPATHの設定方法 Win9x- CドライブのAutoexec.batファイルをメモ帳などのエディタで開き、 SET PATH=%PATH%;C:\j2sdk1.4.1\bin を記述してダブルクリック。 (フォルダ名をj2sdk1.4.1を例にしてます。適宜変更してください. 例えば、 c:\jdk1.3\binとか ) 確認方法:コマンドプロンプトを起動して java と入力して、「ずらずら・・」 と、それらしいものがでてくればOK。 Win NT/200x- マイコンピュータを右クリックで「システムのプロパティ」を表示。 詳細タブをクリックして「環境変数」ボタンをクリック。 path 項目があればその項目を選択して「編集」なければ「新規」ボタンをクリック。 変数値のテキストフィールドに C:\j2sdk1.4.1\bin を追加。 (フォルダ名をj2sdk1.4.1を例にしてます。適宜変更してください. 例えば、 c:\jdk1.3\binとか )
>>185 ,186
??
死んでるとはどういうことでしょうか?
壊れるってこと?
よくわかんないので違うヴァージョンのでも
インストールしてみますが、
できればもう少し詳しく教えて欲しいです。
ちなみにj2sdkの方はちゃんと動きまする。
Javaのソース整形ツールの中で、 JacobeとJALOPYってどっちがメジャーですか? googleの検索結果ではあんまり変わらないけど・・・。
頻繁に使うクラスまたはその親を新品のインクがなくなるまで印刷し整理したんだけど なにか間違ってるかな? 用あるごとにいちいちHTMLドキュメント開くの面倒くさくて・・・
誰かに咎められたのか? 仕事場で全員がそれをやったらどうかと思うが・・・
>>197 製本して売ってなかったっけ?あれは別物?
そんなことより emacs + JDEE で C-c C-v C-w と打て。
遅いし探して来ないパターンあるけどw
どうしても印刷したけりゃAPIのソースがお勧め。
>>197 どうだろうな・・・俺はブラウザで見てるが。
allclasses-frame.html だけは、
自分の使う Class へのアンカを別途上にもってきた。
ネスケから Mozilla に変えたらページ検索が重くなって哀しくなった
言葉数たりなかったようで・・・JavaAPIリファレンスのことです。 最初のメソッドの概要部分しか印刷してませんがそれでも1000枚以上 いっちゃいました・・・。でも知りたいメソッドがすぐに調べれて結構便利。 インクと用紙は一応自腹です。 >どうしても印刷したけりゃAPIのソースがお勧め APIのソースも手元に置いとけば役に立ちそうですね。やってみようと思います。
202 :
デフォルトの名無しさん :03/02/01 17:11
メディアトラッカーのcheckIDでTRUEが帰ってきません。 目的の画像はちゃんと読みこまれているはずなのに。
JAVA初心者です。 javaの入門書ではmainメソッドの引数に String args[] となってましたが、 Sun ONE studio では String[] args になってます。 どっちも間違ってないんでしょうか? String[] argsの書き方は素人の私には 「こんな書き方って文法的にいいの?」 って思います。 よろしくお願いします
>>203 コーディング規約的には String[] args を推奨。
String args[] みたいな書き方は C の考え方が抜けない人用に残してあるだけ。
>>204 ,
>>205 ありがとうございます。
これからは
String[] args
にするようにします。
プログラミングの知識がある程度あるのに、また最初から習う っていうのはダルいもんですか?
2つ目からは初歩的なところは不要っしょ 変数とは!制御構造(forとか)とは! なんて実用されてる言語ではほとんど同じだし。
あのう、メディアトラッカーなんですけど、画像が読みこまれてからじゃなくて、 読みこまれて、実際に表示されてからchickIDがTRUEになるのですか?
>>208 >>207 は難しいか、と聞いてるのではなくダルいか、と聞いてるので、
講習会への参加かなんかをためらってると思われ。
>>207 上記前提で返事。
2言語目以降は独学を薦める。やっぱド素人のペースに合わせるのはだるい。
でも、面白いよ。例えば配列の範囲外を触ったとき
Perl → 自動的に範囲拡張
Java → 例外発生
C → (゚∀゚)
設計の違い、言語の特徴が見えてくる。
>>209 読み込まれたか、エラーが発生するか、中断された場合はtrue。それ以外はfalseだそーで。
MediaTracker#statusID 使うとか、Component#checkImage した方が速いかも。
うちからだと java.sun.com 192.18.97.71 www.sun.com 64.124.140.181 developer.java.sun.com 64.124.140.141 だな。
SpringLayoutの日本語チュートリアルってどっかにないですか?
218 :
デフォルトの名無しさん :03/02/01 22:41
>>193 XPですがJBuilder7を使うとだめみたいです。
JBuilder7を削除すれば問題ありません。
219 :
デフォルトの名無しさん :03/02/01 22:48
今日バックナンバーでCマガの8月号を買ってきたんだが、JBuilder7の最新レポートが載っていた。
>>216 ずばり無い。
ではあんまりなので、最近APIのソースまで見て使った俺のアドバイスを。
縦横別で設定するのがコツ。
基準コンポーネントをまず並べる。
それに付随するコンポーネントを並べる。
一番難しいのは基準コンポーネントを並べるところ。
例: 上部のテキストフィールド+ウィンドウサイズに合わせて伸縮するスクロールペイン
layout.putConstraint(layout.NORTH,txtField ,sprYPad,layout.NORTH,this);
layout.putConstraint(layout.SOUTH,scrList,Spring.minus(sprBorder),layout.SOUTH,this);
layout.putConstraint(layout.NORTH,scrList,sprYPad,layout.SOUTH,txtField);
親コンポーネント(this)との間に制約がかかるところが俺的盲点だった。
putConstraintを実行しても、引数のコンポーネントのうち2番目の方には何の制約もかからないことに注意。
あとは複数制約をかけたときの消される優先順位にも注意。SOUTH -> NORTH で。
221 :
デフォルトの名無しさん :03/02/01 22:58
>>218 JBuilder7をインストール時
C:\Documents and Settings\Owner>java -version
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.3', but '1.4' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.
JBuilder7をアンインストール時
C:\Documents and Settings\Owner>java -version
java version "1.4.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
222 :
デフォルトの名無しさん :03/02/01 23:59
JAVAアプレットでミニゲームを作ったのですが、 コンパイルしたら、test.classとtest$1.classと二つのClassファイルが出来ました。 これはどういうことなんでしょうか? 二つとも無いと、ブラウザで動きません。 自分のHPにあげようとおもったら、test$1.classのほうがあげられないもので、 (たぶんgetcitiesの制限だと思う)test$1.classのほうのファイル名を 変えることができるとよいのですが。
>>222 無名インナークラスを使っているから。ソース中に↓こんなことやってる
ところがあるだろう。
setActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
...
}
});
こんなところがありますが、これのことですか? addMouseListener( new MouseAdapter() { public void mousePressed(MouseEvent me) { 何か名前をつけることで解決できるのでしょうか。 よければその名前のつけかたをお願いします・・・。
>>224 GeoCities はファイル名に $ が付く事を許していないので
jar に固めるしかないと思われ。
自分なりに調べてみたんですが、ネストしてnewとかやるんじゃなくて、 別にクラスを作ればいいのかな・・・?いまいちわかりきってない。 「jarに固める」とはどういう意味でしょうか?
>>226 あ、innerクラスじゃない別のクラス作るのでもいーや。
>>224 implements MouseListenerてな感じでOK
>223 >225 >227 >228 ありがとうございました。やってみます。
>229 あ、FAQのページでCtrl+Fで検索してあたらなかった時点でやめてしまいました。 >227のやりかたで出来たら、(もしくはできなかったらそれはそれで、)jarについても勉強します。 ご忠告ありがとうございます。
>>226 jar 圧縮はJakarta-antがあると楽
コンパイル、動作テスト、ドキュメント生成、署名もこれでやっとくとええよ。
233 :
デフォルトの名無しさん :03/02/02 00:47
JavaでC/C++のようなアセンブラ寄りの処理って出来ます?
>>233 アセンブラ寄り
の意味によるなあ。
たとえば?
>>234 ポインタが無いのは知ってるけど、、、
例えばregister型の変数とか、
クラス関係ならコンストラクタ、デストラクタなど。。。
CPUに優しいプログラムが組めるかどうか、ってことかな。。。
>>235 Javaにもポインタはある。演算や操作がないだけ
今後は人に優しい言語が主流です。
だめだ・・・わかりません。現在、以下のようなソースになっているのですが public class Test extends Applet implements Runnable{ public void init() { addMouseListener( new MouseAdapter() { public void mousePressed(MouseEvent me) { /*何か処理*/ } } ); } /*その他もろもろ*/ } 「匿名クラスを別のクラスとして作る」というのはどこをどうすればよいのでしょうか。 正直、この部分で何が起こっているのか理解できてません。 さすがにそれを一から教えてもらうのは申し訳ないので、とりあえず 今はコレをどうしたらいいかだけでも教えてください・・・。 あとは自分でじっくり勉強します。
>>238 public class Test extends Applet implements Runnable{
public void init(){
addMouseListener( new TestMouseListener() );
}
//いろいろ....
}
class TestMouseListener extends MouseAdapter{
public void mousePressed(MouseEvent me) {
//いろいろ
}
}
こんな感じ。
>239 ありがとうございます!できました! 匿名クラスっていうのがなんとなくわかりました。 ・・・で、結局Classファイル名に$がはいるのか。 jar圧縮ってやつをやってみます。
>>240 いや、入らないっしょ。
$の付いたクラスファイルを消してから、コンパイルしてみてください。
$の付いたクラスファイルがまたできるようなら、他の場所でなにかやってる。
>>240 class CFoo {
class CFooChild {
// 中は略
}
}
で、
javac CFoo.java
↓
CFoo.class
CFoo$CFooChild.class
ができあがる。...どこかでインナ・クラス使ってるだけだろ。
全部 *.jar に入れとけ。
つか、ごめん。前レス読んでなかった...ガイシュツだったのね。 鬱だ...。
swingの質問です。 親パネルで子パネルを作って、親パネルにaddしました。 親パネルで、子パネルの上を通る形で、線を描画したいのですが、子パネルの下に潜ってしまいます。 子パネルの上を通したい場合はどうしたらよいですか?ちなみに通したくない線もあります。 ------------------- | 親パネル | こうなって欲しい。 | | | -------- 子パネル| | | | | | | | | |-----------------| 親パネルの線が子パネルの上を通る様にした。 | | | | | -------- | | | ------------------- 実際は、 ------------------- | 親パネル | こうなる。 | | 親パネルで引いた線が子パネルの下に潜ってしまう。 | -------- 子パネル| 子パネルの上を通したい。 | | | | | | | | |-| |--------| | | | | | -------- | | | -------------------
245 :
デフォルトの名無しさん :03/02/02 04:10
ごめん、図がうまく書けてなかった。 ---------------------- | 親パネル | こうなって欲しい。 | | | -------- 子パネル| | | | | | | | | |--------------------| | | | | | -------- | | | --------------------- ---------------------- | 親パネル | | | | -------- 子パネル| | | | | | | | | |--- -----------| | | | | | -------- | | | --------------------- 今度はちゃんと見える?
>>244 Swingはしばらく、やってないんであってるかわからんけど、
JComponent.setOpaque(boolean) で、
コンポーネントを透明化できたかも。でもって、子のクラスを透明化する、と。
Java初心者です。 宿題でどうしてもわからない所があるので、どなたか助けていただけませんか? 問題は Assume that age is a previously defined 'int' variable and that all required import statement have been coded. Code a singel statment to extract the text from an existing TextField object named data, convert it to int form, and assign it to age. です。 ‘extract’の部分がよく分かりません。 getTextを使用するのでしょうか? 分かる方いましたら、よろしくお願いします。
extractは、引っ張るとか、そういった意味だ。 dataと変数名のつけられたTextFieldから、String型のオブジェクトを得て、 それをint型に変換。それをint型変数ageに代入せよ。
‘sage’を間違って 名前の所にタイプしてしまいました。。。。 あがっちゃいましたね。。。 ごめんなさい。。。
デフォルトさん、すみませんが、 もう少し分かりやすく説明していただけませんか? dataという名前のTextFieldにタイプされたTextが String型なんですよね? それで、そのTextをint型にしてageという 名前にするという事ですか? もう少しヒント下さい。 よろしくお願いします。
>>246 さんどうも。透明化ですか?やってみます。
ただ、透けて見えて欲しくない線もあるので、難しいところです。
>>220 どうもすいません。とりあえず唯一の日本語資料であるAPIドキュメント
でも見ながらいじってみるです。
>>240 interfaceとかabstract classは、そのままではインスタンスを
作れないけど、コード中で即「実装や継承したことにする」のが
無名インナークラス。無名クラスが気持ち悪いとか、ファイル名
に$がつくのがまずい場合は、実装なり継承なりしたサブクラス
を定義してやればいい。
abstract classはextendsが、interfaceはimplementsがそれぞれ
省略された書式になっているので、最初はわかりづらいかもね。
>>250 age is a previously defined 'int' variable
ageは前もって定義されているint型変数です。
デフォルトさん、度々の回答ありがとうございます。 まだ、よくわからないので、今日はこれでやめにして 脳をリフレッシュさせます。
無名クラスは別に interface や abstract class だけでなく、 実装クラスも extends して作れるべや。 美しくはないかもしれんが。
>>250 間違ってたらごめんね
TextField data = new TextField();//テキストフィールド
int age = Integer.parseInt(data.getText());//文字を取得してint型にキャストして代入
>>250 元の宿題の「TextFieldを使って値を入力」の部分を考えると
>>257 のコード + 例外をキャッチする部分も書いといた方が良さそうだな。
259 :
デフォルトの名無しさん :03/02/02 18:19
10進数を16進数に変換する素敵なメソッドってある?
>>259 まあ、あれだ。君のやりたい事を推測して答えよう。
Stringとか、Integerとかのメソッドに該当するものがあるから、APIを見てください。
toHexString(int i) 発見! いやーAPIばんざい。 ありがd>260
262 :
デフォルトの名無しさん :03/02/02 19:05
お聞きしたいのですがJAVAってアプレット・スクリプトetc ありますが、どれから手をつければ。。。 ってかプログラムで何つくればいいのって感じなのですが。 ホントに教えてください。
>>262 JavaとJavaScriptは別物だって何度言えば・・・・
>>262 作りたいものがなければ作らなくて良い。
>>262 とりあえず言語仕様くらい勉強しようか。
そんでHelloWorldくらい書いてみて、その後選べ。(Script以外)
>>262 アプレットだとかサーブレットだとかいろいろあるが
結局すべて「Java」という言語の使い方の一つにすぎないから。
作りたいものも特になく
JavaとJavaScriptは違うことも知らないんなら
いっそ何もせずに寝てた方がいいけどな。
267 :
デフォルトの名無しさん :03/02/02 19:29
public void paint (Graphics g){ } この行の意味がわからないんだけどどういう意味ですか
>>267 引数のgに対して描画処理を行うメソッド。
269 :
デフォルトの名無しさん :03/02/02 19:37
ありがとう。で引数って何ですか
●コレを覚えろ [−] 言語仕様 │ ├ [1] "とりあえず動かしたい" → アプリケーション │ 最初に必要な知識:static mainてなんですか? │ 覚えておいた方がいい知識:全部 │ とりあえず必要なもの:JDK │ │ │ ├ [A] "ブラウザで何かやりたい" → Applet │ │ 最初に必要な知識:イベントモデルの理解(オブザーバパターンの理解) │ │ AWTやSwing等のUIがらみのAPIの使い方 │ │ 覚えておいた方がいい知識:スレッドモデル │ │ とりあえず必要なもの:ブラウザ │ │ │ └ [B] "サーバで何かやりたい" → Servlet , JSP , EJB 等 │ 最初に必要な知識:HTTPそのもの。 │ HTTPのメソッド(POST,GET等)と、そのサーブレットでの対応方法等。 │ 覚えておいた方がいい知識:マルチスレッドだという事。 │ とりあえず必要なもの:サーブレット・コンテナ (JBoss , Tomcat等) │ └ [2] "Beans?" → JavaBeans 他 最初に必要な知識:カプセル化という事の意味。 覚えておいた方がいい知識:何をカプセル化するかによる。 とりあえず必要なもの:そのBeanを使用する何か。 ※[注意] これで全てだとは思ってはいけない。
>>271 何でアプリケーションの上にアプレットがひっついてるんですか?
>>273 >何でアプリケーションの上にアプレットがひっついてるんですか?
"下"だよね。つーか、悩んだんだけど、結局"HelloWorld"程度のものもアプリケーションな訳だから、
並列にするのもどうかなと思ったので。
やっぱ最初はコマンドラインから行っとけ、程度の意味です。
#ていうか Appletの所。別にUIあるのがAppletて訳でも無いよな。破綻してるかも、このツリー。(笑
275 :
デフォルトの名無しさん :03/02/02 19:52
引数ってクラスをインスタンス化するときにつける名前ですよね? 変数とどう違うんですか?
>引数ってクラスをインスタンス化するときにつける名前ですよね? どこからそういう解釈になったのか小一時間(ry
>>275 >引数ってクラスをインスタンス化するときにつける名前ですよね?
違います。
>>274 うむ。俺の論点はまさに#の後ろの文章だ。
>>278 スマソ(笑
だけどさ。なんか「どこから勉強したらいいですか?」みたいな質問って、人にするか?普通。
そんなの「何やりたいか」が決まれば自ずと調べる対象も見えてくると思うんだが。
で、そんな猿質問に答えるのはみんな疲れるだろうと思ったので、書いてみたのが、あのツリー。
ダメすか。実際。
280 :
デフォルトの名無しさん :03/02/02 20:03
クラスの実体化ってありますよね。 で Graphics g; g= Graphics(); って書けばいいって書いてあるんですけど、実際のプログラミングでは こう書かないで急に public void paint (Graphics g){ } みたいにGraphics gが登場してるんですけど、どうなってるんですか
>>280 >って書けばいいって書いてあるんですけど、
何処に書いてあるのかもちゃんと書いてね。
>Graphics g;
>g= Graphics();
できません。
>みたいにGraphics gが登場してるんですけど、どうなってるんですか
自分で調べようね。
>>280 class ClassA {
// Object型のオブジェクトを引数に取ってなんかやるメソッド。
public void paint(Object o) {
// 何か処理
}
}
class ClassB {
static void main(String[] args) {
ClassA aObj = new ClassA();
Object oObj = new Object();
obj.paint(oObj);
}
}
× obj.paint(oObj); ○ aObj.paint(oObj);
>>282 ポリモの説明にしてはわかりにくい気がするぞ。
>>280 >g= Graphics();
すくなくとも
g = new Graphics();
でないとエラー。
>みたいにGraphics gが登場してるんですけど、どうなってるんですか
Appletクラスについて調べてみてください。
>>284 >ポリモの説明にしてはわかりにくい気がするぞ。
??ポリモ以前の問題。
>>280 g= new Graphics();
か
g= hoge.getGraphics();
これの間違いだろ。Graphicsの場合はこれだとちょっとまずいが。
>public void paint (Graphics g){
>}
いきなり登場しているわけではない。
お前さんが組んだプログラムは、お前さんが組んだ部分と、
Javaを作った偉い人が組んだ部分との連携プレーで動くのだ。
Javaを作った偉い人のプログラム中から渡されたものだ。ありがたく使うのだ。
//画面表示を行うGraphicオブジェクト class DisplayGraphics extends Graphics { 〜 } //プリンタに印字を行うGraphicオブジェクト class PrinterGraphics extends Graphics { 〜 } class afoka { public static void main(String[] args) { Graphics g = null; if(args[0].equals("print")) { g = new PrintGraphics(); } else { g = new DisplayGraphics(); } x.paint(g); } }
>Javaを作った偉い人が組んだ部分との連携プレーで動くのだ。 >Javaを作った偉い人のプログラム中から渡されたものだ。ありがたく使うのだ。 所詮は凡人だ。
>>288 全角でスペース入れないとインデントできないという哀しさ。ヨロシク。
>>289 Javaを作った偉い人 >= 凡人 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>280
>>280 と比べればどんな人でも偉く見えるっしょ。
>>290 知ってるからそもそもスペースを入れていない罠。
>>287 >お前さんが組んだプログラムは、お前さんが組んだ部分と、
>Javaを作った偉い人が組んだ部分との連携プレーで動くのだ。
偉いか凡人かはともかく、元の質問。
考えるに、
>>280 はコード書いた事が無いと思われ。まだ本をちらっと読んだだけのレベル。
何故ってそういう解釈のまま、コード書ける訳無い。
そもそも java.awt.Graphics は abstract class なので new した時点でコンパイルエラーを食らいます。
って言うかpaint()の仕組みとか語り出したらデザインパターンとか引っ張り出す羽目に。
つぅか死んで1からやり直せ。
299 :
デフォルトの名無しさん :03/02/02 20:23
みなさんいろいろありがとうございます・・・ 1からやりなおせっていうか1から始めたところです・・・すんません
>>297 つーか、AWTがらみで目立つデザパタって、せいぜいオブザーバとコマンドと
テンプレートくらいじゃないの?
って、コマンドは無いか。
とりあえずアプレットではなく、コンソールアプリから始めることを 薦めるのはおじさんの発想かなぁ。
やる気のない馬鹿はほっとけや。 つーかJava以前の問題だろ、こりゃ。
あーゆー人みると、突如釣り師になるのでは? とか疑っちゃう俺は 2ch に毒されすぎですか?
質問です。 class Foo { public static void main(String[] args) { // ※1 } } ※1←ここで!その実行されている(自分を含んでいる)"クラス名"を取得する方法は ありますでしょうか。 ちなみに某MLの過去ログによると、「わざと例外を投げて、そこから当該オブジェクト名を取得する」 というトリッキーな方法を解説している人がいました。 他に無いスか?
つーか、staticなメソッドってクラス(この場合Foo)のメンバっていう定義じゃないんですかね。 Foo.main(arg) のようなアクセス方法って、結局ただのスコープ解決以上の意味は無いんでしょうか。 文法砂糖っていうか。 どうなんでしょう。
>>308 インスタンスならthisが使えるんだろうけどね。
>>308 もしくは JITコンパイラ用のインターフェイス使用して
ネイティブで(Javaの)スタックに触れるようにするぐらい。
(HotSpotVMで使える方法化は知らない)
ま、JDK1.4 からは例外(Throwable)から そのへんの情報の取得が
やりやすくなってるので普通はそれでよいのではないかと。
>>309 名前付きグローバル関数と覚えてれば十分。
>>310 そうなんですよね。でも、今回のポイントは "staticなメソッド" て部分です。
つーか、MLとってるんなら、こっちで、質問投げる必要ないだろ。 あっちに参加しろ。
>>311 JDK1.4.x の APIはがっさり見てみました。
ただ、なんか Sun のVMだと、(そのランタイム中で) sunパッケージにそれっぽいreflectがありました。
でも、それって標準じゃないですよね。
>>308 っつか、static は継承できないから、Foo.class.getName() とかで解決しちゃって良いのではないかと。
>>314 いや、見たのは公開されている"過去ログ"なんで。
つーか、誰か知ってるかなーと思って。
Jakarta系だと、バッチファイルで解決してそうな。 Javaオンリーじゃなくて。
>>316 >Foo.class.getName()
Foo.class と書いてる時点で "Foo"という名前がわかってる訳だから、
getName()する必要も無い。
今回の話は、まさにその「"Foo"がわからない(Fooを辿れない)」状態から、"Foo"を取る方法は?って事では。
320 :
デフォルトの名無しさん :03/02/02 21:15
tomcatのバージョンの違いって何ですか? 4.0と3.1の違いって具体的にどう言ったところですか?
>>318 "Jakarta系"って何?
Tomcat.exe (Tomcat4) はJNI使って、自分の実行時クラス名を取ってるとでも?
意味無くない?
322 :
デフォルトの名無しさん :03/02/02 21:18
>>320 Tomcat3.1.x ← 過去から続くシリーズ
Tomcat4.x ← J2EEのRI
323 :
デフォルトの名無しさん :03/02/02 21:18
1. static メソッド内で、その static メソッドを含むクラス名を得たい。
2. static メソッド内で、その static メソッドを呼び出したクラス名を得たい。
どっち?
>>308 読むと 1. と取れるんだけど。
>>321 違う違う。まんま書いてあるのよ。batとか、shファイルに環境依存の値が。
>>322 起動コマンドが、
./startup.sh
から
./catalina start
にかわったことだろうか
そんなことよりも、
JSPとServletのVersionが上のヤシが使用されていることだと思った。
>>326 >>320 の間違い。スマソ。
<if>だとか<for>だとか新しいカスタムタグライブラリも加わったと思った。
>>319 static メソッド内で 「"Foo"がわからない(Fooを辿れない)」状態っては
Foo および static メソッドが自分の手の届かないところで
自動生成されてる場合ぐらいしか考え付かないけど…
そーゆーことなの?
今見たけど、Tomcatって5出てんだな。 ちとびっくり。
>>324 >1. static メソッド内で、その static メソッドを含むクラス名を得たい。
です。
変な例ですが、例えば
>>308 の Foo を、 "static void main()"以外のメソッドを 継承した
別のクラス(仮にFooEx)があるとして、
String className = "Foo"; // ← 又は"FooEx"
Runtime.getRuntime().exec("java "+className);
とかした場合、あるいは単純にコンソールから実行した場合、
実行されるのは当然 Foo.main になります。 でも、自分が実行したのは指定したクラスの方です。
なので、このstatic なエントリ内で、果たして「俺は誰?」がわかるもんなのかなー......と。
>>330 自己レス。
>"static void main()"以外のメソッドを 継承した
static は継承できないですよね。スンマソ。
332 :
デフォルトの名無しさん :03/02/02 21:36
>>329 でも、まだ Release Build じゃないみたいね。
333 :
デフォルトの名無しさん :03/02/02 21:37
すいません jarファイル、warファイル の意味がわかりません これがあると何がどうなんですか?
べつに
>>333 複数のファイル、ディレクトリを一つのファイルにまとめることができる。
階層も深くて何百とあるファイルを含んだディレクトリツリーを
そのままコピーしたりネットワーク通してダウンロードしたりアップロード
したりするよりはファイル一つになっていた方が便利でしょ?
だまされないぞ
>
>>333 jarはzipと同じ。拡張子が違うだけ。
warはjar形式で圧縮されているが、中身も
J2EEの仕様に沿った形のディレクトリ構造、ファイルの配置に
なっていることが条件。WEBアプリケーションを一つのファイルに
まとめたもの。
EJBも含むearというのもある。
>>333 *.jar = Java application ARchive
*.war = Web application ARchive
*.ear = Enterprise application ARchive
ちなみに下の2つはJ2EEでの規定のアーカイブです。
正体はどれもzipファイル。
339 :
デフォルトの名無しさん :03/02/02 21:56
tomcatなりwebsphereなり いちいちパスの設定するのがうざいです このファイルを実行すればどのマシンでも自動的にパスを通すことって事や あと実行終了すれば元通りになったりするのって可能ですか? あったとして、そういうファイルってどっかに存在するのですか?
341 :
デフォルトの名無しさん :03/02/02 21:59
>>339 なんのパス設定するのがウザいの?
自前のサーブレットで使用する別アーカイブ(*.jar)とかは、%CATALINA_HOME%\common\lib に入れときゃ
パス通るでしょ?
まさかサーブレットとして使うクラス全てをパスに書いてるとかじゃあるまいな......。
>>340 自己レス。
>だとすると、なんで「クラス変数」とか言うんでしょうね。
これ、関係無いです。スンマソ。
343 :
デフォルトの名無しさん :03/02/02 22:20
結局のところクラスとインターフェースの違いって何? 参考書など、どうも違いと言うか使い分けの仕方がわからない どう言った時に必要なのかとか
>クラスとインターフェースの違いって何 おまえ本当に参考書読んだのか
346 :
デフォルトの名無しさん :03/02/02 22:25
347 :
デフォルトの名無しさん :03/02/02 22:28
interface IHoge { public String get(); } class HogeA implements IHoge { public String get() { return "ほげA"; } // この戻り値はどっかから取ってきたもの。 } class HogeB implements IHoge { public String get() { return "ほげB"; } // この戻り値はHogeAとは違うどっかから取ってきたもの。 } class MainClass { public void method(IHoge hoge) { System.out.println(hoge.get()); } } ↑こう言える。「MainClass#methodメソッドは、HogeAやHogeBから独立している。 ただ、値のやり取りの際の決め事として、IHogeインタフェースを希望しているだけ」 と。
>>347 じゃあ型なんていらないね。同じ名前のメソッド実装すればいいわけだ。
あ、
>>347 は、
>>343 へのレス。
ちなみにこの効果は多態性(Polymorphism)の一部を利用している。
350 :
デフォルトの名無しさん :03/02/02 22:32
Javaってこれから勉強するのですが やっと習得した頃には単なる過去の遺物になってませんか? 業務で利用する機会もほとんど減ってきて、全くの無駄な努力になってませんか? もちろん完全になくなるって事はないと思うけど できるなら無駄な努力はしたくないです
>>350 >やっと習得した頃には
そんなに時間がかかる時点で才能がないので心配いらん。
>>348 あほ。良く見れ。
>public void method(IHoge hoge) {
ここの "IHoge"を、HogeAとかにしたら、HogeBは通らないだろ。
で、HogeBを HogeAのサブクラスにしたら、もしHogeBが他のクラスを継承する必要があったとしても、
できないだろ。
この業界無駄な知識なんて無いと思うがね。
どんなに新しいものも、結局これまでの積み重ねが基礎になってるからねえ。
>>348 動的型言語ではそうだよ。Ruby とか。
StrongType だとコンパイル時などに静的に型チェックできるので、実行時エラーを減らせる。
それと、インタフェイスプログラミングの観点からは、
型が明示されていることによるメリットは大きいと思う。分かりやすいし。
俺は348じゃないが、へーって感じ。 でもここは残念ながら、Javaスレ。(笑 >型が明示されていることによるメリットは大きいと思う。分かりやすいし。 「型」ってもんの捉え方によるよな。俺はJavaでの「インタフェース=やりとりの決まり」を、 「実装する」っていう言い方(考え方)の方がわかり易い。
ま、一緒なんだけど。結局は。
分かりにくかった。下三行は Java の話ね。
lastModifiedでコピー元のlong型のデータ拾ってきて setlastModifiedでコピー先のデータに元の日付を与えたいんですが。 なんでこんな単純なとこで引っかかるのか解りませんが。 どうしてもできません。 どうか何かヒントをください。
>>362 俺には何でそんな単純なとこで引っかかってる理由がわかる。
説明文を日本語ですらかけない奴にプログラムが書けてたまるか。
>>362 何が、どうで、どうしたいのさ。
java.io.File#lastModified の事か?で、コピーってどんなコピーよ。
>>360 >知ってるよ。それを前提で絡んだんだ。
...って事は、クラスっていうスコープ別にある同名メソッドを全て同じ意味のインタフェースと見なす
事がメリットだとでも思ってるって事か?
ファイルを指定したフォルダにコピーするプログラムを組んでいます。 元のファイルの日付を保ったままコピーを行いたいので コピー元の日付を取て、それをコピー先に書き込みたいと思っています。 java.io.File#lastModifiedを使って元のデータの日付を拾い setlastModifiedでコピー先に適用して実行しますが コピーされたファイルの更新日時は、現在の日付を示したままです。 コピー元のファイルの日付を維持したままコピーするには、どうしたらいいのでしょうか?
>>367 要点のソースだけ、貼ってみ。(全部貼るなよ)
たぶんFile#setlastModified の実行タイミングがおかしい、か、
コピーの仕方がおかしい。
ファイルオープンしたまま setLastModified() やってるに一票
370 :
デフォルトの名無しさん :03/02/03 00:30
SpringLayout使い方判った!! Javaのレイアウトマネージャーで個人的にははじめて「思い通りの動き」をしてくれた。 気に入りました!もうこれしか使いません。 現在日本語チュートリアルないのは残念。 まだ使いこなしてない方は↓を参考にがんばって下され!! // 画面左上にボタン1配置 layout.putConstraint(layout.NORTH, button1 ,5, layout.NORTH, contentPane); layout.putConstraint(layout.WEST, button1 ,5, layout.WEST, contentPane); // ボタン1の右下にボタン2配置 layout.putConstraint(layout.NORTH, button2, 5, layout.SOUTH, button1); layout.putConstraint(layout.WEST, button2, 5, layout.EAST, button1); // ボタン2の右下にボタン3配置 layout.putConstraint(layout.NORTH, button3, 5, layout.SOUTH, button2); layout.putConstraint(layout.WEST, button3, 5, layout.EAST, button2); // ボタン3の右下にボタン4配置 layout.putConstraint(layout.NORTH, button4, 5, layout.SOUTH, button3); layout.putConstraint(layout.WEST, button4, 5, layout.EAST, button3); // ボタン4の下にウインドウの右側にくっつくボタン5配置 layout.putConstraint(layout.NORTH, button5, 5, layout.SOUTH, button4); layout.putConstraint(layout.WEST, button5, (int)-(button5.getPreferredSize().getWidth() + 5), layout.EAST, contentPane); // ボタン4の横、ボタン5の下にスクロールテキスト配置 layout.putConstraint(layout.NORTH, textAreaScrollPane, 5, layout.SOUTH, button5); layout.putConstraint(layout.WEST, textAreaScrollPane, 5, layout.EAST, button4); // ウインドウサイズをスクロールテキストの右下にする layout.putConstraint(layout.EAST, contentPane, Spring.constant(5), layout.EAST, textAreaScrollPane); layout.putConstraint(layout.SOUTH, contentPane, Spring.constant(5), layout.SOUTH, textAreaScrollPane);
>>370 神! っていうか、まだよくわかってないんだが(w
参考にしてみます。
>>369 おお、核心かもね!
明示的にcloseしてないと見た。
>>370 ところで、SpringLayoutってのはレイアウトのインスタンスにputConstraint();
でコンポーネントを乗せていって、最後にウィンドウなり何なりのコンテナに
setLayout(layout); してやればいいのかな。
375 :
デフォルトの名無しさん :03/02/03 01:07
>>374 それでもいいかもしれないけど
俺は逆にしてる
Container container = getContentPane();
SpringLayout layout = new SpringLayout();
container.setLayout(layout);
container.add(button);
layout.putConstraint(layout. ...........)
てな感じ
SpringLayoutっておもくないの?
親切にありがとうございました。 closeしてから書き換えなければ意味がないのですね。
378 :
デフォルトの名無しさん :03/02/03 01:19
>>376 知らないけど、他のレイアウトマネージャーだって重いんだから同じじゃない?
SWTでGO! ていうか、Appletとして使用するjarの中にDLL仕込んでも、 ちゃんとPATH(否CLASSPATH)通るんですかね。
って、それ以前にSWTのパッケージ丸ごとjarに詰めるのかYO! って、JNI系ってAppletで使えないのでは? DLLもちゃんと砂場管理できるのだろうか.....。
>// ボタン4の下にウインドウの右側にくっつくボタン5配置
>layout.putConstraint(layout.NORTH, button5, 5, layout.SOUTH, button4);
>layout.putConstraint(layout.WEST, button5, (int)-(button5.getPreferredSize().getWidth() + 5), layout.EAST, contentPane);
PreferredSizeは不要。
動かしてないししばらく触ってないから違うかもしれないけどどうよ↓
layout.putConstraint(layout.EAST, button5, Spring.minus(Spring.constant(5)), layout.EAST, contentPane);
>SpringLayoutは重いか
下手するとO(n^2)だとどっかで見たような気がしなくもないが、
原理から考えると重くなるような制約をかけなければ重くならないはず。
>>370 の書いてるコードだと、軟バネが無いのでnullLayoutとオーダ的には変わらないと思う。
どーでもいいけどオーダーなんて数が多くないと意味無いよ。
解決しましたー。 えー、ファイル名に相変わらず$がはいっていた理由ですが、 >239でいうところのTestMouseListenerクラスをTestクラスの中に作ってたため、 >242のようになってました。 だってグローバル値をいじってたから出せなくて・・・。 とりあえずそのグローバル値をTestMouseListenerクラスの中にもってったりして なんとか完全に別のクラスとして作れました。 なんかめちゃくちゃなことしてる気はするけど。 よく考えもせずにグローバル作るからいけないんだろうな。 なにせ本格的にJAVAのソースをいじり始めたのが昨日なもんで・・・。 お世話さまでした。>242>253もどうもです。 >253の最後2行が、まさによくわかんなかったとこです。
既出だったらすまん build 1.4.1-b21なんだけど java.text.DateFormatクラスのparseってなんか仕様かわった? Localeのほうかな? DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPANESE); でやってるんだけど java.text.ParseException: Unparseable date: "2003年1月31日" がでるようになっちまった 昔1.2頃は動いてたんだけどなぁ、今どきは普通どうすんの?
ほっとく
>>382 まあ、遭難だけど。実験しなくて分かる範囲で正確に答えたらオーダの話になった。
どうせ簡単な加減乗除の繰り返しだろうから、数が少ない場合も全く問題ないはず。
(Javaの数値計算は速い。らしい。)
事故解決 java.util.Date yakujo_date = fmt_full.parse(val + " (日曜日)"); こんなかんじ ” (日曜日)"をつければできた・・・ けど・・・曜日はいらんやろ それに、2003年1月31日は日曜じゃないし isLenientはtrueでつ、falseに変えても同じ 意味ね〜ヽ(`Д´)ノウワーン
バグレポートしる!ニポーンジンじゃないと分からないバグだ!
>>388 たしかに・・・
java version "1.3.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)
だと動いた
1.4系さがしにsunいってきま〜す
build 1.4.1-b21 ってベータじゃないような?
DateFormat format = new SimpleDateFormat("yyyy'年'M'月'd'日'",Locale.JAPAN); みたいにするのが確実かと。
>>393 Thanks、それに直してうまくいった
パースするときに使うフォーマッタは自分で作んないと、あかんね
甘かった。・゚・(ノД`)・゚・。ウエエェェン
JDK 1.4.1 で AWT 標準の Scrollbar クラスを使うと、クリックしたとき スクロールバーが点滅してんのは俺の環境だけ?
IE 標準の jview.exe の Properties#store() は日本語を native2ascii 形式に変換してねーんだな…。
>>395 画面用のメモリをメインからシェアするような統合チップセット積んだマシンで、かつメモリが64MB、
OSがWin98だった頃、俺の所でも
>>395 のような事が起こってた。
つーか、ウィンドウのドラッグ時、それにつられてコンポーネントがリサイズするようなヤツだと
最悪画面に軌跡が残ってぐちゃってなったり、ツールチップの破片が画面に残ったりしてた。
当時「Javaで作るUIってこんなもんなのかな」って思ってたけど、
マシンにグラフィックボード追加して、そっちで表示するようにしたら、
チラつきも画面くずれも無くなった。
....って、これが一般的な話なのかどうなのかは知らないが、少なくとも俺の所はそんな感じ。
>>395 おれはノートPCだがそんなもんだよ
気にするな
けして君の書いたプログラムが間違っているわけではない
安心してくれ
おい。beanbuilderでGUI作ってるやついないのかよ? 俺は結構重宝してるんだけど・・・ 出来上がったXMLファイルを読み込むというなんかへんてこなやり方だけど プログラムのテストには最高だと思うがどう?
400 :
デフォルトの名無しさん :03/02/03 12:16
JAVAで作ったアップローダーのプログラムがあるサイトを教えてくれ
402 :
デフォルトの名無しさん :03/02/03 13:47
質問です。 日付設定では getInstance(*.YEAR); を使うのですが、ユーザに日付を設定させるには どのようにしたらよいでしょうか? メソッドの中でそれらの処理をし Date型の戻り値で設定したいのですが・・・
すいません・・・上げてしまいました・・・
?
どこかのスレで見たけど、自分が何をしたいのかを日本語ですら
説明できないやつがプログラムやロジック、アルゴリズムを組めるわけがないんだよ。
>>402 はJava以前に日本語のお勉強が必要。見る人がわかるように書いてね。
すいません。日本語がおかしかったです。 やりたいことは ユーザーに日付を入力してもらい、入力してもらった日付を プログラム内の日付に設定して処理を行うと言う物です。 言いたいことは、 日付を扱うの基本的にDate型か、Calendar型を使用するので ユーザーに日付を入力してもらうときにはどのような型を 使えばよいのかわからないので教えてください・・・ と、言うことです。文がまだおかしいかもしれませんがどなたか教えてください。
入力って何だよ。 アプレットだったらTextFieldか何かだろうし、コンソールだったら標準入力でごちゃごちゃと。 それとも入力されるデータの型を聞いているのか? Stringに決まってるだろう。 # そのStringがCalendarに変換するとこまで聞きたいんだろうな、きっと(藁
410 :
デフォルトの名無しさん :03/02/03 14:59
>>409 スレ名を読み直せ。「初心者大歓迎」だぞ。
>>411 日本語初心者やネット初心者じゃないだろ?
検索してわからなかったら来ればいと思うけど
自分で何も努力せずに教えてクンは違うんじゃないか?
まあ
>>408 は意地悪な気はするけど。
>>413 はいはい、ひっこんでなさい。あなたはこのスレに求められていない。
ただそれだけだよ。
日本語がどうとかはともかく、
>>1-4 とAPIドキュメントくらい見てから聞けと言いたい。
jar のあるディレクトリにデータを保存させたいんですが、 起動された class が、自身が含まれている jar のありかを知るにはどうすればいいですか
>>413 確かに。締切間際で気が立ってた。
息抜き2chのはずが憂さ晴し2chに・・・・・・。申し訳ない。>
>>402 ただ、
>>402 が情報収集整理能力という今どきのプログラマの大事な能力を
欠いていることは否定しないので、精進して下さいです。
New I/O で質問です。
SocketChannel を非ブロックモードにしてから
SocketChannel#connect を用いてタイムアウトを実現しようとしたのですが、
ローカルホストへの接続の時だけ
Selector#select が問答無用で 0 を返してきてしまいます。
以下の手順でなにか間違っていますでしょうか?
Selector selector =Selector.open();
SocketChannel channel =SocketChannel.open("localhost",13);
channel.configureBlocking( false );
channel.register( selector, SelectionKey.OP_CONNECT );
if( selector.select( 待ち時間 ) > 0 ){ //
Iterator i =selector.selectedKeys().iterator();
while( i.hasNext() ){
SelectionKey key =(SelectionKey)i.next();
i.remove();
channel.finishConnect();
System.out.println( "Connection complete." );
}
}
以下のソースで実験しました。
http://java-house.jp/ml/archive/j-h-b/051359.html?#_body telnet localhost 13 ではちゃんと応答を返すので
daytime デーモンがおかしいということはないと思うのですが…
JToolBerって、ドラッグすることでFloating状態(親フレームから取り外してる状態) にすることが可能だけど、それをプログラム側で行うことってできるの? 今メソッド読んでみたけど、それらしきものはありませんでした・・・。 PhotoShopのツールバーみたいにフォーカスが外れても常に親フレームの手前に 来るようにしたいんだけど、無理かな?
>PhotoShopのツールバーみたいにフォーカスが外れても常に親フレームの手前に >来るようにしたいんだけど、無理かな? 自己レス。全然関係ない事です。すいません
424 :
デフォルトの名無しさん :03/02/03 20:40
パワーポイントで印刷すると90度回転して印刷されるのですが、 そのまま印刷したい場合はどうすればいいのでしょうか? 例えば表なんかを作成して、プリンターにA4を縦方向に入れると 紙を縦にしたときに横になって印刷されてしまうのです。 どこをいじっても改善されないのですが、どなたか教えてくださいませ。
425 :
デフォルトの名無しさん :03/02/03 21:38
XP(eXtreme Programming)でテストは重要というのが気になって 実践してみようと、JUNitをantで実装しようと思っているのですが、 Junitを使っている方々、パッケージへのテストクラスの配置 どのようにしています? ある自作packageがあって、 例 : net.2ch.www.someoneapplication.util というpackageがあったとして、 (net.2ch.wwwの部分はドメイン逆さま。) (srcというディレクトリにすべてのソースコードが入っている) net.2ch.www.someoneapplication.utilの中にある或るクラスの テストをしたいとき、テストクラスをどのように配置しています? 1) net.2ch.www.someoneapplication.util.testというpackageを作ってそこに置く 2) net.2ch.www.testというpackageを作ってそこに置く 3) 2)の方式にするが、そのpackageだけはsrcディレクトリ以外の場所 テストケース専用のディレクトリに置く。 今のところ、私にはこの程度しか思い浮かばないのですが 何かもっと効率の良いテクニックはありますでしょうか? だれか、コツを教えてくださいませ
>>425 そういうのテクニックって言うのか?
漏れならnet.2ch.www.someoneapplication.testとかにするが
428 :
デフォルトの名無しさん :03/02/03 21:51
今独学で例外処理について学習しているんですが
例題が1題しかないのと、解説が少ないとで
なかなか理解できずに爪を噛んでいる状態です。
まず
http://deepmind.hp.infoseek.co.jp/sample4.txt のコードなんですが、
→catch(ArrayIndexOutOfBoundsException e)
のクラスの部分にSuperクラスを指定できるとあるんです。
ならば全部Superクラスにすれば楽なのでは?と思うんです。
しかし、何らかの理由がありArrayIndexOutOfBoundsExceptionクラスを
指定していると思うので、その訳が知りたいのです。。
ちなみに、Throwableクラス、Exceptionクラス、RuntimeExceptionクラスで
実験したら全て実行上問題はなかったです。
どうか宜しくお願いします。
>>428 ある特定の例外だけ処理して後は無視して呼び出し元まで流したいときとか。
>ならば全部Superクラスにすれば楽なのでは?と思うんです。 最初はみんなそう思う。
後、自分で例外クラスを作るという解説があるんですが
http://deepmind.hp.infoseek.co.jp/sample5.txt 「public void setCar(int n,double g)throws CarExceptionE」部分の
throwsについて例外を送出する宣言とあるんですが、
今一意味がわからないのです。
throwsを消してみたらコンパイルができなかったので
文法みたいなもの・・・だと考えればいいのでしょうか?
自分で例外を送出する時だけ使用すると考えればいいのでしょうか?
そして
「class CarExceptionE extends Exception」
についてなんですが、例外クラスを継承していますよね?
試しに他の例外クラスで実験してみても問題はなかったです。
Exceptionクラスを使用する理由がわからないので・・・・
最後にこのコードで一つ思ったことなんですが
例外クラスはjava.langパッケージですよね?
継承については、パッケージを越えて作成できるものということなんですか?
>>431 やめた。本読め。検索しろ。出来なきゃ死ね。
>>429 なるほど。
つまりは多態性というものなんでしょうか?
質問が多くてすみません。
>>429 なるほど。
つまりは多態性というものなんでしょうか?
質問が多くてすみません。
>>428 例外に限らず、オブジェクト指向言語ではすべての型はその
スーパークラスとして扱うことができるという特徴を持つ。
これを is-a の関係という。
ArrayIndexOutOfBoundsException is a java.lang.Exception というわけ。
スーパークラスで全部一括処理しないのは、起きた例外によって処理を分けることができるから。
try {
〜ごにょごにょ
} catch(SQLExceptio e) {
//SQLExceptionが起きたとき(DB関連)のエラー処理
System.out.println("DBまわりで例外発生!");
} catch(ArrayIndexOutOfBoundsException){
//配列参照のエラー発生時の処理
System.out.println("配列の参照で例外発生!");
} catch(Exception e){
//上記以外の例外が発生!
//上から順に検証されるので、上記2つ以外の例外処理はExceptionでまとめることもできる。
}
みたいな。
で、自分で例外クラスを作る場合というのは、 標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。 自分でユーザー認証の仕組みを作って、認証失敗時はエラーとして処理をしたい、というような場合とか。 java.lang.Exceptionではなく、他の例外クラスを継承しても問題ないというのはたまたまだと思っていい。 is-a の関係の話をしたが、 CarExceptionE→(継承)→java.lang.Exception だが、 「他の例外クラス」もjava.lang.Exceptionを継承しているだろうから CarExceptionE→(継承)→「他の例外クラス」→(継承)→java.lang.Exception というわけで 元をたどればどちらの場合も java.lang.Exception を継承している。 しかし、後者の場合だとCarExceptionEは「他の例外クラス」としても扱えてしまうので 「他の例外クラス」とCarExceptionEを別々にcatchして処理を分けたい場合はちょっと困るかもしれない。
で、自分で例外クラスを作る場合というのは、 標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。 自分でユーザー認証の仕組みを作って、認証失敗時はエラーとして処理をしたい、というような場合とか。 java.lang.Exceptionではなく、他の例外クラスを継承しても問題ないというのはたまたまだと思っていい。 is-a の関係の話をしたが、 CarExceptionE→(継承)→java.lang.Exception だが、 「他の例外クラス」もjava.lang.Exceptionを継承しているだろうから CarExceptionE→(継承)→「他の例外クラス」→(継承)→java.lang.Exception というわけで 元をたどればどちらの場合も java.lang.Exception を継承している。 しかし、後者の場合だとCarExceptionEは「他の例外クラス」としても扱えてしまうので 「他の例外クラス」とCarExceptionEを別々にcatchして処理を分けたい場合はちょっと困るかもしれない。
>>435 わかりやすい説明有難う御座います。
「is-a の関係」を意識してコードをみていきたいと思います。
Catchブロックは、上記から順に参照されてゆくんですね。
なら最後のブロックは、ある程度例外をまとめなくてはならないから
Superクラスがよく使用されるということですね。
有難う御座いました。
>>435 わかりやすい説明有難う御座います。
「is-a の関係」を意識してコードをみていきたいと思います。
Catchブロックは、上記から順に参照されてゆくんですね。
なら最後のブロックは、ある程度例外をまとめなくてはならないから
Superクラスがよく使用されるということですね。
有難う御座いました。
なぜ二重投稿が多いですか?
>>441 ブラウザの調子の悪い奴の自作自演じゃないの?
443 :
デフォルトの名無しさん :03/02/03 22:33
>> 428 例外によって処理を変えるとか、出力するメッセージを変えたりするとかできるよね 全部Exceptionで捕まえてもいいけどさ・・・
>>443 そうだね。instanceofもあるからね。
445 :
デフォルトの名無しさん :03/02/03 22:37
最近学校でC++を習いますた といっても基本だけなんですが・・・ でC++をこれからも勉強していこうと思ってるのですが 最近JAVAにも興味を持ち始めました 素人がこの二つを平行して勉強していくってのはどうなんでしょうか? もっとC++勉強してからJAVAも始めたほうがよろしいのでしょうか?
>>437 引き続きレス有難う御座います。
>で、自分で例外クラスを作る場合というのは、
>標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。
了解しました。
今一意味がつかめなかったのが、大まかにイメージを掴むことができました。
>元をたどればどちらの場合も java.lang.Exception を継承している。
最初の質問と同じようなことなんですね。
ただ、「他の例外クラス」として扱えないように区別する為に、
継承するクラスを選ぶ必要があるということですね。
現在の知識じゃ、意図的にコードを作って実験できないんですが、
もう少し力をつけたら、ぜひ再度取り組んでみたいと思います。
今すぐ実践できないにしろ、疑問が引っかかり続けるのは辛かったので
本当に助かりました。
>>437 引き続きレス有難う御座います。
>で、自分で例外クラスを作る場合というのは、
>標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。
了解しました。
今一意味がつかめなかったのが、大まかにイメージを掴むことができました。
>元をたどればどちらの場合も java.lang.Exception を継承している。
最初の質問と同じようなことなんですね。
ただ、「他の例外クラス」として扱えないように区別する為に、
継承するクラスを選ぶ必要があるということですね。
現在の知識じゃ、意図的にコードを作って実験できないんですが、
もう少し力をつけたら、ぜひ再度取り組んでみたいと思います。
今すぐ実践できないにしろ、疑問が引っかかり続けるのは辛かったので
>>445 正直、一つ覚えれば潰しはきくので気に入ったのを勉強しなさいな。
449 :
デフォルトの名無しさん :03/02/03 22:41
自作例外クラスに発生した例外のコード(自分たちで決めた意味を持つコード)を保持させるなんてことを 大体やってると思うんだけど、どうなんだろ?
>「is-a の関係」を意識してコードをみていきたいと思います。 オブジェクト指向言語のエッセンスを会得しかけているね。 その調子でがんがれ。
>「is-a の関係」を意識してコードをみていきたいと思います。 オブジェクト指向言語のエッセンスを会得しかけているね。 その調子でがんがれ。
>>443 何れ出力メッセージを変えるとかやってみたいです
でもしばらくは全部Exceptionで捕まえそうです(汗
(基本が完成するまでは)
>>444 確か同じオブジェクトかどうか調べる式だと記憶しています。
どうコードに使用するかわからないですが、もっと学習してみたいと
思います。
皆さん有難う御座いました。
>>443 何れ出力メッセージを変えるとかやってみたいです
でもしばらくは全部Exceptionで捕まえそうです(汗
(基本が完成するまでは)
>>444 確か同じオブジェクトかどうか調べる式だと記憶しています。
どうコードに使用するかわからないですが、もっと学習してみたいと
思います。
皆さん有難う御座いました。
なぜか2重投稿が多くてご迷惑かけてしまってます。 板を汚してすいませんです。
456 :
デフォルトの名無しさん :03/02/03 22:48
>>453 最初のころは例外を意識してPGした方がいい気がする・・・
漏れも最初はExceptionで捕まえまくってたが
それぞれにあった例外で捕まえた方が勉強になると思う。
どんな例外があるか分かるしね。
コーディングが増えてめんどくさいと思うかもしれないがw
if(a instanceof b){
}
こんなかんじだったかなw
いい加減頭にきてるんですが漏れだけか
458 :
デフォルトの名無しさん :03/02/03 22:51
>>453 最初のころは例外を意識してPGした方がいい気がする・・・
漏れも最初はExceptionで捕まえまくってたが
それぞれにあった例外で捕まえた方が勉強になると思う。
どんな例外があるか分かるしね。
コーディングが増えてめんどくさいと思うかもしれないがw
if(a instanceof b){
}
こんなかんじだったかなw
>>425 テストケースをテスト対象と同じパッケージに置いて、
テストケースのファイル自体はテスト対象と別のディレクトリに置いてます。
テスト対象の完全クラス名がfoo.bar.Buz、ファイル名が\hoge\source\foo\bar\Buz.javaなら、
テストケースの完全クラス名はfoo.bar.BuzTest、ファイルが\hogeTest\source\foo\bar\BuzTest.java
としてます。
privateメンバにアクセスするのにいちいちSecurityManagerを設定しなくていいので便利です。
テストケースのビルドと実行(=テスト)をする際には、テスト対象をクラスパスに
含めておけばいいので、別のディレクトリにあっても無問題でした。
JSPはそういう訳にもいかず、いちいちコピーしてました。もっといい方法ないかな〜。
>>425 テストケースをテスト対象と同じパッケージに置いて、
テストケースのファイル自体はテスト対象と別のディレクトリに置いてます。
テスト対象の完全クラス名がfoo.bar.Buz、ファイル名が\hoge\source\foo\bar\Buz.javaなら、
テストケースの完全クラス名はfoo.bar.BuzTest、ファイルが\hogeTest\source\foo\bar\BuzTest.java
としてます。
privateメンバにアクセスするのにいちいちSecurityManagerを設定しなくていいので便利です。
テストケースのビルドと実行(=テスト)をする際には、テスト対象をクラスパスに
含めておけばいいので、別のディレクトリにあっても無問題でした。
JSPはそういう訳にもいかず、いちいちコピーしてました。もっといい方法ないかな〜。
一度でも2重投稿になってしまった奴は原因突き止めるまで休んでくれないか。
一度でも2重投稿になってしまった奴は原因突き止めるまで休んでくれないかのう。
463 :
デフォルトの名無しさん :03/02/04 00:25
Java初めて1週間の新参者です。 ArrayListクラスを使っているのですが、addで増やしたサイズはremoveで 小さくなるみたいですが、trimToSizeというメソッドの意味がよくわかりません。 インスタンスをサイズに揃えるみたいなことが書いてあるのですが何のことやら…。 どなたか分かる人いらっしゃいますか?
>>463 たとえば
A カラ B C カラ
という要素が入ったリストを
A B C
とつめる。
466 :
デフォルトの名無しさん :03/02/04 00:40
websphereとwebロジックの違いって何ですか? どっちが何が得意とかよくわからん
>>464 ,465
レスありがとうございます。
ということは、addしたあとにremoveしただけではサイズは減っていても
配列としてメモリを確保した状態ってことでいいんでしょうか?
極端に言えばadd、removeだけを続ければメモリを食い尽くす状態になるん
でしょうか?
>>467 何をどう呼んでその妙な結論に達したのか。
>>463 trimToSize ってのは ArrayList が内部で使ってる配列
elementData を 呼び出した時点のサイズに切り詰める。
厳密には
>>465 (カラ(==null?)の要素を削除しない)も
>>464 (先頭を切り詰めない)も間違いです。
public class TrimToSizeTest { public static void main(String[] args) { ArrayList arr = new ArrayList(); arr.add("A"); arr.add(null); arr.add(null); System.out.println(arr + Integer.toString(arr.size())); arr.remove(0); System.out.println(arr + Integer.toString(arr.size())); arr.trimToSize(); System.out.println(arr + Integer.toString(arr.size())); } } 実行結果 [A, null, null]3 [null, null]2 [null, null]2 よくわからん…
>>467 配列っていってもオブジェクトへの参照だからねぇ。
C等のようにで値を保持するための領域を確保しているのとは違う。
removeで削除したオブジェクトがどこからも参照されていなければ
そのうちガベージコレクトされる。
>>472 少なくとも参照が指す値はNULLなりなんなりになると思うけれど。
public static void main(String[] args) { ArrayList arr = new ArrayList(); //この時点で arr.size() == 0 //この時点で arr.elementData == new Object[]{ null,null,null,null,null,null,null,null,null,null } arr.add("A"); //この時点で arr.size() == 1 //この時点で arr.elementData == new Object[]{ "a",null,null,null,null,null,null,null,null,null } arr.add(null); //この時点で arr.size() == 2 //この時点で arr.elementData == new Object[]{ "a",null,null,null,null,null,null,null,null,null } arr.add(null); //この時点で arr.size() == 3 //この時点で arr.elementData == new Object[]{ "a",null,null,null,null,null,null,null,null,null } System.out.println(arr + Integer.toString(arr.size())); arr.remove(0); //この時点で arr.size() == 2 //この時点で arr.elementData == new Object[]{ null,null,null,null,null,null,null,null,null,null } System.out.println(arr + Integer.toString(arr.size())); arr.trimToSize(); //この時点で arr.size() == 2 //この時点で arr.elementData == new Object[]{ null,null } System.out.println(arr + Integer.toString(arr.size())); }
ぬるぽの呪いだな
>>471 >>474 でわからなきゃ デバッガで ArrayList の内部状態見てみればよいと思われ。
>>471 nullを入れるのと削除するのは違うよ。
ArrayListのソースコード見てごらん。
内部で持っているObject[]の要素数と
size()で返ってくる要素数は違うから。
で、trimToSize()は内部で持っている
Object[]の要素数をsize()で返ってくる値
に合わせる作業をしている。
480 :
デフォルトの名無しさん :03/02/04 01:08
EJBって何ですか
JTBのtypo
結局はtrimToSizeを呼ばない限り、いったんaddで増えた(474の例で言えば 11個以上add)Object[]の要素数は減ることはないってことでいいんでしょうか?
Javaはじめて一ヶ月で現場にかり出されてヒイヒイ言っていますが
いつもこのスレ参考にさせてもらってます。
>>470-478 また一つためになりました。ありがd
なんとなく紳士的で雰囲気いいんでつい書いちゃいマスタ
>>482 そう。
でも、Object[]の要素の一つ一つは値を格納するための領域ではないからな。Cとは違うぞ。
>>480 EnterpriseJavaBeans
・インスタンス管理をコンテナが行う
・EJBを使う側は直接EJBにアクセスできない。
ホームインタフェース、リモートインタフェースを通して
EJBコンテナとやりとりする。実際にEJBのメソッドを呼び出すのは
EJBコンテナ
・RIM-IIOPというプロトコルを使うのでリモートに配置された
サーバのオブジェクトを使うことができる。
つまり、EJBを使う側とサーバを物理的に分散させて配置できる。
通常のJAVAのクラスは同じVM上にインスタンスがあることが
前提。
486 :
デフォルトの名無しさん :03/02/04 02:00
パソコンのことをよく知らないので ここで質問していいことなのかもわからないですが、 C言語を勉強するのに分かり易い参考書ってありますか? たくさん本があるから、どれがいいのかわからなくて。 自分はPASCALを少し使えるくらいです。 あと、パソコンの専門用語もあまりわかりません。 よろしくお願いします。
Cでいうところのmemsetみたいな関数ってありますか?
488 :
デフォルトの名無しさん :03/02/04 02:24
>>381 ほほー、ありがとうございます。
ところで
>>layout.putConstraint(layout.EAST, button5, Spring.minus(Spring.constant(5)), layout.EAST, contentPane);
↓
>>layout.putConstraint(layout.EAST, button5, -5, layout.EAST, contentPane);
でも同様な結果が得られたのですが、同じなんですかね!?
489 :
デフォルトの名無しさん :03/02/04 03:02
>>487 メモリ上の位置にイミガナイのがJavaの特徴。
アドレス範囲指定してクリアしても、GCがオブジェクトをアッチコッチ
に移動させるから…
クリアするよりnewしてしまえ。デフォルト初期値(参照ならnull、
プリミティブ値なら0またはfalse)を利用したほうが手っ取り早い。
>>487 java.util.Arrays の fill メソッド。
JComboBoxでエディタブルに指定したときに、 キー入力関係のイベントを取りたいんですよ。 具体的には、コンボボックスのエディタに入力した後のエンターキー(キーコード10) が入力されたときに処理をしたいんですが、 JComboBox ComboBox = new javax.swing.JComboBox(); ComboBox.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { System.out.println("Pressd Key = " + evt.getKeyCode());}}); と書いても、ここの処理に入りません。 CombBoxじゃなくて、エディタのハンドラをリスナーに渡せば良いのかな〜と 漠然とは思うのですが、実際にどうしたら良いのかわかりません。 う〜ん、誰か教えろ。
495 :
デフォルトの名無しさん :03/02/04 22:04
>>494 態度悪いな...。
getEditor().getEditorComponent().addKeyListener()
やってみたけど、 ComboBox.getEditor().addActionListener() でもよさげ。
>>495 +496
おお〜、ありがとさん
態度悪くてごめんなさい。
#だからみんなに嫌われるのかな・・・
ちゃんと、出来ました。
意外とイイヤツだな ・・・なんてコロッと騙される奴が出てくるに100ペリカ
257さん、デフォルトさん、先日は宿題のお手伝いをしてくれて ありがとうございました。 正解は age = Integer.parseInt(data.getText()); or age = new Integer(data.getText()).intValue(); でした。 257さんが教えてくれた方が好ましいとの事です。 すごく助かりました。ありがとうございました。 また宜しくお願いします。 ところで、 parseInt って何ですか? Int型に変更するために使うのですか?
>>499 確か、String型の文字列をInt型に型変換するためのものだったかと・・・
※正しい答えでは無いと思うので鵜のみにしないでくださいませ。
502 :
デフォルトの名無しさん :03/02/05 02:02
JFrameを左右には伸ばす事ができて上下には伸びないようにしたいのですが、どうすればよいのでしょうか?
伸ばさない。
>>501 ちなみに全角数字も変換するでよ。漢数字は無理だが…
プログラムとは直接関係ないのですが、 Sun J2SE SDK 1.4.1 をインストールしたら Opera でJAVAが動作しなくなりました。 どうすれば動くようになるんでしょう? ちなみにオペラJAVA入り版は1.3を使ってjavaを動かしてるみたいです。 コントロールパネルからJAVAプラグインの設定を見てもオペラで動作させる オプションがないのでどこかレジストリをいじる必要があるんでしょうかね・・。
>>502 あんましスマートなやり方じゃないけど
ComponentEvent の COMPONENT_RESIZED が来たら、
自分のサイズを変更しなおす、とか。
Window のサイズ変更途中のイベントを押さえられれば良いんだけど…
あ、jdk1.4以降だと Frame.setMaximizedBounds も併用した方が良いみたいです。
MouseListenerで質問です。 コンストラクタ内で addMouseListener(new MouseAdapter)みたいな感じでMouseApdaterを追加できるのですが class hogehoge extends Frame implements MouseListener ・・・ このようにした場合、どこにMouseAdapterを書けば良いのでしょうか?
>>508 コンストラクタ内で
addMouseListener(this)みたいな感じでclass hogehoge extends Frame implements MouseListener
を追加できるのですが
510 :
デフォルトの名無しさん :03/02/05 15:17
doubleの小数点以下の数字の数を決めるのに、便利なFormatterみたいなものはありますか?
>>510 java.text.DecimalFormat とか
512 :
デフォルトの名無しさん :03/02/05 16:12
ガベージコレクションの必要性について教えてください。 私は、ガベージコレクションというのはあるタイミングでVMが 誰からも参照されていないメモリを自動的に解放するシステムだと認識しています。 具体的にどのように実装されているのかは存じません。 さて、ここで疑問に思ったのは、各ポインタが自分自身の参照カウンタを管理していて、 自分がスコープからはずれたり書き換えられたりしたとき等に参照カウンタを引いていけば (boost c++でいうshared_ptrです)参照されなくなった時点で自動的に削除されるので、 そちらの方がいいのではないかと思うのですが… どなたかガベージコレクションについて教えてもらえませんか?
513 :
デフォルトの名無しさん :03/02/05 16:13
インターネットを使って無料でできるお金儲けの方法を紹介します。
基本的な仕組みは、広告を見ることによって報酬をもらえるというものです。
メールなどでスポンサーの広告を見ることにより広告費が視聴者に渡るようになっているのです。
お金儲けサイトはたくさんあるので、どれから始めればいいか迷うと思います。
そこで、すぐに収入がもらえるサイトを紹介します。
僕も4日で900円ほど稼ぎました
下からどうぞ
http://www.chobirich.com/intorduce/?10653
514 :
デフォルトの名無しさん :03/02/05 16:18
>>512 そのやり方で、分散のときどうするんだ?
>>512 リファレンスカウント方式だと循環参照してると一生削除されない。
(循環参照しないことをプログラマが保証しなければならない。)
JavaのGCはメモリの断片化の解消もしてたはず… 違ったっけ?
JPanelを使ってます。テキストフィールドやテキストエリアなどを置かずに、 マウスがそのパネルの上にある時に、キーボード入力を受け入れて、 drawString(str)でかくプログラムを書いています。keylistenerをインプリメントしても上手いこと 動いてくれません。keypressedメソッドが呼ばれていないようです。 swingでは、イベントモデルがちょっと変わったという話を聞いたのですが、 swingでパネルに直に、キーイベントを送る方法を教えてください。
517 :
デフォルトの名無しさん :03/02/05 17:28
>>514 実体が別で同じポインタを保持している……という意味ですか?
もしそうならstaticにポインタとマップしてしまえばいいと思いますが、
実際のshared_ptrはどうやっているんだろう。調べてみます。
>>515 循環していた場合は、Javaでも解除されないっぽくないですか?
参照専用のインターフェースを用意すれば問題は解決されますね。weak_ptrとか。
メモリの断片化解消は大きなメリットです。もちろん用途にも寄りますが。
518 :
デフォルトの名無しさん :03/02/05 17:34
ちょっと、つまづいてしまったので 何か助言など下さればありがたいです ファイルの中にある数値を使って 配列の大きさを設定しようとしているのですが String hoge[]; try{ hoge = new String[br.readLine()]; //キャストは省略 } hoge[2] = "hoge"; というようなことをすると 最後の行で「初期化されていない可能性があります」という主旨の エラーが出てしまいました いろいろ参考書やwebを調べたのですが 変数のスコープのことしか記載されておらず 初期化に関しては触れられていませんでした 見当違いかもしれませんが どうぞよろしくおねがいします
>>518 そのtryのcatchはどこでやっているんでせうか?
省略せずに関係のある部分を全部書いてくださいな。
520 :
デフォルトの名無しさん :03/02/05 17:40
>>518 ???
エラー見せてよ。
だいたいそのソースならコンパイル自体通らないでしょ?
>>518 もし
hoge = new String[br.readLine()]; //キャストは省略
の前に例外をcatchしたら初期化されないまま
hoge[2] = "hoge";
までたどりつくだろ。
finallyとか使ってうまくやれ
>>520 >最後の行で「初期化されていない可能性があります」という主旨の
>エラーが出てしまいました
コンパイル通ったとはどこにも書いてないが
523 :
デフォルトの名無しさん :03/02/05 17:49
javacはSJIS通りますか?
>>519-520 失礼いたしました
もう少し範囲を広げるとこのような感じです
ファイルの先頭行から配列の大きさを設定し
あとは一行ずつそれを読み込むという処理です
なのでfinallyで配列の長さを設定する方法ではちょっと面倒だなと思いました
コードが間違っているかもしれない上に、効率が悪いですが。。。
String hoge[];
BufferedReader br;
try{
br = new BufferedReader(new FileReader("FileName"));
int i = 0;
while(br.ready() == true){
if(i == 0){
hoge = new String[Integer.parseInt(br.readLine())];
}else{
hoge[i-1] = br.readLine();
}
i++;
}
br.close();
}catch(Exception e){
System.out.println(e);
}
hoge[2] = "hoge";
エラー:変数 hoge は初期化されていない可能性があります
すみません、sage忘れていた上に、 インデントが適応されていないようで・・・
>>523 OSがWindowsならとくに問題ない。
他のOSでjavacするときは-encodingオプションで文字コードShift_JISを指定する。
ServletやXMLなどを使うときはUTF-8がお勧め
>>524 そりゃエラーが出て当たり前です。
>br = new BufferedReader(new FileReader("FileName"));
この行で例外が投げられたら、一気に下のcatchまで行きますよね?
そしてその下のhoge[2]まで行くと、このhogeは初期化されないままに扱われます。
その可能性があるのでエラーです。えに・くえっしょんず?
>>518 hoge[]にどんな値が格納されているのかを出力してみるのが先では?
コンパイルエラーくらい自分で何とかしろよと。質問なんてしに来ることじゃないじゃん。
531 :
デフォルトの名無しさん :03/02/05 18:08
>>526 ありがとうございます。
通るんですか。javaって凄いですね。
日本語でプログラム組めそうですね。
533 :
デフォルトの名無しさん :03/02/05 18:09
>>527 本質的にはそれでは解決されません。
原因は
>if(i == 0){
> hoge = new String[Integer.parseInt(br.readLine())];
>}else{
> hoge[i-1] = br.readLine();
>}
if(i==0)でない場合にはhoge[]が初期化されないと言う事をコンパイラが言っています。
純粋に
//どの場合でもちゃんと初期化されるようにする。
>hoge = new String[Integer.parseInt(br.readLine())];
>if(i == 0){
//コメントして
>// hoge = new String[Integer.parseInt(br.readLine())];
>}else{
> hoge[i-1] = br.readLine();
>}
です。
>>527 private String tryTest(){
String str;
try{
str = "age";
}catch(Exception e){
}
return str; //strは初期化されない可能性があるのでエラー
}
これでもだめだぞ。エラー起きる要素も見当たらないのにな。
try〜を使ってる時点で、「そこにいかない可能性がある」と認識しないと。
くれぐれも
>>534 はコンパイルが通ると言うだけです。
配列サイズを動的に扱いたいのであれば Vectorを使うと良いかもしれません。
つーか534書き込んでたよ スマソ
いろいろと検討した結果、Vectorを使って書き直すことにしました レスをくれた方々、ありがとうございましたm(_ _)m お騒がせしました
>>538 そういう問題じゃねーだろ
肝心のエラーの原因については理解できたのかと小一時間
>>539 大丈夫です、エラーの原因については理解できました
どこへ処理が移っても(この場合はcatch)
初期化させるような処理が必要という解釈でよろしいでしょうか?
というわけで今回は配列サイズの初期化が必要ないVectorを
使用してみることにしました
>>517 Javaだと循環参照しててもちゃんと破棄されるよ。
試してみればよい。
for( int j = 0 ; j < 100 ; j++ ){
for( int i = 0 ; i < 1000000 ; i++ ){
Object[] a = new Object[0];
Object[] b = new Object[]{ a };
Object[] c = new Object[]{ b };
c[0] = a;
}
System.out.println( "free ::" + Runtime.getRuntime().freeMemory() );
}
あー循環参照してないよ。 for( int j = 0 ; j < 100 ; j++ ){ for( int i = 0 ; i < 1000000 ; i++ ){ Object[] a = new Object[1]; Object[] b = new Object[]{ a }; Object[] c = new Object[]{ b }; a[0] = c; } System.out.println( "free ::" + Runtime.getRuntime().freeMemory() ); } だった。
>>541 =542
おお、素晴らしい。早速試してみます
どういう実装で循環を関知しているんですか?
544 :
デフォルトの名無しさん :03/02/05 20:17
545 :
デフォルトの名無しさん :03/02/05 20:24
NetBeansで任意のデータ数とかを入力するプログラムを 実行したときの入力終了の指示ってどうやるんでしょう? 前まで使ってたJava2SDKはctrl+zでできたのですが、 NetBeansでは違うようなので。
546 :
デフォルトの名無しさん :03/02/05 20:26
547 :
デフォルトの名無しさん :03/02/05 20:39
JAVAでサーバーにファイルを転送するプログラムを教えてくれ。 解ったやつはプロだと認めよう
exec("ftp.exe")でできますた。 これでオレも名刺にプロって書けるな
549 :
デフォルトの名無しさん :03/02/05 20:49
>>547 アバウトな仕様すぎるが...
それくらい作れる香具師は多いと思うが、
教えてもらうより、本買った方が良いと思う
550 :
デフォルトの名無しさん :03/02/05 20:50
轟沈...
>>538 どうしてもVector使う必要性がなければArrayListのほうがおすすめ。
スレッドセーフである必要が無ければね。
Vectorは重いよ。APIは1.1.xからの遺産を引きずってごちゃごちゃだし。
552 :
デフォルトの名無しさん :03/02/05 22:13
>>543 循環参照があっても大丈夫などの仕様を満たしていればどんなGCでもOKなはず。
方式1、マーク&スイープ
スタック・スタティックから参照を辿れた奴をマークして、マークが付かなかった
奴を捨てる。
方式2、ストップ&コピー
ヒープを2分割して、片方だけ使う。GC時に実行を一瞬ストップして、
参照を辿りながらもう片方にコピーして、そちらを使って再開する。
元の奴は捨てる。
SunのJVMはこの2つを併用しているらしい。(1999年の本より。今は分からん)
詳しくは上記の単語を検索してね。嘘がまじっているかもしれんから。
遅レスだが。
>>516 java.awt.KeyboardFocusManager
使うのはどうよ?イベントを送るという訳じゃないんだが。
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher(){
public boolean dispatchKeyEvent(KeyEvent e){
ここに何か書く
}
});
こんなのをパネルのコンストラクタに書いた形跡を自分のソースから発見。
ただし、これだとウィンドウのどこにフォーカスしていても反応しやがる。
>>552 Javaって循環参照があっても大丈夫だっけ?
処理系の仕様ではなくて、言語の仕様として保証されるの?
>>554 GCのところでよく取りざたされてるけどOK
556 :
デフォルトの名無しさん :03/02/05 22:49
>>554 違った。取り消します。参照カウンタは例としてはよく出るが実際に
実装されているJVMはみたことない(エッケル本)らしいです。
>>553 java.awt.KeyboardFocusManager っつーか例にだしたクラスのどれかかな。
全部使わないといけないのかもしれん。忘れたので後はよろしく。
557 :
デフォルトの名無しさん :03/02/05 23:04
Process process = Runtime.getRuntime(); for (int i=0;i < list.size();i++) { process .exec("cmd /c start myscript.vbs \"" + (String)list.get(i) + "\""); process.waitFor(); } でvbsファイルを実行してExcelのマクロをキックしてるんだが、waitForでvbsのプロセスが終わるまで待ってくれてないみたいで素通りしてしまいます。 waitfor()の戻り値を見ると正しく実行されました。 cmdの方のプロセスを握っているのか・・・ ほかにいい方法があれば教えてください。 【Java編】 学校の宿題は俺にやらせろ 【Java編】に書き間違えた・・・スマソ
>>553 ありがトン。
FocusManagerあたりをぐぐってみる。ついでにFocusListenerあたりもみてみます。
なかなかjavaのgui周りはわからん。
JScrollPane を自動スクロールにするのって View の内容変更イベントを受けて自力でスクロールさせる以外の方法 ありますでしょうか? JScrollPane のプロパティでちょちょいってやれちゃうと思ってた…
560 :
デフォルトの名無しさん :03/02/06 01:37
ストラッツって何ですか? いつ使うのですか?
StrutsはWEBアプリケーション構築のための アプリケーションフレームワーク。 乱暴に言えばアプリを作る際のひな形みたいなもの。 これを使えば開発者は画面とアプリ固有の処理を 書くだけで優れた設計のアプリができる、というのが能書き。
>>557 「ファイル名を指定して実行」でそれ実行してみろよ。一瞬で終わるから。
cscript
563 :
デフォルトの名無しさん :03/02/06 02:52
デバッグとビルドとコンパイルの違いを教えてください 似たような感じな気がするのですが
コンパイルとリンクとビルドの違いの方が質問として良くないか?
Javaにビルドとリンクって必要だったっけ?
566 :
デフォルトの名無しさん :03/02/06 03:47
Javaにクライアントと未来って必要だったっけの方が質問として良くないか?
Vectorがスレッドセーフだと思ってるヴァカ
>>551
551じゃないけど。
>>567 え、ちがうの?
あと、実際にベンチマークしたら結局Vectorの方がArrayListよりも速かったという記事をJavaWorldかJAVA PRESSかで読んだ気が。
>>560 ストラッツは、JSPとサーブレットの分離ができて、サーブレットからロジックを別クラスに追い出せるようになったときに、同じようなサーブレットばかり書くのめんどくさいと感じたら使います。
Vectorはスレッドセーフでしょ。 ただしVectorというコンテナがスレッドセーフだというだけ。 通常はArrayListを使う。 毎回synchronizedされたらコストが高すぎる。 Jakartaはまた違った実装をしていて面白いけど。
>>562 ぐぐったら、Cscript.exe ファイル名 引数でも逝くっぽいな・・・
会社出勤したら試してみるわ〜
サンクス!
575 :
デフォルトの名無しさん :03/02/06 10:22
>Jakartaはまた違った実装をしていて面白いけど。 Jakartaって何かコレクションクラス提供しているんだっけ?
>>573 >毎回synchronizedされたらコストが高すぎる。
なんのコストが高すぎるの?
( ´д)ヒソ(´д`)ヒソ(д` )
宿題してます。助けて下さい。 問題は Assume that a Choice object has a registered listener. Code the method header of the method required by the listener to handle the events fired by the Choice object. です。 これでいいのかなあ? --> public void itemStateChanged(ItemEvent e)
>>578 すまん、訳してくれ。
俺は英語は分かるが日本語はちんぷんかんぷんなんだ。
>>579 I do a homework. Help me.
Question is...
> Assume that a Choice object has a registered listener.
> Code the method header of the method required by the
> listener to handle the events fired by the
> Choice object.
Is this right?
--> public void itemStateChanged(ItemEvent e)
なるほど、さんくす
>>580 ようやく意味が理解できたよ。でもJavaはちんぷんかんぷんなんだ。
>>580 Q.
Choiceオブジェクトがリスナーに登録されているとする。
Choiceオブジェクトによって起きたイベントを処理するリスナーに必要なメソッドの定義を書け。
…でいいのかな。答えはあってると思うが。
>>583 >イベントを処理するリスナーに必要なメソッドの定義
だとすると仮想関数全部だと思われ。
あくまで予想で(?)サンプルを書いておきます。参考にしてください。 この場合 implements ItemLinster が必要です。 コンストラクタなどにChoice のインスタンスにリスナーを加えます。 choice.addItemListener(this); そのリスナーを取得する時は public void itemStateChanged(ItemEvent e) { if(e.getItemSelectable() == choice) { (Choice)e.getItemSelectable()).getSelectedItem()); } } でよいでしょう。
あ、スペル間違えてる^^; implements ItemListener です。まぁ分かると思いますけど。
587 :
デフォルトの名無しさん :03/02/06 16:46
JSPでサーバー上のデータを取得して出力(テキストファイルとかで)できるかという質問 されて「はい、できますよ」と答えたら、「本当にできるのかどうか調べてくれ」と念を押されてしまったのですが なんかおかしなこと言ってしまったのでしょうか できますよね?
>>587 もちろん出来ます。
きっと、そのようなあなたの「たぶんできるだろ・・」のような曖昧な態度に、
疑問を感じてのことだとおもいます。
だからといって自信満々で「できます!」と、答えた所で「じゃあ作ってみて」
と、言われれば同じ事だとは思いますが。
頑張って下さいね。
>「じゃあ作ってみて」 いわれましたw とりあえず簡単なのでいいから作ってみようと思います 正直、自信がなかったので、できるとさえわかれば後はどうとでもできます ありがとうございます
590 :
デフォルトの名無しさん :03/02/06 18:13
JSPから*.java ファイルにパラメータをつけて起動させることってできるのでしょうか? 用はDOSプロンプトからみたいに値をつけてしたいのですが・・
>>590 拡張子がjavaってことはソースファイルだよね?
コンパイルしたいってこと?
appletでいう<PARAM>, コンソールでいうjava Hoge arg1 arg2 をやりたいんだと思うがJSPは知らん、っつーかほとんどJSPの基本的なことのような? できるんじゃないの?(読み違えてるかな。)
誠に申し訳ない;; .classファイルです。ごめんなさい。
普通にメソッド作って引数で渡せよ
JSPから Javaアプリケーションを外部起動させたい。という意味ですか? Javaで言う所の String[] cmds = {"run.exe"}; Runtimeruntime = Runtime.getRuntime(); Processp =runtime.exec(cmds); : : をJSPで実現したいと言う事でしょうか?
596 :
デフォルトの名無しさん :03/02/06 19:52
あ、595さんみたいなかんじです^^
597 :
デフォルトの名無しさん :03/02/06 21:28
Vectorは同期化されていて ArrayListは同期化されていない クラス変数で持つようなことをしなければ どちらも速度は同じような気がするんですが、、、、気のせいでしょうか、、、、 メソッド内で簡潔する場合は別スレッドは考えなくていい気がするし・・・・・
>>590 セキュリティマネージャにはじかれなければ可能。
別プロセスにするならjava.homeシステムプロパティを参照しとこうね。
classファイルなら、クラスローダ作ってインプロセスで動かす手もある。
>>599 Σ( ̄○ ̄;)ハッ
オ、オシエテホスィ・・・・・ (-。-) ボソッ
>>573 「コスト」を金銭面でしか考えられない人?
>>601 プログラマじゃなければ正常な感覚だけどな。
>>603 プログラム組む人間なら「処理コスト」を考えなければならない。
・メモリの消費
・CPUパワーの消費
・ネットワーク帯域の消費
・処理にかかる時間
等。
メモリ要求 メモリ予測性 時間パフォーマンス リアルタイムレスポンス スタートアップ時間 ローカルvsグローバル 保守性 プログラマの労力 テストコスト だそうです。「省メモリプログラミング」より。
>>597 Vectorはメソッドが呼び出されるたびに同期処理をおこない、ArrayList
はおこなわない。実際に同期処理が必要かどうかは関係なく実行される
からまずいんです。
public void itemStateChanged(ItemEvent e) で正解でした。 お助けありがとう。
>>606 なるほど、、、
ありがとうございます m(__)m
Vector vector; を複数のスレッドで共有している場合、 vector.set(0, "hoge"); String value = (String)vector.get(0); としたときにvalueが"hoge"である保証はどこにも無い。 要求仕様にもよるが、こういうのは普通スレッドセーフとは言わない。 valueが"hoge"であることを保証したい(スレッドセーフにしたい)と思ったら、 synchronized (vector) { vector.set(0, "hoge"); String value = (String)vector.get(0); } とsynchronizedで囲む必要があり、これは(同期化されてない)ArrayListでも全く同様。 よってVectorの意味無し。 Vectorでいう「同期化されている」というのはget/set/addなど、メソッド単体の 実行が安全に終了する、というだけで、実際にはなにも嬉しいことは無い。
サンのHPにjavaDOCの1.3.1や1.4など いろいろあると思いますが違いってなんですか? そんなに仕様が変更するもんですか?
>>610 ホームページやWebpageをHPと略すな。HPといえばヒューレットパッカードだぞ。
漏れは1.3から1.4に変わってもJavadocで仕様変更に困ったことはないな。
運が良かったのかもしれない。試しにやってみたらどうだい?
612 :
デフォルトの名無しさん :03/02/07 01:32
form.equals("A")と form = "A" の違いってなんですか?
>>610 1.3→1.4の場合は仕様変更というより機能追加が多いね。
JAXP関連のAPIは1.4にしか無いし。
>>612 前者はformが"A"と等しいかどうかを比較。
後者は変数formに"A"という値を代入。
スミマセン、諸先輩方に質問です。 簡易テキストエディタを作成中ですが、テキストファイルをドラッグ して、JAVAアプレット画面で展開したいのですが、この時のファイル名 取得の方法がわかりません。関数名を教え願えますでしょうか?
616 :
デフォルトの名無しさん :03/02/07 01:59
>>614 たとえば
if文で
if(form == 'A')
と
if(form.equals("A"))と
なんかも同じ?
>>616 form == 'A' が出来るなら form.equals("A") はコンパイルエラー。
>>615 getCurrentDataFlavors() とかで取れるでしょ。
>>61 変数form の型は何?
if(form == 'A') と書くことができ、かつ
if(form.equals("A"))と書くことのできる型なんてあったっけ?
if(form == 'A')じゃなくてif(form == "A")の間違い?
==での比較は
・プリミティブ型の場合は値の比較
・Object型の場合は同一インスタンスかどうかを比較
equalsでの比較はオブジェクト同士を調べるのにしか使えない。
(メソッドだからあたりまえ)
型によって内部でequalsメソッドをオーバーライドしていることが
多いので、どういう条件でtrueが返るか(同じとみなされるか)は型によって
異なると思っていた方がよい。
ちなみに、String型の場合は値として持っている文字列が同じならtrueが返る。
Integer型の場合は値として持っている数値が同じならtrueが返る。
>>616 >if(form.equals("A"))
全然違うと思ったほうがいい。
違うか同じかはformがどのクラスのオブジェクトかによる。
>if(form.equals("A"))
のformがStringなら全く違うもの。
仮にString form = "A"
としても==ではfalse
String#equals()のときtrueとなる。
Object#equlas()は内部で==しているだけらしい、のでほぼ同じように振舞うと考え良いと思われ。
新しいデータ型を定義するとき、このような機能が欲しいときはequals()メソッドを自分でオーバーライドする必要がある。
>>616 「Javaの鉄則」にそういうネタがあったなー。
立ち読みでもして見る?
みんなそれぞれ間違った答えは書いてないけど 言い方や観点が違うから質問者は迷っちゃうかもね。 どれも正しいんだよ。
>>616 str1 == str2
は、同じインスタンスかどうか、つまり同じポインタか見てるだけ。
同じ文字列かどうかは、equals、もしくはcompareToで調べるのがいい。
特にStringは勘違いしやすいからな。 プリミティブ型と勘違いしやすいし、いろんな省略形が許されてるし
>>625 Stringの省略って
String a = "test";
String a = new String("test");
Double x = new Double(1.1d);
String b = x.toString();
String b = x;
以外に何かあった?
if(form == "A") { } 右辺の"A"は new String("A") の略だな
JOptionPaneで質問です。 JOptinPane.showInputDialog();でダイアログは出るのですが、 背景が透けて見えます。透けないようにするにはどうしたら良いでしょうか?
629 :
デフォルトの名無しさん :03/02/07 02:43
>>627 実は微妙に違うよ。いいたいことはわかるけどね。
プログラムで使用するクラスで"A"とかかれた全てが、
同じStringインスタンス扱いになりますから。
630 :
デフォルトの名無しさん :03/02/07 03:32
>>629 ハァ?少なくとも俺にはお前のいいたいことが分からない。
bsh % print("A"=="A");
false
bsh % print("A".equals("A"));
true
bsh % print(new String("A") == new String("A"));
false
bsh %
(この実験はbeanShellの提供でお送りしますた)
横槍スマソ。むしろ、
>>630 の言ってることが良く分からないのだが。
>>629 もしどっかのVMの内部仕様がflyweightだったとしても、Javaの仕様的にはそう言う実装はしては行けないと思われ。
>>632 言語仕様。
同じパッケージ(7.)の同じクラス内(8.)のリテラル文字列は,同じオブジェクト String(4.3.1)への参照を表現する。
同じパッケージの異なるクラス内のリテラル文字列は,同じオブジェクト String への参照を表現する。
異なるパッケージの異なるクラス内のリテラル文字列は,同様に,同じオブジェクト String への参照を表現する。
定数式(15.27)によって計算される文字列は,コンパイル時に計算され,それらがリテラルであるかのように扱われる。
実行時に計算される文字列は,新しく生成されるものであって,別の文字列とする。
計算された文字列を明示的に収容した結果は,同じ内容をもつ既存のリテラル文字列と同じ文字列とする。
http://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#101083
>>631 いま俺もbeanShellで試したけど、確かに"A"=="A"がfalseになる。
コンパイラに渡す前にbeanShellでなんかの処理かかってたりするのかな?
もちろんeclipseのスクラップブックではtrue.
プログラム中に指定したEXCELファイルを起動・表示させたいのですが できるでしょうか? 宜しくお願いします。
>>637 どうも、ありがとう。トライしてみます。
ファイル名を変えてやればいいんですね?あとはPATHを通して。。。
不安になってきた!!
成功(起動した) excelfile = "C:\\WINNT\\NOTEPAD.EXE"; Runtime.getRuntime().exec(excelfile); 失敗した(catchに エラー193) excelfile = "C:\\WINNT\\TEST.xls"; Runtime.getRuntime().exec(excelfile); もしかして、exeしかつかえない?? うわーん、ファイルを指定してエクセルを起動させたいんです。 お願いです。教えて下さい。
excelfile = "C:\\WINNT\\NOTEPAD.EXE C:\\hoge.txt"; って試してみ。
じゃ、BATファイルではどうかな? とか試してみたら? はい。サンプル public void exec() { String[] cmds = {"run.bat"}; try { String line; Runtime runtime = Runtime.getRuntime(); Process p = runtime.exec(cmds); BufferedReader stdout = new BufferedReader( new InputStreamReader(p.getInputStream())); BufferedReader stderr = new BufferedReader( new InputStreamReader(p.getErrorStream())); while((line = stdout.readLine()) != null) { System.out.println(line); } while((line = stderr.readLine()) != null) { System.err.println(line); } } catch (Exception e) { e.printStackTrace(); } }
関連付けされたプログラムを起動、ではなくて 常に同じアプリで開くのであればこれで済むだろ excelfile = "C:\\WINNT\\TEST.xls"; excelfile = "C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE " + excelfile; Runtime.getRuntime().exec(excelfile);
643 :
デフォルトの名無しさん :03/02/07 14:42
Javamailで Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Address というエラーが表示されます。 助けてください。 ちなみにjavap javax/mail/Addressではちゃんと認識しています。
644 :
デフォルトの名無しさん :03/02/07 14:43
>>640 開きました!!おぉ感動
ありがとうございます。
>>641 ありがとうございます。
>>実は・・・
お二方のやり方は、エクセルのexeの絶対パスが必要ですよね?
ローカルでやる分には絶対パスを直でかいてやればいいんですが、
サーバにエクセルがあって、そのファイルをクライアントのエクセル.exeで起動する場合
クライアントのエクセル.exeのパスは固定ではありません。
この場合ですと、不可能になるんでしょうか。それともサーバのエクセルを起動するんでしょうか。
>>645 聞いてばっかいねぇーで自分でちょっと位調べろよ!
あと、解決したら辞表書いてプログラマすぐやめろ。
クライアント側から実行したら、なんとサーバー側でエクセルが起動しました。爆笑です。
>>647 …なにか根本的に間違ってるような気がするんですが、サーバとクライアントって
何? それとNT系ならRuntime#execに
"cmd /c start エクセルファイルのパス"
と書けば動くんじゃないですか。ただしExcelが動いているプロセスとの
同期は取れなくなりますが。
質問です ローカルルールにJAVAは別板でってかいてるのに何で糞スレ建てるんですか?
>>651 (゚Д゚)ハァ? Java と JavaScript は違うんだよ(・∀・)ニヤニヤ
>>647 漏れも爆笑させていただいております。
ひとごとでヨカッタ! こんなのと仕事したくねー。ギャハハハ
(・∀・)ツレタ
【厨房の為の 煽り煽られ講座】 煽られて反論できなくなった → ○○ 必 死 だ な (w 予期せぬ自分の無知で煽られた → 釣れた → わーマジレス返ってきたよ 言い返せないけど 負けは認めたくない → ( ´,_ゝ`)プッ → 無知白痴は黙ってろ → 知能障害をおこす
マタ(・∀・)ツレタ
660 :
デフォルトの名無しさん :03/02/07 19:12
( ・∀・)つ〃∩ ヘェーヘェー
「メソッドの引数を変更しない」事を、明示的に宣言することは出来ませんか? 例えば、 public int countChars(StringBuffer target) //targetは不変 みたいなのを、コメントじゃなくて宣言で明示したい。 C++だったら、 int countChars(const StringBuffer& target) みたいに書けるのですけど。
final
666 :
デフォルトの名無しさん :03/02/07 20:57
>>663 設計がおかしい。
StringBufferじゃなくてStringを渡せ。
汎用的に使える Collections#unmodifiableCollection() みたいなのあったらいいなと思ったことはある。
>>668 汎用っすよ…あほなこといわんでくださいね。
>>663 ところで、明示的に宣言すると何か良い事がありますか?
673 :
デフォルトの名無しさん :03/02/07 22:45
全角スペースの入った文字列の 全角を検索し削除するプログラムはどう書いたらいいのでしょうか? 佐々木 太郎→佐々木太郎 deletecharAtやreplacet使ってもうまくいきませんでした。 お願いします
675 :
デフォルトの名無しさん :03/02/07 22:57
>>673 new String("佐々木 太郎").replaceAll(" ", "")
でできない?
>>675 ちょっと横槍いれますが
"佐々木 太郎".replaceAll(" ", "")
では問題ありですか?
677 :
デフォルトの名無しさん :03/02/07 23:11
>>676 別に問題ないけど、何につかうか疑問...
>>677 いや結果は同じになるはず。
"".method()より new String("").method()のほうがいいのかな?
Canvasの描画処理を別スレッドで描画したいときはどうするんですか? Canvasでアニメーション処理しながら他の処理を実行したいんですが・・・
680 :
デフォルトの名無しさん :03/02/07 23:30
論点がかみあってなかった。 明示的に new String("佐々木 太郎").replaceAll(" ", "") とかいただけであって、 String s = "佐々木 太郎"; s.replaceAll(" ", ""); で良い。 "佐々木 太郎".replaceAll(" ", ""); でももちろん良い。 コストを考えたら、 3番目が一番いいけどね。
>>679 Threadのサブクラス作ってコンストラクタでCanvasの参照受け取ればどうですか?
なぜCharacter#isWhitespace()を使った回答出ないのかが不思議。 そっちの方が多言語対応の意味で汎用的になるのに。 StringBufferとか使わなきゃいけないから少し無駄だけど。
>>680 スマソ
読みやすさという点では2番目が一番いいかも。
>>681 Canvasのサブクラスにスレッドもたせているから
その問題はいいんだけど・・・
run()の中でループさせてrepaint()を呼び出すと
フリッカーが増えて却下で
paint()の中でループさせると
mainスレッドから呼ばれたpaint()も入ってしまって
バグが・・・
ここらへんの解決策が何か無いかなと・・・
>>682 >なぜCharacter#isWhitespace()を使った回答出ないのかが不思議。
簡単なこと
>>673 >全角を検索し削除するプログラムはどう書いたらいいのでしょうか?
↑の仕様を満たさないから。
686 :
デフォルトの名無しさん :03/02/07 23:51
StringクラスがImmutable(内部値変更不可)であることを 理解していないアホが沢山いるな。
687 :
デフォルトの名無しさん :03/02/07 23:52
初心者ですが インスタンスってどう言う時にするのですか? 参考書などではそのクラスを一個使う時にとありますが でも別になくてもクラス使える所もあるんじゃないの? インスタンスが必要なところと必要じゃないのと頃の使い分けがいまいちよくわかりません 教えてください
>>686 まさかとは思うが、
replaceAllのことを言ってるのか?
(((( ;゚Д゚)))ガクガクブルブル
>>686 誰もが知ってることを満足げに言うとは。
とはいえ、初心者スレである以上、言った方がいいんだけどさ。
SampleClass sc = new SampleClass();//インスタンス化 static void method1(){}//はインスタンス化しなくても使える System.out.println("xxx");//と同じ使いかた
692 :
デフォルトの名無しさん :03/02/07 23:57
>>679 そんなあなたにダブルバッファリング。バックエンドにBufferedImage
インスタンス一こ作っておいて、そのGraphicsに必要なだけdraw()し、
全部書き終わったらtargetGraphics.drawImage(BufferdImage,x,y);
とかでオケ。
自力実装が面倒、または遅くて困るなら、JDK1.4でBufferStrategy
つかいなはれ。WinならDirctDrawSerfaceでページフリッピングを
クラス自動的にやってくれる。アリガタヤ。
詳しい使い方は、SunのTutorial探しましょう。
mutable かどうかと今回の質問と関係あるか? 関連知識ではあるが。
694 :
デフォルトの名無しさん :03/02/07 23:59
>クラス自動的にやってくれる。 BufferStrategyクラス内部で自動的にやってくれる。 スマヌ。
>>692 ああ、ダブルバッファですか〜
それがいいです〜
言われてそんなのあったな〜とか思い出しましたw
ありがとうございます
String s = "佐々木 太郎"; String s2 = s.replaceAll(" ", ""); と書けば満足なんだろ
ちなみにちょっと聞きたいのですが createImage()ってaddしてないCanvasでも使えましたっけ? コンストラクタの時点で呼び出せますか?
コンストラクタの外で、addNotifyのなかで読み出したことがあります。 addNotify()[ super.addNotify(); Image=createImage(); }
回答ありがとうございます。 replaceAllは知りませんでした ありがとうございました
>>663-665 C++ での引数の const 修飾 = Java での引数の final 修飾
>>666 target が不変というのと target の中身が不変というのは違いますよ
701 :
デフォルトの名無しさん :03/02/08 00:12
>>697 ?
こうだよ。
public paint(Graphics g){//Canvas#paint(Graphics)のオーバーライドね
BufferedImage img=XXX;//どこかにインスタンスイッコ置いとくとよい
Graphics backbuf = img.createGraphics();
//backbuf にいろいろdraw()すれ
g.drawImage(img,その他パラメータいろいろ);//一発転送
back.dispose();//ゴミ処理
}
>>701 あり〜〜です
使い方が良く分かりました
それで思ったんですが
ループするとすると
どこですればいいでしょうか?
703 :
デフォルトの名無しさん :03/02/08 00:21
>>702 ???
Canvas#paint(Graphics g)は、だれが呼び出すのか知ってるかい?
ループなんぞしちゃイカンです。
Canvasサブクラスのどこか別の場所で
new Thread(){
public void run(){
while(isAvailable/*アニメーションを続けるかどうかのフラグ*/){
//描画スケジュール更新作業
repaint();
sleep(10);
}
}
}.start();
とかでもしときなはれ。
java.util.Timerとかでもええけど。
>>703 あうう〜
repaint()か〜〜
たしかそこだと再描画だからフリッカーが出た気が・・・
ちょい確認します
705 :
デフォルトの名無しさん :03/02/08 00:24
>>699 JDK1.3以前には存在しないからきいつけてね。
クラスにシリアライズを施して、一つのファイルに追加書き込みします。 readObjectで最初に保存したファイルは読み出せるのですが、追加で書き込んだ二つ目以降の クラスが読み出せません。読み込むクラスを配列にしてもうまくいきませんでした。 ちょっと検索してみましたが、保存の歳に、クラスのサイズも一緒に保存するという話が出てました。 もっとスマートな方法ってないですか?
707 :
デフォルトの名無しさん :03/02/08 00:26
>>704 あのね、repaint()内部でダブルバッファリングしてれば、フリッカー
出なくなるんだよ…理屈わかる?
708 :
デフォルトの名無しさん :03/02/08 00:29
>>706 君のクラスのreadObject(InputStream in)、writeObject(OutputStream out)
を自前で実装してしまう。
そうすると、ObjectInput/OutputStreamは、デフォルトのシリアライズ機構を
使用する代わりに、そのメソッド呼んでくれるよ。
APIドキュメントのどこかにそのヘンの話があるはずだから、探して味噌。
>>707 理屈は良くは分からない・・・
GUI関係の処理の内容しらないから
repaint()するごとにすべて白にすると思ってたけど・・・
ちがうの?
>>707 paintの中でダブルバッファ使ったら
フリッカーなしでできました
ありがとうございます
GUI関係もうちょっと勉強しなおしたほうがいいですね
711 :
デフォルトの名無しさん :03/02/08 00:42
>>709 repaint()って、単に内部で「paint(Graphics)コールしてくれ」イベント
をイベントキューに突っ込んでるけだよ。
そのあと、
1.イベントディスパッチスレッドイベントキューに溜まってるイベントをGET
2.イベントディスパッチスレッドがGETした再描画イベントをみて、必要
なComponentのpaintをコール
となります。
712 :
デフォルトの名無しさん :03/02/08 00:43
AWT/Swingでなにか低レベルなことをしたいというときは、 EventQueueとEventDispatchThreadのことを理解したほうがエエヨ。
なんとなくワカタ〜 わざわざすみません ほんまありがと〜
EventQueue#InvokeLater しなきゃダメってのしらなかったよ。 ばかすか他のスレッドからSwingのメソッド呼んでたな…
宿題で再び悩んでいます。 問題は Assume that myBar is the reference of a previously instantiated, horizontal Scrollbar object having the current (this) object as its registered listener. Code the definition of the event handling method needed to reduce the scrollbar's maximum value by 10 each time the user slides the "thumb" to the extreme left of the scrollbar.です。 問題からすると、 public App(String title){ myBar = new scrollbar(Scrollbar.HORIZONTAL, 50,10,1,320); myBar.addAdjustmentListener(this); add(myBar,BorderLayout.NORTH); } と、言う感じのAppは定義されているんですよね? public void adjustmentValueChanged(AdjustmentEvent e) { } この部分は一体何を書いたらよいのですか? これがevent handling methodの パートですよね? この部分を空白にしておいてもプログラムはちゃんと 動きます。 助言ありましたら、宜しくお願いします。
問題の意味勘違いしてました。 スクロールバーをクリックするたびに maximum valueを10小さくしなくてはいけないのですね。 て、事は、320だったのが310になり、300になり。。。最後には 0になるって事ですよね? 考え直してきます。
できた! public void adjustmentValueChanged(AdjustmentEvent e) { double maxValue=(myBar.getMaximum()-10); myBar.setMaximum((int)maxValue); } これで動くようです。 できてうれしいのでちょっと報告してみました。 よかったぁ。。。
718 :
デフォルトの名無しさん :03/02/08 10:25
java1.0 java1.1 java2へとセキュリティモデルについてアクセス制御とそれに対する暗号技術がどのように変化してきたのですか? レポートとしてまとめなければなりません。お願いします。
まず調べたことを書け
>>720 ありがとうございます。
俺も今そのHPいました。アドバイスありがとうございます。
722 :
デフォルトの名無しさん :03/02/08 11:36
コマンドラインでclassファイルのパスを指定できないでしょうか?
>>722 具体的に何をしたくてどう困っているのかわからん。
>>722 とりあえず氏んでほしいが。
1) "CLASSPATH"を環境変数として設定する方法がわからない。
2) "java.exe" , "javac.exe" にオプションとしてCLASSPATHを指定する方法がわからない。
3) "CLASSPATH"の意味がわからない。
4) 自分で書いたクラスの場所がわからない。
5) クラスってなんですか?
どれ?
質問者の問いより、回答者の書き込みの方が文字数が長いという悲哀。
質問者の問いより、回答者の書き込みの方が文字数が長いという暴力。
釣れた でいいのか?
729 :
デフォルトの名無しさん :03/02/08 12:31
MVCモデルでオラクルを使用する場合 thinドライバを使いますか?ociドライバを使用しますか? どっちでもいいですか?(^^;)
730 :
デフォルトの名無しさん :03/02/08 12:56
import java.awt.*; public class Test { Image img[] = new Image[2]; img[0] = Toolkit.getDefaultToolkit().getImage("test1.gif"); img[1] = Toolkit.getDefaultToolkit().getImage("test2.gif"); public static void main(String args[]) { } } というプログラムをコンパイルしようとすると、 Test.java:5: ']' がありません。 img[0] = Toolkit.getDefaultToolkit().getImage("test1.gif"); ^ Test.java:5: <identifier> がありません。 img[0] = Toolkit.getDefaultToolkit().getImage("test1.gif"); というエラーがでてしまいます。 一体何がいけないんでしょうか?
>>730 初期化の仕方がまずい。これなら通ると思う。
import java.awt.*;
public class Test {
Image img[] = new Image[]{
Toolkit.getDefaultToolkit().getImage("test1.gif"),
Toolkit.getDefaultToolkit().getImage("test2.gif")
};
public static void main(String args[]) {
}
}
>731 ありがとうございます。 無事コンパイルできました。 しかし、なぜ730のプログラムだとダメなんだろう? これでも大丈夫そうに思うんですが・・・。
>>685 「文字列中の全角スペースを削除」って仕様は満たさないが、
全角スペースだけを削除したい場合って少ないだろって思ったから。
ありそうなのは全角も半角も同じように削除したいって使い方じゃない?
exp = "+x+0-0" のような文字列から先頭の"+"と、"+0"や"-0"を取り除くために String red(String exp){ String ans = exp; ans.replaceAll("[-+]+0",""); if(String.valueOf(ans.charAt(0)).equals("+")) ans.substring(1); return ans; と言うようなメソッドを作ったのですがうまくいきません。 どこが間違っているのでしょうか
>>734 ans = ans.replaceAll("[-+]+0",""); かなぁ。
あと if 文は不要なんじゃないですかね。
じゃねぇか if (String.charAt(0) == '+') { ans = ans.substring(1); } か。呆けてるな。スマン。
if文いらねーだろ ans = ans.replaceAll("(^\\+)|([-+])+0",""); じゃだめか?
初心者です。 JAVA1.0→JAVA1.1→JAVA1.2のセキュリティモデルの変化について教えてください。 大学の講義では公開鍵とか聞いたけどさぱーりですた。 よろしくお願いします!
カッコ間違えた ans = ans.replaceAll("(^\\+)|([-+]+0)","");
>>739 >>720 を読んだんじゃ?
公開鍵というとJavaとは関係ない話になりそうだが.....
743 :
デフォルトの名無しさん :03/02/08 18:30
?import java.awt.*; import java.applet.*; public class arcs extends Applet { public static void main(String[]args){ int x; x=11; while(x<=111111); x=x*10+1; System.out.println(x*x); } } 何も表示されないんですが何故でしょう。 全くの初心者なため根本的に勘違いしてるかもしれませんが よろしくお願いします
>>743 Javaコンソールを見る or appletviewer で見る。
>>743 Appletととしては起動しません。
初心者本をみましょう。Appletはmain()つかわないよ。
>>742 スマソ、ちゃんと読んでねかったっす。
なんかセキュリティの話をしてたんで公開鍵とか言ってたけど
javaとはカンケーないんですかぁ、ありがとございます。
APIドキュメントをローカルで見たいんですが 自力でwget等しなければ無理ですか? どこかにダウンロード用あったりしないでしょうか。
>>749 thx! なんだSDKと同じ場所だったのか。。。
気づかなかったスミマセン。
751 :
デフォルトの名無しさん :03/02/08 20:35
今からSDKインスコします。 みなさん温かく見守ってください。
>デフォルトの名無しさん おわったぁ?
とりあえず無事インスコできたみたいなんで次はパス切ります。 ブラウザ設定でオペラは選べないみたいなのでIEにしました。
>>754 実はSolaris用JDKダウンロードしててはまったに1中の人。
パス切りなんて簡単じゃんって思って再起動かけました。 DOSプロ開いたら、なんかコマンド名が正しくないとか言われました。 自分でなんとか解決するのでみなさん温かく見守ってください。
>>757 DOSプロとかなんか通ぶってる馬鹿を冷たい視線で仕留めます。
ごめんなさい調子にのってしまいました。 MS-DOS プロンプトで確認したところ上手くいったようなので、 次は HelloWorldに挑戦です。 少し勉強しますのでスターゲイトでも見ててね。
やったね。HelloWorld出たじゃん。 でも、いまいち理解していないので 次のスッテプに逝く前に、も少し勉強が必要だね。 一人で勉強するのでみなさん温かく見守ってください。
>>760 あんまり長くなるようだと、別の場所でやってくださいな。って言われるぞ。
HelloWorldおめでとん。
>>761 そりゃそだね。
別スレ若しくはスレ建てでやります。
みなさん温かく見守ってください。
C:\>copy con: HelloWorld.java public class HelloWorld{ public static void main(String[] args){ System.out.println("hello, world"); return; } } ^Z 1 個のファイルをコピーしました。 C:\>javac HelloWorld.java C:\>java HelloWorld hello, world C:\>
con: con:
これが噂のコンコンアタックか。良く知らんけど。
質問です。 アプレットビューワでは作動するのに、ブラウザではアプレットが表示されません。 Windows98SEで、Microsoft Internet Explorer 5.51を使っています。 開発はSDK1.3.0_02を使っています。 過去ログ漁って、 「デフォルトではIEはJDK1.1までしかサポートしていないためにJDK1.2以降のクラスがClassNotFoundExceptionとブラウザ下に出てしまう」 ことは分かりました。もちろんブラウザでJavaは有効、JITコンパイラも有効にしました。 で、(Java仮想メモリはアップデートした上で)JavaPlug-in1.4.0_01をダウンロードして見ました。再起動後、テストとして LinkedListを使うアプレットを作って、<applet>タグに積んでみましたが↓ import java.util.LinkedList; import java.awt.Graphics; import java.applet.App↓let; public class testApplet extends Applet{ LinkedList list; public void init(){ list = new LinkedList(); list.addFirst("hello"); } public void paint(Graphics g){ g.fillOval(100,100,10,10); g.drawString((String)(list.get(0)),10,10); } } 動きません。やっぱりjava.util.LinkedListがClassNotFoundExceptionになってしまいます。 どこがヘンなのでしょうか。どうかお願いします。 長くてすみません。 (java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/using_tags.html#intro にあった<Object>タグを使う方法では表示できたのですが、自分のとこにプラグインがあるのにわざわざsunからpluginをDLしてくるのも消耗です。)
768 :
デフォルトの名無しさん :03/02/09 01:27
妙なコロンがついてるぞって事が言いたかったんだけれど。
>>765 オブジェクトタブで調べてみれば?
ブラウザによってちがうから
IEの場合だけ載せとくよ
あとは自分でしらべて
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="180" height="180"
codebase="
http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0 ">
<PARAM NAME="code" VALUE="testApplet">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="mylabel" VALUE="MyLabel">
OBJECTエレメントがサポートされていません
</OBJECT>
>>767 LinkedList は JDK1.2以降で追加。
JDK1.1.4レベルの MSJVM では使えません。
ヘンなのは
>デフォルトではIEはJDK1.1までしかサポートしていないためにJDK1.2以降のクラスがClassNotFoundExceptionとブラウザ下に出てしまう
がわかってて、かつ
>やっぱりjava.util.LinkedListがClassNotFoundExceptionになってしまいます。
と言ってるのに、LinkedList が JDK1.1 で使えるか調べないあなたの頭です。
>>768 面白いわけが無い
冷笑するのみ許されるネタ?だ
774 :
デフォルトの名無しさん :03/02/09 03:29
>>768 「あたし、2年もJava使ってるのよ。使いこなしてるのよ。使いこなしちゃってるのよ。なのに、
こんなつまんない仕事おしつけちゃってさ。ホント、こいつ無知蒙昧で超笑える。(冷笑」
って事では。
「無知蒙昧なんて言うかよ」
これがオチ。
やべぇ・・・ 本当に何が面白いのかわからない。 ますます混乱してきた。 録画しといた笑点観ながら寝ます
>>768 はじめにきくけどおーーー javaやって何年? (ちなみに俺は5年だ)
わたし「2年です。。。。」 (あまり詳しくないのよね…)
「ふーん」 (そうか…俺より評判良いのに…)
「MVCって知ってる?」 (ちょっと分からない事でも聞いて見るか?)
わたし「ええ。知ってますけど」 (何を当たり前の事を)
「Mがもでるでええ。。。。。。」 (MVCって何じゃらほい)
わたし「。。。。」 (あーた、プログラマに向いてないよ…)
はじめにきくけどおーーー javaやって何年?(何でこんな素人が?) わたし「2年です。。。。」 「ふーん」 (2年もやってこの程度かよ) 「MVCって知ってる?」 (ちょっと馬鹿にしてやるか) わたし「ええ。知ってますけど」 「Mがもでるでええ。。。。。。」 わたし「。。。。」(この人レベル低ーい) (こりゃ駄目だ、嫌みも通じない。取り合えず環境構築でもやらせとこ)
たぶん、MVC無視したプログラムを組んで、 それを遠回しにやんわり指摘したら、 そんなこと知ってるわよ見たいな顔されたんで、 しかたなく環境構築をさせることにしたんだと。 今頃必死に、使い物にならないプログラムを、 上司が徹夜で残業して作り直してます。 首にさえなかっただけありがたい話なのに、 本人はこんな馬鹿な上司を持ってと被害者意識。 能力無いのにプライドだけ高い勘違いプログラマの典型。
えーと、つまりこのguessという人はあまりJavaに詳しくないのに Javaのなんかのプロジェクトに配属されてしまって そこで作ったプログラムがあまりにひどく上司に厭味言われて 閑職モードに突入ったのを自虐的に書いている、と。 みなさんのおかげで少し賢くなりました。 ありがとうございました。
zapzapzap
>>773 あたりからスレ違いだが
痛々しいguessに愛の手を
>フレームワーク全体の設計をしてすべてHashでかえすように >設計した人 1名 スレ違いだがワラタ
きっと彼はPerl神なのだろう
>>779 いや、逆みたいだ。J2EEとかに精通している人かも
Javaやって何年、と聞いてMVCの説明した人が後悔しているのだろう、ということ。
というかMVC知っているなら「わかっているから説明不要」といえばいいのに。
>>781 これ女?
フレームワーク作ってるってのか。
ServletとUMLを使いこなしているのか。
自分がServlet使えることを自慢しているみたいだぞ。
テストもやっているみたいだ。
WinとLinuxつかっているみたいだ
女?
>今日の仕事
>eclipseのマニュアル作成
と書いてある。もしかしてIBMかIBM下請け企業の社員!!?
>>785 単に周りのレベルの低さを嘆いてるんでしょう。少なくとも彼が感じてる分には
>>eclipseのマニュアル作成
>と書いてある。もしかしてIBMかIBM下請け企業の社員!!?
単なる社内マニュアルだろ
#どこがどう女に見えるのか・・・ 性別は関係ないのでは?
>>785 おいらは本人じゃないんで知らん。なんとなく女くさいのは、年の話を電車で聞かされた
とこあたりか(まったくスレ違いでスマソ)
>>768 があまりにワケワカメなんで、全部追っかけて見ただけ。ま、ガンガレヤってとこだけど。
>>786 Servletプログラマのくせにネカマかよ。キモー
子持ちの母親にも見える。
子持ちのServletプログラマと言えば原田洋子を思い浮かべる
マ板ネタなんで、ここらで終了だろうな。スマン
だから・・・MVCってなんだんだよ
>>791 なんだ?smalltalkでは不満なのか?え?こら。
MVCを知らないレベルの人間がJava界隈にはワンサカ居るんだよな。
>>793 MVCを知らない奴はJavaプログラマ失格ということにしよう。
そしてC#.NETとの差別化を計る
ヘタレなVとお役所仕事なMに板挟みにされたCの雑用っぷりが泣けてくる。
言っとくがMVCってのは、別にJavaと関係ないぞ。むしろ設計の話。 で、J2EEの考え方として、MVCそれぞれに明確な対象を用意してある、と。 ただ、そんだけ。
関係無いっていうか、Java限定じゃないぞ、の意。
MVC.co.jp
つまり、この人はMVCを知ってる(と思い込んでる)ってことですか。
MVC言葉は誰でも知ってるだろ 実際にうまく設計できるかどうかは全く別の話 いい加減スレ違いsage
>>802 前半同意なんだけど、ただ「スレ違い」って....。
「設計」って部分だけだとスレ立てにくくないか?
ツー訳で、Javaでの質問。サーバサイド開発の時、Viewと他は分離しやすいと思うんだけど、
(例えばJSPは単にDB検索の結果を受け取るだけ、とか)ModelとControllerの「完全分離」って
できてる??
俺なんかは、どうもいつもModel側のインタフェースの一部をControllerが意識する形になってしまう。
たとえば、プールされたConnectionをModel側に引き渡す時、とか、そのConnectionをプールする
BeanをModel側に引き渡す時の手順、とか。
ファクトリパターン(ないしビルダパターン)でいい感じにインスタンス生成して、テンプレメソッドに
すべりこますとかしてるんだけど、その手順をどうしても分離できない。
これって、そんなもんでしょうか。
804 :
デフォルトの名無しさん :03/02/09 21:04
>>803 Modelが、ConnectionプールBeanをコンポジッションで抱えればいい
んじゃないか?Beanの生成は、Modelの初期化時、あるいは要求発生時
に遅延生成でもええけど。
>>803 俺は大体M-VCモデルになるな。Viewとコントローラの分離の方がむずい。
806 :
デフォルトの名無しさん :03/02/09 21:14
>>805 Viewが、ModelからObserverパターンでModelの変更イベントをpullする形
にすればええだけさー。
>>803-805 まあ、そんなもんだろう?
完全に分離したほうが優秀だっていうわけではないんだから・・・
逆に分離しすぎてわけわからんときもある
無理に分離させようとするとJavaでいうとBeanばっかりになって何がなんだか分けわかんなくなる
デザインパターンでもそうでしょ?別にデザインパターンつかわんでいいところに
むりやりデザインパターンに押し込めようとする・・・
まあ、臨機応変ってことで・・・
808 :
デフォルトの名無しさん :03/02/09 21:27
>>804 たぶん、
>>803 の話を要約すると
>>804 のような感じになるんじゃないの?
想像だけど。
class Builder {
private BarConnectionPool connectionPool = null;
〜略〜
public FooModel getInstance() {
return Factory.newInstance(connectionPool.getConn());
}
}
みたいな感じだとすると、結果的に「抱え込んでる」形になるのでは。
それとも
>>803 は
モデルにあたるBeanと、ConnectionプールBeanも分離しているので、それをつなぐ手段を
コントローラが負担しているんだけど、と言いたいのかな?
ま、設計ってその時その時で「正しい」が変わるからねぇ。
Javaを扱うにはMVCは必須だし、当然デザインパターンも必須。 これに沿って作れない奴はJavaプログラマ失格。VBでもやってなさい。 MVC/デザインパターンを習得した、優秀なプログラマだけが、 J2EEという高いステージに上ることができる。Javaデベロッパたるもの、 これを目指さないことにはJavaをやってる意味がない。 ただ、J2EEを利用する案件にはなかなかお目にかかれないかもしれない。 なぜなら、J2EEは使いこなすだけでそうとう高度なスキルを要するし、 それにかかるお金も大きいほうだからだ。
>>805 ディスパッチ先の決定をコントローラが知ってる必要があるから、って事?
>ただ、J2EEを利用する案件にはなかなかお目にかかれないかもしれない。 漏れ、J2EEを利用する案件以外、やってないんだけど。 ていうか、チーム内には「そうとう高度なスキル」をすでに諦めてる香具師もいるんだけど。 ていうか、「使いこなす」の定義がアバウト。 そして「MVC/デザインパターンを習得」するのは、優秀とかいうより、常識。 理解しててもらわなきゃ、困る。
>>810 VBだって同じだろ
言語によって多少の得手不得手があるにせよ
どんな言語でも設計段階では同じもんだ
ゴールによって言語を使い分けるだけで
>>808 >>803 の、
>ファクトリパターン(ないしビルダパターン)でいい感じにインスタンス生成して、テンプレメソッドに
>すべりこます
って、エラいあいまいな言い方してしまった....。要するにそういう事です。すんません。
結果的には
>>804 の言うように、そのConnectionを使う時点で、コンポジットになっています。が、
そのBeanを利用する手順を、Controllerが意識(実装)しています。ビルダでBean起して処理をし、結果をView(JSP)にDispatch。
...で、その辺を分離ってした方がいいのかな、と。いつも気にしてしまう...。
ま、
>>809 の言うように、その時その時で正解は違うのかもしれないけど。
極論でしか成立しない理論吠えてる時点で相手にすることは無し。
なんか書き方が釣りっぽいよね
818 :
デフォルトの名無しさん :03/02/09 22:26
>>817 って言うかあれで釣りじゃなかったら異常だろう。
すいません、質問していいですか? public interface A { public static String = "定数"; } と public class B { public static String = "定数"; } では、定数の実装はどちらの方が良いんでしょう。
821 :
デフォルトの名無しさん :03/02/09 22:46
>>820 スレ違い。ここは設計スレです...って、あれ?違うか。
つーかどっちも一緒のような気がするが....。ただ、
public class ClassA implements A {
// 略
}
public class ClassB implements A {
// 略
}
:
とかした場合に、違いがわかると思われ。
>>820 用途に合わせて。でも、理由が無ければ、interfaceの方がいいかもしれません。
>>821-823 ありがとうございました。
なるほど、だから会社の上司に「定数はインターフェースで宣言しろ」って言われたのか....。
ところで、staticなメンバーって、メモリ上に唯一の存在って聞いたのですが、その場合、
やっぱり interface側で定義しておくと、それを implementsしたクラスの名前でアクセスしても、
全て同じ所を参照するんでしょうか。
って、するんですよね。すいません。(恥
>>822 なぜ? 今、手元に無いんで理由がおいらもわからないんだけど、Effective Javaでは
定数はInterfaceに書くなって項目があったけど。
自分で考えて見たが、こんなのがマズイんではないかな。 interface A { static final String AZ = "Hello"; } interface B { static final String AZ = "はい!"; } class AB implements A, B { げ、いちいち修飾が必要になってめんどうくせー }
828 :
デフォルトの名無しさん :03/02/09 23:10
>>826 名前空間をぶち壊すから。
Interfaceに書いてもいいけど、その変数を呼び出したいクラスが
あったときに、InterfaceをImplements指定して使うのは、名前空間
を分かっていないアホの所為。サブクラスで変数シンボル名が衝突す
る場合、隠蔽されてしまう恐れがある。
interface Hoge{static int VAL = 0;}
を呼び出したいときに、
class Hige implements Hoge{int val = VAL;}
などとやってはいけない。
class Hige{int val = Hoge.VAL;}
とやるべし。
>>826 その本読んで無いんでなんとも言えないが、それって多分、「意味付けの話」とかじゃないの?
interface は、インタフェースの定義をするものなんだからっていう。だから、
「(無闇に)定数定義してはいけない」とかいう話の流れなのでは。
以上、全部推測。
段々、思い出してきたが、定数はユーティリティとして隔離すべきってことだったような 気がしてきた。 #そもそも定数って、インスタンス化するオブジェクトの属性じゃないってことかな
つーか、1人で考えてるうちにレスがついてる。
>>828 そうだって気がしてきた。(827)
>>829 おいらもそう結論した。(830)
>>828 それだと「定数はInterfaceに書くな」の説明になってないような。
つうか名前空間の解説については、その通りなんだけど。
834 :
デフォルトの名無しさん :03/02/09 23:17
変数(しかもStringBuffer)をInterfaceに書いてるバカコードも結構あります。
836 :
デフォルトの名無しさん :03/02/09 23:28
ほかに条件なしに無差別に「定数はインターフェイスに」というような 奴は、ヘッダファイルに定数define書く感覚でいっているだけの、ロー トル馬鹿C使いですね。
838 :
デフォルトの名無しさん :03/02/09 23:33
Javaにポインタってあるんですか? ぬるぽがあるんだからあるんですよね?
>>838 Javaでは「参照」を使いましょう。
少なくともCでいうところのポインタはありません。
Javaにポインタがあると力説するご老人には隠居を勧めましょう。
>>838 C/C++でいう使い道のポインタならありません。
Javaでの感覚は、むしろ参照。
841 :
デフォルトの名無しさん :03/02/09 23:45
>>839 機能的にはポインタさ。
Javaの参照!=C/C++の参照
Javaの参照=C/C++のポインタ-ポインタ演算機能
君が誤解してる。
>>837 「定数をinterfaceに」の元の質問者です。ちなみに、私がやりたかった事というのは、ちょうど
Color.white みたいな感じの定数です。そのインターフェースを実装したクラスで、それぞれ関連処理があり、
そこに渡す引数を、このようにわかりやすく渡して欲しいという意図があった為です。
でも、中にはそんな「無差別定数」を集めたクラス(あるいはインターフェース)を書いてる人もいたりして...。
正直、それだとなんだかわかりません。(笑
設計しなおしてほしい。
質問です。以下の場合、finalにしてあっても、引数の中(の中)は変化するんですが、 いったいこのfinalは、何を意味してるんでしょうか。 class Foo { public void fooMethod(final Bar arg) { arg.callback(); } } class Bar { private int counter=0; public void callback() { counter++; } }
呼ばれたメソッド内で代入できない。
>>843 ごめん、
>>841 の言う、”ポインタ演算機能”って言葉が出てこなかった。
その機能が無いポインタの受け渡しって、要するに(C/C++における)参照に近いんじゃないの?って意味。
>>845 あぁ、そうか。
class Hoge {
private final SomeClass member = new SomeClass();
public void hogeMethod() {
member = new SomeClass(); // ←コンパイルエラー
}
}
ってのと同じか。
ありがとうございました。
>>846 別に謝ることはないけど、
>>Javaでの感覚は、むしろ参照
なんて言い方をせずに
>>Javaの言語仕様では、参照と呼ぶ
って言えばいいのにと思っただけで、悪意はないよ。
C++の参照は、NULL代入もできないから、Javaの参照はポインタ(−演算機能)だと思う。 int& ref = (int)NULL; ->エラー
850 :
デフォルトの名無しさん :03/02/10 00:20
唐突で申し訳無いが、スタティックなメンバって、いつGCに捕まるの? NullPoClass に、message ていうスタティックなStringがあるとして、 public static void main(String[] args) { //処理いろいろ System.out.println(NullPoClass.message); //ひたすら続く } なんて、時。
あ、なんか良くわかんない事書いたかも。
>>850 たしか捕まらない。JVM が終了を迎えてもファイナライザが呼び出される
保証は無い。たしか java コマンドのオプションにファイナライザ呼び出し
を行うようなオプションがあったような。
ぬるぽ
>>852 そんなんだ。じゃ、こんな時ってどうなるの?
public NullPoClass {
private static NullPoClass nullpo = null;
static {
nullpo = new NullPoClass();
}
private static void release() {
nullpo = null;
}
private NullPoClass() {} ; // コンストラクタ、外から禁止
public void finalize() throws Throwable {
NullPoClass.release();
}
}
で、
NullPoClass hoge = NullPoClass.nullpo;
こんな時、いつファイナライズされるんだろ。
856 :
デフォルトの名無しさん :03/02/10 00:50
サンプル書く時の良く使う名前 → "Foo","Bar","Hoge","NullPo" 一つ増えますた。
>>855 のソースを声に出して読むと、ちょっと楽しい。
858 :
デフォルトの名無しさん :03/02/10 01:11
>>855 >こんな時、いつファイナライズされるんだろ。
それ自身がstaticな存在なので、永遠に finalizeされない。
JavaMailのMessage.getSubject()すると メールのタイトルが取得できるのですが メールによって 「30=?ISO-2022-JP?B?GyRCIXMBKEI=?=OFF=? ....」 などという文字列になっていたりします。 OutlookExpressなどで受信すると、普通のタイトルになっています。 こういうメールはどうすればJavaMailから普通のタイトルが引き出せるのでしょうか?
>>859 エンコード/デコード大失敗のヨカーン。
>>859 ISO-2022-JP
って書いているでの日本語のエンコードを探してみると良いかも。
862 :
モダナガリフォンゲるる :03/02/10 02:26
run()とstart()の違いって何?
>>859 「メール・Subject・日本語」でググッてみ
>>860-861 その通りでデコードに失敗しているようなのですが
これってJavaMailのバグなのかな?と思って質問した次第でして・・
きっちりデコードできるメールがほとんどだけど、まれにデコードに失敗するメールがあるみたい
>>861 日本語のエンコードを探してみる。というのは、文字列からMimeメッセージを自前で解析して・・という事?死ぬほど面倒くさそうなのですが、簡単にできるんでしょうか??
>>862 startすると、runがスレッドで動く
>>865 RFCに沿った正しいメールであればJavaメールは自動的にデコードしてくれるはず。
糞メーラーの作ったメールであればデコードに失敗するかもしれない。
とりあえず、デコードに失敗するメールのX-Mailerヘッダを晒せ
Javaメール → JavaMail な
とりあえず、以下から送られてくるメールのデコードが失敗します。 ・SOURCENEXT ・Yahoo! eGroups ・キュリオシティ Yahoo! eGroupsからのメールに失敗している事と OutlookExpressでは正常受信できる点から、やっぱりJavaMail側の問題のような気が・・・
実際にデコードに失敗するSubjectヘッダをここに貼ってみ
>>870 ごめん。Headerってこれでいいのかな?とりあえず化けてるタイトル.getSubject()の内容
Pxess:大判プリント=?iso-2022-jp?B?GyRCJEtEKUBvJDckaCQmlnYbKEI=?=
872 :
デフォルトの名無しさん :03/02/10 04:09
>>842 TypeSafeEnumerationでググってみ。
(但し、JVMをまたいで使う場合はちと難しいけどね)
正規表現Patternで質問。 全ての文字にヒットする 「.」を「.」自体にマッチさせたいときどう書きます? ようは、Perlの「\.」の表現をしたいってことです。
>>873 Java でもやっぱり 「\.」。ただし文字列中では "\\." と書かねばならないので
ご注意のほどを。
普通に"\\."。 JakartaOROでバックスラッシュ地獄を回避するために"/"を"\"として認識させるオプションがあった気がする。
あんがとん
>>871 それは別に化けてない。
BASE64でエンコードされているだけ。
JavaMailはSubjectをデコードしてくれません。
自分で何とかする必要があります。
BASE64の戻し方はぐぐって調べてみましょう。
>>877 sunの非公式標準添付ライブラリでできたよな。確か。
>>858 永遠にというのは嘘だな。あるクラスローダにロードされたクラスは、
そのクラスローダがGCの対象になった時に一緒に破棄される。
ServletやEJBなんかだと普通に起こるよ。
ソースファイルをメモ帳でマイドキュメントに保存したのですが、 そうしたら、そのソースファイルのディレクトリが分からないのですが? win Me でJ2sdk1.4.1です。
>>880 Windowsディレクトリになかったか?
それかデスクトップ上か、Explorerのデスクトップ
解らなければ検索くらいしようや。
というか、My Documentにソースファイル置くか?
pLaTeX2eソースとかではそういうところに置くとコンパイルに失敗するから漏れはそういうところには保存しないな。
自分でディレクトリ(半角英数、スペース無し)作ってそこのおいた方がいいと思うが。
>>881 自分でディレクトリか。thxです
本を見ながら勉強しているのですが、
『これを正確に打ち込みます。打ち終わったら、それを保存します。
次にそのディレクトリを呼び出します。』
と本に書いてあったので、「え?どうやって呼び出すの?」と思いました。
保存→マイドキュメントとしか考えていませんでした。
884 :
デフォルトの名無しさん :03/02/10 16:21
StringBufferの sb.append("(-_-)").append("(∩∩)").append("ミ,,゚Д゚彡"); と sb.append("(-_-)" + "(∩∩)" + "ミ,,゚Д゚彡") の違いを詳しく優しく丁寧に説明して下さい。おめがいします。
sb.append("(-_-)" + "(∩∩)" + "ミ,,゚Д゚彡"); は sb.append(new String(new StringBuffer("(-_-)").append("(∩∩)").append("ミ,,゚Д゚彡"))); と同等。
>>885 最近のコンパイラは sb.append("(-_-)" + "(∩∩)" + "ミ,,゚Д゚彡") みたいのだと
sb.append("(-_-)(∩∩)ミ,,゚Д゚彡") にしてしまう罠。
>>886 お、そうなのか
早速
System.out.println(("a" + "b") == ("ab"));
trueでした。(1.4.1_01)
888 :
デフォルトの名無しさん :03/02/10 17:51
GUIからRuntime.execを使って自作のコマンドを起動しているのですが コマンドプロセス終了までの間、GUIが固まってしまいます。 Threadにしてみたりしたのですが全く状況が変わりません。 何が原因なのでしょうか? よろしくおねがいします。
>>888 ひょっとして start() ではなく run() を呼んでないけ?
891 :
デフォルトの名無しさん :03/02/10 17:56
>>889 ありがとうございます。
でもstartです。
892 :
デフォルトの名無しさん :03/02/10 17:59
JSPでruntime.exec() の記述でプログラムを起動したら プロセスでは動いてるんだけど画面が表示されません。 これってどういうこと?
>>892 Process.InputStreamとかしていますでしょうか?
888も宜しく御願いします。
>>892 ×Process.InputStream
○Process.getInputStram
何度もすみません ×Process.getInputStram ○Process.getInputStream
>>888 本当に別スレッドに出来てるのかどうか、と、
どのタイミングでそれをやっているのかが気になる。
出来ればそのプログラム(のエッセンス部分)を見たい。
はい、やっています;; classファイルからならきちんといけてるのですがJSPでは駄目なんでしょうか・・。 用は今、jspからjava(class)ファイルを起動してメールを送ろうとしているんですが それがうまくいかなくて悩んでます。よろしくお願いします
はうっ・・
DelphiやVBを使ってたものですが今度試験があるのでJavaを勉強しようかと 思っているのですがJavaってたとえばメモ帳だとかも作れるんですよね? できるけど本来そういうことには使わないとかはないですよね? あとJSKとかいろいろ種類があったんですけどメモ帳みたいなアプリケーションを 作るにはどれをダウンロードすればよいのでしょうか
Process proc = Runtime.getRuntime().exec("プログラム"); InputStream is = proc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { out.println(line); } こんな感じでよろしいでしょうか?
901 :
デフォルトの名無しさん :03/02/10 18:30
>>896 恥ずかしげも無く晒すと以下の感じです。
1.ボタン押下契機に起動
〜
System.out.println("command=" + command + "\n");
ExecuteCommand cmd = new ExecuteCommand(command,view);
cmd.start();
〜
2.コマンド起動 public class ExecuteCommand extends Thread { String cmdLine ; JTextArea view; Process process = null; ExecuteCommand(String command,JTextArea v){ cmdLine = command; view = v; } public void run(){ try{ Runtime rtm = Runtime.getRuntime(); process = rtm.exec(cmdLine); ReadMessage rem = new ReadMessage(process,view); rem.start(); } catch(Exception ex){ ex.printStackTrace(); } } }
3.応答メッセージ取得public class ReadMessage extends Thread { Process process ; JTextArea view; ReadMessage(Process p,JTextArea v){ System.out.println("ReadMessagae const start\n"); process = p; view = v; } public void run(){ String line; BufferedReader er ; BufferedReader in ; try{ // error message InputStream error = process.getErrorStream(); er = new BufferedReader(new InputStreamReader(error)); while((line = er.readLine()) !=null){ System.out.println(line); } // responce InputStream input = process.getInputStream(); in = new BufferedReader(new InputStreamReader(input)); line = in.readLine(); while(line!=null){ view.append(line); System.out.println(line); } :
>>896 以上、こんな感じです。
どうでしょうか?
処理時間の違いが知りたかったんだけど、実際 sbA.append( "A" + "B" + "C" ); なら sbA.append( "ABC" ); だから String A = "A";String B = "B";String C = "C"; sbA.append( A + B + C ); //(・∀・) sbB.append(A).append(B).append(C); //Σ(゚Д゚) で試したらΣ(゚Д゚)の方が早かった倍くらい
>>884 ちゃんとループさせた? 1ショットで見てもそれほど意味ないよ。
>>906 C:\>copy con: a.java
public class a{
public static void main(String[] args){
(new StringBuffer()).append("A" + "B" + "C");
(new StringBuffer()).append("A").append("B").append("C");
}
}
^Z
1 個のファイルをコピーしました。
C:\>javac a.java
C:\>jad a.class
'jad' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\>
あのー・・・すいません誰か教えてくれないでしょうか・・・
>904 最後の5行の部分なのだけど、 readLine() をループの外で 1 回しか呼んでないよ。 > line = in.readLine(); > while(line!=null){ > view.append(line); > System.out.println(line); > }
>>899 別に何でも作れる。今一番流行ってるのはサーバーサイドJava
1.4.1のSDKをダウンロードしとけ。
>>904 ありがとうございます。
コピペしたときに抜けてしまいました。
ここの辺、固まるのと関係ありそうですか?
while(line!=null){
line = in.readLine(); ←追加
view.append(line);
System.out.println(line);
}
> ここの辺、固まるのと関係ありそうですか? ううむ。関係ないと思う。 その行が無いと、起動したプロセスが標準出力に1行以上何かを吐く場合、 無限ループにハマって、延々同じ文字列を JTextArea に append しまくる。 これは busy loop になって CPU 時間を食いまくる。 (手元でやってみたけど、busy loop にすると反応が非常に遅くなる。) でも、無限ループで重くなってるなら、起動したプロセスが終了しようがしまいが 関係なく重い状態が永遠に続くもんねぇ。888 さんの現象はプロセス終了すると GUI も反応するということみたいなので、別な問題だと思う。 プロセスが稼動している間は、GUI は重い(遅いけどあとからなんとか反応する)状態なのかな? それとも、まったく反応なし? なかなか謎です。お役に立てず済まぬ。
>>911 ありがとうございます。でもJavaでたとえばTeraPadみたいなアプリケーション
作ることって少なくないですかね?見かけもTeraPadみたいなものが作れたりするんでしょうか?
どうもJavaで作られたものってウェブ上で3Dのゲームみたいなのしか見かけないもんで
普通の2Dのゲーム、よく雑誌の付録CDについてるようなEXEのやつなんかも作れるんですか?
915 :
デフォルトの名無しさん :03/02/10 23:13
>>912 思いっきりそこが原因みたい
readLineで処理が終わった時の出力読んでるし
fileのcopyするメソッドで試してみたらreadLine無しだと
コンソールに戻ってからHDDカラカラ言ってる
readLine有りだとcopy終わるまで帰ってこない
>>916 >これをダウンロードすれば実行ファイル形式のゲームとかも作れるんでしょうか?
「実行ファイル形式」をきちんと定義してください。
とりあえず、
>>916 の態度や根性を見るに、
Javaで可能/不可能という以前に
>>916 には不可能っぽい。
>>917 なんかJavaで作られたアプリって他ので作られたのとボタンの大きさだとか
見た目が微妙にちがくありませんか?Javaでこういったアプリ作るのは
他の言語でアプリ作るより難しかったりと化するんでしょうか?
>>919 あなたのような質問に対する一般的な回答例:
1.嫌なら使うな。
2.まず作ってみろ。
前JavaMailのgetSubject()のBase64デコードが出来ないと嘆いていたものですが
その後の調査で、結局のところ「標準」に従っていないものはうまくデコードできない・・って事なんですね
MS仕様に沿ったものとかダメなんですね。
で、
http://www3.vis.ne.jp/~asaki/java/mailer/ を発見して、ここのソースを参考にさせていただきました。
オープンソースに感謝!
悪いのがMSだというのは判るが、SUNも現実的な標準=MS仕様に沿ったライブラリ提供してくれてもいいのにね
>現実的な標準=MS仕様 Windowsしか使わない人の意見だね。
いやいや、MS仕様に沿ったところで、きっとMSの方が変えてくるってw
>>919 WindowsのGUIコンポーネントを使っていないし、似せようともしていないから。
似せることはできるよ。SWTなんてものもある。
>>922 >>現実的な標準=MS仕様
>Windowsしか使わない人の意見だね。
学生の意見だね。
みなさん、どうもありがとうございます。
>>910 =913
まったく反応無いというか、コマンドプロセス終了と同時に
わーと動き出します。(固まってるときに押したボタンとか。。。)
>>915 >>readLine有りだとcopy終わるまで帰ってこない
readLineはありです。応答メッセージをとりたいので。
copy終わるまでかえってこない。。。これは解決可能ですか?
>>924 >>>現実的な標準=MS仕様
>>Windowsしか使わない人の意見だね。
>
>学生の意見だね。
バカの意見だね
912 でこんな風に書いてるけど、
while(line!=null){
line = in.readLine(); ←追加
view.append(line);
System.out.println(line);
}
追加する位置はそこでいいの?
この while に入る直前に line に対してダミーの値でもいれてるの?
そうじゃないなら、while に入る前に readLine() して持ってきた値は
捨ててることになると思う。それでいいならいいのだけど。
あと、ボタンが押された時に ExecuteCommand というスレッドを起動して
その中でさらに、ReadMessage というスレッドを起動している。
2重にスレッド使っても問題ないとは思うけど、こういう問題を解決しようと
するときには、どんどん削ってプログラムを単純にすると良いと思う。
>>896 で「エッセンス部分」と言ったのはそういう意味っす。
私も手元で別スレッドから JTextArea に append するのを書いてみたけど
普通に動きました。
>>910 そうでした。追加するならappendの下ですよね。
>>どんどん削ってプログラムを単純にすると良いと思う。
そうですね。やってみます。
ただ、応答メッセージとらないでコマンド叩くだけでも
固まっちゃうので、ちょっと先行き暗い感じです。
>>924 Windows の GUI コンポーネント使いたいときは AWT で。
ただし、そのままでは heavy weight なうえ、
Tree や Grid 等の幾つかのコンポーネントが使えませんが。
>>921 で、どの辺が「標準に従ってない」メールだったの?
>>871 を見る限り、最初の1ブロックだけデコードして途中からデコードできてないようだけど。
もっと言えば、JavaMailは、あくまでメール送受信のためのライブラリだから、
変な形式のメールでも読む努力をしなきゃいけないメーラー(OE他)と
同列に扱うのは間違い。
間違った形式のメールにどの程度対応するかは、メーラーを作る人が
決めることだし、そういうコードを書くのを妨げるものは何も無い。
>>930 すみません、どのあたりが標準でないのかも実はよく理解していません。
あちこちHPを見たのですが、BackyとOutlookはちょっと変わったメールを出す事と、Outlookに関しては日本語の関係で相当「標準でない」メールを送っているらしいことはわかりました。
素人の意見ですが、「標準」と言われるものが何であれ事実上は「OEが標準」だと思います。
Yahooが送ってくるメールですら「OE準拠」ですから。。
JavaMailにはOEの送信するメールくらいは何の苦もなく読めて欲しいと思いました。
以上すれ違いスマソ
>>931 >素人の意見ですが、「標準」と言われるものが何であれ事実上は「OEが標準」だと思います。
貴方がどう思おうが標準はRFCで決まっている。
>Yahooが送ってくるメールですら「OE準拠」ですから。。
OE準拠ってのは一体何?どこの言葉?
単にYahoo eGroupsから送られてきたあるメールがOEで読めただけじゃないの?
>あちこちHPを見たのですが、BackyとOutlookはちょっと変わったメールを出す事と、
>Outlookに関しては日本語の関係で相当「標準でない」メールを送っているらしい
で、読めないメールが「OEで送った、非標準のメール」だってことは確認したの?
少なくとも最新のOEはかなり標準に沿ったメールを作っているはず。
日本語の添付ファイル名など、一部標準に従ってないことで有名なもの(RFC2231)も
あるが、そうじゃないだろ?
JavaMailはライブラリだから、標準に従ったメールしかデコード出来ないのは当然。
標準に沿ってないメールもデコードしたければ(今回の貴方のように)自力で
対応するコードを書けばいい。これは別にJavaじゃなくても同じこと。
JavaMailも完璧ではない。どんなSubjectがデコードできなかったのか
がわかれば、やっぱりJavaMailのバグなのか、メールの方が悪いのか、
標準ではないがこのぐらい対応しろよ、JavaMail糞、とか言えるだろ。
その程度のことも調べずにギャーギャー騒ぐのは技術者としてどうか?
ちなみにJavaMailもOEも標準であるはずのRFC2231には対応してない。
※JavaMailは本来APIの名称だが、同時にSunの配布してる実装のことを
指すこともある。上ではSun実装の意味
j2re-1_4_1_01-windows-i586-i.exeをインストールしたんですが、 javaアプレット?が動きません。 yahooのゲームが出来なくて困ってます。 前は出来たんですが、急に出来なくなりました。 セキュリティは敢えていじってないので動くはずなんですが・・・ IE6.0使ってます。 原因がわかる人教えて下さい。
>>932 知ったかするな。RFC-2047読め。
ていうかJavaMailってかなりクソな仕様じゃない? SUNのDQN社員が設計したとしか思えない。
>>933 Yahoo のゲームは MSJVM でしか動かないという話を聞いたことがある。
[ツール]-[インターネットオプション]-[詳細設定]で
「applet に Java2 v1.4.1を使用」 をオフにしてみれ。
javaでワードやエクセルの操作ってできますか?
できます
aaa.xlsのsheet1の中身をbbb.xlsのsheet2にコピーしたいんですけど できますでしょうか。 ご存知の方、教えて下さい。お願い致します。
InetAddressでIPアドレスを取得したいんですが、自分のPCのIPではなく サーバのIPを取得してしまいます。 なにがたりないのですか?
InetAddress#getLocalHost() APIドキュメントくらい読もうよ。
>>943 さん
すみません・・・わかりません。
InetAddress ipadd = InetAddress.getLocalHost();
どこをどうすればいいのか、教えて下さい。お願いします。
>>944 全部わからないので僕の変わりに書いてくれませんか?と言ってしまうのも一興。
はい、全然わかりません・・・ すみません。教えて下さい。
jCOMっていうのが必要なんですね。 別の方法で、javaでワード・エクセルを起動することってできますか? サーバに置いてあるファイルをクライアント側のPCで起動したいのですが。 お願いします。
>>947 やりたいことを整理して出直してこい。
方法はいくらでもあるが何がやりたいのかさっぱり。
javaの中でバッチを走らせました。 バッチの内容は、エクセルの起動です。 \\サーバ名\data1.xls javaで出力したCSVを、バッチで起動したエクセルマクロで読み込み表示する。 という処理です。 エクセル、CSVファイル共にサーバに出力されています。 ユーザのPCからこのjavaを実行すると ユーザのPCにあるエクセルが起動せずに、 javaが動いているサーバのエクセルが起動してしまいます。 ユーザは複数いるため、excel.exeの指定はできないと思いまして なんとか、ユーザPCでエクセルは起動しないものかと。
>javaの中でバッチを走らせました。 はぁ・・・ それはスタンドアロンのJavaアプリケーションか?Webアプリケーションか? アプレットか?
Webアプリケーションです。すみません。
952 :
デフォルトの名無しさん :03/02/11 17:56
Javaでスタンドアロンの音楽プレーヤーを作っています。 audioclip()をつかって音を再生しようとしていますが、うまくいきません。 どこが問題なのでしょうか? class Html10 extends JFrame { 〜中略(ここにplay、stopボタン等ユーザーインターフェイスが 書いてあります)〜 class AC extends Applet{ AudioClip snd; public void init(){ snd = getAudioClip(getCodeBase(), "./a/test.au"); } public void start(){snd.loop();} } class CheckAction0 extends AbstractAction{ public void actionPerformed(ActionEvent e) { AC ac = new AC(); ac.start(); // String text = "Sound"; // jl.setText( text ); } } }
>>952 何がどううまくいかないんだ?
とりあえず、
> スタンドアロンの音楽プレーヤーを作っています。
というのなら
> class AC extends Applet{
となっているのはオカシイぞ。
>>949 >>951 Excelを起動してファイルを開きたいだけなら
クライアントにxxx.xlsファイルをダウンロードさせる。
IEならそのままExcelが開くし、他のブラウザでもファイル保存後、Excel起動できる。
Content-Type は application/x-excel で。
サーバー上のファイルをクライアントで編集したいなら、
・Windows共有ディレクトリを使うか(Windows限定)、
・WebDAVのWeb共有ディレクトリを使う。(OS不問)
Excelは起動しなくてよくて、サーバー上でファイルを編集したいだけなら
・JCom or VBAでマクロを実行するか(Windows限定)、
・Jakarta POI (
http://jakarta.apache.org/poi/ )でファイルを直接弄る。 (OS不問)
>>940 Jakarta POIの場合、
aaa.xlsからHSSFWorkbookを生成する。(サンプルコード見れ)
HSSFWorkbook.から、bbb.xlsのFileに書き出す。
次スレよろ
957 :
デフォルトの名無しさん :03/02/11 18:51
>>953 やっぱりそうですよね・・・
でもJavaで音楽鳴らすにはjava.appletのaudioclip()しかやり方を知らないので、困っています。
なにか他に方法はありますか。
それとも、このプログラムをちょっと改造すればうまくいきますか?
958 :
デフォルトの名無しさん :03/02/11 18:53
うまくいかないのは、プレイボタンを押してCheckAction0を呼び出してもexceptionになって 音が再生されない点です。
959 :
デフォルトの名無しさん :03/02/11 18:54
25歳。
去年まで金無し君だったけど、オンラインカジノとパチンコで
二年で350万貯めた。一度やってみなよ。
初回のみだけど、1ドル以上のチップを買えば30ドル(4000円くらい)貰える。
もらうだけもらってプレイせずに換金することもできるし、ルーレットで赤か黒に
思い切って賭けてしまえば50パーセントで二倍になる。
金なきゃオフラインでゲームすればいいだけ。暇つぶしになる。
ビデオポーカーとかスロとか色々あるのでマジでお勧め。
http://www.imperialcasino.com/~1kl5/japanese/
>>937 サンクス。無事出来ました。
詳細設定とは気付かなかったよ。
>>957 他の方法だとJMFも似たようなことができる。
コードも少しだけ(?)しか変わらない。
>CheckAction0を呼び出してもexception
もしかして、sndがnullという例外?
>>961 そうかもしれないです。
こんな表示が出ました。
Exception occurred during event dispatching:
java.lang.NullPointerException
>>961 JMFは知りませんでした。
ちょっと調べてみたのですが、便利そうですね。
ありがとうございます。
>>963 ためしにさぁ、getAudioClip()を、newAudioClip()に変えてみない?
ネットワークプログラミングjavaで データの出力先をユーザに指定させたい場合はどうすればいいですか。
>>964 newAudioClip()に変えてやってみましたが、やはりプレイボタンを押すと
>>962 と同じ表示が出ました。
うまくいかないものですね・・・
968 :
デフォルトの名無しさん :03/02/11 19:45
すみませんデバッガについて教えてください。 ブレークポイントの切り替えを行い開始を押したところ 間違った構成とのアラートが出てしまいデバッガを開始することが出来ません。 どこの設定を行えば使うことが出来るのでしょうか? 一応簡単なプログラムなのでプログラム自体は最後まで動きます。 よろしくおねがいします
すみません他のプログラムを作ってまたやってみたのですが 今度はデバッグ時に違うエラーが出てしまいました。 このオブジェクトにはJ2EEサーバーデバッグを使用できません。 デバッガプロパティをディフォルトのデバッガに変更して再度実行してください。 と出てしまいます。デバッガのプロパティを最初からいじっていないのですが どのように対処したらよいのでしょうか? よろしくおねがいします 使用ソフトはsun one studio4 update1 community edition です
970 :
デフォルトの名無しさん :03/02/11 22:04
JDKって何?
>>970 Java Development Kit
ご存知の方いませんか?
973 :
デフォルトの名無しさん :03/02/11 22:40
log4jと、jdk1.4のlog どちらを選ぶべきでしょうか? 誰か教えてください。
1.4のJREが入れられるなら、余分なもの入れないんで済むんだから1.4使えばいいじゃん。
975 :
デフォルトの名無しさん :03/02/11 23:04
>>968 おれはそれ以前にデバッガ起動させるとフリーズしてしまう
Doc見ながらやってんだけどなぁ・・・
EclipseならOKなんだけど・・・
976 :
デフォルトの名無しさん :03/02/11 23:24
テキストファイルを編集するアプリを作っています。 ファイルの読み込み時にShift_JIS、EUC、Unicodeを自動判別する 良い方法を教えてください。 JISAutoDetectを使うとUnicodeのファイルが化けてしまうので、 バイナリファイルとして読み込んだ後に判定処理をして その結果に従ってバイト列をStringに変換すれば良いと思うのですが 判定処理の部分がさっぱりわかりません。 よろしくお願い致します。
>>975 Eclipseとは他のエディターでしょうか?
979 :
デフォルトの名無しさん :03/02/12 00:34
>>976 無理です。
HTMLやXMLのように、テキストファイル自身にエンコード指定を
かかせるようにして、それで判別するか、ユーザに読み込み時に
選択させるしか有りません。
>>976 16bit Unicode ファイルなら先頭にマジックナンバーがあるだろ。最初の 2 バイトを
読み込んで FF FE か FE FF なら Unicode のファイルだよ。
まぁ付いてる保証は無いけど。
981 :
デフォルトの名無しさん :03/02/12 00:38
>>980 そりゃマジックナンバーじゃないやんけ。
log4jと、jdk1.4のlogどちらが使いやすいAPiなのでしょうか? ご存知の方お願いします。
>>983 JDK1.4 の logging の方が良い。
log4j は内部で例外生成してそのスタックトレース解析して呼び出し元情報
取るとか アフォ ちょっと知恵をつけたような設計しとる。
すみません誰か知ってるひといませんか?
987 :
デフォルトの名無しさん :03/02/12 00:59
>不要なオブジェクトにnullをポイントしていないとか こういうことをよく聞くのですが。 GCに明示的に通知をしているというのは理解できるのですが、これを徹底するのならば いっそ C++とかで組んだ方が気が楽だと思うのですが。 皆さんはどのあたりで妥協して nullセットを止めてます?
988 :
デフォルトの名無しさん :03/02/12 01:01
>>984 1.4で作ったアプリ前提とした話だろ。
1.3でも動かしたいならlog4jだな。
>>983 jakarta-commons-logging使う。
これならどちらが使いやすいか、などと迷う必要なし。
1.4から1.3に切り替える(またはその逆)でも
設定ファイルいじるだけですむ。
板違いの質問なのかなぁ・・・
991 :
デフォルトの名無しさん :03/02/12 01:06
>>978 詳しく書いてあって参考になりました。ありがとうございます。
サンプルソース等がなかったので、フローチャートを見て
ちまちま自分で作ってみます。
>>979 秀丸にはテキストファイルの自動判定機能がありますので
まったく無理とは思えません。
Shift_JISとEUCの区別は難しいみたいですが。
どこかにフリーのライブラリ等無いのでしょうかね?
すごく基本的な機能だと思うんですけど・・・
992 :
デフォルトの名無しさん :03/02/12 01:06
>>991 エディタなら結構あるでよ。
ライブラリもあるでよ。
>>992 log4j のサクーシャ、怒り心頭な文章でつな。詭弁、揚げ足取りと重箱の隅攻撃満載で笑える。
>>991 >Shift_JISとEUCの区別は難しいみたいですが。
ShiftJISとEUCならそこそこ実用的な確率で判別できるけど、
これにutf-8が混じると、もうどうすりゃいいのやら。
webサーバのアクセスログをデコードした時の話なんだけどさ。
次スレは?
深夜に 1000 GET
999 GET! メーテル…
1ゲット
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。