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

このエントリーをはてなブックマークに追加
  _、_
( , ノ` )
  \,;  シュボッ
    (),
    |E|
  _、_      Java質問相談スレ パート17だ…
( ,_ノ` )y━・~~~

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

>>2-3 初心者によくある質問と回答・他のFAQサイトへのリンク
>>4  JDKの配布元とAPIドキュメントへのリンク
>>5-7 過去スレの一覧
>>8  関連スレ(開発環境・サーバサイド)
>>9  関連スレ(携帯・その他)
>>10 民間のJavaサイト・無料の開発環境の配布場所
>>11 関連スレ(他板・死滅系)
(諸般の事情でずれた場合は >>2-20 )

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/
JavaScriptの質問はWeb製作板へどうぞ ⇒ http://pc3.2ch.net/hp/
パソコンの基本操作に関しては、PC初心者板で質問しましょう ⇒ http://pc.2ch.net/pcqa/

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

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

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

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

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

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

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

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

このほかのFAQ(良くある質問とその回答)はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html
■■■ 過去スレの一覧 (2) ■■■
ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/tech/kako/993/993358225.html
ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/tech/kako/1003/10035/1003569074.html
ネタ心者歓迎! 今更ながらにJava相談室 その2
http://pc.2ch.net/tech/kako/1006/10064/1006408230.html
ネタ心者歓迎!今更ながらにJava相談室 その3
http://pc.2ch.net/tech/kako/1007/10078/1007802486.html
ネタ心者歓迎!今更ながらにJava相談室 その4
http://pc.2ch.net/tech/kako/1010/10105/1010545421.html
初心者歓迎! Java相談室 その5
http://pc.2ch.net/tech/kako/1012/10129/1012968994.html
初心者歓迎! Java相談室 その6
http://pc.2ch.net/tech/kako/1015/10154/1015418174.html
初心者歓迎! Java相談室 その7
http://pc.2ch.net/tech/kako/1018/10186/1018631329.html
初心者歓迎! Java相談室 その8
http://pc.2ch.net/tech/kako/1020/10204/1020453823.html
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/l50
■■■ 過去スレの一覧 (3) ■■■
【初心者・ネタ】Java質問・相談スレ【大歓迎】
http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
【初心者】Java質問・相談スレ2【大歓迎】
http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
【初心者】Java質問・相談スレ3【大歓迎】
http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
【初心者】Java質問・相談スレ4【大歓迎】
http://pc3.2ch.net/tech/kako/1026/10266/1026601774.html
【初心者】Java質問・相談スレ5【大歓迎】
http://pc3.2ch.net/tech/kako/1028/10280/1028096225.html
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/tech/kako/1029/10297/1029774594.html
【初心者】Java質問・相談スレ6【大歓迎】(本当は7)
http://pc3.2ch.net/tech/kako/1031/10313/1031397913.html
【初心者】Java質問・相談スレF【大歓迎】(重複の7)
http://pc3.2ch.net/test/read.cgi/tech/1032944182 (HTML化待ち)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/tech/kako/1032/10329/1032944246.html
【初心者】Java質問・相談スレ9【大歓迎】
http://pc3.2ch.net/tech/kako/1034/10343/1034303501.html
■■■ Java関連スレいろいろ ■■■
【IDE 統合開発環境】
【Java/C/他】統合開発環境Eclipse GM4
http://pc3.2ch.net/test/read.cgi/tech/1039405354/l50
えっ?JBuilder8が発売?
http://pc3.2ch.net/test/read.cgi/tech/1038042372/l50
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc3.2ch.net/test/read.cgi/tech/1017214967/l50
【統合】Java開発環境スレ
http://pc3.2ch.net/test/read.cgi/tech/1038118138/l50
【Java】NetBeans vs Eclipse【IDE】
http://pc3.2ch.net/test/read.cgi/tech/1029407008/l50


【サーバサイドやエンタープライズ】
EJB(初心者歓迎)
http://pc3.2ch.net/test/read.cgi/tech/1017240849/l50
■■ Servlet/JSP(EJB含む) 質問スレ ■■ (WebProg板)
http://pc.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc3.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc3.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPのフレームワークを語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1001950590/l50
EJBは終わってる
http://pc3.2ch.net/test/read.cgi/tech/1036481443/l50
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html
【携帯・モバイル】
携帯JAVAのスレッド
http://pc3.2ch.net/test/read.cgi/tech/1011977260/l50
iモード携帯電話用Java(iアプリ) Part 3
http://pc3.2ch.net/test/read.cgi/tech/1040898596/l50
iアプリでゲーム (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005042631/l50
京セラJAVA搭載PDA「PocketCosmo」 (モバイル板)
http://pc3.2ch.net/test/read.cgi/mobile/1021979970/l50

【その他】
クライアントサイドJavaどうよ? part2
http://pc3.2ch.net/test/read.cgi/tech/1032665721/l50
ム板のみんなでRobocode (・∀・)ヤロ−ウヨ!1台目
http://pc3.2ch.net/test/read.cgi/tech/1020161792/l50
Java 高速GUI SWT
http://pc3.2ch.net/test/read.cgi/tech/1032448424/l50
【徹底討論】Java3Dの可能性について考える
http://pc3.2ch.net/test/read.cgi/tech/1033703640/l50
★お前らJavaはJNIで組もうぜ★
http://pc3.2ch.net/test/read.cgi/tech/1033795664/l50
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005230153/l50
【Java編】 学校の宿題は俺にやらせろ 【Java編】
http://pc3.2ch.net/test/read.cgi/tech/1040552821/l50
祝 JAVA Developer創刊
http://pc3.2ch.net/test/read.cgi/tech/1024967343/l50
■■■ 民間サイト ■■■
巨大なJavaリンク集
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html

What's New about Java(Java に関する最新ニュース)
http://www.gimlay.org/~andoh/java/javanew.html


■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php

【Sun ONE Studio 4 (Forte 4)】
http://jp.sun.com/products/software/tools/jde/try/index.html

【NetBeans v3】
http://www.netbeans.jp/dowonload.htm

【JBuilder 7 Personal】
http://www.borland.co.jp/jbuilder/jb7/download/

※2chではないので暴れないように。
■■■ 他板のJavaスレッド ■■■
UNIXでJAVA (Unix板)
http://pc.2ch.net/test/read.cgi/unix/1011292632/l50
LinuxのJAVAチューニングスレ (Linux板)
http://pc.2ch.net/test/read.cgi/linux/1004594459/l50
◆◆◆◆◆◆MacでJava◆◆◆◆◆◆ (新Mac板)
http://pc.2ch.net/test/read.cgi/mac/991194610/l50

■■■ 撲滅させたいかた、死滅を心配してるかた ■■■
CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html
C#とJava、どっちをおぼえればいいの?
http://pc3.2ch.net/test/read.cgi/tech/1006715468/l50
Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html
Java撲滅委員会
http://pc3.2ch.net/test/read.cgi/tech/996848309/l50
●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
●●JAVAって死滅しちゃうの???? PART3●●
http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
Javaって死滅しちゃうの?
http://pc3.2ch.net/test/read.cgi/tech/1042268758/l50
■■■ 過去スレの一覧 (4) ■■■
【初心者】Java質問・相談スレ10【大歓迎】
http://pc3.2ch.net/tech/kako/1035/10355/1035570359.html
【初心者】Java質問・相談スレ11【大歓迎】
http://pc3.2ch.net/tech/kako/1036/10361/1036142056.html
【初心者】Java質問・相談スレ12【大歓迎】
http://pc3.2ch.net/tech/kako/1037/10374/1037407642.html
【初心者】Java質問・相談スレ13【大歓迎】
http://pc3.2ch.net/tech/kako/1038/10387/1038731106.html
【初心者】Java質問・相談スレ14【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1040150533 (HTML化待ち)
【初心者】Java質問・相談スレ16【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1042407622/l50
ナンデ16ナンダ?
【スレ立て後記】
>>7 が改行制限に引っかかったので続きが >>12 にきてます。
【初心者】Java質問・相談スレ15【大歓迎】へのリンクが無いので
次スレ立てる人はできれば復活させておいてください。
16
マタバンゴウチョウフクカヨ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>1
>>13
正確には 16.0.0_01 なのです。きっと。
>>13
あ、、、 ほんとだ、、、

良かったらスレ立て直してくらさい。
立て直したてもらえたら こっちは削除依頼だしとくので。
19イヌ:03/01/27 18:21
質問してよいの??
20イヌ:03/01/27 18:24
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 のときは勝手に始まったような・・・。
よく覚えてないので調べて出直します。
22イヌ:03/01/27 18:49
>>21
今、試してみましたが勝手には始まらないみたいです。
2321:03/01/27 18:49
>>21
は嘘でした。
>>20
ちゃんと調べてないけど run() の処理が非常に短時間で終わる場合だと
start() のあと、new hoge() が終わる前に run() が終わってる可能性も…
2521:03/01/27 19:41
>>20
いま試してみたんだけど、できるみたいだけど。
で、あなたのコードっぽいことを試したけど、
HG=nullはちゃんと実行されてます。
こういうことが正しいやり方かどうかは私は知りません。
// HG=null
になってると見た。
& や <> などを & < などに変換させるクラス(メソッド)を教えてください。
28前スレッドの1:03/01/27 21:08
>>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は無いよ。
4034:03/01/27 23:30
この接続の自動コミットモードを指定された状態に設定します。
接続が自動コミットモードの場合、そのすべての SQL 文は実行され、
個別のトランザクションとしてコミットされます。そうでない場合、
その SQL 文は、commit メソッドまたは rollback メソッドへの呼び
出しによって終了されるトランザクションにグループ化されます。
デフォルトでは、新しい接続は自動コミットモードです。

これが、APIの説明なんですけど、
AutCommitをFalseにしている時で、updateしたあと、
commitもrollbackもしなかったら、
更新されないのではないか?、、と思っているのですが、
実際では、どうなのでしょう??


4138:03/01/27 23:37
>>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
4530:03/01/27 23:44
>>33
例えばjavaでつくったアプリケーションでExcel.exeを開いて、
ツールバーとかの中のものをかえたりです。
なにぶん超初心者なもので質問自体もわかりずらいかもしれませんがよろしくおねがいします。
46デフォルトの名無しさん:03/01/27 23:58
javaで作ったサーバをLinuxのデーモンプロセスとして動かす方法を教えてくれ。
4734:03/01/28 00:04
>>37
>>42
>>43
rollbackした時は、ちゃんとrollbackできてました。
て、ことはちゃんと正しい動きをしていたのですね(汗)
皆様、ありがとうございました。

>>43さん、も少しお教えいただけますか?
仮にrollbackがかからなかった場合は、ドライバのせい、とありますが、
ドライバって、oracleのドライバですか??
ドライバによっては、違う動きをすることもある、ってことですか?

質問ばかりですみません。。
ドライバ云々言う前に明示的にrollbackしないオマエが悪い
5034:03/01/28 01:23
>>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()を
発行するべきです。
5731:03/01/28 10:24
>>55
レスありがとうございます。
いろいろな解法を見せて頂くと参考になります。

実は自分の書いたコードでも
[A-Za-z]+ の部分を [a-zA-Z]+に直したらちゃんと動きました。
正規表現の書き方が悪かったみたいです。お騒がせしました。
5831:03/01/28 10:40
とかいっておきながらやはり失敗です。
単純に ( [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)って何が違うんですか?
6046:03/01/28 16:22
>51
英語わからん。
>54
わかった。
61デフォルトの名無しさん:03/01/28 16:49
>>60
英語でしか得られない情報があるってことを覚えておこうね。
すべての情報が日本語化されているとは限らない。
英語がわからなかったらあきらめなければいけないこともあるってこと。
62デフォルトの名無しさん:03/01/28 18:07
どの辺まで覚えたらjava使えますって言えるのでしょか?
63たい:03/01/28 19:16
ど-も。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ドキュメントを用意して、いつでも開けるようにする
 結局これだろ。全部なんか覚えてられないんだから
6663です。:03/01/28 19:27
>>64
さんくすこ。

>>大体、業務的に対応できるのかな?
>業務の内容による。

↑そうですね。その通りですね。失礼しました。

>>・java.graphics(だったかな。)
>ありません。
↑ あ、すいません。なかったんでしたっけ。う〜ん。勘違いか----。
 

6763です。:03/01/28 19:34
>>65
貴重なご意見ありがとうございます。
その手が、ヤッぱ、フツウですよね。
(と、当方も思ってたりして。)
>>63 java.langとjava.util知っていればServletの習得も苦労しない。
6963です。:03/01/28 19:53
>>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
>>71-72 哲学ですか?
int型(整数型)には10進数とか16進数といった区別はない。
あるint型の値は10進数で表せば○、16進数で表せば△、といった具合。
>>75
だから△で表されたint型を○で表すって事だろ。
>>63
クラス名やメソッド名の(SUNが推奨している)つけ方については
>>3にリンクしてある下のページが詳しいよ。

Q: Javaの言語仕様が知りたいです。
A: Java言語規定

6.8 名前付け規約
http://www.y-adagio.com/public/standards/tr_javalang/6.doc.htm#11186
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のドキュメンテーションはあん
まりみないで済むようになったよ。
82  :03/01/28 23:09
あーーーーファイルって何ですか?
補完機能付きIDEって当たり前だと思っていたのに。
Eclipseですげーって思ってる奴って今まで何使ってたんだ?(w
84デフォルトの名無しさん:03/01/28 23:11
>>83
ふつうにテキストエディタでゴリゴリ〜。
もうあの世界の戻るのはいやですね。
Javaで似たようなことができるのがすごいんだろ。
86デフォルトの名無しさん:03/01/28 23:57
>>85
アレはJavaじゃないでそ。
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くらいしか見当たらない・・・
もうちょい掘り下げてクラスとかメソッドも教えてくださいませ
9190:03/01/29 00:26
でもサポートしているフォーマットの多さで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のプログラムでできますか
99ディーゴ:03/01/29 16:33
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");

デゲス。
100U ◆CZtFsGiu0c :03/01/29 16:47
>>99
MultipartRequestオブジェクトの生成時にエンコーディングが指定できますよね?
そこでHTTPリクエストのエンコーディングを指定してみてはどうですか?
101デフォルトの名無しさん:03/01/29 17:07
SWTのことで質問です。
org.eclipse.swt.widgetsでのコンポーネントへいろいろドロップしてみる、
というアプリ作成中なのですけど、TreeへIEからの情報をドロップできない。
org.eclipse.swt.dndで解決できますか?
ついでにTransferの種類等も
102ディーゴ:03/01/29 17:18
>>100
デケター
サンクス
103h.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.
104h.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.
とかいてあるだろ、そっちも示せ
>>3 参考になりました。感謝カキコ
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を待ちましょう。
110109:03/01/30 02:26
ああ、値が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);
とでもしたいのか?
112107:03/01/30 02:30
>>108-109どうも、再設計しまふ。
string2つとint一つしかないので、クラスにするのは大げさかなって思ったもので。
String String intの三つを一つの配列にして、それをまた、配列に入れる方法もあるかなとは思いました。
どちらにしろ再設計してみます。

113107:03/01/30 02:36
書いている間に続々とありがとうございます。
作りたいのは、英単語,それに対応したモールス信号そしてモールス信号が何カウントするかって
言う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)});
のほうがまだマシ。

117107:03/01/30 02:53
>>116さんども、
map.put("key",new Object[]{"hoge",new Integer(1)}); この方法でやってみます。
クラス作った方がすっきりするのかな。
フィールド三つで特にメソッドとかなくてもクラスって作ります?
せめてフィールドの値取得用にgetメソッドか何か作ったらいいと思う。
11998:03/01/30 08:53
もう一回質問してみます

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 使って呼び出すというのはどうだろうか。
122h.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
128125(Java暦1ヶ月):03/01/30 20:24
>>126,127
レスありがとうございますでつ
早速試してみます
そしてもっと勉強しよう・・・。
129126:03/01/30 20:28
しまった。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
>>131
117に電話しろ
133デフォルトの名無しさん:03/01/30 23:23
質問があります。
コンパイルした際のエラーなのですが
\12288は不正な文字です、というエラーがでるんですが
\12288とはなんですか?
ちなみにエラーの指定されている行は+"</center></body>\n"
となっているんですが。
というかこれ以外のところでもよく\12288は不正な文字です
といわれます。これはなんでしょうか?
というかこれだけの情報で伝わるでしょうか?
ちなみにjdk1.4.0_03です。
134133:03/01/30 23:28
すいません解決しました
自害します さげ
135デフォルトの名無しさん:03/01/30 23:28
>>133
新しいファイルを作って打ち直せ。
ファイル中にゴミデータが入っている
>>133 U+3000(Ideographic Space)かな。不自然な空白探して
半角スペースに直してみたら?
>>136
解決したった書いてあるのに・・・
138133:03/01/31 00:00
>>135,136
ありがとうございました。
139くぅ:03/01/31 00:04
質問させていただきます。

「0から3までの整数の中からランダムで2つ選ぶ」
って風にしたい場合はどう書けば良いのでしょうか?

初心者でスミマセン。
140105:03/01/31 00:09
>>122
力になれなさそう。すまぬ。
>ERROR REPORT FILE = (N/A)
というか、エラーファイルが出力できなかったようなエラーみたいだね
最新のエラーをハンドリングしようとしたときに例外が発生した ってことだと思う。
SIGNALが何かわかれば調べられるのかなぁ・・・。

と、このくらいはもう調べているとはおもうけど。
141和美:03/01/31 00:13
すみません・・・関係ないことですが、ちょっとお邪魔します。

和美のホームページにお小遣いを稼ぐ秘訣を公開しました!
クリック報酬 1クリックされる度に10円の報酬
1日1000クリックだけで1万円。各種掲示板を利用すれば簡単に可能です。
バナー紹介料 1000円の報酬
今なら登録するだけで1000円プレゼント!
和美のホームページ覗きに来てください。
・・・>http://www.medianetjapan.com/2/16/shopping/morimura/mobs.html

どうもお邪魔致しました。
142126:03/01/31 00:35
>>141 スレ違い
ぁゃゃスレ逝け
>>98,121
java.awt.Robotを使うとプログラムからマウス操作、キー操作が可能。
ということでこれを使ってShiftキーでも押させればいいだろう。
145123:03/01/31 01:05
>>129の方法でうまくできました。ありがとうございます
>>133-134 >>137
他のスレッドを見ていればわかるが
ム板はくだらない質問をすると多くの騙りが現れる傾向にある。
板にIDもないのでただ「解決しました」とだけ書き込んでも、
それが本当に解決した本人の書き込みなのか、騙りによるものなのかはわからない。

故にどんな単純なまちがいであったとしても、
「解決しました」と一言だけ書くよりは、本当に解決したのかを示すためにも
その問題の原因や解決法を書いたほうがいいということだ。

>>139
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Random.html
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Math.html#random()
147デフォルトの名無しさん:03/01/31 03:19
AppletでJLabelにてhtmlを使い自動改行できたぞワーイ、までは良かったのですが、
一旦決定されたあとウィンドウ幅を変えても、改行位置がそのまま固定されたままなんです。

┏━━━━┓
┃ほげほげ┃
┃はげはげ┃ブラウザのウィンドウを変えると、
┗━━━━┛
    ↓
┏━━━━━━┓
┃ほげほげ   ┃このまま。
┃はげはげ   ┃
┗━━━━━━┛

┏━━━━━━┓
┃ほげほげはげ┃こうとか、
┃はげ        ┃
┗━━━━━━┛
┏━━━━━━━━┓
┃ほげほげはげはげ┃こうなってほしいんですが。
┃                ┃
┗━━━━━━━━┛

JLabelじゃ無理でしょうか。
148h.t ◆fN6DCMWJr. :03/01/31 10:51
>>105
どうも色々すいませんでした。
もう少し、検収して、具体的な現象を掴んでから、また、質問させていただきます。
149131:03/01/31 12:41
>>142
ありがとうございます。参考にします!
150デフォルトの名無しさん:03/01/31 13:41
つかないことですが、最新のJAVAの開発環境(JDSK1.41?)
)はWINDOWS XP HomeEdision上で動作可能
でしょうか。恐れ入りますが、どなたか教えてください?
 
151デフォルトの名無しさん:03/01/31 13:59
>>147
アプレットの表示領域をHTMLで決めたと言うこと?
JLabelのtextがHTMLで表記できるの?<-ちがうよなぁ・・・。
もう少し詳しくかきましょう。
152 ◆J8bArdHtnA :03/01/31 14:24
>>150
可能です。

>>147
ウインドウのサイズ変更をマウスなどで行った場合にJLabel(?)の大きさも
ウインドウサイズに合わせて変化して欲しいというのと、それに伴って
JLabel上の文字列も幅いっぱいで折り返して欲しい。

という事かな?
153デフォルトの名無しさん:03/01/31 14:31
プログラムを書いてみたのですが、アップレットビューワーだと
できるんですが、ブラウザだとできないのですが、どういう原因が
考えられますか?
一応、ブラウザは3種類試したんでプログラムの方に問題があると
おもうのですが。。
Javaコンソール見れ。
155デフォルトの名無しさん :03/01/31 15:42
VMってプラットフォームのAPI使って書かれてるの?
たとえばWindows用のJDKならばWin32APIは使われているのですか?
156 ◆J8bArdHtnA :03/01/31 15:47
>>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 メソッドにせよそうでないにせよ、
コードは一箇所にしか生成されず、動的メソッドを呼び出した場合は、
インスタンスに対するアドレス値が引数として暗に渡されているはず。
そのアドレス参照先には
「なんのクラスのインスタンスか」の情報と
動的メンバの分しかメモリを占有していないはずだ。
163162:03/01/31 18:06
後半のアドレス云々はネイティブ環境 (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
166160:03/01/31 19:02
>>162
ずばり、それを調べたかったのですよ!!
どうもありがとうございます。
安心してインスタンスつくりまくりの人生を歩めます。
>>164
アンインストールする前にコントロールパネルのJavaPlug-inで
ブラウザところのMicrosoftInternetExplorerのチェックをはずしておけばよかったと思われ。

>初期状態でWin98SEに入っていたとっても軽いJAVA
ってのは数々のセキュリティホールを含んだものなので使用しないことを推奨。
最新版はWindowsUpdateから手に入れられたと思ったけど、今はどうか知らない。
168デフォルトの名無しさん:03/01/31 19:45
>>167
返信ありがとうございました。
MSのホームページをうろうろ探してみることにします。
(Updateもしてみます)
169 ◆J8bArdHtnA :03/01/31 20:19
>>168
もう一度JRE 1.4.1_01 Java HotSpot(TM) Client VMをインストールしなおして、
>>167
>アンインストールする前にコントロールパネルのJavaPlug-inで
>ブラウザところのMicrosoftInternetExplorerのチェックをはずしておけばよかったと思われ。
を実行してからアンインストールする。
170164:03/01/31 20:46
うぉぉぉ  戻った!!
本当に感謝してます。ありがとうございました。>>167さま>>169さま
171デフォルトの名無しさん:03/01/31 21:42
 友達から参考書借りて始めてみたのですが、まずメモ帳で書いたものをなにでコンパイラして
classファイルにできるのでしょうか?
 SunのページでSDK?なるものを落としてみても使い方さっぱりです。
コンパイルのソフトもしくは方法教えて下さい。
 ・・・てか本当にJ2SEさっぱり。
>>171
>>2 とか、>>3 のリンク先とか見て頑張ってください。
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のプロフェッショナルと
ホームエディションは同じ方法で可能でしょうか?
どなたか教えていただけますでしょうか?
>>175
同じ。
177175:03/01/31 22:40
>176 ありがとうございます。初心者でお薦めの本があれば教えていただけますでしょうか?
SunのJavaプログラマー資格は学生のうちにとっておいた方がいいでしょうか?

受験料高いですが・・・
179くぅ:03/02/01 00:46
>>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の
ディレクトリね。
192 ◆J8bArdHtnA :03/02/01 11:22
>>177
本屋に並んでいるJavaの本を右から順番に1冊ずつ買え。
全部出来たとしてもJavaプログラマとしてはたいしたレベルじゃない。
193HOE ◆J8bArdHtnA :03/02/01 11:33
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とか )
194184:03/02/01 12:52
>>185,186
?? 
死んでるとはどういうことでしょうか?
壊れるってこと?
よくわかんないので違うヴァージョンのでも
インストールしてみますが、
できればもう少し詳しく教えて欲しいです。
195184:03/02/01 12:53
ちなみにj2sdkの方はちゃんと動きまする。
Javaのソース整形ツールの中で、
JacobeとJALOPYってどっちがメジャーですか?
googleの検索結果ではあんまり変わらないけど・・・。
頻繁に使うクラスまたはその親を新品のインクがなくなるまで印刷し整理したんだけど
なにか間違ってるかな?
用あるごとにいちいちHTMLドキュメント開くの面倒くさくて・・・
誰かに咎められたのか?
仕事場で全員がそれをやったらどうかと思うが・・・
>>197
製本して売ってなかったっけ?あれは別物?
そんなことより emacs + JDEE で C-c C-v C-w と打て。
遅いし探して来ないパターンあるけどw

どうしても印刷したけりゃAPIのソースがお勧め。
>>197
どうだろうな・・・俺はブラウザで見てるが。
allclasses-frame.html だけは、
自分の使う Class へのアンカを別途上にもってきた。

ネスケから Mozilla に変えたらページ検索が重くなって哀しくなった
201197:03/02/01 15:40
言葉数たりなかったようで・・・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
どっちでもいいよ。
http://msugai.fc2web.com/java/array.html
>>203
コーディング規約的には String[] args を推奨。
String args[] みたいな書き方は C の考え方が抜けない人用に残してあるだけ。
>>204,>>205
ありがとうございます。
これからは
String[] args
にするようにします。
プログラミングの知識がある程度あるのに、また最初から習う
っていうのはダルいもんですか?
2つ目からは初歩的なところは不要っしょ
変数とは!制御構造(forとか)とは!
なんて実用されてる言語ではほとんど同じだし。
209202:03/02/01 19:40
あのう、メディアトラッカーなんですけど、画像が読みこまれてからじゃなくて、
読みこまれて、実際に表示されてからchickIDがTRUEになるのですか?
>>208 >>207は難しいか、と聞いてるのではなくダルいか、と聞いてるので、
 講習会への参加かなんかをためらってると思われ。

>>207 上記前提で返事。
2言語目以降は独学を薦める。やっぱド素人のペースに合わせるのはだるい。
でも、面白いよ。例えば配列の範囲外を触ったとき
Perl → 自動的に範囲拡張
Java → 例外発生
C   → (゚∀゚)

設計の違い、言語の特徴が見えてくる。
>>209
読み込まれたか、エラーが発生するか、中断された場合はtrue。それ以外はfalseだそーで。
MediaTracker#statusID 使うとか、Component#checkImage した方が速いかも。
http://java.sun.com/ にはアクセスできるんだけど
http://www.sun.com/ とか http://developer.java.sun.com/ にアクセスできない。
うちだけ?
>>212 その3つすべてにアクセスできたが
>>213
さんきゅ。
うちからだと
java.sun.com 192.18.97.71
www.sun.com 64.124.140.181
developer.java.sun.com 64.124.140.141
だな。
SpringLayoutの日本語チュートリアルってどっかにないですか?
>>215
あ、情報ありがと。
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){
    ...
  }
});
224222:03/02/02 00:06
こんなところがありますが、これのことですか?

addMouseListener(
new MouseAdapter() {
public void mousePressed(MouseEvent me) {

何か名前をつけることで解決できるのでしょうか。
よければその名前のつけかたをお願いします・・・。
>>224
GeoCities はファイル名に $ が付く事を許していないので
jar に固めるしかないと思われ。
226222:03/02/02 00:14
自分なりに調べてみたんですが、ネストしてnewとかやるんじゃなくて、
別にクラスを作ればいいのかな・・・?いまいちわかりきってない。

「jarに固める」とはどういう意味でしょうか?
>>226
あ、innerクラスじゃない別のクラス作るのでもいーや。
>>224
implements MouseListenerてな感じでOK
230222:03/02/02 00:32
>223 >225 >227 >228
ありがとうございました。やってみます。

231222:03/02/02 00:34
>229
あ、FAQのページでCtrl+Fで検索してあたらなかった時点でやめてしまいました。
>227のやりかたで出来たら、(もしくはできなかったらそれはそれで、)jarについても勉強します。
ご忠告ありがとうございます。
>>226 jar 圧縮はJakarta-antがあると楽
コンパイル、動作テスト、ドキュメント生成、署名もこれでやっとくとええよ。
233デフォルトの名無しさん:03/02/02 00:47
JavaでC/C++のようなアセンブラ寄りの処理って出来ます?
>>233
アセンブラ寄り
の意味によるなあ。
たとえば?
235233:03/02/02 00:54
>>234
ポインタが無いのは知ってるけど、、、
例えばregister型の変数とか、
クラス関係ならコンストラクタ、デストラクタなど。。。
CPUに優しいプログラムが組めるかどうか、ってことかな。。。
>>235 Javaにもポインタはある。演算や操作がないだけ
今後は人に優しい言語が主流です。
238222:03/02/02 01:27
だめだ・・・わかりません。現在、以下のようなソースになっているのですが

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 に入れとけ。
243242:03/02/02 02:31
つか、ごめん。前レス読んでなかった...ガイシュツだったのね。
鬱だ...。
244sage:03/02/02 04:03
swingの質問です。
親パネルで子パネルを作って、親パネルにaddしました。
親パネルで、子パネルの上を通る形で、線を描画したいのですが、子パネルの下に潜ってしまいます。
子パネルの上を通したい場合はどうしたらよいですか?ちなみに通したくない線もあります。
-------------------
| 親パネル | こうなって欲しい。
| |
| -------- 子パネル|
| | | |
| | | |
|-----------------| 親パネルの線が子パネルの上を通る様にした。
| | | |
| -------- |
| |
-------------------

実際は、

-------------------
| 親パネル | こうなる。
| | 親パネルで引いた線が子パネルの下に潜ってしまう。
| -------- 子パネル| 子パネルの上を通したい。
| | | |
| | | |
|-| |--------|
| | | |
| -------- |
| |
-------------------
245デフォルトの名無しさん:03/02/02 04:10
ごめん、図がうまく書けてなかった。
----------------------
| 親パネル       | こうなって欲しい。
|          |
| -------- 子パネル|
| |    |      |
| |    |      |
|--------------------|
| |   |     |
| --------     |
|          |
---------------------

----------------------
| 親パネル      | 
|           |
| -------- 子パネル|
| |    |      |
| |    |      |
|---   -----------|
| |    |      |
| --------      |
|           |
---------------------
今度はちゃんと見える?
>>244
Swingはしばらく、やってないんであってるかわからんけど、
JComponent.setOpaque(boolean) で、
コンポーネントを透明化できたかも。でもって、子のクラスを透明化する、と。
247sage:03/02/02 06:42
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に代入せよ。
249sage:03/02/02 06:52
‘sage’を間違って 名前の所にタイプしてしまいました。。。。
あがっちゃいましたね。。。
ごめんなさい。。。
250247:03/02/02 07:00
デフォルトさん、すみませんが、
もう少し分かりやすく説明していただけませんか?
dataという名前のTextFieldにタイプされたTextが
String型なんですよね?
それで、そのTextをint型にしてageという
名前にするという事ですか?
もう少しヒント下さい。
よろしくお願いします。
251244:03/02/02 07:07
>>246さんどうも。透明化ですか?やってみます。
ただ、透けて見えて欲しくない線もあるので、難しいところです。
>>220
どうもすいません。とりあえず唯一の日本語資料であるAPIドキュメント
でも見ながらいじってみるです。
>>240
interfaceとかabstract classは、そのままではインスタンスを
作れないけど、コード中で即「実装や継承したことにする」のが
無名インナークラス。無名クラスが気持ち悪いとか、ファイル名
に$がつくのがまずい場合は、実装なり継承なりしたサブクラス
を定義してやればいい。

abstract classはextendsが、interfaceはimplementsがそれぞれ
省略された書式になっているので、最初はわかりづらいかもね。
>>250
age is a previously defined 'int' variable
ageは前もって定義されているint型変数です。
255247:03/02/02 07:34
デフォルトさん、度々の回答ありがとうございます。
まだ、よくわからないので、今日はこれでやめにして
脳をリフレッシュさせます。
無名クラスは別に interface や abstract class だけでなく、
実装クラスも extends して作れるべや。

美しくはないかもしれんが。
257HOE ◆J8bArdHtnA :03/02/02 12:19
>>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を見てください。
261259:03/02/02 18:38
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
ありがとう。で引数って何ですか
>>269
死んで1からやり直せ。
●コレを覚えろ

[−] 言語仕様
   │
   ├ [1] "とりあえず動かしたい" → アプリケーション
   │    最初に必要な知識:static mainてなんですか?
   │    覚えておいた方がいい知識:全部
   │    とりあえず必要なもの:JDK
   │     │
   │     ├ [A] "ブラウザで何かやりたい" → Applet
   │     │    最初に必要な知識:イベントモデルの理解(オブザーバパターンの理解)
   │     │        AWTやSwing等のUIがらみのAPIの使い方
   │     │    覚えておいた方がいい知識:スレッドモデル
   │     │    とりあえず必要なもの:ブラウザ
   │     │
   │     └ [B] "サーバで何かやりたい" → Servlet , JSP , EJB 等
   │          最初に必要な知識:HTTPそのもの。
   │              HTTPのメソッド(POST,GET等)と、そのサーブレットでの対応方法等。
   │          覚えておいた方がいい知識:マルチスレッドだという事。
   │          とりあえず必要なもの:サーブレット・コンテナ (JBoss , Tomcat等)
   │
   └ [2] "Beans?" → JavaBeans 他
       最初に必要な知識:カプセル化という事の意味。
       覚えておいた方がいい知識:何をカプセル化するかによる。
       とりあえず必要なもの:そのBeanを使用する何か。

※[注意] これで全てだとは思ってはいけない。
272271:03/02/02 19:44
あ、>>271 は、 >>262 へのレス。
>>271
何でアプリケーションの上にアプレットがひっついてるんですか?
274271:03/02/02 19:52
>>273
>何でアプリケーションの上にアプレットがひっついてるんですか?

"下"だよね。つーか、悩んだんだけど、結局"HelloWorld"程度のものもアプリケーションな訳だから、
並列にするのもどうかなと思ったので。

やっぱ最初はコマンドラインから行っとけ、程度の意味です。

#ていうか Appletの所。別にUIあるのがAppletて訳でも無いよな。破綻してるかも、このツリー。(笑
275デフォルトの名無しさん:03/02/02 19:52
引数ってクラスをインスタンス化するときにつける名前ですよね?
変数とどう違うんですか?
>引数ってクラスをインスタンス化するときにつける名前ですよね?

どこからそういう解釈になったのか小一時間(ry
>>275
>引数ってクラスをインスタンス化するときにつける名前ですよね?
違います。
>>274
うむ。俺の論点はまさに#の後ろの文章だ。
279274:03/02/02 20:00
>>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);
  }
}
283282:03/02/02 20:09
× obj.paint(oObj);
○ aObj.paint(oObj);
>>282
ポリモの説明にしてはわかりにくい気がするぞ。
>>280
>g= Graphics();
すくなくとも
g = new Graphics();
でないとエラー。

>みたいにGraphics gが登場してるんですけど、どうなってるんですか
Appletクラスについて調べてみてください。
286282:03/02/02 20:11
>>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 した時点でコンパイルエラーを食らいます。
>>280

>>271 の、 [-] を嫁。
って言うかpaint()の仕組みとか語り出したらデザインパターンとか引っ張り出す羽目に。
つぅか死んで1からやり直せ。
299デフォルトの名無しさん:03/02/02 20:23
みなさんいろいろありがとうございます・・・
1からやりなおせっていうか1から始めたところです・・・すんません
>>297
つーか、AWTがらみで目立つデザパタって、せいぜいオブザーバとコマンドと
テンプレートくらいじゃないの?
301300:03/02/02 20:27
って、コマンドは無いか。
とりあえずアプレットではなく、コンソールアプリから始めることを
薦めるのはおじさんの発想かなぁ。
やる気のない馬鹿はほっとけや。
つーかJava以前の問題だろ、こりゃ。
>>302
ふつう
>>302 AHO
あーゆー人みると、突如釣り師になるのでは?
とか疑っちゃう俺は 2ch に毒されすぎですか?
>>306
俺は疑うを凝ると間違えて自己嫌悪だ。
質問です。

class Foo {
 public static void main(String[] args) {
  // ※1
 }
}

※1←ここで!その実行されている(自分を含んでいる)"クラス名"を取得する方法は
ありますでしょうか。

ちなみに某MLの過去ログによると、「わざと例外を投げて、そこから当該オブジェクト名を取得する」
というトリッキーな方法を解説している人がいました。

他に無いスか?
309308:03/02/02 21:01
つーか、staticなメソッドってクラス(この場合Foo)のメンバっていう定義じゃないんですかね。
Foo.main(arg) のようなアクセス方法って、結局ただのスコープ解決以上の意味は無いんでしょうか。
文法砂糖っていうか。

どうなんでしょう。
>>308
インスタンスならthisが使えるんだろうけどね。
>>308
もしくは JITコンパイラ用のインターフェイス使用して
ネイティブで(Javaの)スタックに触れるようにするぐらい。
(HotSpotVMで使える方法化は知らない)

ま、JDK1.4 からは例外(Throwable)から そのへんの情報の取得が
やりやすくなってるので普通はそれでよいのではないかと。
>>309
名前付きグローバル関数と覚えてれば十分。
313308:03/02/02 21:03
>>310
そうなんですよね。でも、今回のポイントは "staticなメソッド" て部分です。
つーか、MLとってるんなら、こっちで、質問投げる必要ないだろ。
あっちに参加しろ。
315308:03/02/02 21:08
>>311
JDK1.4.x の APIはがっさり見てみました。
ただ、なんか Sun のVMだと、(そのランタイム中で) sunパッケージにそれっぽいreflectがありました。
でも、それって標準じゃないですよね。
>>308
っつか、static は継承できないから、Foo.class.getName() とかで解決しちゃって良いのではないかと。
317315:03/02/02 21:11
>>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
スレ汚し失礼します。
今、
http://live.2ch.net/test/read.cgi/festival/1044106562/
このスレで
http://blatt.hp.infoseek.co.jp/
このサイトが大流行
みなさんも逝ってみてください。
よろしくおねがいします。
失礼しました。
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出てんだな。
ちとびっくり。
330308:03/02/02 21:29
>>324
>1. static メソッド内で、その static メソッドを含むクラス名を得たい。
です。

変な例ですが、例えば >>308 の Foo を、 "static void main()"以外のメソッドを 継承した
別のクラス(仮にFooEx)があるとして、

String className = "Foo"; // ← 又は"FooEx"
Runtime.getRuntime().exec("java "+className);

とかした場合、あるいは単純にコンソールから実行した場合、
実行されるのは当然 Foo.main になります。 でも、自分が実行したのは指定したクラスの方です。
なので、このstatic なエントリ内で、果たして「俺は誰?」がわかるもんなのかなー......と。
331308:03/02/02 21:31
>>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なり
いちいちパスの設定するのがうざいです
このファイルを実行すればどのマシンでも自動的にパスを通すことって事や
あと実行終了すれば元通りになったりするのって可能ですか?
あったとして、そういうファイルってどっかに存在するのですか?
340308:03/02/02 21:56
今、Javaの言語仕様を読み返していました。

http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#229128

static なメソッドの在りかたについて、どこにも「クラスのメンバ」とは書いて無いです。
やっぱただのスコープ解決以外の意味は無いんでしょうかね。

ていうか"クラス(java.lang.Classで無い)"って、それ自体はオブジェクトじゃないので、staticなメソッドにとっての
「自分」ていうのは、クラスじゃなくて、そのメソッド自体を指すのかも。
だとすると、なんで「クラス変数」とか言うんでしょうね。

もう、訳わからん。
341デフォルトの名無しさん:03/02/02 21:59
>>339
なんのパス設定するのがウザいの?
自前のサーブレットで使用する別アーカイブ(*.jar)とかは、%CATALINA_HOME%\common\lib に入れときゃ
パス通るでしょ?

まさかサーブレットとして使うクラス全てをパスに書いてるとかじゃあるまいな......。
342308:03/02/02 22:18
>>340
自己レス。

>だとすると、なんで「クラス変数」とか言うんでしょうね。

これ、関係無いです。スンマソ。
343デフォルトの名無しさん:03/02/02 22:20
結局のところクラスとインターフェースの違いって何?
参考書など、どうも違いと言うか使い分けの仕方がわからない
どう言った時に必要なのかとか
>>343
語れと言うのか。そんなこと。
>クラスとインターフェースの違いって何

おまえ本当に参考書読んだのか
346デフォルトの名無しさん:03/02/02 22:25
http://jsweb.muvc.net/index.html
★☆★幸福になりたーい!!★☆★
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
じゃあ型なんていらないね。同じ名前のメソッド実装すればいいわけだ。
349347:03/02/02 22:31
あ、>>347 は、>>343 へのレス。
ちなみにこの効果は多態性(Polymorphism)の一部を利用している。
350デフォルトの名無しさん:03/02/02 22:32
Javaってこれから勉強するのですが
やっと習得した頃には単なる過去の遺物になってませんか?
業務で利用する機会もほとんど減ってきて、全くの無駄な努力になってませんか?
もちろん完全になくなるって事はないと思うけど

できるなら無駄な努力はしたくないです
>>350
>やっと習得した頃には

そんなに時間がかかる時点で才能がないので心配いらん。
>>348
あほ。良く見れ。

>public void method(IHoge hoge) {

ここの "IHoge"を、HogeAとかにしたら、HogeBは通らないだろ。
で、HogeBを HogeAのサブクラスにしたら、もしHogeBが他のクラスを継承する必要があったとしても、
できないだろ。
この業界無駄な知識なんて無いと思うがね。
>>353
烈同。
どんなに新しいものも、結局これまでの積み重ねが基礎になってるからねえ。
>>348
動的型言語ではそうだよ。Ruby とか。

StrongType だとコンパイル時などに静的に型チェックできるので、実行時エラーを減らせる。
それと、インタフェイスプログラミングの観点からは、
型が明示されていることによるメリットは大きいと思う。分かりやすいし。
俺は348じゃないが、へーって感じ。
でもここは残念ながら、Javaスレ。(笑

>型が明示されていることによるメリットは大きいと思う。分かりやすいし。

「型」ってもんの捉え方によるよな。俺はJavaでの「インタフェース=やりとりの決まり」を、
「実装する」っていう言い方(考え方)の方がわかり易い。
358357:03/02/02 22:58
ま、一緒なんだけど。結局は。
359356:03/02/02 23:01
分かりにくかった。下三行は Java の話ね。
>>356
知ってるよ。それを前提で絡んだんだ。
>>357
実装する。の意味が増えてるぞ。
lastModifiedでコピー元のlong型のデータ拾ってきて
setlastModifiedでコピー先のデータに元の日付を与えたいんですが。

なんでこんな単純なとこで引っかかるのか解りませんが。
どうしてもできません。

どうか何かヒントをください。
>>361
??
>>362
俺には何でそんな単純なとこで引っかかってる理由がわかる。
説明文を日本語ですらかけない奴にプログラムが書けてたまるか。
>>362
何が、どうで、どうしたいのさ。

java.io.File#lastModified の事か?で、コピーってどんなコピーよ。
>>360
>知ってるよ。それを前提で絡んだんだ。

...って事は、クラスっていうスコープ別にある同名メソッドを全て同じ意味のインタフェースと見なす
事がメリットだとでも思ってるって事か?
367362:03/02/02 23:59
ファイルを指定したフォルダにコピーするプログラムを組んでいます。
元のファイルの日付を保ったままコピーを行いたいので
コピー元の日付を取て、それをコピー先に書き込みたいと思っています。

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
ごくろーさん
>>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っておもくないの?
377362:03/02/03 01:09
親切にありがとうございました。
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とオーダ的には変わらないと思う。

どーでもいいけどオーダーなんて数が多くないと意味無いよ。
383222:03/02/03 02:14
解決しましたー。
えー、ファイル名に相変わらず$がはいっていた理由ですが、
>239でいうところのTestMouseListenerクラスをTestクラスの中に作ってたため、
>242のようになってました。
だってグローバル値をいじってたから出せなくて・・・。

とりあえずそのグローバル値をTestMouseListenerクラスの中にもってったりして
なんとか完全に別のクラスとして作れました。
なんかめちゃくちゃなことしてる気はするけど。

よく考えもせずにグローバル作るからいけないんだろうな。
なにせ本格的にJAVAのソースをいじり始めたのが昨日なもんで・・・。
お世話さまでした。>242>253もどうもです。

>253の最後2行が、まさによくわかんなかったとこです。
384 :03/02/03 02:23
既出だったらすまん

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頃は動いてたんだけどなぁ、今どきは普通どうすんの?
ほっとく
386381:03/02/03 02:30
>>382
まあ、遭難だけど。実験しなくて分かる範囲で正確に答えたらオーダの話になった。
どうせ簡単な加減乗除の繰り返しだろうから、数が少ない場合も全く問題ないはず。
(Javaの数値計算は速い。らしい。)
387384:03/02/03 02:35
事故解決

java.util.Date yakujo_date = fmt_full.parse(val + " (日曜日)");
こんなかんじ
” (日曜日)"をつければできた・・・
けど・・・曜日はいらんやろ
それに、2003年1月31日は日曜じゃないし

isLenientはtrueでつ、falseに変えても同じ

意味ね〜ヽ(`Д´)ノウワーン
>>384
ベータだから、とか言ってみるテスト。
バグレポートしる!ニポーンジンじゃないと分からないバグだ!
390384:03/02/03 02:51
>>388
たしかに・・・
java version "1.3.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)

だと動いた
1.4系さがしにsunいってきま〜す
>>390
それ、1.4系の仕様みたいだけど。
build 1.4.1-b21 ってベータじゃないような?
DateFormat format = new SimpleDateFormat("yyyy'年'M'月'd'日'",Locale.JAPAN);
みたいにするのが確実かと。
394384:03/02/03 03:50
>>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型の戻り値で設定したいのですが・・・
403402:03/02/03 13:47
すいません・・・上げてしまいました・・・
どこかのスレで見たけど、自分が何をしたいのかを日本語ですら
説明できないやつがプログラムやロジック、アルゴリズムを組めるわけがないんだよ。
>>402
はJava以前に日本語のお勉強が必要。見る人がわかるように書いてね。
406402:03/02/03 14:46
すいません。日本語がおかしかったです。

やりたいことは
ユーザーに日付を入力してもらい、入力してもらった日付を
プログラム内の日付に設定して処理を行うと言う物です。

言いたいことは、
日付を扱うの基本的にDate型か、Calendar型を使用するので
ユーザーに日付を入力してもらうときにはどのような型を
使えばよいのかわからないので教えてください・・・
と、言うことです。文がまだおかしいかもしれませんがどなたか教えてください。
>>406

import java.util.Calendar;

public class Test01 {
  public static void main (String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(Integer.parseInt(args[0]), Integer.parseInt(args[1])-1, Integer.parseInt(args[2]));
    System.out.println("日付:" + cal.getTime());
  }
}

c:\>java Test01 2002 2 3
日付:Sun Feb 03 14:46:19 JST 2002

おまえ才能ないよ(いろんな意味で)
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=Java+%93%fa%95t%8c%5e+Calendar+Date
入力って何だよ。
アプレットだったらTextFieldか何かだろうし、コンソールだったら標準入力でごちゃごちゃと。
それとも入力されるデータの型を聞いているのか?
Stringに決まってるだろう。

# そのStringがCalendarに変換するとこまで聞きたいんだろうな、きっと(藁
>>407
こっちの方がヒットするね
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=Java+Calendar+Date

>>406は検索のやり方も知らないんだね?
帰っていいよ。
410デフォルトの名無しさん:03/02/03 14:59
>>408-409
きみも朝からずっと暇だねぇ・・・。
>>409
スレ名を読み直せ。「初心者大歓迎」だぞ。
412402:03/02/03 15:20
>>407-409
申し訳ない。出直します。
そして、ありがとうございます。
>>411
日本語初心者やネット初心者じゃないだろ?
検索してわからなかったら来ればいと思うけど
自分で何も努力せずに教えてクンは違うんじゃないか?
まあ>>408は意地悪な気はするけど。
>>413
はいはい、ひっこんでなさい。あなたはこのスレに求められていない。
ただそれだけだよ。
415407:03/02/03 15:35
日本語がどうとかはともかく、
>>1-4とAPIドキュメントくらい見てから聞けと言いたい。
jar のあるディレクトリにデータを保存させたいんですが、
起動された class が、自身が含まれている jar のありかを知るにはどうすればいいですか
417408:03/02/03 15:44
>>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のツールバーみたいにフォーカスが外れても常に親フレームの手前に
来るようにしたいんだけど、無理かな?
>>417
それは反省しているとはいえないよw
421419:03/02/03 16:25
>PhotoShopのツールバーみたいにフォーカスが外れても常に親フレームの手前に
>来るようにしたいんだけど、無理かな?

自己レス。全然関係ない事です。すいません
>>422
いいね
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ディレクトリ以外の場所
 テストケース専用のディレクトリに置く。

今のところ、私にはこの程度しか思い浮かばないのですが
何かもっと効率の良いテクニックはありますでしょうか?
だれか、コツを教えてくださいませ
>>424
マルチウザイ&スレ違い
>>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クラスにすれば楽なのでは?と思うんです。

最初はみんなそう思う。
431428:03/02/03 22:02
後、自分で例外クラスを作るという解説があるんですが
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
やめた。本読め。検索しろ。出来なきゃ死ね。



433428:03/02/03 22:05
>>429
なるほど。
つまりは多態性というものなんでしょうか?
質問が多くてすみません。
434428:03/02/03 22:07
>>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でまとめることもできる。
}
みたいな。
>>435
煽りもマジレスもスピードが命。
で、自分で例外クラスを作る場合というのは、
標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。
自分でユーザー認証の仕組みを作って、認証失敗時はエラーとして処理をしたい、というような場合とか。

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して処理を分けたい場合はちょっと困るかもしれない。
439428:03/02/03 22:24
>>435
わかりやすい説明有難う御座います。
「is-a の関係」を意識してコードをみていきたいと思います。
Catchブロックは、上記から順に参照されてゆくんですね。
なら最後のブロックは、ある程度例外をまとめなくてはならないから
Superクラスがよく使用されるということですね。
有難う御座いました。
440428:03/02/03 22:24
>>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も始めたほうがよろしいのでしょうか?
446428:03/02/03 22:37
>>437
引き続きレス有難う御座います。
>で、自分で例外クラスを作る場合というのは、
>標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。
了解しました。
今一意味がつかめなかったのが、大まかにイメージを掴むことができました。
>元をたどればどちらの場合も java.lang.Exception を継承している。
最初の質問と同じようなことなんですね。
ただ、「他の例外クラス」として扱えないように区別する為に、
継承するクラスを選ぶ必要があるということですね。
現在の知識じゃ、意図的にコードを作って実験できないんですが、
もう少し力をつけたら、ぜひ再度取り組んでみたいと思います。
今すぐ実践できないにしろ、疑問が引っかかり続けるのは辛かったので
本当に助かりました。
447428:03/02/03 22:39
>>437
引き続きレス有難う御座います。
>で、自分で例外クラスを作る場合というのは、
>標準のライブラリで用意されていないが、エラーとして処理をしたいロジックがある場合などに作成する。
了解しました。
今一意味がつかめなかったのが、大まかにイメージを掴むことができました。
>元をたどればどちらの場合も java.lang.Exception を継承している。
最初の質問と同じようなことなんですね。
ただ、「他の例外クラス」として扱えないように区別する為に、
継承するクラスを選ぶ必要があるということですね。
現在の知識じゃ、意図的にコードを作って実験できないんですが、
もう少し力をつけたら、ぜひ再度取り組んでみたいと思います。
今すぐ実践できないにしろ、疑問が引っかかり続けるのは辛かったので
>>445
正直、一つ覚えれば潰しはきくので気に入ったのを勉強しなさいな。
449デフォルトの名無しさん:03/02/03 22:41
自作例外クラスに発生した例外のコード(自分たちで決めた意味を持つコード)を保持させるなんてことを
大体やってると思うんだけど、どうなんだろ?
>「is-a の関係」を意識してコードをみていきたいと思います。
オブジェクト指向言語のエッセンスを会得しかけているね。
その調子でがんがれ。
>>449
そうしないとあんまり意味は無いやね。
>「is-a の関係」を意識してコードをみていきたいと思います。
オブジェクト指向言語のエッセンスを会得しかけているね。
その調子でがんがれ。
453428:03/02/03 22:44
>>443
何れ出力メッセージを変えるとかやってみたいです
でもしばらくは全部Exceptionで捕まえそうです(汗
(基本が完成するまでは)
>>444
確か同じオブジェクトかどうか調べる式だと記憶しています。
どうコードに使用するかわからないですが、もっと学習してみたいと
思います。

皆さん有難う御座いました。
454428:03/02/03 22:45
>>443
何れ出力メッセージを変えるとかやってみたいです
でもしばらくは全部Exceptionで捕まえそうです(汗
(基本が完成するまでは)
>>444
確か同じオブジェクトかどうか調べる式だと記憶しています。
どうコードに使用するかわからないですが、もっと学習してみたいと
思います。

皆さん有難う御座いました。
455428:03/02/03 22:48
なぜか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
両端の空の要素を削除するんだろう。
>>463
たとえば
A カラ B C カラ
という要素が入ったリストを
A B C
とつめる。
466デフォルトの名無しさん:03/02/04 00:40
websphereとwebロジックの違いって何ですか?
どっちが何が得意とかよくわからん
467463:03/02/04 00:41
>>464,465
レスありがとうございます。
ということは、addしたあとにremoveしただけではサイズは減っていても
配列としてメモリを確保した状態ってことでいいんでしょうか?
極端に言えばadd、removeだけを続ければメモリを食い尽くす状態になるん
でしょうか?
>>467
何をどう呼んでその妙な結論に達したのか。
>>465
そうなの?
>>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 の内部状態見てみればよいと思われ。
>>474
new はいらんだろ。混乱する。
>>471
nullを入れるのと削除するのは違うよ。
ArrayListのソースコード見てごらん。
内部で持っているObject[]の要素数と
size()で返ってくる要素数は違うから。
で、trimToSize()は内部で持っている
Object[]の要素数をsize()で返ってくる値
に合わせる作業をしている。
>>474
わかりやすい。サンクスコ
480デフォルトの名無しさん:03/02/04 01:08
EJBって何ですか
JTBのtypo
482463:03/02/04 01:11
結局はtrimToSizeを呼ばない限り、いったんaddで増えた(474の例で言えば
11個以上add)Object[]の要素数は減ることはないってことでいいんでしょうか?
483463じゃないが:03/02/04 01:12
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 メソッド。
>>436
俺もそう思う。
>>436
俺もそう思う。
493 ◆J8bArdHtnA :03/02/04 14:22
>>436
俺もそう思う。
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ペリカ
499247:03/02/05 00:25
257さん、デフォルトさん、先日は宿題のお手伝いをしてくれて
ありがとうございました。
正解は
age = Integer.parseInt(data.getText());
or
age = new Integer(data.getText()).intValue();
でした。
257さんが教えてくれた方が好ましいとの事です。
すごく助かりました。ありがとうございました。
また宜しくお願いします。
ところで、 parseInt って何ですか?
Int型に変更するために使うのですか?
>>499
確か、String型の文字列をInt型に型変換するためのものだったかと・・・

※正しい答えでは無いと思うので鵜のみにしないでくださいませ。
>>499
parseInt() は「文字列の引数を符号付き 10 進数の整数型として構文解析します。」
ちなみに、
・変更ではなく、変換というのがプログラマの一般的な表現。
・Int型というのはJavaには無い。int型またはInteger型。
APIドキュメント見る癖をつけよう。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
parseIntって何ですか?は人に聞くまでもなくここ見ればわかる。
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 も併用した方が良いみたいです。
508107:03/02/05 13:43
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はメモリの断片化の解消もしてたはず… 違ったっけ?
516hoge:03/02/05 16:34
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通りますか?
524518:03/02/05 17:56
>>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 は初期化されていない可能性があります
525518:03/02/05 17:58
すみません、sage忘れていた上に、
インデントが適応されていないようで・・・
>>523 OSがWindowsならとくに問題ない。
他のOSでjavacするときは-encodingオプションで文字コードShift_JISを指定する。
ServletやXMLなどを使うときはUTF-8がお勧め
>>524
そりゃエラーが出て当たり前です。
>br = new BufferedReader(new FileReader("FileName"));
この行で例外が投げられたら、一気に下のcatchまで行きますよね?
そしてその下のhoge[2]まで行くと、このhogeは初期化されないままに扱われます。

その可能性があるのでエラーです。えに・くえっしょんず?
528 ◆J8bArdHtnA :03/02/05 18:03
>>518
hoge[]にどんな値が格納されているのかを出力してみるのが先では?

>>528
コンパイル通っていないのに出力?
コンパイルエラーくらい自分で何とかしろよと。質問なんてしに来ることじゃないじゃん。
531デフォルトの名無しさん:03/02/05 18:08
>>526
ありがとうございます。

通るんですか。javaって凄いですね。
日本語でプログラム組めそうですね。
>>521は無視か、おめでてーな
533デフォルトの名無しさん:03/02/05 18:09
534 ◆J8bArdHtnA :03/02/05 18:14
>>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〜を使ってる時点で、「そこにいかない可能性がある」と認識しないと。
536 ◆J8bArdHtnA :03/02/05 18:20
くれぐれも>>534はコンパイルが通ると言うだけです。
配列サイズを動的に扱いたいのであれば Vectorを使うと良いかもしれません。

537535:03/02/05 18:22
つーか534書き込んでたよ
スマソ
538518:03/02/05 18:33
いろいろと検討した結果、Vectorを使って書き直すことにしました
レスをくれた方々、ありがとうございましたm(_ _)m
お騒がせしました
>>538
そういう問題じゃねーだろ
肝心のエラーの原因については理解できたのかと小一時間
540518:03/02/05 18:41
>>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
>>543
調べろよ
545デフォルトの名無しさん:03/02/05 20:24
NetBeansで任意のデータ数とかを入力するプログラムを
実行したときの入力終了の指示ってどうやるんでしょう?
前まで使ってたJava2SDKはctrl+zでできたのですが、
NetBeansでは違うようなので。
546デフォルトの名無しさん:03/02/05 20:26
>>544
ワラタ、ここ質問スレだろ
547デフォルトの名無しさん:03/02/05 20:39
JAVAでサーバーにファイルを転送するプログラムを教えてくれ。
解ったやつはプロだと認めよう
548547:03/02/05 20:44
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編】に書き間違えた・・・スマソ
558516:03/02/05 23:29
>>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とサーブレットの分離ができて、サーブレットからロジックを別クラスに追い出せるようになったときに、同じようなサーブレットばかり書くのめんどくさいと感じたら使います。
誰か>>508に答えてやれよ。
>>570
質問の意味がわからん
>>568
ハゲドウ
Vectorはスレッドセーフでしょ。
ただしVectorというコンテナがスレッドセーフだというだけ。

通常はArrayListを使う。
毎回synchronizedされたらコストが高すぎる。

Jakartaはまた違った実装をしていて面白いけど。
574557:03/02/06 08:28
>>562
ぐぐったら、Cscript.exe ファイル名 引数でも逝くっぽいな・・・
会社出勤したら試してみるわ〜
サンクス!
575デフォルトの名無しさん:03/02/06 10:22
>Jakartaはまた違った実装をしていて面白いけど。
Jakartaって何かコレクションクラス提供しているんだっけ?
>>573
>毎回synchronizedされたらコストが高すぎる。
なんのコストが高すぎるの?
( ´д)ヒソ(´д`)ヒソ(д` )
578onegai:03/02/06 12:33
宿題してます。助けて下さい。
問題は

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
すまん、訳してくれ。
俺は英語は分かるが日本語はちんぷんかんぷんなんだ。
580ミ,,゚Д゚彡:03/02/06 13:16
>>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)
581579:03/02/06 14:33
なるほど、さんくす>>580
ようやく意味が理解できたよ。でもJavaはちんぷんかんぷんなんだ。
582ミ,,゚Д゚彡:03/02/06 14:40
>>581
(;´Д`)
>>580
Q.
Choiceオブジェクトがリスナーに登録されているとする。
Choiceオブジェクトによって起きたイベントを処理するリスナーに必要なメソッドの定義を書け。

…でいいのかな。答えはあってると思うが。
>>583
>イベントを処理するリスナーに必要なメソッドの定義

だとすると仮想関数全部だと思われ。
585 ◆J8bArdHtnA :03/02/06 15:34
あくまで予想で(?)サンプルを書いておきます。参考にしてください。

この場合 implements ItemLinster が必要です。
コンストラクタなどにChoice のインスタンスにリスナーを加えます。
choice.addItemListener(this);

そのリスナーを取得する時は
  public void itemStateChanged(ItemEvent e)
  {
    if(e.getItemSelectable() == choice)
    {
      (Choice)e.getItemSelectable()).getSelectedItem());
    }
  }

でよいでしょう。
586 ◆J8bArdHtnA :03/02/06 15:41
あ、スペル間違えてる^^;
implements ItemListener です。まぁ分かると思いますけど。
587デフォルトの名無しさん:03/02/06 16:46
JSPでサーバー上のデータを取得して出力(テキストファイルとかで)できるかという質問
されて「はい、できますよ」と答えたら、「本当にできるのかどうか調べてくれ」と念を押されてしまったのですが
なんかおかしなこと言ってしまったのでしょうか

できますよね?
588 ◆J8bArdHtnA :03/02/06 16:53
>>587
もちろん出来ます。

きっと、そのようなあなたの「たぶんできるだろ・・」のような曖昧な態度に、
疑問を感じてのことだとおもいます。

だからといって自信満々で「できます!」と、答えた所で「じゃあ作ってみて」
と、言われれば同じ事だとは思いますが。

頑張って下さいね。
>「じゃあ作ってみて」
いわれましたw
とりあえず簡単なのでいいから作ってみようと思います
正直、自信がなかったので、できるとさえわかれば後はどうとでもできます
ありがとうございます
590デフォルトの名無しさん:03/02/06 18:13
JSPから*.java ファイルにパラメータをつけて起動させることってできるのでしょうか?
用はDOSプロンプトからみたいに値をつけてしたいのですが・・
591U ◆CZtFsGiu0c :03/02/06 18:38
>>590
拡張子がjavaってことはソースファイルだよね?
コンパイルしたいってこと?
appletでいう<PARAM>,
コンソールでいうjava Hoge arg1 arg2
をやりたいんだと思うがJSPは知らん、っつーかほとんどJSPの基本的なことのような?
できるんじゃないの?(読み違えてるかな。)
593590:03/02/06 19:17
誠に申し訳ない;;
.classファイルです。ごめんなさい。
普通にメソッド作って引数で渡せよ
595 ◆J8bArdHtnA :03/02/06 19:39
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ファイルなら、クラスローダ作ってインプロセスで動かす手もある。
>>597
(・∀・)ニヤニヤ
600597:03/02/06 22:21
>>599

Σ( ̄○ ̄;)ハッ


オ、オシエテホスィ・・・・・ (-。-) ボソッ
>>573
「コスト」を金銭面でしか考えられない人?
>>601
プログラマじゃなければ正常な感覚だけどな。
>>601
金銭面以外のコストって?
>>603
プログラム組む人間なら「処理コスト」を考えなければならない。
・メモリの消費
・CPUパワーの消費
・ネットワーク帯域の消費
・処理にかかる時間
等。
メモリ要求
メモリ予測性
時間パフォーマンス
リアルタイムレスポンス
スタートアップ時間
ローカルvsグローバル
保守性
プログラマの労力
テストコスト    だそうです。「省メモリプログラミング」より。
606U ◆CZtFsGiu0c :03/02/06 23:06
>>597
Vectorはメソッドが呼び出されるたびに同期処理をおこない、ArrayList
はおこなわない。実際に同期処理が必要かどうかは関係なく実行される
からまずいんです。
607578:03/02/06 23:59
public void itemStateChanged(ItemEvent e)
で正解でした。
お助けありがとう。
608597:03/02/07 00:17
>>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など、メソッド単体の
実行が安全に終了する、というだけで、実際にはなにも嬉しいことは無い。
610 :03/02/07 01:09
サンの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"という値を代入。
615-:03/02/07 01:43
スミマセン、諸先輩方に質問です。
簡易テキストエディタを作成中ですが、テキストファイルをドラッグ
して、JAVAアプレット画面で展開したいのですが、この時のファイル名
取得の方法がわかりません。関数名を教え願えますでしょうか?
616デフォルトの名無しさん:03/02/07 01:59
>>614
たとえば
if文で
if(form == 'A')

if(form.equals("A"))と
なんかも同じ?

>>616
form == 'A' が出来るなら form.equals("A") はコンパイルエラー。
>>616
違う
>>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") の略だな
628hoge:03/02/07 02:36
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の仕様的にはそう言う実装はしては行けないと思われ。
>>631
ここはCスレではありませんよ。
>>632 言語仕様。
同じパッケージ(7.)の同じクラス内(8.)のリテラル文字列は,同じオブジェクト String(4.3.1)への参照を表現する。
同じパッケージの異なるクラス内のリテラル文字列は,同じオブジェクト String への参照を表現する。
異なるパッケージの異なるクラス内のリテラル文字列は,同様に,同じオブジェクト String への参照を表現する。
定数式(15.27)によって計算される文字列は,コンパイル時に計算され,それらがリテラルであるかのように扱われる。
実行時に計算される文字列は,新しく生成されるものであって,別の文字列とする。
計算された文字列を明示的に収容した結果は,同じ内容をもつ既存のリテラル文字列と同じ文字列とする。
http://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#101083
635634:03/02/07 08:22
>>631 いま俺もbeanShellで試したけど、確かに"A"=="A"がfalseになる。
コンパイラに渡す前にbeanShellでなんかの処理かかってたりするのかな?
もちろんeclipseのスクラップブックではtrue.
プログラム中に指定したEXCELファイルを起動・表示させたいのですが
できるでしょうか?

宜しくお願いします。
637 ◆J8bArdHtnA :03/02/07 12:21
>>636

>>595で出来るよ。
>>637
どうも、ありがとう。トライしてみます。
ファイル名を変えてやればいいんですね?あとはPATHを通して。。。
不安になってきた!!
639638:03/02/07 13:33
成功(起動した)
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";
って試してみ。
641 ◆J8bArdHtnA :03/02/07 14:15
じゃ、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
http://jsweb.muvc.net/index.html
★もうすぐ春ですよ★
645639:03/02/07 14:46
>>640
開きました!!おぉ感動
ありがとうございます。

>>641
ありがとうございます。

>>実は・・・
お二方のやり方は、エクセルのexeの絶対パスが必要ですよね?
ローカルでやる分には絶対パスを直でかいてやればいいんですが、
サーバにエクセルがあって、そのファイルをクライアントのエクセル.exeで起動する場合
クライアントのエクセル.exeのパスは固定ではありません。
この場合ですと、不可能になるんでしょうか。それともサーバのエクセルを起動するんでしょうか。
>>645
聞いてばっかいねぇーで自分でちょっと位調べろよ!
あと、解決したら辞表書いてプログラマすぐやめろ。
647645:03/02/07 16:04
クライアント側から実行したら、なんとサーバー側でエクセルが起動しました。爆笑です。
>>647
(゚Д゚)ハァ?
649U ◆CZtFsGiu0c :03/02/07 17:19
>>647
…なにか根本的に間違ってるような気がするんですが、サーバとクライアントって
何? それとNT系ならRuntime#execに

"cmd /c start エクセルファイルのパス"

と書けば動くんじゃないですか。ただしExcelが動いているプロセスとの
同期は取れなくなりますが。
650U ◆CZtFsGiu0c :03/02/07 17:23
>>649
あ、startなくても動きますね…
質問です
ローカルルールにJAVAは別板でってかいてるのに何で糞スレ建てるんですか?
>>651
(゚Д゚)ハァ? Java と JavaScript は違うんだよ(・∀・)ニヤニヤ
>>647
漏れも爆笑させていただいております。
ひとごとでヨカッタ! こんなのと仕事したくねー。ギャハハハ
(・∀・)ツレタ
【厨房の為の 煽り煽られ講座】

煽られて反論できなくなった
  → ○○ 必 死 だ な (w

予期せぬ自分の無知で煽られた
  → 釣れた
  → わーマジレス返ってきたよ

言い返せないけど 負けは認めたくない
  → ( ´,_ゝ`)プッ
  → 無知白痴は黙ってろ
  → 知能障害をおこす
マタ(・∀・)ツレタ
実は釣ってるのは>>1な罠
実は釣ってるのは>>657
実は釣ってるのは>>660
660デフォルトの名無しさん:03/02/07 19:12
>>659
自分ッスか?
実は>>1-661まで自作自演
( ・∀・)つ〃∩ ヘェーヘェー
「メソッドの引数を変更しない」事を、明示的に宣言することは出来ませんか?

例えば、
public int countChars(StringBuffer target) //targetは不変
みたいなのを、コメントじゃなくて宣言で明示したい。

C++だったら、
int countChars(const StringBuffer& target)
みたいに書けるのですけど。
final
>>664
(´Д`)?
666デフォルトの名無しさん:03/02/07 20:57
>>663
設計がおかしい。
StringBufferじゃなくてStringを渡せ。
汎用的に使える

Collections#unmodifiableCollection()

みたいなのあったらいいなと思ったことはある。
>>667
ラッパーでも書けば?
>>668
汎用っすよ…あほなこといわんでくださいね。
>>669
発想が貧困だということね。了解。
>>663
ところで、明示的に宣言すると何か良い事がありますか?
>>670
無理すんなって。
673デフォルトの名無しさん:03/02/07 22:45
全角スペースの入った文字列の
全角を検索し削除するプログラムはどう書いたらいいのでしょうか?
佐々木 太郎→佐々木太郎
deletecharAtやreplacet使ってもうまくいきませんでした。
お願いします
>>673
regexとかはお嫌い?
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番目が一番いいかも。
684679:03/02/07 23:47
>>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
誰もが知ってることを満足げに言うとは。
とはいえ、初心者スレである以上、言った方がいいんだけどさ。
690679:03/02/07 23:56
SampleClass sc = new SampleClass();//インスタンス化

static void method1(){}//はインスタンス化しなくても使える
System.out.println("xxx");//と同じ使いかた
>>689
コロンブスの卵って知ってるか?
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クラス内部で自動的にやってくれる。

スマヌ。
695679:03/02/07 23:59
>>692
ああ、ダブルバッファですか〜
それがいいです〜
言われてそんなのあったな〜とか思い出しましたw
ありがとうございます
String s = "佐々木 太郎";
String s2 = s.replaceAll(" ", "");
と書けば満足なんだろ
697679:03/02/08 00:02
ちなみにちょっと聞きたいのですが
createImage()ってaddしてないCanvasでも使えましたっけ?
コンストラクタの時点で呼び出せますか?
コンストラクタの外で、addNotifyのなかで読み出したことがあります。
addNotify()[
 super.addNotify();
 Image=createImage();
}
699673:03/02/08 00:11
回答ありがとうございます。
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();//ゴミ処理
}
702679:03/02/08 00:16
>>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とかでもええけど。
704679:03/02/08 00:24
>>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ドキュメントのどこかにそのヘンの話があるはずだから、探して味噌。
709679:03/02/08 00:33
>>707
理屈は良くは分からない・・・
GUI関係の処理の内容しらないから
repaint()するごとにすべて白にすると思ってたけど・・・
ちがうの?
710679:03/02/08 00:41
>>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のことを理解したほうがエエヨ。
713679:03/02/08 00:59
なんとなくワカタ〜
わざわざすみません
ほんまありがと〜
EventQueue#InvokeLater しなきゃダメってのしらなかったよ。
ばかすか他のスレッドからSwingのメソッド呼んでたな…
715なる:03/02/08 07:30
宿題で再び悩んでいます。
問題は
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の
パートですよね? この部分を空白にしておいてもプログラムはちゃんと
動きます。
助言ありましたら、宜しくお願いします。
716715:03/02/08 07:52
問題の意味勘違いしてました。
スクロールバーをクリックするたびに
maximum valueを10小さくしなくてはいけないのですね。
て、事は、320だったのが310になり、300になり。。。最後には
0になるって事ですよね?
考え直してきます。
717715:03/02/08 08:13
できた!
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へとセキュリティモデルについてアクセス制御とそれに対する暗号技術がどのように変化してきたのですか?
レポートとしてまとめなければなりません。お願いします。
まず調べたことを書け
>>718
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/spec/security-spec.doc1.html#21150
これ全部書き写せ。あとはJavaOneのプレゼン資料もコピーだな。
技術だけでなく輸出規制にもさらりと触れておくこと。
721718:03/02/08 10:53
>>720
ありがとうございます。
俺も今そのHPいました。アドバイスありがとうございます。
722デフォルトの名無しさん:03/02/08 11:36
コマンドラインでclassファイルのパスを指定できないでしょうか?
>>722
??
>>722
具体的に何をしたくてどう困っているのかわからん。
>>722
とりあえず氏んでほしいが。

1) "CLASSPATH"を環境変数として設定する方法がわからない。
2) "java.exe" , "javac.exe" にオプションとしてCLASSPATHを指定する方法がわからない。
3) "CLASSPATH"の意味がわからない。
4) 自分で書いたクラスの場所がわからない。
5) クラスってなんですか?

どれ?
質問者の問いより、回答者の書き込みの方が文字数が長いという悲哀。
質問者の問いより、回答者の書き込みの方が文字数が長いという暴力。
728722:03/02/08 12:08
釣れた


でいいのか?
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のプログラムだとダメなんだろう?
これでも大丈夫そうに思うんですが・・・。
733682:03/02/08 13:49
>>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;

と言うようなメソッドを作ったのですがうまくいきません。
どこが間違っているのでしょうか
735734:03/02/08 15:13
>>734
最後にもちろん}がつきます
>>734
ans = ans.replaceAll("[-+]+0",""); かなぁ。
あと if 文は不要なんじゃないですかね。
737736:03/02/08 15:27
じゃねぇか
if (String.charAt(0) == '+') {
  ans = ans.substring(1);
}
か。呆けてるな。スマン。
if文いらねーだろ

ans = ans.replaceAll("(^\\+)|([-+])+0","");
じゃだめか?
739初心者:03/02/08 15:34
初心者です。
JAVA1.0→JAVA1.1→JAVA1.2のセキュリティモデルの変化について教えてください。
大学の講義では公開鍵とか聞いたけどさぱーりですた。
よろしくお願いします!
740738:03/02/08 15:48
カッコ間違えた
ans = ans.replaceAll("(^\\+)|([-+]+0)","");
741734:03/02/08 16:41
>>736-738,740
ありがとうございました
うまくいきました
>>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()つかわないよ。
746743:03/02/08 18:59
>>744-745
ありがとうございます。
747739:03/02/08 19:00
>>742
スマソ、ちゃんと読んでねかったっす。
なんかセキュリティの話をしてたんで公開鍵とか言ってたけど
javaとはカンケーないんですかぁ、ありがとございます。
APIドキュメントをローカルで見たいんですが
自力でwget等しなければ無理ですか?
どこかにダウンロード用あったりしないでしょうか。
>>749
thx! なんだSDKと同じ場所だったのか。。。
気づかなかったスミマセン。
751デフォルトの名無しさん :03/02/08 20:35
今からSDKインスコします。
みなさん温かく見守ってください。
>デフォルトの名無しさん
おわったぁ?
とりあえず無事インスコできたみたいなんで次はパス切ります。
ブラウザ設定でオペラは選べないみたいなのでIEにしました。
>>753
ずいぶん時間かかってるな。
>>754
実はSolaris用JDKダウンロードしててはまったに1中の人。
>>755
>1中の人
なんの typo だろ?
パス切りなんて簡単じゃんって思って再起動かけました。
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:\>
>>763
で? っていう。
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
http://slashdot.jp/journal.pl?op=display&uid=8053&id=105282
これのいったいどこが面白いのか、全然わかりません。
オチを解説してくださいませんか?
>>765
htmlソースきぼんぬ
妙なコロンがついてるぞって事が言いたかったんだけれど。
>>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使ってるのよ。使いこなしてるのよ。使いこなしちゃってるのよ。なのに、
こんなつまんない仕事おしつけちゃってさ。ホント、こいつ無知蒙昧で超笑える。(冷笑」

って事では。

「無知蒙昧なんて言うかよ」

これがオチ。
775768:03/02/09 03:32
やべぇ・・・ 本当に何が面白いのかわからない。
ますます混乱してきた。
録画しといた笑点観ながら寝ます
>>768
はじめにきくけどおーーー javaやって何年? (ちなみに俺は5年だ)
わたし「2年です。。。。」 (あまり詳しくないのよね…)
「ふーん」 (そうか…俺より評判良いのに…)
「MVCって知ってる?」 (ちょっと分からない事でも聞いて見るか?)
わたし「ええ。知ってますけど」 (何を当たり前の事を)
「Mがもでるでええ。。。。。。」 (MVCって何じゃらほい)
わたし「。。。。」 (あーた、プログラマに向いてないよ…)
はじめにきくけどおーーー javaやって何年?(何でこんな素人が?)
わたし「2年です。。。。」
「ふーん」 (2年もやってこの程度かよ)
「MVCって知ってる?」 (ちょっと馬鹿にしてやるか)
わたし「ええ。知ってますけど」
「Mがもでるでええ。。。。。。」
わたし「。。。。」(この人レベル低ーい)
(こりゃ駄目だ、嫌みも通じない。取り合えず環境構築でもやらせとこ)
たぶん、MVC無視したプログラムを組んで、
それを遠回しにやんわり指摘したら、
そんなこと知ってるわよ見たいな顔されたんで、
しかたなく環境構築をさせることにしたんだと。
今頃必死に、使い物にならないプログラムを、
上司が徹夜で残業して作り直してます。
首にさえなかっただけありがたい話なのに、
本人はこんな馬鹿な上司を持ってと被害者意識。
能力無いのにプライドだけ高い勘違いプログラマの典型。
779768:03/02/09 04:41
えーと、つまりこのguessという人はあまりJavaに詳しくないのに
Javaのなんかのプロジェクトに配属されてしまって
そこで作ったプログラムがあまりにひどく上司に厭味言われて
閑職モードに突入ったのを自虐的に書いている、と。

みなさんのおかげで少し賢くなりました。 ありがとうございました。
zapzapzap
おまいら
ttp://slashdot.jp/journal.pl?op=list&uid=8053
ちゃんと読んであげなさい。なんとなく寂しいぞ。
>>773あたりからスレ違いだが
痛々しいguessに愛の手を
>フレームワーク全体の設計をしてすべてHashでかえすように
>設計した人 1名

スレ違いだがワラタ
きっと彼はPerl神なのだろう
>>779 いや、逆みたいだ。J2EEとかに精通している人かも
Javaやって何年、と聞いてMVCの説明した人が後悔しているのだろう、ということ。
というかMVC知っているなら「わかっているから説明不要」といえばいいのに。

>>781 これ女?
フレームワーク作ってるってのか。
ServletとUMLを使いこなしているのか。
自分がServlet使えることを自慢しているみたいだぞ。
テストもやっているみたいだ。
WinとLinuxつかっているみたいだ
女?
>今日の仕事
>eclipseのマニュアル作成
と書いてある。もしかしてIBMかIBM下請け企業の社員!!?
>>785
単に周りのレベルの低さを嘆いてるんでしょう。少なくとも彼が感じてる分には

>>eclipseのマニュアル作成
>と書いてある。もしかしてIBMかIBM下請け企業の社員!!?

単なる社内マニュアルだろ

#どこがどう女に見えるのか・・・ 性別は関係ないのでは?
787781:03/02/09 13:53
>>785
おいらは本人じゃないんで知らん。なんとなく女くさいのは、年の話を電車で聞かされた
とこあたりか(まったくスレ違いでスマソ)
>>768
があまりにワケワカメなんで、全部追っかけて見ただけ。ま、ガンガレヤってとこだけど。
>>786
Servletプログラマのくせにネカマかよ。キモー
子持ちの母親にも見える。

子持ちのServletプログラマと言えば原田洋子を思い浮かべる
789781:03/02/09 13:58
マ板ネタなんで、ここらで終了だろうな。スマン
だから・・・MVCってなんだんだよ
>>790 J2EEのことちょっと調べい
>>791
なんだ?smalltalkでは不満なのか?え?こら。
MVCを知らないレベルの人間がJava界隈にはワンサカ居るんだよな。
>>792 JavaスレだからJ2EE
>>793 MVCを知らない奴はJavaプログラマ失格ということにしよう。
そしてC#.NETとの差別化を計る
ヘタレなVとお役所仕事なMに板挟みにされたCの雑用っぷりが泣けてくる。
言っとくがMVCってのは、別にJavaと関係ないぞ。むしろ設計の話。
で、J2EEの考え方として、MVCそれぞれに明確な対象を用意してある、と。
ただ、そんだけ。
798797:03/02/09 17:53
関係無いっていうか、Java限定じゃないぞ、の意。
MVC.co.jp
つまり、この人はMVCを知ってる(と思い込んでる)ってことですか。
>>800
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は使いこなすだけでそうとう高度なスキルを要するし、
それにかかるお金も大きいほうだからだ。
811808:03/02/09 21:32
>>805
ディスパッチ先の決定をコントローラが知ってる必要があるから、って事?
>ただ、J2EEを利用する案件にはなかなかお目にかかれないかもしれない。

漏れ、J2EEを利用する案件以外、やってないんだけど。
ていうか、チーム内には「そうとう高度なスキル」をすでに諦めてる香具師もいるんだけど。
ていうか、「使いこなす」の定義がアバウト。
そして「MVC/デザインパターンを習得」するのは、優秀とかいうより、常識。
理解しててもらわなきゃ、困る。
>>810
VBだって同じだろ
言語によって多少の得手不得手があるにせよ
どんな言語でも設計段階では同じもんだ
ゴールによって言語を使い分けるだけで
814803:03/02/09 21:48
>>808

>>803の、
>ファクトリパターン(ないしビルダパターン)でいい感じにインスタンス生成して、テンプレメソッドに
>すべりこます

って、エラいあいまいな言い方してしまった....。要するにそういう事です。すんません。
結果的には >>804 の言うように、そのConnectionを使う時点で、コンポジットになっています。が、
そのBeanを利用する手順を、Controllerが意識(実装)しています。ビルダでBean起して処理をし、結果をView(JSP)にDispatch。
...で、その辺を分離ってした方がいいのかな、と。いつも気にしてしまう...。

ま、>>809 の言うように、その時その時で正解は違うのかもしれないけど。
>>813
禿げ同。
極論でしか成立しない理論吠えてる時点で相手にすることは無し。
なんか書き方が釣りっぽいよね
818デフォルトの名無しさん:03/02/09 22:26
>>816-817
何の話?
>>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の方がいいかもしれません。
>>820
finalも付けとけば?
824820:03/02/09 22:58
>>821-823
ありがとうございました。
なるほど、だから会社の上司に「定数はインターフェースで宣言しろ」って言われたのか....。
ところで、staticなメンバーって、メモリ上に唯一の存在って聞いたのですが、その場合、
やっぱり interface側で定義しておくと、それを implementsしたクラスの名前でアクセスしても、
全て同じ所を参照するんでしょうか。
825820:03/02/09 23:00
って、するんですよね。すいません。(恥
>>822
なぜ? 今、手元に無いんで理由がおいらもわからないんだけど、Effective Javaでは
定数はInterfaceに書くなって項目があったけど。
827826:03/02/09 23:08
自分で考えて見たが、こんなのがマズイんではないかな。
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 は、インタフェースの定義をするものなんだからっていう。だから、
「(無闇に)定数定義してはいけない」とかいう話の流れなのでは。

以上、全部推測。
830826:03/02/09 23:11
段々、思い出してきたが、定数はユーティリティとして隔離すべきってことだったような
気がしてきた。
#そもそも定数って、インスタンス化するオブジェクトの属性じゃないってことかな
831826:03/02/09 23:14
つーか、1人で考えてるうちにレスがついてる。
>>828
そうだって気がしてきた。(827)
>>829
おいらもそう結論した。(830)
>>828
それだと「定数はInterfaceに書くな」の説明になってないような。
つうか名前空間の解説については、その通りなんだけど。
833826:03/02/09 23:15
>>828, 829
つーか、サンクスコ
834デフォルトの名無しさん:03/02/09 23:17
>>828
っていうか元の質問者 >>820 が、>>824-825 あたりで自己解決してますが。
名前空間。
変数(しかもStringBuffer)をInterfaceに書いてるバカコードも結構あります。
836デフォルトの名無しさん:03/02/09 23:28
>>835
グローバル変数マンセー野郎ですな。
ほかに条件なしに無差別に「定数はインターフェイスに」というような
奴は、ヘッダファイルに定数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++のポインタ-ポインタ演算機能

君が誤解してる。
842820:03/02/09 23:52
>>837
「定数をinterfaceに」の元の質問者です。ちなみに、私がやりたかった事というのは、ちょうど
Color.white みたいな感じの定数です。そのインターフェースを実装したクラスで、それぞれ関連処理があり、
そこに渡す引数を、このようにわかりやすく渡して欲しいという意図があった為です。

でも、中にはそんな「無差別定数」を集めたクラス(あるいはインターフェース)を書いてる人もいたりして...。
正直、それだとなんだかわかりません。(笑
設計しなおしてほしい。
釣られてマジレスすれば、言語仕様のreferenceの定義では
http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#106237
で、The reference values are pointers to ... となっている。
841の書き方が1番良い。840の「感覚」というのはなんていうか、良くわからない感覚だ。
質問です。以下の場合、finalにしてあっても、引数の中(の中)は変化するんですが、
いったいこのfinalは、何を意味してるんでしょうか。

class Foo {
 public void fooMethod(final Bar arg) {
  arg.callback();
 }
}

class Bar {
 private int counter=0;
 public void callback() {
  counter++;
 }
}
呼ばれたメソッド内で代入できない。
846840:03/02/10 00:01
>>843
ごめん、>>841 の言う、”ポインタ演算機能”って言葉が出てこなかった。
その機能が無いポインタの受け渡しって、要するに(C/C++における)参照に近いんじゃないの?って意味。
847844:03/02/10 00:06
>>845
あぁ、そうか。

class Hoge {
 private final SomeClass member = new SomeClass();
 public void hogeMethod() {
  member = new SomeClass(); // ←コンパイルエラー
 }
}

ってのと同じか。
ありがとうございました。
848843:03/02/10 00:07
>>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);

 //ひたすら続く

}

なんて、時。
851850:03/02/10 00:21
あ、なんか良くわかんない事書いたかも。
>>850
たしか捕まらない。JVM が終了を迎えてもファイナライザが呼び出される
保証は無い。たしか java コマンドのオプションにファイナライザ呼び出し
を行うようなオプションがあったような。
>>850
ガッ
ぬるぽ
855850:03/02/10 00:47
>>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
エンコード/デコード大失敗のヨカーン。
861hgoe:03/02/10 02:25
>>859
ISO-2022-JP
って書いているでの日本語のエンコードを探してみると良いかも。
862モダナガリフォンゲるる:03/02/10 02:26
run()とstart()の違いって何?
>>859
「メール・Subject・日本語」でググッてみ
なんの? >>862
>>860-861
その通りでデコードに失敗しているようなのですが
これってJavaMailのバグなのかな?と思って質問した次第でして・・
きっちりデコードできるメールがほとんどだけど、まれにデコードに失敗するメールがあるみたい

>>861
日本語のエンコードを探してみる。というのは、文字列からMimeメッセージを自前で解析して・・という事?死ぬほど面倒くさそうなのですが、簡単にできるんでしょうか??
>>862
startすると、runがスレッドで動く
>>865
RFCに沿った正しいメールであればJavaメールは自動的にデコードしてくれるはず。

糞メーラーの作ったメールであればデコードに失敗するかもしれない。
とりあえず、デコードに失敗するメールのX-Mailerヘッダを晒せ
868867:03/02/10 02:44
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をまたいで使う場合はちと難しいけどね)
873hgoe:03/02/10 04:42
正規表現Patternで質問。
全ての文字にヒットする 「.」を「.」自体にマッチさせたいときどう書きます?
ようは、Perlの「\.」の表現をしたいってことです。
>>873
Java でもやっぱり 「\.」。ただし文字列中では "\\." と書かねばならないので
ご注意のほどを。
普通に"\\."。
JakartaOROでバックスラッシュ地獄を回避するために"/"を"\"として認識させるオプションがあった気がする。
876hgoe:03/02/10 07:11
あんがとん
>>871
それは別に化けてない。
BASE64でエンコードされているだけ。
JavaMailはSubjectをデコードしてくれません。
自分で何とかする必要があります。
BASE64の戻し方はぐぐって調べてみましょう。
>>877
sunの非公式標準添付ライブラリでできたよな。確か。
>>858
永遠にというのは嘘だな。あるクラスローダにロードされたクラスは、
そのクラスローダがGCの対象になった時に一緒に破棄される。

ServletやEJBなんかだと普通に起こるよ。
ソースファイルをメモ帳でマイドキュメントに保存したのですが、
そうしたら、そのソースファイルのディレクトリが分からないのですが?

win Me でJ2sdk1.4.1です。
>>880 Windowsディレクトリになかったか?
それかデスクトップ上か、Explorerのデスクトップ
解らなければ検索くらいしようや。

というか、My Documentにソースファイル置くか?
pLaTeX2eソースとかではそういうところに置くとコンパイルに失敗するから漏れはそういうところには保存しないな。

自分でディレクトリ(半角英数、スペース無し)作ってそこのおいた方がいいと思うが。
>>881
自分でディレクトリか。thxです
本を見ながら勉強しているのですが、
『これを正確に打ち込みます。打ち終わったら、それを保存します。
 次にそのディレクトリを呼び出します。』
と本に書いてあったので、「え?どうやって呼び出すの?」と思いました。
保存→マイドキュメントとしか考えていませんでした。
>>880 >>882
まずPCの扱い方を勉強した方がいいかと思われます。
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() を呼んでないけ?
>>886-887 それは最近のコンパイラだからとかじゃ
なくて >>634 にあるように言語仕様ね。
891デフォルトの名無しさん:03/02/10 17:56
>>889
ありがとうございます。
でもstartです。
892デフォルトの名無しさん:03/02/10 17:59
JSPでruntime.exec() の記述でプログラムを起動したら
プロセスでは動いてるんだけど画面が表示されません。
これってどういうこと?
893888:03/02/10 18:06
>>892
Process.InputStreamとかしていますでしょうか?

888も宜しく御願いします。
894888:03/02/10 18:09
>>892
×Process.InputStream
○Process.getInputStram

895888:03/02/10 18:10
何度もすみません
×Process.getInputStram
○Process.getInputStream




>>888

本当に別スレッドに出来てるのかどうか、と、
どのタイミングでそれをやっているのかが気になる。

出来ればそのプログラム(のエッセンス部分)を見たい。
897892:03/02/10 18:14
はい、やっています;;
classファイルからならきちんといけてるのですがJSPでは駄目なんでしょうか・・。
用は今、jspからjava(class)ファイルを起動してメールを送ろうとしているんですが
それがうまくいかなくて悩んでます。よろしくお願いします
898892:03/02/10 18:15
はうっ・・
DelphiやVBを使ってたものですが今度試験があるのでJavaを勉強しようかと
思っているのですがJavaってたとえばメモ帳だとかも作れるんですよね?
できるけど本来そういうことには使わないとかはないですよね?
あとJSKとかいろいろ種類があったんですけどメモ帳みたいなアプリケーションを
作るにはどれをダウンロードすればよいのでしょうか
900892:03/02/10 18:19
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
902888:03/02/10 18:45
>>896
恥ずかしげも無く晒すと以下の感じです。

1.ボタン押下契機に起動

System.out.println("command=" + command + "\n");
ExecuteCommand cmd = new ExecuteCommand(command,view);
cmd.start();

903888:03/02/10 18:48
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();
}
}
}
904888:03/02/10 18:52
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);
}
:
905888:03/02/10 18:54
>>896
以上、こんな感じです。
どうでしょうか?
906884:03/02/10 19:14
処理時間の違いが知りたかったんだけど、実際
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:\>
909899:03/02/10 21:47

あのー・・・すいません誰か教えてくれないでしょうか・・・
>904

最後の5行の部分なのだけど、
readLine() をループの外で 1 回しか呼んでないよ。

> line = in.readLine();
> while(line!=null){
> view.append(line);
> System.out.println(line);
> }
>>899
別に何でも作れる。今一番流行ってるのはサーバーサイドJava
1.4.1のSDKをダウンロードしとけ。
912888:03/02/10 22:17
>>904
ありがとうございます。
コピペしたときに抜けてしまいました。
ここの辺、固まるのと関係ありそうですか?
while(line!=null){
 line = in.readLine();  ←追加
 view.append(line);
 System.out.println(line);
}
913910:03/02/10 23:08
> ここの辺、固まるのと関係ありそうですか?

ううむ。関係ないと思う。

その行が無いと、起動したプロセスが標準出力に1行以上何かを吐く場合、
無限ループにハマって、延々同じ文字列を JTextArea に append しまくる。
これは  busy loop になって CPU 時間を食いまくる。
(手元でやってみたけど、busy loop にすると反応が非常に遅くなる。)

でも、無限ループで重くなってるなら、起動したプロセスが終了しようがしまいが
関係なく重い状態が永遠に続くもんねぇ。888 さんの現象はプロセス終了すると
GUI も反応するということみたいなので、別な問題だと思う。

プロセスが稼動している間は、GUI は重い(遅いけどあとからなんとか反応する)状態なのかな?
それとも、まったく反応なし?

なかなか謎です。お役に立てず済まぬ。
914899:03/02/10 23:10
>>911

ありがとうございます。でもJavaでたとえばTeraPadみたいなアプリケーション
作ることって少なくないですかね?見かけもTeraPadみたいなものが作れたりするんでしょうか?
どうもJavaで作られたものってウェブ上で3Dのゲームみたいなのしか見かけないもんで
普通の2Dのゲーム、よく雑誌の付録CDについてるようなEXEのやつなんかも作れるんですか?
915デフォルトの名無しさん:03/02/10 23:13
>>912
思いっきりそこが原因みたい
readLineで処理が終わった時の出力読んでるし
fileのcopyするメソッドで試してみたらreadLine無しだと
コンソールに戻ってからHDDカラカラ言ってる
readLine有りだとcopy終わるまで帰ってこない
916899:03/02/10 23:14
えーとあとダウンロードするのは

http://java.sun.com/j2se/1.4.1/ja/download.html

このページの

Windows (各国語、米国語を含む)

って書いてあるところのSDKでいいんですか?

これをダウンロードすれば実行ファイル形式のゲームとかも作れるんでしょうか?
>>914
> でもJavaでたとえばTeraPadみたいなアプリケーション
> 作ることって少なくないですかね?
http://www.hirokiok.com/ja/hooope/
とか?
>>916
>これをダウンロードすれば実行ファイル形式のゲームとかも作れるんでしょうか?
「実行ファイル形式」をきちんと定義してください。

とりあえず、>>916 の態度や根性を見るに、
Javaで可能/不可能という以前に >>916 には不可能っぽい。
919899:03/02/10 23:21
>>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しか使わない人の意見だね。

学生の意見だね。
925888:03/02/11 00:26
みなさん、どうもありがとうございます。
>>910=913
まったく反応無いというか、コマンドプロセス終了と同時に
わーと動き出します。(固まってるときに押したボタンとか。。。)
>>915
>>readLine有りだとcopy終わるまで帰ってこない
readLineはありです。応答メッセージをとりたいので。
copy終わるまでかえってこない。。。これは解決可能ですか?


>>924
>>>現実的な標準=MS仕様
>>Windowsしか使わない人の意見だね。

>学生の意見だね。

バカの意見だね
927910:03/02/11 00:41
912 でこんな風に書いてるけど、

while(line!=null){
 line = in.readLine();  ←追加
 view.append(line);
 System.out.println(line);
}

追加する位置はそこでいいの?
この while に入る直前に line に対してダミーの値でもいれてるの?
そうじゃないなら、while に入る前に readLine() して持ってきた値は
捨ててることになると思う。それでいいならいいのだけど。

あと、ボタンが押された時に ExecuteCommand というスレッドを起動して
その中でさらに、ReadMessage というスレッドを起動している。

2重にスレッド使っても問題ないとは思うけど、こういう問題を解決しようと
するときには、どんどん削ってプログラムを単純にすると良いと思う。
>>896 で「エッセンス部分」と言ったのはそういう意味っす。

私も手元で別スレッドから JTextArea に append するのを書いてみたけど
普通に動きました。

928888:03/02/11 00:55
>>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社員が設計したとしか思えない。
936934:03/02/11 09:52
>>932
すまん。誤爆だ。
>>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
全部わからないので僕の変わりに書いてくれませんか?と言ってしまうのも一興。
はい、全然わかりません・・・ すみません。教えて下さい。
947938:03/02/11 17:05
jCOMっていうのが必要なんですね。
別の方法で、javaでワード・エクセルを起動することってできますか?
サーバに置いてあるファイルをクライアント側のPCで起動したいのですが。

お願いします。
>>947
やりたいことを整理して出直してこい。
方法はいくらでもあるが何がやりたいのかさっぱり。
949947:03/02/11 17:40
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に書き出す。
956950:03/02/11 18:32
次スレよろ
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と同じ表示が出ました。
うまくいかないものですね・・・
>>966
init()呼び出されてる?
968デフォルトの名無しさん:03/02/11 19:45
すみませんデバッガについて教えてください。
ブレークポイントの切り替えを行い開始を押したところ
間違った構成とのアラートが出てしまいデバッガを開始することが出来ません。
どこの設定を行えば使うことが出来るのでしょうか?
一応簡単なプログラムなのでプログラム自体は最後まで動きます。
よろしくおねがいします
969968:03/02/11 21:13
すみません他のプログラムを作ってまたやってみたのですが
今度はデバッグ時に違うエラーが出てしまいました。

このオブジェクトにはJ2EEサーバーデバッグを使用できません。
デバッガプロパティをディフォルトのデバッガに変更して再度実行してください。

と出てしまいます。デバッガのプロパティを最初からいじっていないのですが
どのように対処したらよいのでしょうか?
よろしくおねがいします

使用ソフトはsun one studio4 update1 community edition です
970デフォルトの名無しさん:03/02/11 22:04
JDKって何?
>>970
Java Development Kit
972968:03/02/11 22:29
ご存知の方いませんか?
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に変換すれば良いと思うのですが
判定処理の部分がさっぱりわかりません。

よろしくお願い致します。
977968:03/02/11 23:46
>>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
そりゃマジックナンバーじゃないやんけ。
>>982
バイトオーダーマークですた。
log4jと、jdk1.4のlogどちらが使いやすいAPiなのでしょうか?
ご存知の方お願いします。
>>983
JDK1.4 の logging の方が良い。
log4j は内部で例外生成してそのスタックトレース解析して呼び出し元情報
取るとか アフォ ちょっと知恵をつけたような設計しとる。
985968:03/02/12 00:56
すみません誰か知ってるひといませんか?
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に切り替える(またはその逆)でも
設定ファイルいじるだけですむ。
990968:03/02/12 01:06
板違いの質問なのかなぁ・・・
991デフォルトの名無しさん:03/02/12 01:06
>>978
詳しく書いてあって参考になりました。ありがとうございます。
サンプルソース等がなかったので、フローチャートを見て
ちまちま自分で作ってみます。

>>979
秀丸にはテキストファイルの自動判定機能がありますので
まったく無理とは思えません。
Shift_JISとEUCの区別は難しいみたいですが。

どこかにフリーのライブラリ等無いのでしょうかね?
すごく基本的な機能だと思うんですけど・・・
992デフォルトの名無しさん:03/02/12 01:06
log4j開発者による1.4logging vs. log4jの和訳。
http://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/critique.html
>>991
エディタなら結構あるでよ。
ライブラリもあるでよ。
>>992
log4j のサクーシャ、怒り心頭な文章でつな。詭弁、揚げ足取りと重箱の隅攻撃満載で笑える。
>>991
>Shift_JISとEUCの区別は難しいみたいですが。

ShiftJISとEUCならそこそこ実用的な確率で判別できるけど、
これにutf-8が混じると、もうどうすりゃいいのやら。
webサーバのアクセスログをデコードした時の話なんだけどさ。
996983:03/02/12 01:33
>>984
>>989

ありがd。
jakarta-commons-loggingを調べてみます。
次スレは?
深夜に 1000 GET
999 GET!
メーテル…
1ゲット
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。