>>4 は 1.3 じゃなくて 1.4 じゃないとね。次回書き換えるよ。
すみません、質問です。 現在Swingベースのアプリを書いていて、 ある画面でキーが押されるとそのキーに対応したモーダルのJDialogが 表示されるようになってます。 モーダルなのでダイアログは一つしか表示できないかと思ったのですが、 急いでキーを連射すると、ダイアログに入力がロックされるより早く 別のダイアログが表示されてしまいます。 これを確実に一つのダイアログしか表示されないようにする方法は 無い物でしょうか? 現在、キーが押されたら親画面にロックのフラグを立てて、 ロックが解除されるまでは入力を処理せず廃棄しているのですが、 出来たら先行入力気味でもきちんと入力を処理できるようにしたいです。
>>13 ずっと前から900を超えたときに立ってますが?
15 :
デフォルトの名無しさん :02/08/20 17:21
新しいスレが立ってたなんて知りませんでしたすいません! まちがって相談スレ5で質問しちゃったので、 一応こっちにもコピーを張っておきます。 だれかわかる方いたら教えてください! 相談スレ5[934]>> JTableのセルにJSliderを貼り付けるってできますかね? TableCellRendererだとJSliderの表示すらしてくれなくて。
∋oノハヽo∈ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ^▽^) < 新スレおめでとうございま−す♪ = ⊂ ) \_______ = (__/"(__) トテテテ
17 :
デフォルトの名無しさん :02/08/20 20:45
class sample extends JComponent{ public sample(){} public void paint(Graphics g){ g.drawImae(img[count],100,100,this); } } public void クラス名 extend JApplet{ 処理 } ってのがありまして。アプレットの処理のところでint型のcountをいろいろ 変化させて,sampleクラスのcountに結果を反映させたいのですがどーすれば いいですか?教えてください。
>>17 アプレットのインスタンスフィールドにfinal int countを定義して
クラスsampleをインナークラスにするのが手っ取り早いんじゃない?
19 :
デフォルトの名無しさん :02/08/20 21:02
>>18 ありがとうございます。finalってどういう意味です?グローバルですか?
インナークラスにする場合アプレットクラスのどこに記入するのがベストですか?
21 :
デフォルトの名無しさん :02/08/20 21:12
>>20 インナークラスなんですがinitの中に書いたほうがいいのですか?それか、どこでも
いいのですか?
>>21 finalは一度初期化したらそれ以降代入ができないよという意味の修飾子ね。
これがないとインナークラスから参照できない…と思う、確か。
21の質問の意味がいまいち捉えにくいんだけどインナークラスを
インスタンス化するタイミングということ?
だったらinit()メソッドでいいと思うけど。
25 :
デフォルトの名無しさん :02/08/21 01:15
>>23 意味がよくわからないです。半角がどーのこーのってどーゆうことですか?
ネタじゃなくて本気で・・・
26 :
デフォルトの名無しさん :02/08/21 01:23
>>25 いやたぶん
>>23 はソースがインデントされないから
読みづらいってことをいってるのだと思う。
g.drawImaeの先頭に半角スペースがはいってると
public void paint(Graphics g){
g.drawImae(img[count],100,100,this);
}
ってなって読みづらいけど
全角スペースに書き換えて投稿すると
public void paint(Graphics g){
g.drawImae(img[count],100,100,this);
}
となって読みやすい。
27 :
デフォルトの名無しさん :02/08/21 02:01
Javaってかがく技術計算には向かないんですか? 向かなかったら今後改善されますか? インターネットやグラフィックには強いんですよね
>>27 C言語程度の柔軟性は持ってると思いますが。
>>25 なぜ、「どーのこーの」と読まないでいいと思っているの?日本語くらいは読もうよ。
>>27 何故「向いてない」と思った?
java.math.BigDecimal使えば大抵のことはできるんではないか
31 :
デフォルトの名無しさん :02/08/21 11:05
次のご質問をどうぞ・・・・・・・・・・・・・・・・・
常に俺は正しい。おまえら俺より馬鹿なんだろ? って言いたかったんだな。
>>961 って
結局荒らししかできないのな
>>34 はい、おまえは正しいよ。 俺たちはお前より馬鹿だよ。
>>32 やめろよ。煽るためのスレじゃないだろ。
次のご質問をどうぞ・・・・・・・・・・・・・・・・・
(
>>961 がこのスレのすべての謎を解くというのかね!?)
_________ V
|________| Z
||∧∧|| z (\_/)
|(,-Д-) Σ (・∀・ )
■∪∪■ ( )
(-_||∪∪|| | | |
(∩|| ̄ ̄|| (__)_)
自分より頭いい奴が居たら何か吸収しようとするだろ。 期待してたんだがなぁ。 最初から煽り調で書けばよかったのか?まぁ後の参考にするよ
>>39 が、 961 に対してじゃないのなら、
>>39 = 961 = 「俺は頭いい奴なんだから、俺からなにか学べ」ってことになってしまう。(笑
42 :
デフォルトの名無しさん :02/08/21 11:44
>15 前スレ944
43 :
デフォルトの名無しさん :02/08/21 13:39
初歩的な質問かもしれませんが コンテナに画像をロードする方法はいろいろな本に載っているのですが 音楽というのもロードすることはできるのでしょうか?
46 :
デフォルトの名無しさん :02/08/21 14:11
素人な質問ですいません。Javaのアプレットで NS6.2ではちゃんとうごくのに、IE5.5では、 Error loading class: hogehoge java.lang.NoClassDefFoundError java.lang.ClassNotFoundException: hogehoge at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/applet/AppletPanel.securedClassLoad at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.run at java/lang/Thread.run などと怒られてしまいます。 どんな悪いことをしてしまったのでしょうか?
47 :
デフォルトの名無しさん :02/08/21 14:14
音がでました。ありがとうございました!!
>>46 JavaVMが「アプレットのクラスファイルが見つからない」と怒っている。
HTMLのアプレットの記述が間違ってるんだろ。
ちゃんと互換性のある正しいHTMLを書け。
フォロー多謝
>>48 <HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<APPLET CODEBASE="
http://www.foo.com/ " CODE="hogehoge.class" WIDTH=100 HEIGHT=80>
</APPLET>
</BODY>
</HTML>
などと書いているのですが、悪いところ指摘してください。
www.foo.comはローカルマシンでOSは2000です。
Javaは1.4で1.2ターゲットでコンパイルしました。
で、IEは5.5SP2、1.4を<applet>に使わない設定にしてあります。
50 :
デフォルトの名無しさん :02/08/21 14:49
変数を volatile 指定する事の意味がイマイチ解りません。 教えてください。
51 :
デフォルトの名無しさん :02/08/21 14:50
>>49 <APPLETタグのCODEBASEの意味は理解してるか?
これはclassファイルをさがす基点を指定するもんだ。
その書き方だとそのローカルマシンとやらにHTTP鯖が動いていてwww.foo.comという名前でアクセス可能で
さらにそのドキュメントルートディレクトリにhogehoge.classファイルがないといけない事になるぞ。
(セキュリティ上固定で指定するのは好ましいが、、NSでなんで動いたんだ?)
デバッグ中はCODEBASE="."とでもしとけ。(htmlとclassファイルを一緒に置くなら。)
52 :
デフォルトの名無しさん :02/08/21 14:50
IE5.5はJava2は対応してない NN6はJava2対応してるけど なんでhtmlの問題じゃない
>>51 > その書き方だとそのローカルマシンとやらにHTTP鯖が動いていてwww.foo.comという名前で
> アクセス可能でさらにそのドキュメントルートディレクトリにhogehoge.classファイルがないと
> いけない事になるぞ。
そこを疑う必要はないと思う。
>>51 > NSでなんで動いたんだ?
ローカルマシン www.foo.com のドキュメントルートディレクトリに hogehoge.class があるから。
大変くだらない質問で申し訳ないのですが、 public class AAA { public static void main(String[] args){ って感じで書き始めるプログラムっていっぱいありますけど、この”String[] args”ってなんですか?
>>56 何が聞きたいのか知らんが。
引数の意味:コマンドライン引数
引数の型:String型の配列
58 :
デフォルトの名無しさん :02/08/21 16:00
引数だよ mainメソッドのどこかに下の入れて for(int i=0;i<args.length;i++){ System.out.println(i + "=" + args[i].toString()); } >java クラス名 12 13 14 てな感じに実行してみればわかる
多数のフォローありです。 51>デバッグ中はCODEBASE="."とでもしとけ。(htmlとclassファイルを一緒に置くなら。) これはやりました。結果的に絶対アドレスでやってもだめでした。 52>IE5.5はJava2は対応してない 52>NN6はJava2対応してるけど 52>なんでhtmlの問題じゃない 納得。VMを一番疑っていたんですが、swingを使ったら動かなく なりました。使わなければ動いたので。ありがとうございました。 ちなみにIE6.0ならばJava2対応?
>>61 すいません。
頭悪くて何をあふぉなことを言ったのか分かりません。
おせぇーてください。
>60 >53
64 :
27@亀レスすまそ :02/08/21 17:46
>>30 Javaって実行速度が遅いから馬力がほしいときにダメなんじゃないんですか?
66 :
デフォルトの名無しさん :02/08/21 18:17
ボタンが押されたときにファイル選択をしてファイルのパスを取り出すようにしたんですが ちゃんと結果は出るのですが、開いても取り消しボタン押してもなぜかもう一度ファイル選択のダイアログが出てしまいます。 これはなぜなんでしょうか? Container cnt; String fileName; 〜〜以下がイベントで起こる動作 JFileChooser fc = new JFileChooser(); int res =fc.showOpenDialog(cnt); if( res != JFileChooser.APPROVE_OPTION)return; fileName =fc.getSelectedFile().getAbsolutePath(); これでボタンを押したらファイル選択のダイアログが出るですが 上のXボタンを押してもいったん終了してまた同じダイアログが開いてしまいます。 もう一度閉じるとうまく閉じます。全体の動作が二回になってしまっているのです。 わかりにくい説明ですが原因がわかる人いましたらどうか原因を教えてください。
>>66 > ボタンが押されたときにファイル選択をしてファイルのパスを取り出すようにしたんですが
> ちゃんと結果は出るのですが、開いても取り消しボタン押しても
> なぜかもう一度ファイル選択のダイアログが出てしまいます。
なにをやりたいかのではなく、 なにができないのかその機能だけを抽出してみましょう。
ボタンとか、選択とか、ファイルとか、出されても、それを見ていないのでわからないんですよ。
結局なにができないの?
>>66 ActionListenerにリスナーが多重登録されてない?
71 :
デフォルトの名無しさん :02/08/21 22:13
OutOfMemoryErrorをキャッチしてもどうしようもないよな・・・
>>71 Servletエンジンなんかはキャッチしてるんじゃなかったけ?
おとといeclipse使ってたら、メモリ足らんから ワークベンチ終了せい、いわれた。
>>69 、70
レスありがとうございます
結局見なおしてみたら70さんの言われた通り多重登録していました。
おかげで解決できました。どうもありがとうございました
75 :
デフォルトの名無しさん :02/08/22 00:16
Threadが生きているかどうか知るためにはどうすればいいのかな?
>>75 該当スレッドにメッセージでも常には貸せとけ。
77 :
デフォルトの名無しさん :02/08/22 00:43
javaやるなら最初は何から取り組むべきですか?私はC言語の基礎はあります。 appletの中にもawt,swingがありますし、アプリやサーブレット、などなど 助言お願いします。
>>77 適当に楽しめばいいと思われ。C知ってるなら基本は大丈夫でしょう。
まずはオブジェクト指向になれることかと。
オブジェクト思考を身につけよう
>>77 「C言語の基礎」という発言からして、GUIは扱った事が無いと思います。
JavaでもCUIでCと同じように練習するところから始めて、
基本が理解出来たら(練習用という意味で)Appletあたりから
GUIを書いてみては如何でしょうか?
個人的にお勧めの入門書は「独習Java」です。
GUIはAWTよりはSwingの方が色々出来るので、
この本が終わったら
「Java GUIプログラミング さらにパワーアップしたSwing」あたりで
本格的に書いてみては。
// 私はSWTについては全く知らないので、そちらも調べてみるとよいかも。
>>77 書き忘れましたが、勿論SwingではなくServletを勉強するのも面白いと思います。
// というか、Javaの得意分野はそちらですが。
82 :
デフォルトの名無しさん :02/08/22 03:25
パネルの上にdrawLineで線を2本引いてグラフのx、y軸を書いたんだけど 軸に目盛りを付けることってできないんですかね? 今のままじゃグラフを書いてもどのぐらいの範囲であるか見た目にわからないので。 よろしくお願いします。
>>82 同じようにdrawLineで描けばいいんじゃねーの?
Javaの用語っていろいろあって面倒くさいよな SwingとかSWTとかJDKとかSDKとかJ2SEとかJNIとか どうもよくわかんない
87 :
’javac’について :02/08/22 07:42
'javac'は内部コマンドまたは外部コマンドとして認識されていません。 操作可能なプログラムまたはバッチファイルとして認識されていません。 java初心者です。OSはXP、テキスト技術評論社で同封のCD使用です。SDKです。 インストールしてPATH変更で、しょっぱなからつまづいてます。(P.29めです) 誰か助けてください。 ちなみにJBuilder7でもデバッグなどしてから実行するとプログラム実行の結果が わからず。困ってます
ありがとうございます。 もっと詳しくお願いします。
90 :
デフォルトの名無しさん :02/08/22 08:18
>>91 >クラスパスは無理に設定しないほうがいい。
先生!コンパイルは通りますが実行しやがりません!
>>92 .classのあるディレクトリに潜って
java -cp . ファイル名から.classをとったもの
>>93 先生!面倒です。素直にクラスパス設定しちゃいけないんですか?弊害あり?
>>94 いけません。こっちがフォローするのに疲れるという弊害があります。
MVCモデルにおいて、Control(Servlet)でキャッシュ無しに設定し、 Model(Bean)処理後にJSPに画面遷移する。 その際に、当然のことながらキャッシュ無しのため前画面に戻る処理で、 JavaScript:history.back()が使用できません。 そこでセッションオブジェクトに前画面のリクエストパラメータを格納する 方法がありますが、下記のような画面構成の場合、A → B → Cと 遷移したときにBに戻ることはできますが、次にAとA'のどちらに戻るべきかの 判断がつきません。 何か文献やWEBでも構いませんので情報がありましたら教えてください。 画面遷移例) A→B→C A'→B→C
テキストファイル中の日付部分の範囲マッチングなんですが、 Pattern クラスの正規表現の記述方法が今ひとつわかりません テキストファイルの各行の先頭が YYYY/MM/DD HH:MM となっている として日付の前後関係はランダムです。。。 昨日丸一日使っても解けませんでした。。。(´д`; どなたか良い正規表現を教えてください!
>>97 >前画面のリクエストパラメータを格納する方法が
じゃあそのリクエストパラメータに自分自身の識別子を入れておけばいいのでは?
戻るときはそれを参照して戻ればいいわけで。
みなさん、ありがとうございます >91さん C:\j2sdk1.4.0_<version number>\bin のようですね。 私のはそうすると C:\Program files\java soft\jre\j2sdk1.4.0_Beta\bin になるのかな? クラスパスはやめといたほうがいいようですね。 いずれにしても夜にまた試してみます。 だめだったらまたどなたか教えてください。よろしくお願いします。
101 :
デフォルトの名無しさん :02/08/22 10:38
テーブルHOGEと1対nの関係にあるテーブルHAGE、 それぞれにアクセスするメソッドをHome,Hageとした時 その両方にアクセスできるクラスを作る時に 直感的な命名をするにはどのような名前をつければいいのでしょうか?
99>> 早速ありがとうございます。 識別子を利用するということは、それに対応した情報を持つ必要 があるということですね。 Beanでその識別子に対応する情報を取得する形になるため、 プロパティファイルとして実装する形になるのでしょうか。 またはハッシュテーブルとか。ハッシュの場合だと永続性を持たせる ため、セッションオブジェクトなどに持たせるとかしないと ダメなんでしょうね。
>>101 HAGE.getValue(HOGE[i]);
104 :
デフォルトの名無しさん :02/08/22 10:47
JUnitのSwing版で、 java junit.swingui.TestRunner java.samples.AllTestsと入力しても Class Not Foundといわれ、テストできません。 クラスパスの設定などは正しいようなのですが・・・ どなたか、正しい設定の方法を教えてください!
返事がすごーくおそくなりました。
>>53 の意味がようやくわかりました。(´Д`)/
IE,NSともにうごきました。
頭悪すぎ>自分
ありがとうございましたぁ。
>>103 それはメソッドでの取り方のような気もしますが
なるほど、getValueにあたるものをクラス名に入れるのはよいですね。
すばやいレス、ありがとうございました。
>>104 何のクラスがないと言われているのか書かないと…
3年4組です。
111 :
デフォルトの名無しさん :02/08/22 14:07
質問があります。 生成直後の要素数0のCollectionsは、一個あたりどのくらいメモリを使うのでしょうか? 教えてください。
このくらい→| |←このくらい
>>112 つまんない。
そして邪魔だから消えろ!
>>111 java.lang.RuntimeのgcメソッドとfreeMemoryメソッドを使って
自分で調べてみましょう。
ごめんあさい。
ごめん、ほんとは このくらい→| |←このくらい
>>118 つまんない。
そして邪魔だから消えろ!
121 :
デフォルトの名無しさん :02/08/22 15:49
>>111 誰か教えてください。本当に困っています。
>>121 おまえは答えてもそう言い続けるんだな。ずっと言い続けていればいい。
本当に困ってるなら、自分でプログラム組んで調べるだろう。 だからネタってことばればれじゃん。
127 :
デフォルトの名無しさん :02/08/22 16:27
junitの画面上部の・・・ボタンを押すと、 No Test Cases Found Check that the configured 'TestCollector' is supported on this platform と出力されます。
129 :
デフォルトの名無しさん :02/08/22 16:37
なぜ「直訳」しなきゃならないの?
でも127のは「出ます」ってだけの報告だけかも知れないしなぁ
>>128 これでどうでしょう?
No Test Cases Found
試訴は見つけませんでした
Check that the configured 'TestCollector' is supported on this platform
形成された「TestCollector」がこのプラットフォーム上で支援されることをチェックします。
>133 Exciteで翻訳したな? 俺もした
>>133-134 それくらいまともに訳せないとプログラム組めないだろ。
TestCollectorがそのプラットフォームでサポートされてるかチェックしろ。
136 :
デフォルトの名無しさん :02/08/22 16:53
まともに直訳すれば
>>135 のような馬鹿がくるし。
もうすこし楽しめると思ったのにな。
>>127 junit.jarはクラスパスに入ってるみたいですね。READMEに書いてあるこっちの
設定は大丈夫ですか?
Notice: that the tests are not contained in the junit.jar but in the installation directory directly. Therefore make sure that the installation directory is on the class path
>>143 えーと、質問した人ですか? 意味がわからないってこと?
えーと、かゆいところはありますか?
146 :
87,89,100 :02/08/22 18:52
うまくいきました。c:\jdk1.3をc:\jdk1.3.1に変更でokでした。 またご指導お願いしますです。
>>143 翻訳しちゃだめです。直訳しなきゃ
通知:そのテストは、junit.jarだが設置ディレクトリーに直接含まれていません。設置ディレクトリーがクラス・パス上にあることをしたがって確かめてください。
150 :
デフォルトの名無しさん :02/08/22 22:33
Javaはじめようと思って本買ってきた所です。 一つ聞きたいのですが、皆さんは本に書いてあるように HIDEMARUなどのテキストソフトでソース書いて、いちいちDOS窓開いて Javacとか書いてんでしょうか。 それとも何か、便利なソフトがあるのでしょうか。 良いのがあれば教えてください。
>>150 はい。hidemaruでjavacです。
昔はマクロ組んで自動化してたけど異様に速度落ちるんでやめました。
>>150 JBuilderとかeclipseとかでこの板のスレ一覧を検索してごらん?
emacsで魔道冥府に踏み込むのも乙かもね。
>>151-152 ふーむ、HIDEMARUでjavacも現実なんですね。
他のスレも見て何か探してみます。
ありがとう。
>>153 HIDEMARUでjavacなんてほとんど学生だけだよ。
viでjavacですがなにか
ワラタ。漢やアンタ。
ちなみに、一番一般的な環境は、と質問させてください。
やっぱHIDEMARUなのですか。
>>157 viもエディタソフトでしたっけ。
Ctrl+Yでヤンク?
>>159 Notepad for Windows2000
質問に来ておいて人の話聞かない奴はアホだと思う。
秀丸とjavacか。痴呆としか思えんな
162 :
デフォルトの名無しさん :02/08/22 23:05
>>150 何事も基本が大事だから最初こそjavac & hidemaruがいいと思うけど
どうしても面倒だったら
最初はForte使おう!無料だし機能多いし
最終的には処理速度が遅いのとGUIが汚いのがいやで
シンプルなeclipseとかにおちつくだろうが
なるへそ、ありがとう。 参考にするよ。 とりあえず寝るか。
秀丸とか一般的なテキストエディタって GUI作りにくいしリファクタリング機能もつきそうもないしな。 キーワードに色つけたりするのが限界だろう。
秀○とかいってダサダサ(藁
166 :
apholist :02/08/23 00:19
シェアでいいならPeggyProがいいかなぁ。
cat > hoge.java << "EOF" ちっちゃい奴だけダケドモナー 2ch的には、xyzzy+jtcは評判悪いんですか?
仕事のDelphiですらフォーム作る時とヘルプ引く時コンパイルする時以外は 秀丸使う漏れは変態入ってるかもしれん。 ましてやJavaだと・・・
>>168 使い慣れてるエディタそのまま使い続けられるのが魅力。
ところで、実際、エディタ ⇔ DOS窓って不便なんですか?
>>171 あまり大きなものを作ったことはないですが、
特に不便は感じません。両方開きっぱなしでも。
大きいプログラムとかになると勝手も違ってくるんですかね?
>>172 ウインドウ切り替えて↑キー数回リターン。
面倒です。
息するのも面倒でしょ? 氏ねよ。
保守。
面倒は少ない方がいいに決まってんじゃん。
氏ねよ。
>>172 eclipseなら、エディタ上でCtrl-Sでコンパイル可能です。全然楽です。
前は、秀丸 + cygwin + ant でやってましたが、eclipseにして効率上がりまくりです
コード補完機能の有無だけでも、だいぶ違います。
>>177 氏ねないしプログラム書かなきゃいかんのでな。
エディタ ⇔ DOS窓は無駄だからいらないけどね。
捨てられるものは捨てるさ。
>>180 真摯に取り組もうとする姿勢があれば可能。APIむちゃくちゃ
そろってるし。
レスどうもです。 今日はもう寝るんで明日から頑張ってみようと思います!
つーかソノモノズバリの本があったような。 その本買ってきてソースぱくってUIをちょっと変えれば終わりみたいな。
>>158 割とマジレスだったんだけどなー
ホントは素のviじゃなくてvimだけどね
>>183 木*さんの本でしょ。頭によぎったけどさすがに入試と
聞いちゃーね (´∀`)
emacs+jdeeでC-c C-v C-c
まぁ、確かにHello Worldぐらいなら秀丸とかもでいいな。 使っている開発環境だけでなくそれで作ったものを書かないと どれが開発しやすいのかわからないな。
作った人数や周りの人は何を使っているかという情報も必要かもしれない。
189 :
デフォルトの名無しさん :02/08/23 06:54
Windows環境で、一人でシコシコ作るJavaプログラムなら、 メモ帳+DOS窓javac これ最強♪
>>162 > 最初はForte使おう!無
最初はいらねー
>>180 某K大学だったら、isoとかの宣告にがっつりしたがっておくのが吉か?
>>189 おまえの程度では、それで十分なだけだろうな。
Cでいうところの int i; char b[4]; b列に意味のあるデータを入れる(バイナリファイルから読みこむ) memcpy(&i, b, 4); として1バイトデータの配列をINTに直す方法を探しています。 海外の掲示板を見たところ、JAVAにはmemcpyに相当するものが無いとのこと 4バイト分のbyte列の中身を、丸々INT型の変数に移すことはできますでしょうか? わかる方よろしくお願いします
194 :
デフォルトの名無しさん :02/08/23 15:07
上の説明が少しわかりづらい気がするので、改めて。 int型の変数をbyte[4]に変換する方法。またそれの逆を探しています。 Cには型無視のmemcpyがあったのですが、調べたところJAVAには同じものは無いと。 何か方法があれば教えていただきたく思います。よろしくお願いします。
>>194 どうせ4つなんだからシフトとOR活用すれば?
初めまして。 最近Javaを始めたのですが、本やサイトなどを参考に少しずつ頑張っております。 で、質問なんですが。 1: double x; 2: 3: InputStreamReader kbd = new InputStreamReader(System.in); 4: BufferedReader number = new new BufferedReader(kbd); 5: 6: System.out.print("input number => "); 7: System.out.flush(); 8: 9: try[ 10: 省略・・・ というコードを某サイトで見てやってみました。 3行目4行目などは何となく理解出来るのですが、 7行目のSystem.out.flush();という所がいまいち理解できません。 7行目を削ってコンパイルし実行してみた所、一見問題なく動いてしまいました。 これはあってもなくても問題ないという事なんでしょうか? それと、3行目4行目の箇所ですが、API仕様ドキュメントを見てみた所 BufferedReader number = new BufferedReader(new InputStreamReader(System.in)); という形で・・と例が出てました。 一般的にはこの書き方の方が推奨されるのでしょうか? 長文でしたが、以上質問でした。 よろしくお願いします。
学校ではCを学んだのですが、自分でJavaを学びたいと思うのですが 先輩方から見て分かりやすい、という初心者Java講座のようなホームページはありませんでしょうか?
>>199 Cやったんなら自分の好きな本選べばよし。
>>183 >>185 その本をamazonで見つけてしまった。でも出来れば金は使いたくないw
もうダメだ!ってなったら買ってみようかな。
>>191 某K大学がどこなのか分かりませんが自分が受けるのはは某T大学です
とりあえず今日はjavaの基礎っぽい事を勉強した。
オブジェクト指向が良くわからなかった。メーラー作成までは程遠い
>>170 なんと言っても一番の問題はjavacのエラーが標準エラー出力に改悪されたこと。
(いつの話じゃw)
95系のDOS窓はバックスクロール出来ない。標準エラー出力はリダイレクトできない。
標準エラー出力を横取りするプログラム書いてjavac動かせば、なんとか。
家は全部2000だから無問題。
むぅ、そいつぁやってられんな。 Win9xではないから気づかなかった。
>>202 > なんと言っても一番の問題はjavacのエラーが標準エラー出力に改悪されたこと。
ファイルにも落とせるから同じだと思う。
>>204 >ファイルにも落とせるから
非標準オプション
以下のオプションは、oldjavac だけでサポートされています。新しい javac コンパイラではサポートされていません。
で、確かダメだったと・・・うん「javac: -Xstdout は無効なフラグです。」って出る。(1.3.1)
でも、なんか1.4になったら復活してる。やっぱり不満続出だったんたね。
>>205 「javac -J-Djavac.pipe.output=true 」だとどうなる? 1.3.1って
207 :
デフォルトの名無しさん :02/08/23 23:58
保全あげ
>>196 プラットフォームAPI仕様のうち
java.io.OutputStream::flush()についての記述を読め。
java.io.Writer::flush()やjava.io.BufferedWriter::flush()についても読むと
なおよい。
BufferedWriterのコンストラクタの書き方は、どうでもいいんじゃない?
209 :
デフォルトの名無しさん :02/08/24 02:13
概出かもしれないですが、アプレットを実行させると 「Class sun.appletAppletPanel can not access」 と出てアプレットが表示されないのですが、どうしたらいいのでしょうか?
>>209 Javaコンソールにエラーメッセージが全部表示されているから
まずはそれをチェック。
質問です。 ファイルを出力するときのファイル名に、 ファイル保存時の日付を指定したいのですが、どうしたらよいのでしょうか?
>>212 Date クラスからとりだすのじゃダメなの?
保存時の日付を指定ってのが分からんが…面倒見たってな〜w >> 213
あ、逃げるな(w
>>215 たとえばさ、
import java.io.*;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date today = new Date();
System.out.println(today);
}
}
とかしてみ?
>>212 >>215 の言う通り、具体的に何したいのかいまいち
よくワカランのでこのくらいのヒントしか書けないや。
あとは Date の API よく読んでみれば大抵の事は
出来ると思うよ。
逃げましたw
>>216 このスレ、マターリな雰囲気でいいやね。
余談だがimport java.io.*は要らないかと。
うへぇ、ゴメン。癖なの。 import java.io.*; はナシね。つか食事してくる(´∀`)
行ってら〜。でも癖って…(笑)。 ソケットプログラミングとかしてると付け忘れたりするけどな…。さてコード書こう…欝氏。
>>210 スマソ。
「load: Sample.java は public ではありません。
あるいは public なコンストラクタを持っていません」
ってメッセージが出てます。ソースはこれなんですが。。。
import java.applet.Applet;
import java.awt.Graphics;
class Sample extends Applet{
public void paint(Graphics g){
g.drawLine(10, 10, 100, 100);}}
>221 ハズカシー public classですね。 すっかり忘れてました。 サンクス。
>>216 を見て、自分で作れるようでなきゃ、プログラミングはあきらめた方が良い。
224 :
J.J.caca@21 :02/08/24 20:02
例外java.lang.NullPointerException.とはなんでしょう? どう処理すればよいのでしょうか? マニュアル類をいろいろ当たりましたが結局分かりませんでした。
226 :
J.J.caca@21 :02/08/24 20:05
今日、本屋でなんかJAVAの新しい本が出てた。 ちょっと心そそられた。
>>227 あほたれ。本のタイトルくらい書け。
Javaの新しい本なんぞ玉石混合で腐るほどあるわい。
今日、本屋でなんかエッチな本が出てた。 ちょっと心そそられた。
>>230 あほたれ。本のジャンルくらい書け。
新しいエロ本なんぞノーマルからSMまで腐るほどあるわい。
234 :
デフォルトの名無しさん :02/08/24 23:38
今日、本屋でなんかアイドルの写真集が出てた。 ちょっと心そそられた。
236 :
デフォルトの名無しさん :02/08/25 00:19
JAVAで1つのコンストラクタから別の(引数が異なる)コンストラクタを呼び出すことは可能でしょうか?
>>236 意味不明ですが、
class ABONE
{
ABONE()
{
}
ABONE(int a)
{
ABONE();
〜
}
}
なら全然可能。良くやります。
this(foo, hoge);
あう、あう、あうとおぶ・・・めもりーえ らー
Exceptionのほかに、Errorもキャッチできるのでしょうか? Throwable をキャッチしちゃうってのはありでしょうか?
>>240 Errorの子供達ってcatchしても復旧不可能なものって前提じゃなかった?
>>237 その方法は試したんですが、
cannot resolve symbol
symbol : method ABONE ()
とエラーが起こってしまいました。
244 :
デフォルトの名無しさん :02/08/25 01:49
↓こんな書き方って問題ある? star[i].x = (int)(Math.random() * scr_width); star[i].y = (int)(Math.random() * scr_height); star[i].speed = (int)(Math.random() * 3 + 1);
C++でのconstな引数と同じことするにはどうすれば良いんだ? 気持ち悪くてしょうがない。
247 :
デフォルトの名無しさん :02/08/25 02:18
C++のconstの方が気持ち悪い
>>246 final使ってるの見たことないんだが
>> 247 >> 248 あいまいなのって気持ち悪くない?
いい加減死んでくれジャバ
>>244 Javaのコードとしては問題は無いと思うが、
やろうとしていることに問題はあるかもしれない。
道義的に。
# 誤解ならスマソ。
>>253 え〜?
Hoge[] a;
とか宣言したときとか。
// 横レスですが。
>>246 // あれ?おれ、なんか誤解してる?
public class FinalParam {
static public void foo( final StringBuffer b ) {
b.append( "var" );
}
static void main( String[] arg ) {
StringBuffer sb = new StringBuffer();
foo( sb );
System.out.println( sb );
}
};
% java FinalParam
var
>>256 素直に「異常」だと言えばいいのに・・・。おまえわかってないだけだろ?
>>258 答えわかってるならわざわざ掲示板で聞くこともあるまい。
>>259 私は質問してませんが?
勘違いするなよ、2人しかいないわけじゃないんだから。
261 :
デフォルトの名無しさん :02/08/25 08:59
>>259 は、掲示板で議論するということができない あほぉ
これがエラー public class FinalParam { static public void foo( final StringBuffer b ) { b = new StringBuffer () }
>>262 #include <string.h>
#include <stdio.h>
class FinalParam {
public:
// compile error!
void foo( const char* b ) {
strcat( b , "var" );
}
};
void main() {
char s[100]; s[0] = '\0';
FinalParam* f = new FinalParam();
f -> foo( s );
printf( "%s\n", s );
}
// まぁ、別にいいか、どうでも。
>>264 長さ不定の配列(っつかポインタ)相手に strcat するか…
266 :
デフォルトの名無しさん :02/08/25 12:10
javaでcのsizeofみたいに型の大きさを調べるにはどうしたらいいんでしょうか?
プリミティブ型はサイズ決まってるから sizeof不要。
268 :
デフォルトの名無しさん :02/08/25 12:15
なるー。じゃあ普通のクラスの型、じゃなくてインスタンスの大きさはどうすれば?
269 :
デフォルトの名無しさん :02/08/25 12:18
final int A = 1,B = 2, C = 4, D = 8, E = 16, F = 32; として、例えば int v = A | C | E; この v に A, C, E が含まれていることを判断するには assertTrue( A == ( v & A) ); assertTrue( B != ( v & A) ); assertTrue( C == ( v & C) ); この A == ( v & A) というのがベストということでよろしいですか。
270 :
デフォルトの名無しさん :02/08/25 12:19
Vector のオブジェクトのコレクションに一つづつアクセスするのに 最もパフォーマンスがよいのは for( int i=0; i<list.size(); i++){ ..Object o = list.get(i); } ということでよろしいでしょうか。
>>268 問いに対して問い返して悪いが、
必 要 あ り ま す か ?
>>268 知らない。JVM仕様書とか読むとか。
ちなみに、どーゆーときにインスタンスの大きさ知りたいですか?
>>270 細かいことだが, 条件式で毎回 Vector#size() を読んでるのは効率悪い.
int size = list.size();
for (int i = 0 ; i < size ; i++) {
Object o = list.get(i);
}
最近のコンパイラだと最適化してくれるのかね。
275 :
デフォルトの名無しさん :02/08/25 12:27
>>271 メモリイメージを直接扱ったら実装依存になってしまうから?
必要ないんですよね。好奇心から質問させてもらいました。逝ってきます。
276 :
デフォルトの名無しさん :02/08/25 12:27
>>272 assertTrue( 0 != ( v & A) );
assertTrue( 0 == ( v & B) );
assertTrue( 0 != ( v & C) );
こうでつか
>>276 だってANDって1 1の時以外0だもん。
2番目がさっきから激しく意味不明だけど。
>>276 assertEquals( A, v & A );
とかのが良くないか?
gc使ってオブジェクトのサイズ(と思われるもの)を調べればいいかも. 正確な値を知ろうと思ったら無理だねぇ…当然実装依存だろうし.
>>279 GCの挙動気にしてたらGCのいみがない罠。
281 :
デフォルトの名無しさん :02/08/25 12:33
>>279 ,280
なるほど。そういう下のことは全部隠しちゃってるのか。
巧いこと作ってあるなー・・・(逆に抜け道を探したくなったりw)
今度こそ逝ってきます。
>>279 リフレクトとか、シリアライズを使うんじゃなかったっけか、そゆの。
# うろ覚え。
とあるオブジェクトの保有してるインスタンス数とかって どうやって調べればいいんでしょうか? 先に言っとくと、制限きついVMで動かすのでデバッグに必要なんです。
static変数をインクリメントしていくとかしか思い付かないが. public class Hoge { private static int instanceCount = 0; public Hoge() { instanceCount++; } }
286 :
デフォルトの名無しさん :02/08/25 14:38
・作成したアプレットをNN、IE、appletviewer等で確認 ・ソースをいじって再度コンパイル これを繰り返していると、アプレットの改造が反映されなくなるようです。 (ブラウザを再起動してもダメでした) キャッシュにたまっている感じなのですが、毎回リフレッシュした状態で アプレットを動かすにはどうすればいいんでしょうか?
>>286 (゚∀゚)URLのケツに ? をつける
288 :
デフォルトの名無しさん :02/08/25 14:48
JAVAコンソールからクラスローダのキャシュをクリアする。
289 :
デフォルトの名無しさん :02/08/25 14:52
byte hoge[]; hogeに配列を生成したとき、その配列はヒープに確保されるんでしょうか? また、hogeは配列を指し示すポインタとなりますが、hogeそのものは スタックに取られるんでしょうか?
>>289 byte[] hoge;
って書いたほうが良いらしい。
えーと、生成されるのはヒープ領域。
hogeは書く場所による。
メソッド内のローカル変数なら スタック。
>>290 (゚∀゚)サンクスコ
とても助かりました。
データベースのテーブル名の一覧を取得するには どうすればよいのでしょうか? java.sql.DatabaseMetaDataを使えば なんとかなりそうなんですが・・・
>>292 こんな感じ。これだとビューの名前も見えるけど。
Connection con = DriverManager.getConnection(,,);
DatabasemetaDate dmd = con.getMetaData();
ResultSet rs = dmd.getTables("", "", "%", null);
while(rs.next()){
System.out.println(rs.getString(3));
}
DatabaseMetaData::getTables()の引数とか、ResultSet::getString()の引数の意味に
ついては、API仕様のjava.sql.DatabaseMetaData::getTables()を参照のこと。
>>293 すばやいレス、ありがとうございます!!
しかし、アクセスだとサポートされていないのですね・・・
本気でDB環境作るしか・゚・(つД`)・゚・
295 :
デフォルトの名無しさん :02/08/25 20:19
初期化の処理ってinit()とstart()のどちらのメソッドに書くほうがいいですか? あとゲーム作ってるんですが、appletviewer でアプレット→再起動したときにゲームの動きが変になるんですが・・・どうして?
>>295 Appletの初期化ですよね?
start()は起動時以外にも実行される* ので、
初期化時に一度だけ実行したいのであればinit()に書きましょう。
* stop()が呼び出された後処理が再開される時
>>296 テメー正気か?
スレッドを止めるのにstop()を使うなんてよォ〜〜〜
気が狂ってるとしか思えねェーーぜッ!
>>297 start()とinit()が使用されるタイミングを説明する事で
それぞれが持つ意味を説明しただけ。
従って、一言も
> スレッドを止めるのにstop()を使
っているとは書いていないが。
// 用途と意味は分けて考えないと、
// 他人が読んで理解しやすい書き方は出来ない。
// これはCでのポインタ濫用の弊害に似ている。
はいはいご高説どーも
>>271 組み込みの場合はメモリの消費量が見積もれないとキツイぞ
JavaDocって英語と日本語のAPIマニュアル出力したいときどうすんの? いったんHTMLにして英訳?
>>274 Vector#get()は内部のイテレータを使って順次アクセスするので
>>274 のやり方だとかなり効率悪い。正しくは
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Object o = iter.next();
}
組み込みでVectorを使うのは大変効率が悪いと知った。 ちくしょう。
JavaにCのsprintfのような関数は有りますか?
>>305 System.out.print() とか
でもすげー重いよな。ヘビーウェイトコンポーネントってゆーんだっけ?
なんかこいつ起動するだけでメモリはぐちゃぐちゃになるし泣けてくる。
307 :
デフォルトの名無しさん :02/08/25 22:59
>>305 Cの"s"printf()相当のものなら、String型に変換して + でつなぎ合わせれば
できます。例えばこう。
int ichi = 1;
Mona m = new Mona();
String msg = m.toString() + "< こんにちは、>>" + ichi + "さん。";
Mona::toString()が"(・∇・)"を返すとすると、msgの中身はこうなります。
"(・∇・)< こんにちは、
>>1 さん。"
基本データ型は、明示的に書かなくても自動的にString型に変換されます。
性能のためにStringBufferを使うという場合でも、する事は一緒です。
309 :
デフォルトの名無しさん :02/08/25 23:13
310 :
J.J.caca@21 ◆0IGa82/c :02/08/25 23:19
>>310 classファイルがavoids.htmlのあるディレクトリ(フォルダ)にありますか?
314 :
J.J.caca@21 ◆0IGa82/c :02/08/25 23:35
>>313 まだ慣れないもんで( ´ー`)y-~~
Java&オブジェクト指向
315 :
J.J.caca@21 ◆0IGa82/c :02/08/25 23:39
Star.class作ればいいんじゃないですか?
317 :
デフォルトの名無しさん :02/08/25 23:45
>>308 sprintfと聞いて文字列連結を思い浮かべるこの人は変人だ。
あーごめん。勘違いした。
誤爆
322 :
デフォルトの名無しさん :02/08/26 00:54
>>307 よく分からんけど、ライブカメラにワラタ
>>307 Windows専門プログラマには将来ないだろ?
いや、それでもあの予定のなさは魅力かも。 つまり今なら何頼んでも専念してもらえるってことだろ。
325 :
デフォルトの名無しさん :02/08/26 06:10
Cのsprintf()相当という場合は、java.text.MessageFormat#format()だよ。
326 :
デフォルトの名無しさん :02/08/26 06:11
>>317 アンタはsprintfを何につかってるのよ・・・
>>308 >基本データ型は、明示的に書かなくても自動的にString型に変換されます。
基本データ型(プリミティブ型のこと?)以外でも明示する必要はないよ。
すべてのクラスのスーパークラスであるObjectが toString() を
実装している(つまりすべてのクラスは toString() を持つ)ので
暗黙で toString() を呼んでも問題ないから。
例示されている Mona m = new Mona() とかね。 m だけでよい。
>>326 文字列連結は strcat() では?
sprintf() は書式付出力(出力先はバイト配列)
>>328 似たようなこと出来るけどな。
sprintf(s,"%s%s",a,b);
>>329 ○sprintf() でも文字列連結できる
== java.lang.String にして + で連結では sprintf() の限定的な使用法の代用にしかならない。
×sprintf() では文字列連結しかできない
== java.lang.String にして + で連結で sprintf() の完全な代用になる。
332 :
デフォルトの名無しさん :02/08/26 13:51
enumねーのな。 自分で数字書くのか? めんどくせーよ・・・ つーか#defineねーのか。 public static final int って定数扱いだっけ? ↑これ、カタカナで書くとなんかの必殺技みたいだな。 「喰らえッ! パブリックスタティック・ファイナルイントォ――ッ!」 よろしく頼むぜブラザー
非常にレスが遅く申し訳ないですが、教えてくださった方感謝です。
>>59 の方が教えてくれたところで勉強したのですが、いまだに良くわからんです。
ぶっちゃけ”String[] args”を書くとなにができるんですか?
public class Hello{
public static void main(String args[]){
System.out.println("Hello");
}
}
例えばこのプログラムで"String args[]"はなにしてんですか?
本当に馬鹿な質問で申し訳ないのです。
334 :
デフォルトの名無しさん :02/08/26 14:53
Javaでメッセンジャーを作ろうと思ったんですがそんなに難しいですか?
>>333 >ぶっちゃけ”String[] args”を書くとなにができるんですか?
別に何も無い。
Javaの宣言では 型 名前 と書くのが良いとされているが、
String args[] だと、 型情報1 名前 型情報2 となっている。
String[] args だと、 型情報 名前 となっている。
>例えばこのプログラムで"String args[]"はなにしてんですか?
なにもしてないよ。
ただし、無ければ無いで動かないけどね。
>>333 そのプログラムでは何もしていない。
コマンドラインで引数を入力させてそれを利用したいときに使える。
>>334 いくつかすでにあるよ。ググッてみ。参考にすればそんなに
難しくはなかろう。
>333 "String args[]"がどのように使われるか public class Hello{ public static void main(String args[]){ System.out.println("私の名前は" + args[0] + "です。"); } } 例えば、こんなコードがあったとしてコンパイル後 java Hello 山田 って打てばプロンプトに 「私の名前は山田です。」 と出る。 同じように java Hello 鈴木 「私の名前は鈴木です。」 で、なぜ配列かというと複数引数が指定できるから public class Hello2{ public static void main(String args[]){ System.out.println("私の名前は" + args[0] + "です。"); System.out.println("私の友人の名前は" + args[1] + "です。"); } } 上のコードをコンパイルして java Hello2 山田 鈴木 って打てば 「私の名前は山田です。 私の友人の名前は鈴木です。」 となる。
大変良くわかりました!本当にありがとうございます。コマンドラインの引数というものの存在をしらなかったようです。 ただ、もう少しわからないところがあるのですが、プログラム中でコマンドラインの引数を必要としないプログラムであっても、"String args[]"というのが必要になりますよね? ずばり、main()ときたら、string args[] と書かなくてはいけないのですか? もし書かなくても良い場合があるとしたらどんな時なのですか?
>>340 メインクラスではないクラス内のmainメソッドとかな。
342 :
デフォルトの名無しさん :02/08/26 16:18
自分でやってみれ。 main()とか main(int i)とか main(String[] params)とか。
C言語の場合 sprintf(str,"%04d",12); と記述するところ、Javaでは DecimalFormat df = new DecimalFormat("0000"); str = df.format(12); と記述するしかないの? 変数が多くなると、各々に対応するFormatを作るのは面倒だなぁ
>>344 じゃ MessageFormat つかへ。
>>345 ありがとさん
使えそうです
文字列を「30文字左詰、余りはスペース」というフォーマットに変換するにはどうするの?
そして
>>344 は自分では何一つ考えなくなった。
その方が幸せだからだ。
彼にとって思考は苦痛そのものであり
ただ従うことだけが喜びだったからだ。
そしてjava嫌いになる。
>>348 早めにプログラマであり続けることを放棄すべきだね。
java始めようと思うのですが、 helloworldを表示し終えたレベルの初心者は、 まず、何を作れるようになると良いでしょうか。 曖昧質問で申し訳ないのですが、おながいします。
Hello,worldと表示するオブジェクトを作れ
それができたらとりあえず1秒に1回Hello,Worldと表示するスレッドを起こせ。
はい、今
>>351 のを成功させますた。
>>352 はサパーリ分かりません。うう…。
スレッドって何だろう…タイマーってどうやんだろう…。
調べます…。ありがとうでした。
しまった。
>>352 の前にもう一段階あった。
無限ループで1秒に1回Hello,wolrdと表示しろ
だった。
355 :
デフォルトの名無しさん :02/08/27 00:06
>>340 JVMの、ユーザースレッド起動シーケンスの仕様です。
なんでってきかれても、そういう仕様なので、諦めて
ください。
JVM起動
↓
JVMがユーザースレッドをいっこ作成
↓
JVM起動時の第一引数のクラスをリフレクションで探す。
↓
そのクラスの「public static void main(String[])」の
シグネチャのメソッドを、リフレクションで探す。
↓
見つかったら、JVM起動時第2引数以降を引数としてそのメソッ
ドをコールする。
リフレクションで探す時に、
「main(String[])」「main()」「main(String)」などは
「ベツの」メソッドとして認識するので、「main(String[])」
以外のメインがあっても、JVMからは呼ばれないよ。
>>353 スレッドわからないようじゃ 初心者にもなっていないな。
本かって、隅から隅まで覚えろ。
>>356 スレッドがわかったら初心者を脱出して初級者だろ。
初心者と初級者ってそんなに違うのか… いや、それほど違わんと言いたいのか… ?
大体わかるってどこまでのことなんだ? すみからすみまでわかって初級者なのか?
360 :
common君 :02/08/27 13:07
ジャヴァハウス以外に利用しやすいMLってないですか?
>>360 まるでジャヴァハウスが利用しやすいみたいな書き方をするな。
あそこは偉そうにしたい人達専用の隔離MLなんだよ。
>>357 初心者を読めばとりあえず「スレッドって何だろう」という質問は出ないはず。
最近メールの流量減ってるよね、じゃばはうす
366 :
デフォルトの名無しさん :02/08/27 18:21
フリーのJava用プロファイラでなにかおすすめのものがありましたら、 教えていただけませんでしょうか。 C等で使われるprofの様な感じで、メソッドの呼び出し回数と全体の処理に 占めるメソッドの処理時間の割合がわかれば十分です。
おいら -Xrunhprof で間に合わせてるけどなぁ。やっぱ
これじゃ役不足なの?
>>366
文字列を送るプログラム作ろうとしたんですが・・・ クライアントの方にnullしか表示されないのです。 どこがおかしいんでしょう・・ import java.io.*; import java.net.*; public class server { public static void main(String[] args) { try { ServerSocket socket = new ServerSocket(8765); Socket insocket = socket.accept(); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(insocket.getOutputStream())); out.write("テスト"); insocket.close(); } catch(Exception e){} } } import java.net.*; import java.io.*; class client { public static void main(String args[])throws Exception { Socket socket = new Socket("127.0.0.1",8765); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String suto = in.readLine(); System.out.println(suto); socket.close(); } }
367さん、ありがとうございます。 javaのオプションでプロファイラがあったとは気づいていませんでした。 (恥ずかしい) 現在、これで十分かどうかを検討していますが、よい感触です。 どーもでした。
>> 368 out.flush(); insocket.close();
371 :
デフォルトの名無しさん :02/08/27 23:01
JAVAを始めたいんですが、何か初心者にいい書籍がありましたら教えてください。 お願いします。
372 :
デフォルトの名無しさん :02/08/27 23:04
>>371 速習の道
1.独習Java
2.コアAPIドキュメント
3.作って作って作り倒す
373 :
デフォルトの名無しさん :02/08/27 23:09
>>370 できたー
どうもです。flush()メソッドとやらを調べてみます
>374 386って誰?
378 :
デフォルトの名無しさん :02/08/27 23:28
>>373 初心者本で覚えるのは、言語仕様とAPIの基本的な使い方までで十分。
その程度なら、平積みの本買えばどれでも同じ。
初心者本にそれ以上を期待している奴は、プログラミングを舐めて
いる勘違いバカ。どの言語使ったところで大成しない。
379 :
デフォルトの名無しさん :02/08/28 00:00
double型の値を四捨五入したいです。
↓こんなのつくりました。
/**
* 数値を四捨五入。
* 使い方:
* ・scaleに0を指定すると、指定された値を小数点以下第一位で
* 四捨五入し、整数として返します。
* ・scaleに1を指定すると、指定された値を小数点以下第二位で
* 四捨五入し、小数点第一位までの値として返します。
* @param val 数値
* @param scale 返却する値のスケール
* @return 結果の値
*/
public static String roundNumber(double val, int scale) {
BigDecimal bd = new BigDecimal(val);
bd = bd.setScale(scale, BigDecimal.ROUND_HALF_UP);
return bd;
}
これだと、
期待値 実行結果
roundNumber(9.994, 2) → 9.99 : 9.99
roundNumber(9.995, 2) → 10.00 : 9.99
roundNumber(9.996, 2) → 10.00 : 10.00
になり、五捨六入になってしまいます(9.995の場合、10.00がほしいのに9.99が返ってきてしまう)
どうしてこうなるかというと、BigDecimalのROUND_HALF_UPは
「丸める桁の数字が、両隣に近い数字に丸める」からであり、
9.995 の 5 に着目すると、左(小数第二位)の 9 と 右(小数第四位)の0では
9のほうが近いため、9.99 に丸められるからだと考えています。
(自分でも何を言っているのかよくわからん)
ttp://www.applitips.com/java/kiso/roundBigDecimal.htm 理屈はどうあれ、これだと一部の値でバグになるので使えないのですが、
どうやったらjavaで四捨五入できるのでしょうか?
・javaが標準で持っているクラスライブラリで出来る?
・自分で作らないとだめ?
どなたかきちんと動く四捨五入メソッドを教えてください。
>>379 (double)((int)(val*1000)+5)/10
>>373 このレビュー書いたやつは独習Javaを読んでないな
あれはプログラミングの本じゃなくて読み物なんだよ。
flush()メソッドを調べてもフラッシュするとしか 書いてないんですが一体どういったときにこのメソッドは使われるんでしょうか。
>>382 溜まってるものを抜いてすっきりしたいとき
トイレの、お水流すぼたんに Flush ってかいてあるだろ? つまり、そゆこと。 たまってるの全部、流しちゃうのさ。
>>382 書き込みバッファ(ライトバックキャッシュみたいなもん)
にたまっているデータを実際のデバイスに書き出す。
あーあ。ケコーンかぁ...
389 :
デフォルトの名無しさん :02/08/28 01:33
Javaでゲームつくってるんだけどガベコレもっと安定させる方法ないっすか? System.gc()はむちゃくちゃ遅いので別の方法で・・ 今作ってるゲーム遅い時で1秒くらいとまっちゃって、、Observerバンバンつかってるんだけど やっぱJavaでゲームつくるならオブジェクト指向せずできるだけメモリ生成/解放をしない設計にしないと駄目かなぁ 何かいい方法あったら教えて下さい
390 :
デフォルトの名無しさん :02/08/28 01:56
>>389 インスタンスは、ゲームにとってひまな時に必要なだけに生成/プール
して、忙しい間は使いまわすべし。
ゲームなんかだと特に描画関係で、使用する瞬間にでかいオブジェクト
作りまくっているかもしれんが、それはやめましょう。
優先戦略はオブジェクト指向云々と乖離しないよ。単に実装方針が変
わるだけで。
あと、世代別GC実装のVM使ってるなら、中途半端に寿命の長いインス
タンスは作らないという手もあるね。GC対象にするのは、なるたけGC
の負荷にならない短寿命のオブジェクトだけにしよう。(短寿命のオブ
ジェクトも、作らないに越したことはないけどね)
こんな感じですか。 // 弾。現在位置と方向を持つ。 public class Bullet{ private Dimension position; private Dimension direction; public Bullet(Dimension posision, Dimension direction){ this.position = new Dimension(posision); this.direction = direction; } //以下略 } public class BulletFactory{ Bullet[] bulletPool; Bullet[] usedPool; public BulletFactory(int size){ bulletPool = new Bullet[size]; //未使用の弾 usedPool = new Bullet[size]; //使用中の弾 for(int i = 0; i < size; i++){ bulletPool[i] = new Bullet(); } } public Bullet createBullet(Dimension position, Dimension direction){ return getUsableBullet(); //bulletPoolから一つ取り出して、それをusedPoolに加えた後で返す。 //面倒くさいので略 } }
あとねー、java.lang.ref.PhantomReferenceを使って、 GCしてほしくないタイミングでGCされうるオブジェクトを、 ヒマになるまで遅らせることができるよ。 忙しいゲームでどれだけ効果があるかはわからんけど。
インスタンスのキャッシュしたりとか、 いろいろ工夫する余地はあるらしけど、 そもそもjava自体が、一瞬止まることも許さないタイプの ゲームには向いてないんじゃないの
>>391 フリーオブジェクトプールは、普通にリンクリストでいいと思う
けどね。使う時は(おそらくFIFOで)コレクションの終端点の
つけはずししかしないんだから、十分高速でしょう。
getterでプールから外して、使い終わったら返せばいいさね。
配列は追加削除の管理がメンドイと思うなあ。
・・・まあ場合によるんだろうけど。
あれ?本筋から離れた話かな?
>>393 そうですね。
javaでそういったゲームをどうしてもやりたいときは、スケ
ジューラスレッドは常にSystem.currentTimeMillis()の返り値
を監視するようにして、予定より時間間隔があく場合は、その間
にするはずだった描画を間引きするといいと思うよ。
ゲームで、アニメーションを数コマ間引いたところで問題ないで
しょ?あとは、世代別GCでメジャーGCの起動がヘンな時に起きな
いようなチューニングすればいいさ。あれがおきると、1〜2秒と
か平気で吹っ飛ぶし。
>>373 このレビューは参考になりましたか? で笑っちゃった。
>>389 > System.gc()はむちゃくちゃ遅いので別の方法で・・
どう遅くて、どう障害があるのかを書いてもらえませんか?
371です。ありがとうございました。
>>375 どういう意味ですか?
401 :
デフォルトの名無しさん :02/08/28 13:29
JTableのカラムにJPasswordFieldを入れて パスワードを'*'でエコー表示させたいです。 ですが、DefaultTableModelに渡した初期データが エコーされず、素の状態で表示されてしまいます。 DefaultCellEditorにはJPasswordFieldを受け取る コンストラクタはないのは承知しているのですが、 JPass..をJTextField見なしで試してみました。 環境はwin2k jdk1.3.1_03 です。 単純化したソースをあげます。 参考になるURLやヒントでも結構です、どうかよろしくお願いします。 // 以下ソース import javax.swing.*; import javax.swing.table.*; public class TableTest{ public TableTest(){ JFrame frame = new JFrame("TableTest2"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object[] columnname = new Object[]{ "moge","hage" }; Object[][] datas = new Object[][]{ { "hogehoge","000" }, { "fugafuga","111" }, }; DefaultTableModel dbmodel = new DefaultTableModel( datas, columnname ); JTable table = new JTable( dbmodel ); TableColumn col = table.getColumnModel().getColumn(0); JPasswordField jpf = new JPasswordField(); col.setCellEditor(new DefaultCellEditor(jpf)); frame.getContentPane().add(new JScrollPane(table)); frame.pack(); frame.setVisible(true); } public static void main(String[] args){ new TableTest(); } } // ソースここまで
402 :
デフォルトの名無しさん :02/08/28 13:35
セルの表示はTableCellRendererでやってます。
403 :
デフォルトの名無しさん :02/08/28 13:35
セルの表示はTableCellRendererでやってます。
406 :
デフォルトの名無しさん :02/08/28 14:32
HashMapで登録したデータをiteratorで全件取得する場合、 putした順番は保証されないのでしょうか?
>>405 私も下巻だけ持ってる。
java特有の仕組みを知りたきゃ下巻だけで十分だな。
内容は浅いので手始めに読むにはお勧めだが、読みごたえがないかも
408 :
デフォルトの名無しさん :02/08/28 15:05
ちなみに2冊目は何を読みましたか?
4冊目あたりに「Effective Java」を読んだ。 中・上級者は必読の書だし脱初心者を目指すヤシも読むべきだ。 薄いし特に難しいことが書いてあるってわけでないのに価値は高い。
>>402 ヒントどうもありがとうございました。
>>401 に追加したものを簡略化しておきます。
public class TableTest2{
public TableTest2(){
...
TableColumn col = table.getColumnModel().getColumn(0);
JPasswordField jpf = new JPasswordField();
col.setCellEditor(new DefaultCellEditor(jpf));
// 追加ここから
MyCellRenderer myRenderer = new MyCellRenderer();
col.setCellRenderer( myRenderer );
// 追加ここまで
...
}
public class MyCellRenderer extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column ){
setValue("*****"); // "*****"とエコー表示される
return this;
}
}
}
マシン固有の情報を取得する方法はあるのでしょうか?
412 :
デフォルトの名無しさん :02/08/28 18:27
age
>>411 System#getProperties()
>>406 ハッシュ法って何やってるか知ってる?
Object#hashCode()の戻り値を、HashMap内部の参照保持位置のインデックス
計算につかってるんだよ。
だから、Iteratorが返す順序は、HashMapに登録したエントリのキーオブジェ
クトのhashCode()が返す値の順序に、大体なってるはず。(実際には、コアAPI
のHashMapの実装は、"シノニム発生時は、その位置から一番近くのあいている
場所にしまう"なので、hasCode()が返す値が同じモノを何度も入れると、妙な
順序になるけどね)
入れた順序を保障したいなら、キー値のListを別途作っておきましょう。
>>410 getTableCellRendererComponentの第2引数valueが、本来そこに
書き込まれるはずのデータだから、それ使うといいよ。
StringBuffer buf = new StringBuffer();
for(int i = 0 ; value!=null && i < value.toString().length();i++)
buf.append('*');
setValue(buf.toString());
とか。
417 :
デフォルトの名無しさん :02/08/28 22:43
Javaを一人で始める時、お奨めの本はありますか?
「一歩先行くインターネット Java入門」「はじめてのJava」「Javaクイックリファレンス」が
>>3 の質問と回答集のページで紹介されているのですが、
その他に最近でたものやよいものがあれば教えて下さい。
既出だったらすいません。
BlackBookはどうなんですか?
C++も独習C++ですか?
421 :
デフォルトの名無しさん :02/08/28 22:57
cloneの使い方を教えてください
>>421 自分の臓器等が悪くなったときのスペア。
>>415 ありがとう。
いろいろやってみました。順番は保たれませんね。
426 :
デフォルトの名無しさん :02/08/28 23:16
>>424 失礼しました・・。ありがとうございます。
1.1が一番いい。シンプルでいい。
429 :
368・・ :02/08/29 02:54
以前のサーバからクライアントへの文字列送信はflush()メソッド で解決したので次はクライアントからも文字列送信できるように同じようにやったら・・ プログラムがどちらも待機中に。両方向への送信はこんな簡潔プログラムでは無理なんでしょうか。 import java.io.*; import java.net.*; public class server { public static void main(String[] args) { try { ServerSocket socket = new ServerSocket(8765); Socket insocket = socket.accept(); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(insocket.getOutputStream())); BufferedReader in1 = new BufferedReader(new InputStreamReader(insocket.getInputStream())); out.write("テスト"); out.flush(); String suto2 = in1.readLine(); System.out.println(suto2); insocket.close(); } catch(Exception e){} } } import java.net.*; import java.io.*; class client { public static void main(String args[])throws Exception { Socket socket = new Socket("127.0.0.1",8765); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedWriter out1 = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); String suto = in.readLine(); System.out.println(suto); out1.write("テスト2"); out1.flush(); socket.close(); } }
readLine()つかてるからだよ。 サーバーのほうのout.write("テスト");だとまだ行が終わってない。 ここを ("てすと\n") とかにすればうまくいくんでない??
432 :
エラー?クラスパス? :02/08/29 09:08
前回PATHでお世話になったものです。 表示で Exception in thread "main"java.lang.NoClassDefFoundError:プログラム名 とでますが単純なミス?クラスパスの設定?でしょうか。 よろしくお願いします(本にはこんなのまったく載ってないんです)
>>411 それやったけど、たいした情報取得できないね。。。
MACアドレスを取得する方法はないのかなぁ。
>432 ここから上に向かって読み返せ 既出だ
>>416 さん
書いて頂いたソースの方がキレイなので参考にさせていただきますね。
丁寧なレスに感謝します。
436 :
デフォルトの名無しさん :02/08/29 10:36
Appletのお絵描きソフトのコードでわからないところがあります。 mousePressedとmouseDraggedに使われていたのですが、 java.awt.event.InputEventのconsume()というのはどういう処理を行うのでしょうか? 調べたところ 「このイベントを消費し、作成側のソースがデフォルトの方法でイベントを処理しないようにします。」 とあったのですが、意味がよくわかりません。 どなたかわかりやすく説明していただけませんでしょうか?
438 :
名無しデフォ :02/08/29 11:50
某所でhelloworldがうまくいかんという質問 があったのだが、やはりネタなんだろうな。 しかもhelloworldじゃなくて微妙に名前変えてあったし。
440 :
デフォルトの名無しさん :02/08/29 13:45
javaのフレームワークで「ストラット」?なるものがあるらしいのですが 一体何なのでしょうか。
>>437 436ではありませんが、親とはなんでしょうか?
ありがとう。プログラム読みやすいように段差つけます。 そのとおりサーバの方を\nで改行したらいけました。 それでクライアントの方には\nをつけなくていいのかなと思い、 つけてみたところ結果は同じになりました。 クライアントには何故\nをつけなくてもできるんでしょうか
ソケットクローズするからじゃん? いっぺんクローズしないで無間ループにでも いれて実験してみそ。(プログラム終了しちゃうと だめだからな)
↑をみましたがわかりません。せめてなにが原因なのか教えてください。 4か5に答えがあるんですか?
んー。細かく言うと、readLine()メソッドというのは名の とうり、一行とりだして返すメソッドなわけ。だから、改行文字 (\rとか\nとか\r\nとか)がくるまでは、制御をかえさない、 つまり待機状態になるのさ。だから、\nを出力するとうまく いったわけ。クライアントは\nを出力しなくてもすぐあとに socket.close()するから、そのときにEOFが出力される (というかサーバーから見て入力される)んだよ。 readLine()はEOFも行の終端と見るから、それでうまくいく。 どうでさう?
447 :
初心者ですみません :02/08/29 18:50
Javaでコンピューター・シミュレーションしようとしてる馬鹿ですが、 計算結果を一発でグラフ化しようとするならどうするのが一番楽ですか?
448 :
デフォルトの名無しさん :02/08/29 18:52
gnuplotのデータ形式で結果を吐く。
449 :
432 445 :02/08/29 19:15
一応、91さんのをみてユーザーとシステムの変更をしたんですが これでOKですか? これがクラスパス?
450 :
初心者ですみません :02/08/29 19:16
いま、gnuplotをダウンロードしたんですがファイルを開くアプリケーション を選んでくださいといわれたんですが、どうしたらいいか分かりません。 ちなみにOSはwindowsです。ほんとに初心者ですみません。
初心者かなんだかしらんが、 とりえずgoogleをおすすめする。 上から10件ぐらいよめばだいたいわかるはず。
>>444 ,446
んー理解しました。さらに改良加えていってみます。
なんとかgnuplot解凍できました。お騒がせしました。
(´-`).。oO(解凍って。。。道は遠く険しい)
>>433 そんなものとってどうするの?Winのユーザー管理の真似でもするの?ヒィィ
>>440 Jakarta-Apacheのプロジェクトの一つ「Struts」。
Servlet/JSPベースでWebアプリケーション開発をする際に、ロジック開発と
ビュー開発の責任分離をきっちりやれるようにしたフレームワーク。
・・・JSPベースでフレームワークという発想は時代遅れだと思うんだよね。
(Strutsを使ったところで、結局は)JSPってJSPから何でもできてしまうので、
C++みたいな存在なんだよね。
Webデザイナーと呼ばれるような人種にクライアントビューの開発を任せるような仕
組みにするためには、そもそも、"ビューから何でもできる"などという自由度をゆ
るさないほうがいい。
(JSP自体は便利だから、Webアプリを全部自分で作るような規模の開発なら、JSPを
思い切り活用すべきだと思うけど)
ビューは、Servlet2.3ベースでXSLTとか其の辺使って、制約の厳しい環境(どうや
ってもgetしかできないとか)で作るべきだと思うねえ。
ビューが必要以上にサーバサイドのコンテキストの操作などできないようにした方
が、あとあと管理が楽だと思うのよ・・・"責任分担とかそういう意識のない半端技術
オタク馬鹿が調子こいてとんでもないJSPソース書く"ことがあるんだよ〜・・・コマッタ
モンダよ〜・・・
どんなもんでしょか。
457 :
デフォルトの名無しさん :02/08/29 22:46
>>457 どうでもいいけど、この記事誤字脱字多すぎないか?それだけで書
いている人間の力量を疑うよね。「ほんとにわかってかいてるの?」
って。
EJB2.0って何事かシランケド、EntityBeanの実装をコンテナがやるって
いうのは、コンテナのチューニング依存だねえ。この類の調査は、大
体自分の都合のいいサンプル集めてることが多いからねえ・・・
おいらも経験ある。「うさんくさ〜い」ミドルウェアの開発会社に
出向してた時、その宣伝の為にやる試験が、客観的な試験法をとっ
てなかったんだよね。オマエラロクデナシだなあ、と正直思ったよ。
まあ、評価版とって自分で試すベシでしょう。
459 :
デフォルトの名無しさん :02/08/29 23:06
j2sdkフォルダの中にあるsrc.zipは解凍したほうがいいんでしょうか。 よろしくお願いします。既出だったらすいません……。
>>459 コアAPIのソースを固めてあるだけだよ。APIのソースコードが読みたい
と思ったら解凍するもよし、適当なインスペクタ使って直接読んでもいい。
コンパイルしたclassファイルはJREのrt.jarの方に入ってて、ラン
タイムはそっちをみに行くので、実行する為に解凍する必要なんかないよ。
>>460 詳細なレスありがとうございます。
検索した結果「必要なら解凍」としか書いてなかったので気になってました。
実際に解凍してソースを見てみることにします。
本当にありがとうございました。
462 :
デフォルトの名無しさん :02/08/29 23:18
特に解凍しなくていいです。 ソースファイルを解読しない限りは。
demo ソースとタメを張る一大情報源。 必要にならないのに読もうと思うのは、百科事典を通読しようと思うのと同義だが。
464 :
100 432 :02/08/30 09:07
いろいろいじっても 表示で Exception in thread "main"java.lang.NoClassDefFoundError:プログラム名 とでます。 システム環境変数はいじってはいけなかったのでしょうか? どうしたらいいのかヒントください。 よろしくお願いします。
>>464 コンパイルしてないとか
mainがmianになってるとか
ファイル名違うとか
467 :
100 432 :02/08/30 09:24
コンパイルしてませんでした もうちょっとがんばってみます
468 :
デフォルトの名無しさん :02/08/30 09:57
>>465 細かいコトだが, mainがmianになってたらNoSuchMethodExceptionじゃないのか?
>>465 パスとクラスパスがないときの典型的なエラーだと記憶。
470 :
100 432 :02/08/30 10:00
続き 超初心者でスマソ コンパイルってなに? メモ帳で「***.java」で保存→DOS窓で java プログラム名 実行でしたが おかしいですか? ボーランドJビルダー7ではJAVAプログラム本体がみえていたので デバッグとかできてましたがJDKはないようなのですが。 (Jビルダーでも実行の結果がわからずにあきらめてました)
>>470 入門書読めや。金出す気無いなら自分で編み出せ。それが出来ないならやめてしまえ。
JavaからVBでつくったDLLのメソッドをコールできますか? VCでつくったJNI対応DLL経由ならできるみたいですが、 VBでつくったDLLを直接loadLibrary()等で使える方法が あればご教示ください。
>>461 > 実際に解凍してソースを見てみることにします。
って言ってるのに、
>>462 > 特に解凍しなくていいです。
> ソースファイルを解読しない限りは。
ってどういうこと?
>>463 > 必要にならないのに読もうと思うのは、百科事典を通読しようと思うのと同義だが。
ってどういうこと?
実際に解凍してソースを見たい人にはそうさせればいいじゃん。解凍しなくても読め
るだろ?って話なら別だけど。
477 :
100 432 :02/08/30 11:28
本を読み直しました。 javac実施 OKでした。 471さん472さんまた、よろしくです。
478 :
デフォルトの名無しさん :02/08/30 11:35
以下のソースがあります。 public void nest(String a) { System.out.println(a.hashCode()); ・・・(A) for(int i=0; i<2; i++) { System.out.println(a.hashCode()); ・・・(B) for(int j=0; j<2; j++) { nest(a + "b"); ・・・(C) } } } 普通に(A)→(B)と処理された場合は(A)と(B)は同値なんですが、 (C)→(A)→(B)と処理された場合は(A)と(B)の値が異なります。 (A)→(B)→(C)→(A)→(B)として処理された場合のhashCode例: 100→100→200→300→100(前(A)(B)と同値) どうしてなのでしょうか? 教えてください。
Tomcat4.0.4でFilterを使おうと思ってるんですが <filter-mapping>/hoge.jhtml</filter-mapping> <filter-mapping>/test/*</filter-mapping> <filter-mapping>*.jhtml</filter-mapping> のようなマッピングだと目的のフィルターが動くのに <filter-mapping>/test/*.jhtml</filter-mapping> <filter-mapping>test*.jhtml</filter-mapping> などでは動きません。 なんでですか? *は最初か最後にしかつかえない? あと <filter-mapping>test*.jhtml</filter-mapping> だと404NotFoundになってしまいます。 これはサーブレットの仕様?
<filter-mapping>は<filter-mapping><url-pattern>ね。
test*でも動かなかった。 拡張子の指定か、ディレクトリの指定しかできないっていうこと?
>>478 aの指す中身がその時々で違うから。
System.out.println(a.hashCode() + ":" + a);
ってやってみ。
>>482 説明不足であったようです。
(C)→(A)→(B)と行った場合に(A)(B)間ではaに対して何も行っていないのに
hashCodeが(A)と(B)で異なることに疑問を感じています。
*.
>>478 のソースはこの現象が起きているものと異なり要約して載せています.
>>474 ,476さん
ありがとうございます。
現在JComを使って実験中です。
#JComをインストールしてJavaファイルをコンパイルしたところ「パッケージ
jp.ne.so_net.ga2.no_ji.jcom は存在しません。」とかいうエラーが出て
コンパイルが通らなくて今はまっていますが・・・
もう少ししたら結果を報告します。
486 :
デフォルトの名無しさん :02/08/30 13:17
Javaのアプリを起動したら突然めにメニューの所が 文字化けしてしまいまいした。 普段ファイルとかを表示している所が ”□□□”と なってしまいました。 直す方法はありませんでしょうか? SDKとJREの再インストは試みたのですが、駄目でした。
>>483 いちおう少しだけ責任感じたのでやってみた。
ためしてみたけど再現しないぞ?
public class nest
{
public static void main( String[] args ){
nest n = new nest();
n.nest("a");
}
public void nest(String a) {
if( a.length() > 3 ) return;
System.out.println("(A)hash="+a.hashCode()+":"+a);// ・・・(A)
for(int i=0; i<2; i++) {
System.out.println("(B)hash="+a.hashCode()+":"+a);// ・・・(B)
for(int j=0; j<2; j++) {
nest(a + "b");// ・・・(C)
}
}
}
}
「487の結果」 $ java.exe nest (A)hash=97:a (B)hash=97:a (A)hash=3105:ab (B)hash=3105:ab (A)hash=96353:abb (B)hash=96353:abb (B)hash=96353:abb (A)hash=96353:abb (B)hash=96353:abb (B)hash=96353:abb (B)hash=3105:ab (A)hash=96353:abb (B)hash=96353:abb (B)hash=96353:abb (A)hash=96353:abb (B)hash=96353:abb (B)hash=96353:abb (A)hash=3105:ab (B)hash=3105:ab (A)hash=96353:abb (B)hash=96353:abb (B)hash=96353:abb (A)hash=96353:abb (B)hash=96353:abb (B)hash=96353:abb 以下略
>>486 日本語のメニューが文字化けするなら、フォントが欧文フォント
(Arialとか)になっているのかも知れません。
>>482 さん、例が良くなかったようです。
余分なものを取り除いてしまったために再現しないソースとなっていました。
こちらでもう一度原因を追求し、わからない場合にもう一度再現できるソースを添付したいと思います。
お騒がせして申し訳ございませんでした。
>>489 ありがとうございます。
フォントの変え方ってどうやるのでしょうか?
あともう少し詳しく書きますと。
Forteは文字化けしていないのですが、
DoJaが文字化けしてしまいます。
492 :
デフォルトの名無しさん :02/08/30 20:10
javadocについて質問です。 Windows上でEUCのソースファイルを「javadoc -encoding EUC-JP /path/to/*.java」と エンコーディングを指定してjavadocコマンドを実行します。 生成されたHTMLは、javadoc自体が作り出す文字列、例えば「すべての実装インタフェース」とか 「階層ツリー」、「非推奨」などは確かにEUCになっています。が、肝心の ソースにあったjavadoc用コメントは文字化けした状態です。 javadocって、そういうものなの?
// Test.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class Test extends Applet { MyButton button = new MyButton(); public void init() { button.init(); } public void paint(Graphics g) {} } class MyButton extends Applet { private Button button1; public void init() { button1 = new Button("hoge"); add(button1); } } ボタンのクラスを作りたいんですが、これではボタンが表示されません。 どうすれば表示されるか教えていただければ幸いです。 教えてクンで申し訳ありません。
497 :
デフォルトの名無しさん :02/08/30 22:25
>>496 勉強してクラスの使い方覚えなさい。それがまず必要。
498 :
デフォルトの名無しさん :02/08/30 23:02
Javaの設計の質問なのですが・・? リスナオブジェクトが外部から消される可能性があるとき addしたListenerListからリスナオブジェクトをremoveしないと参照がのこってリスナオブジェクトがガベージコレクションされないですよね? public class Class1 extends addXXXListener付きクラス{ : addXXXListener(new XXXListener()); : } まぁこんな感じでXXXListenerへ通知するのですが、たとえばXXXListenerが、ウインドウみたいやつで「X」ボタンが押されたときremoveXXXListener(XXXListener)したいのですが、、どうやって実現するのが一般的ですか? XXXListenerからClass1へ破棄の通知をおくって、Class1でremoveしようと考えているのですが、なんだか複雑っぽくて・・もっとスマートな方法があれば教えて欲しいのですが
499 :
デフォルトの名無しさん :02/08/30 23:50
スレッドをJVM上で動かした後、 プロセスを見ると1つのスレッドが複数のプロセスから成っているような気がします。 これはOSによるところが大きいと思いますが。 情報処理の勉強をしていた時に、 プロセスの細かいのがスレッド と書いてあった気がするのですが、これに反しませんか? それとも、メモリを共有しているからスレッドと呼んでいるだけなのでしょうか。
>>499 Linuxだとそう見える。そんだけ。
おれもさいしょはびびったよ。
なんで8つもあるんだーって
501 :
デフォルトの名無しさん :02/08/31 00:05
見えるって言うのはどういうことでしょう。 実際にプロセス複数走っていますよね。 コンテキストスイッチが重いからスレッドという考えが出たと思うのですが、 JavaのスレッドがOSのプロセスをまたがるなら、重いですよね。 ひょっとしてJavaのスレッドとOSレベルのスレッドは レイヤーが違うので正確には別物なのでしょうか。
jdk1.3ですが、class.zip等はどこにあるのでしょうか? classpathを設定していないのにコンパイルできます。
>>501 カーネルスレッドをサポートしていないOSだと、JavaのThreadは
プロセスになるはずです。でないとマルチCPUでスレッドの処理を
並列で走らせることができません。元々Unixはプロセスが軽いので
カーネルスレッドはあまりサポートされていなかったんですが、Linux
はまだサポートしていないんですか?
505 :
デフォルトの名無しさん :02/08/31 01:41
DOS窓でjavacコマンドを使う時に、エラーが多いと 最初のエラーの部分が見えなくなってしまうのですが、 エラー表示を1ページずつ表示する事は出来ないんでしょうか?
>>503 class.zipってなんですか? rt.jarかtools.jarのこと?
それともOracle thin driverのclassesXX.zipのこと?
507 :
デフォルトの名無しさん :02/08/31 01:44
>>505 コンパイルコマンド | more
ってやってみたら?
>>503 classesxx.zipというのはオラクルだけなのですか。
JDBCとかですよね?
勘違いしていました。
JAVAで使われるクラスというのはtools.jarにあるのですか?
開いてみればわかるのでしょうか?
510 :
デフォルトの名無しさん :02/08/31 02:04
>>509 tools.jarに入ってるのはコンパイルに必要なクラスで、rt.jarに
入っているのがJ2SEの標準クラスライブラリです。通常はこの二つは
クラスパスに入れなくてもコンパイルできます。
>>508 すまん。思いつきで書いてしまった。
まず、DOS窓のプロパティで画面バッファのサイズが変えられないか
試したほうがいいね。
>510 ありがとうございます。 助かりました。
>>512 コマンドプロンプトならともかく DOS 窓(MS-DOS プロンプト)では無理だろう。
>>513 JDK のバージョンによって使えたり使えなかったりするのが嫌なところ。
516 :
デフォルトの名無しさん :02/08/31 03:03
>>504 カーネルスレッドあるけど、じゃばが対応してないだけだっちゃ。
517 :
デフォルトの名無しさん :02/08/31 03:10
>>505 男はだまってXP買え!男かどうかしらんけど
520 :
デフォルトの名無しさん :02/08/31 04:59
if(hoge)HOGEclass hoge = new HOGEclass(arg1,arg2); って書いたら文じゃないでつ。といわれたので if(hoge){ HOGEclass hoge = new HOGEclass(arg1,arg2); } と書いたらとおりました。最初のやつってダメなんですか?独習ジャヴァにはOKっぽく書いてあるんですが。
>>520 書けても意味ないわな。HOGEclass hogeのスコープを考えてみるべし
522 :
デフォルトの名無しさん :02/08/31 05:35
>>521 スコープでつか。下の文では{}の中だけで終わるってことですか?
他のアプリではこれでうまくいったんだけどな〜
HOGEclass hoge での変数hogeが何処からも誰からも参照できないから、変数宣言しても意味がない、ってこと。 if (true) new HOGEclass(); は可能。 どうして出来ない?と言われたら、「そういう言語仕様だから」ってことになるけど、 もし出来ても上のとおり何の意味も無いから、十分妥当な仕様です。 「java 言語仕様」でググれ。 他のアプリってのが何かわからないけど、Javaでは文法的に間違ってるからコンパイルできないはず。 コンパイル出来たのならそれはコンパイラのバグ。
>>523 は
>>520 の上のコードのことね。
下のコードは
if(true){
HOGEclass hoge = new HOGEclass(arg1,arg2);
System.out.println(hoge.toString());
}
とか、複数の文を入れることが出来るから全く問題ない。
特定のファイルがシンボリックリンクかどうかを知る方法ってありますか? FileクラスのAPIドキュメントとか見ても見当たらないのですが….
526 :
デフォルトの名無しさん :02/08/31 09:49
Runtime で exec("ls -l") でもやっとけ
>>501 Linuxのスレッドがそういうもんなんだよ
528 :
デフォルトの名無しさん :02/08/31 12:33
Win2000+Cygwinを使用しています。 CygWin上のPostgresにWindowsの Javaプログラムからアクセスしたいのですが、 Class.forName("org.postgresql.Driver"); db = DriverManager.getConnection("jdbc:postgres://localhost:5432/template1","user",""); と実行すると Java.sql.SQLExeption:No Suitable Driver エラーが出てしまいます。いろいろ調べた結果 URLの指定が間違っているのではと思われたのですが URL指定はjdbc:postgres://localhost:5432/template1 ではまずいのでしょうか? やった手順としては postgresをJavaoptionをつけてコンパイル、インストールし、 できたjdbc-7.1-1.3.jarを任意の位置にコピーしCLASSPATHを通す。 です。 なにかご存知の方教えて下さい
>>513 初心者は javac -Xstdout aaaaa.java ってやってしまうことがある。(w
530 :
デフォルトの名無しさん :02/08/31 13:04
PHPで echo md5("2ちゃんねる"); を実行すると 8d20a34c5914543407ca5b715e9be5d3 こんな結果が返ってきます。 Javaでこのようなmd5値を取り出すにはどのようにしたら よいのでしょうか? 以下のように書いてはみたのですが、 文字化けしたようなものが出力されてしまいます。 MessageDigest md = MessageDigest.getInstance("MD5"); md.update("2ちゃんねる"); byte[] b =md.digest(); String result = new String(b); System.out.println(result);
>>530 で、文字コードはエンコードデコードで統一してるの?
>>530 で、文字コードはエンコーデートで統一してるの?
>>530 一般論だけど、出力されたものが「文字化けみたい」
って感じたら、16進表現で出力して何が出ているか確認しようね。
で、今度の場合はMD5計算されたbyte[]をそのままString
に入れたら、意味不明な文字列が出力されるのは当然でしょ。
MessageDigest.toString()とかなかったっけ?
>>531 んっ? 文字コードが関係あるの?
ソースの
md.update("2ちゃんねる"); の部分は
md.update("2ちゃんねる".getBytes()); でした。
byte[] b = md.digest(); for (int i = 0; i < b.length; i++) { System.out.print(Integer.toHexString(b[i]) + " "); } とすると、次のような出力が得られました。 ffffffb5 ffffffb5 0 fffffff8 ffffffb5 6f 6f e ffffffca 4e ffffffba ffffffc6 ffffffff ffffffd1 ffffffdf ffffffc1 各パートの後ろ二桁だけ取ってこれればいい感じなのかな。 自分でも何を実行しているのかよく分かってないんだけど・・・
そもそも自分が何をしていているのかわかっているのかと。
>>530 MD5ってバイト列に対して行われるから、getBytes()するときに
どの文字コードでバイト列を取り出すかで結果が違うんだよ。
ためしにEUC-JPで取り出したら、530のPHPでの結果と一致した。
ということは、PHPを動かした環境とJavaを動かした環境の
デフォルトエンコーディングが違うということ。質問するときには
環境くらいちゃんと書く。
あと、byteは符号付だからIntegerに変換するときは事前に0xFFと
AND計算しておくのを忘れずに。
>>538 「事前に0xFFとAND計算しておく」部分は何のことやら
理解していないのですが、言われたとおりに次のような
コードを書いてみたら、PHPのときと同じ結果を出力
できました。感謝です。
md.update("2ちゃんねる".getBytes("EUC-JP"));
byte[] b = md.digest();
for (int i = 0; i < b.length; i++) {
int a = 0xff & b[i];
System.out.print(Integer.toHexString(a));
}
540 :
デフォルトの名無しさん :02/08/31 16:39
コンパイルしようとすると『パッケージ・・・が存在しません』 等というエラーが発生するのですが、何が悪いのかさっぱり 分かりません。助けて下さい。
>>538 Stringからとってきたbyteを、Oxffとビット積とる
必要あるの?ほんとに?
>>543 ウワアアン!ヒドーイ!
いやみとかじゃなくて、よくわからなかっただけ
なんだけど・・・
>>544 上位がfでマスクされてるんだからそのままでは本来の文字コードとは別ってことでは?
だから0x00000〜にするためにAND取れって話だと思った。
>>542 まず文字列から採ってきたbyteを16進表示するんじゃなくて、文字列を
MD5にかけて出てきたbyte値を16進で出力する話であるってのを理解しる。
>>544 文字列の16進表記にしたって、us-asciiみたいに7bitで収まる
ことが保証されていないcharsetなら、型変換の際にANDとるでしょ。
>>545 ボケてました。チャント読め、俺。(スマヌ
549 :
でふぉるとん :02/08/31 21:19
ちょっと聞いてよ。 Webでさぁ、メニューとかフッターとか、共通の部分あるやん。 そのなかにJSPとかサーブレットとか、各ページが入る感じの。 その共通部分もJSPでやりたいと思ったら、なにか方法ある? JSPの中にJSPを入れたい、内側のJSPではそれを気にしたくない、という。 必ずJSPの最初と最後にこれを記述してください、みたいなことをやりたくないので。 フィルター使って chain.doFilter(request, responseWrapper); request.setAttribute("contents",responseWrapper.toString()); RequestDispatcher rd = request.getRequestDispatcher("/common.jsp"); rd.forward(request, response); みたいなこと書けばいいやと思ってたら、むりだった。 みんなこんなとき どうしてる?
JAVAをやっているんですが、ソフトは Borland JBuilderとVisual J++とどっちがいいですかね?
>>549 そこだけ関数にする。
ヘッダフッタコピペさせるよりは確実で汎用性も増す。
>>550 やってるのはJavaではなく、JAVAなのだね。なるほど。
今から始めるとかならトモカク、やってるというのにVisualJ++を使おうと思うかねぇ。
Forte(現SunONE Studio)の方が、無料版の制限がゆるくていい。
554 :
でふぉるとん :02/08/31 21:39
>>552 で、その「関数」でJSP使うにはどうすればいいですか?
>>549 JSPのinculdeじゃだめれすか?
>>555 タイプミスった・・
<jsp:include page="header.jsp" />
↑これじゃダメなのかと・・・言いたかったんだ(´・ω・‘) ショボーン
>>555 includeディレクティブだと、includeするファイルが変更されたときに、確実に表示に反映させる方法が思いつかないし、めんどくさそうなので却下ですね。
includeアクションって、呼び出し側で設定したページ属性なんかを読み込めるのかな?
あ、読み込めそうだ。試してみよう。
それなら使えそう。
やるとしたら、サーブレットでRequestDispacherのinclude呼び出してからfowardかな。
でも、この方法だと、外枠JSPは2分割になってしまうですね。
こんな感じのフィルターつくりました。解決。 外枠JSPを2分割する必要もなく。 chain.doFilter(request, responseWrapper); request.setAttribute("contents",responseWrapper.toString()); responseWrapper.reset(); RequestDispatcher rd = request.getRequestDispatcher("/common.jsp"); rd.include(request, responseWrapper); PrintWriter out = response.getWriter(); out.write(responseWrapper.toString());
559 :
デフォルトの名無しさん :02/08/31 22:37
>>550 当然Visual J#.NETでしょう!!!
561 :
デフォルトの名無しさん :02/08/31 23:09
初心者が Java を一から勉強するのに一番の IDE はなんなんでしょ? Eclipse で OK なんですか? ちなみに酔ってます
>>561 JBuilderが直感的でいいぞ。説明書なしですぐ使える。
ほかのは高機能かもしれないけどすぐに使いこなすのは難しい。
>>562 そうですか?思い通りにコンポーネント配置できなくて数分で死にましたが。
>>563 コンポーネント配置? ああアプレットとか作るときに使うやつ?
ごめん。CUIのアプリケーションしか作ったこと無いからGUIのやつわかんね。
>>564 なんじゃそら。
で、
>JBuilderが直感的でいいぞ。説明書なしですぐ使える。
>ほかのは高機能かもしれないけどすぐに使いこなすのは難しい。
かいな。
C++Builderと比べてどうだい? Learning版とかあるのかな。 あれば買ってみるのだが。
>>566 JBuilder Personalはただじゃなかったっけ?
Swingが軽く動くマシンパワーがあれば、JBuilderもいいんだろうね。
ウチじゃ重くていやになるので、使わない。Eclipseツカッテマス。
GUIビルダってアホなソースはくので嫌いです。
>>565 なんかおかしなこと書いた? うーん。
昔、秀丸とjavacだけじゃそろそろ面倒だなと思って
JBuilderを使ってみたんだけど移行が楽だったよ。
プロジェクトの作成からコーディングに入るところまで
何もマニュアル読まずに出来るのってすごいと思わない?
569 :
デフォルトの名無しさん :02/09/01 04:07
xyzzy + JavaTinyConsole使ってる人います? meadow + JDEEは敷居が高そうなのでこっちで勉強してます。
xyzzy + JavaTinyConsoleつかってたけど 結局 xyzzy + cygwin になっている。
571 :
デフォルトの名無しさん :02/09/01 06:24
JAVA超初心者です あるServletのソースをコンパイルすると MyServ.java: メソッド getAttributeNames() はinterface javax.servlet.http.HttpServletRequestで見つかりません というエラーが出ます。googleしてみた結果どうやらServlet.jarのバージョン違いではと思っているのですが、どうもうまくいきません。 しかしどうもわからないのがclasspathでservlet.jarを指定しなくても importに失敗する旨がでないのです これはどういうことなのでしょうか? 環境変数以外にデフォルトで読みに行くパスなどがあるのでしょうか? (そうしないとobjectから派生している基本っぽいクラスも読めない気がするが・・・・)
572 :
デフォルトの名無しさん :02/09/01 06:39
文字列"ABCD"を" ABCD"というように、 文字列の最大サイズを指定、右詰というような変換を行う方法を教えてください
サーブレット関連で教えて欲しいことがあります。 RequestDispatcher#forward() メソッドと RequestDispatcher#include() メソッドの 違いがよく分からないのです。 サーブレットやBeanで何らかの処理を行って、 RequestやSessionにその結果を結びつけて、 JSPでそれを表示させる。 こんなことをやりたいときは、forward使っても include使っても結果は同じじゃない? 実際に使い分けるときって、どういう場合ですか?
>>523 すいませ〜ん。ちょっと書き方がわるかったですね。
if(hoge)のhogeとHOGEclass hogeのhogeは別物です。だから下のように書くべきでしたね。
if(hoge)HOGEclass hogehoge = new HOGEclass(arg1,arg2);
と
if(hoge){
HOGEclass hogehoge = new HOGEclass(arg1,arg2);
}
hogeは何か評価文です。変数に限定して言っているわけではありません。
で、上は文じゃないでつよ〜と言われるのに、下は亨というのは何故かということを聞きたかったのです。
>>572 宿題?なら適当な関数つくればいいんでないの?
たとえば、
private String paddingToRight (int size, String str) {
StringBuffer strbuf = new StringBuffer ();
for (int num=0; num < size - str.length() ; num++) {
strbuf.insert(0," ");
}
strbuf.append(str);
return strbuf.toString();
}
みたいな。効率とかしらんけど。
576 :
デフォルトの名無しさん :02/09/01 10:33
縮小変換について質問でs。 class WideningConversion { public static void main(String args[]) { byte b; int i = 137; b = (byte)i; System.out.print(b); } } これは、変数iの下位8ビットが変数bに代入されて(本曰く)、出力は2です。 下位8ビットとはどういうことでしょうか? 8ビットまでしか代入できないということじゃないみたいですけど・・・ 教えて。
577 :
デフォルトの名無しさん :02/09/01 10:34
Servlet実行時にDebug用のメッセージをSystem.out.println してるんだけどこれはどうやって見えるの? 普通に実行してもNosuchMethodError : mainエラーになっちゃうし ブラウザで実行してもメッセージが見れないっす
>>576 それを実行しても-119としかでないが。
>>578 すいません。
int = 258;
でした。
>>579 >int = 258;
Javaの文法的に破綻してるぞ。
>>580 すいません。
int i = 258;
でした。(TT)
Javaは、int は32bit で byte は8bitと決められている。 代入時、iの上位の24bitは捨てられ、下位8bitがそのままbに入る。 すなわち、 i = 0...0100000010 (258) b = xxxxxx00000010 (2) となる。
584 :
デフォルトの名無しさん :02/09/01 11:22
>>576 まず、137をbyteにキャスト(縮小変換?)しても、-119にしかならない。
2にしたいのなら、258でやってみよう。
ここからは、貴方が2進数を知っているという前提で、説明するので、
知らないのならば、勉強して下さい。
int型は4バイト(32ビット)、byte型は1バイト(8ビット)
・int型に258を代入
00000000 00000000 00000001 00000010
・byte型に258をキャスト、バイト型は8ビットなので、258の
下位ビット(右側)、8つだけを取得する。
00000010
結果byte型の258は2になる。
うむ、解決しました。 ビットはその数値までってことでループするんですよね。 byteは127(intも127)の次は-128(intは128)なんですね。 そうでした。ごめんちゃい。でも本だって例をだしてくれたっていいのに。 文章だけなんだもん。
586 :
デフォルトの名無しさん :02/09/01 11:24
ありがとう!!感動した(自分が理解できたのに)。
590 :
デフォルトの名無しさん :02/09/01 11:38
>>572 MessageFormatterクラスを参照の事。
でも書式が難しいので、575みたく適当な関数作った方が楽といえば楽かもしれない。
例えば FFFFFFFFは-1
なんかようやく
>>583 >>584 が理解できました。
2進数って勉強すればすぐ普通の数字を2進数に変えられるようになりますか?
>>593 普通の数字なんだよ・・・。進数の勉強全然出来てないじゃん・・・。
これからやるか検討中です。
>>593 まぁ、基本情報技術者試験の範囲ぐらい勉強しとけ。
597 :
デフォルトの名無しさん :02/09/01 11:59
>>595 検討中とかじゃなくて、プログラマなら、絶対に知らなくちゃダメだから。
長い時間ありがとう。きっとすごいジャヴァーになってみせるよ。
>>593 片手で0から31まで数えられるようになればかなり便利。
(ひとつの指を1ビットとしてさ)
Javaと言うのはまず最初に出来合いのクラスがあって、 それをユーザが被せていくだけなのでツマラン。 正直そう思う。カタルシスを感じない言語だ。
>581 >ブラウザのコンソール とはなんですか?ひょっとしてIEじゃだめなんですか?
>>602 ブラウザのコンソールで見れるのは Applet の System.out.print() です。
Servlet の場合は Servlet コンテナのマニュアルを参照のこと。
>603 なるほど レスありがとうございます。 IDEなどでサーブレットを作って実行すると ブラウザとコンソールが同時に立ち上がりますよね? ああいうふうにコマンドラインからできれば理想なんです。 Servletコンテナマニュアルを見てみます。
Tomcatのマニュアルを見てみました。とりあえず サーブレットでSystem.out.printlnされたものはアパッチに送られずに Tomcat上のコンソールで出力される?ようなもののようですね。(概念として) Tomcatの出力をコンソールで見ればいい気がするのですが、 Tomcatのマニュアル自体には開発工程については書いてありますが、 デバグについにはいつか書きたいなあというようなことはあるのですが、 見つけられませんでした。
606 :
デフォルトの名無しさん :02/09/01 16:16
Component の D&D についてわかりやすいページ教えてケロ
608 :
デフォルトの名無しさん :02/09/01 16:39
>>605 Tomcat自身をデバッガでアタッチして、試験したいサーブレットに
ブレークポイントでも張っとけば?
TomcatのJVMの上で動いてんだから、可能でしょ?
>>575 >>590 ありがとうございます
MessageFormatで、数字、日付時刻の書式設定はわかるのですが、
文字列の書式設定の方法がわかりません
もし分かるのならば、教えてもらえませんか?
>>611 わけわかんないこというな。文字列の書式設定用クラスだろ・・・
590
>>611 さっきの書き込みでも少し触れましたが、MessageFormatの
書式はやはり572には難しすぎると思います。
自分で簡単な関数作って対処した方が良いと思います。
614 :
デフォルトの名無しさん :02/09/01 21:20
>>573 forwardとincludeの違い
大雑把に言うと ServletOutputStream の扱いが違う。
forward:
forward()の処理終了後、Streamはclose状態。
include:
include()の処理終了後、Streamはopen状態。
forward()すると、新たにrequest.getWrriter()といったことができない。
すごーくくだらない質問かもしれませんけど、 Java仮想マシンって何? インタプリタと何が違うの?
Java仮想マシンってのは 心の純粋なひとの脳内だけで作動する最先端マシンです ヘッドセットをつけて口頭で指示するだけで作動します
PerlもPerl仮想マシンで動いてますしN88BASICもN88BASIC仮想マシンで動いています。
ポケコンBASICも仮想マシンで動いてます。
>>618 命令セットが異常に高級だが数が限りなく少ないVM
VMもインタプリタもやってることは同じだからな...
>>615 なぜ「Java仮想マシン」で検索しなかったのか、今後の参考のために
教えてください。
Windows2000をSP3にしたら、プログラムのアクセスと既定の設定 っつうのがスタートメニューにできたんだけど、そのなかに、 JAVAのVMを選ぶというのがある。 MicrosoftVirtualMachineというのが選択肢あるのだが、現在の JAVAのVirtualMachineを使うという選択肢との違いを教えて。
VirtualMachineを作った会社が違う。 □□□□□□終了□□□□□□
>>623 MSのインターフェイスって最悪だな。何言ってるか全然通じない...
SunのVM使うかMSのVM使うかの違いだろ? 難しいことは無いだろ。
>627 ありがとうございます! まさにドンピシャでした。 ウインドウズの管理ツールでTomcatサーバを止め コマンドラインからC:\tomcat\bin\tomcat run したらうまく行くようになりました
629 :
ジャヴァン :02/09/02 03:46
JavaでLZHファイルを解凍するにはどうしたらいいですか?
exec
>>629 アルゴリズム資料を引っ張り出してソフトwp作る
>>629 ずいぶん前に Java で LHA 作ってるっていってた奴がいたけど…
あれって どーなったんだろーねー?
634 :
デフォルトの名無しさん :02/09/02 04:54
class sakura extends Applet{ sakura(URL url){ img getImage(url,"sakura.gif"); ・・・} } } class moge extends Applet{ init(){ hoge hoge1(getDocumentBase()); } } 上のように別のクラスからsakura.gifを読み込もうとすると、NullExceptionとか言われます。 init()内で直接getImageメソッドを使えば読み込めるのは確認したのですが、他のクラスから 読み込むにはどうすればいいのでしょうか??
訂正 誤:hoge hoge1(getDocumentBase()); 正:Sakura my_sakura = new Sakura(getDocumentBase());
637 :
デフォルトの名無しさん :02/09/02 11:05
>>629 googleとかVectorとかで漁るといくつかライブラリが見つかる。
>634 自分も最近javaをはじめたのでよくわからないんだけど アプレットからアプレットを作る事に意味があるの?
>>638 >アプレットからアプレットを作る
そんなコードなの?あれ。
640 :
デフォルトの名無しさん :02/09/02 12:09
>>634 最新のJDKならデフォルトで
NullPointerExceptionの出力にに発生したソースの行数もあるはずだからもっかい確かめてみ。
ソースUPするならちゃんと再現する最小限のソースにして
UPしれよ。
だいたい下記の1行コンパイル通らないだろう。
> img getImage(url,"sakura.gif");
あと、一応忠告しとくけど
アプレットはブラウザ等が勝手にロード、初期化&実行するもんであって
自分で書くコードでAppletクラスやその派生クラスをnewする必要はないよ。
(ブラウザやアプレットビューワみたいなものを作るのでなければね)
641 :
デフォルトの名無しさん :02/09/02 16:04
一年前の同曜日の日付を取得したいのですが どのようにすればいいのですか? プログラムを書いて教えてください。 お願いします。
>>641 >一年前の同曜日の日付
を完全に定義してください。
>>642 その日付の取得の仕方がわかりません。
calendar.set で、年/月/第何週の何曜日 を指定し、日を取得!
なんてこと出来ないですよね。
この「第何週目の何曜日が何日か?」
を取得したいのですが、教えてもらえないでしょうか。
1年後の同曜日の日付はもとにした日の+1 うるう年なら+2 うるう年をどうやってもとめるかなんてことはぐぐればいくらでも出てくると思われ
>>644 ありがとうございました!
マジで助かりました!!!
こんな簡単なことだったとは・・・逝ってきます。
うおおお すまん逆だよ 1年”前”です ごめん
>>646 >>647 すばやい対応ありがとうございます。
マイナスにすればいいのか!と思っちゃいました。
・・・逝ってきます。
>>634 >>640 画像ファイルをinit()内で読み込まずに、
他のクラスをnewした時にコンストラクタ内で読み込む事は出来ないのかな、と思ったもので。
フォーム内容の受け取りというのはCGIでよくある話ですが、そのなかで動的な フォームを 作りたいと思っています。 リストA : リストB : リストC : テキストBOX : ラジオボタン 赤 キャベツ みどり トマト 黄色 ピーマン にんじん ほうれん草 上のようにフォーム内の5個の項目について送信したいのですが、 リストAで「緑」が選ばれたら自動的にリストB内には「ピーマン・ほうれん草」 しか 選択できないようにしたいのです。 リストA : リストB : リストC : テキストBOX : ラジオボタン について10くらい同時に選べるようにするにはすごいJsになる? というか、JS難しい。似たようなサンプルソースないですか?
>>641 644とやってることは同じなんだけどさ、うるう年を判定しなくて良い方法として
現在の日付から -364日目を日付加算関数で算出するという方法もあるよ。
364 ってのは 7 の倍数だから同じ曜日に落ち着くというわけだ。
「通常の年は +1日する」 というのは 365日 - 364 = 1
「うるう年は +2日する」 というのは 366日 - 364 = 2
いきなり質問なのですが、よろしくお願いします。 1.「サブクラス」に「スーパークラス」を代入するのは、なぜいけないのでしょうか? 2.「スーパークラス」に「サブクラス」を代入するのは、なぜ大丈夫なのでしょうか? 3.「スーパークラス型」を「サブクラス型」にキャストするのは、なぜ「危険な型変換」と言われるのでしょうか? 以上3点です。今日の夜までPCを触れない環境になりますので、夜にレスさせていただきます。 皆様、よろしくお願いします。
>1.「サブクラス」に「スーパークラス」を代入するのは、なぜいけないのでしょうか? キャストすれば可能. いけないコトはない. 「危険な型変換」があるから「いけない」って 言われてるだけじゃないのか? 意味を理解して使うなら問題ない. >2.「スーパークラス」に「サブクラス」を代入するのは、なぜ大丈夫なのでしょうか? >3.「スーパークラス型」を「サブクラス型」にキャストするのは、なぜ「危険な型変換」と言われるのでしょうか? 多態性(polymorphism)についてキチンと勉強すれば分かるはず. オブジェクト指向に関する本を 読んでみるといい. JavaしかやったことがないならJavaのサンプルコードが載ってる奴を買って 自分でコンパイル/実行してみると良く分かる. あと言語仕様を見るものいいだろう. GoogleでJava,言語仕様で探せば出てくる.
656 :
デフォルトの名無しさん :02/09/03 04:32
servletのdoGet, doPostのことで質問です。 例えばhtmlのフォームで <form action="a?aaa=ccc" method="POST"> <input type="text" name="aaa" value="bbb"> と記述したとします。 つまり、GETとPOSTが混在する場合です。 この場合 doPostの処理しか書いてないのに パラメーター「aaa」がGETの方の「ccc」に上書きされてしまいます。 (POSTの「bbb」が消えてしまう) もちろんこれは特殊な場合なのでしょうが、メソッドをPOSTに限定してるような 掲示板などで悪用される危険性があります。 GETとPOSTのリクエストを分けて処理するにはどうすればいいのでしょうか? GETの方をurlのクエリーパスをデコードして POSTの方をgetInputStreamで解析して って方法しかないのかな。
>>654 「継承する」ってことがどういうことなのか、オブジェクト指向を易しく解説した書籍等を見てよく考えよう。
659 :
デフォルトの名無しさん :02/09/03 11:52
質問します。 "AE080009"のような、byteの配列を2桁の16進数の連結されたものに変換したStringがあります。 これをbyteの配列に戻したいのですが、良い方法はありませんか? ご教唆願えれば幸いです。
>>657 クラスにクラスを代入って、なんかすげーメタレベルの操作みたいだな
>>654 >1.「サブクラス」に「スーパークラス」を代入するのは、なぜいけないのでしょうか?
メソッドが正しく呼ばれることが保証されないから。
円描画用筆クラス 円描画用筆 = new 筆クラス();
円描画用筆.円を描け(); // 筆(↑)は円を描けないから、エラーになる
>2.「スーパークラス」に「サブクラス」を代入するのは、なぜ大丈夫なのでしょうか?
メソッドが正しく呼ばれることが保証されているから。
筆クラス 筆 = new 円描画用筆クラス();
筆.円を描け(); // 円作画用筆(↑)は円を描けるから、OK
>3.「スーパークラス型」を「サブクラス型」にキャストするのは、なぜ「危険な型変換」と言われるのでしょうか?
メソッドが正しく呼ばれることが保証されないから。
円描画用筆クラス 円描画用筆
= (円作画用筆)(筆);
円描画用筆.円を描け();// 筆(↑)は円を描けないから、エラーになる
663 :
デフォルトの名無しさん :02/09/03 12:37
XPのDOSで C:\Documents and Settings\あぼーん> ってなってるんですけどこれを起動時から d:\マターリ> にしたい時はどうすればいいんですか?
板違い
いや、スレ違い
666 :
デフォルトの名無しさん :02/09/03 12:49
板違いすいませんでしたOS板に逝って来ます
>>659 良い方法って無いような。
自力で
str = "AE080009"
str = str.toUpperCase(); //文字列が大文字であることを保証できるなら必要なし
//文字列が奇数の長さの場合は考慮しない
byte[] buf = new byte[str.length() / 2];
for( int i = 0 ; i < buf.length ; i++ )
buf[i] = ("0123456789ABCDEF".indexOf(str.chatAt(i*2)) << 4)
| "0123456789ABCDEF".indexOf(str.chatAt(i*2+1);
とかやるとか。
これも宿題?
>>659 >>668 >良い方法って無いような。
2文字ずつに切って
Integer.parseInt(str,16)
はどうなん?
>>669 あ、なるほど。
でも 2文字ずつ切る動作が入るから大して変わらんかも…
>>670 逆転ホームラン。
8文字以内ならperseIntしてからシフト演算で
16文字以内なら Long.parseLong してから以下略
とかはどうなん?
17文字超えたらアウトだけど、2文字ずつよりましかも…
>>671 いや、byte配列にするらしいから。
8文字ごとに区切って paeseInt だと
int から byte配列変換の動作が伴うのであんましうれしくないかも。
もっとも、byte配列じゃなくていいなら
>>669 ,671 のが良いと思うけど。
元データを8文字で区切ると言う話でなくて 元データが8(or 16)文字以内なら、というつもり。 そしたら2文字ずつ区切ってparseするより 4or8バイト分のデータをparseで取ってきて、 それをLoopでシフト演算使ってbyte配列に入れたほうが 多少(本当に多少だが…)スマートかも、と言うレベル の話だったのだ。 分かりにくくてスマヌ
674 :
デフォルトの名無しさん :02/09/03 20:12
JAVAを勉強し始めたばかりのひよっこなのですが、 どこかメソッドの使用例を載せているサイトがあったら教えてください。 お願いちょ。
675 :
デフォルトの名無しさん :02/09/03 20:19
JAVAの開発環境のインストールされていない環境で JAVAで作ったアプリを実行させようとおもうんですが、 コンパイルしたファイルをただ持っていったら動くのでしょうか。
教えてくださった甲斐あって文字列送信できました。 今度はキーボードから打った文字を転送したいのでもうひとつBufferedReaderクラス を作ってキーボードから読み込みしたんですが、実行してみるとサーバ、クライアントともに 待機状態。。System.out.println()で読み込めてるのかなと思い、入れてやったら ちゃんとキーボードからは読めているみたいです。どう改善すればいいんでしょう。 もしこれできたら簡易チャットみたいな感じなのかな import java.io.*; import java.net.*; public class server { public static void main(String[] args) { try { ServerSocket socket = new ServerSocket(55555); while(true) { Socket insocket = socket.accept(); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(insocket.getOutputStream())); BufferedReader in1 = new BufferedReader(new InputStreamReader(insocket.getInputStream())); BufferedReader in2 = new BufferedReader(new InputStreamReader(System.in));
String in3 = in2.readLine(); out.write(in3); out.flush(); String suto2 = in1.readLine(); System.out.println(suto2); out.close(); in1.close(); insocket.close(); } } catch(Exception e){} } }
クライアント import java.net.*; import java.io.*; class client { public static void main(String args[])throws Exception { Socket socket = new Socket("127.0.0.1",55555); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedWriter out1 = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); BufferedReader in4 = new BufferedReader(new InputStreamReader(System.in)); String suto = in.readLine(); System.out.println(suto); String suto3 = in4.readLine(); out1.write(suto3); out1.flush(); in.close(); out1.close(); socket.close(); } }
680 :
デフォルトの名無しさん :02/09/03 20:36
>>680 Javaのドキュメントはよく書けてるよなマジで。
>>675 JREで調べて見るべし。単体では動きません。
それが嫌ならC#を検討する事をお勧めしたい。
682 :
デフォルトの名無しさん :02/09/03 20:53
>>680 わたしが欲しいのは、
char charAt(int /)
boolean endsWith(String s)
byte[] getBytes()などのごく簡単なメソッドのサンプルコードです。
今「JAVA サンプルコード」で検索したら見つけられなかった。(TT)
本付属のCDには載ってませんでした。
683 :
デフォルトの名無しさん :02/09/03 21:03
最近、「おまえリフレクションも知らんのか」と言われました。 調べてみてもよくわかりません。 簡単な説明のありかでも教えていただけないでしょうか。 お願いします。
Google[Java リフレクション]
Javaプログラムデザインとかいう本に基本的なことは書いてあった。 リフレクションのみならずデザインパターン、スレッドプログラミングについても いろいろ書いてあって個人的にはお気に入り。
>>682 …サンプルコード必要?
自分でちょこちょこ書いて試してみれば
すぐ理解できそうなもんだが…
>>686 ええ、必要です。なぜなら私の持ってる本は、それらを一覧でみせてるだけで、
いろいろためしてみましたが、いくつかのはわかりません。具体的には、
boolean endsWith(String s) (真はOK.偽がわからない)
byte[] getBytes()です。
できたらサンプルコードください。
ちょっと甘えてみただけなのに、ひどい。 こんなの、2日で理解してやるさ!ぼけ!
>>689 おう、その意気だ。がんがれよ。
甘えないことを学んだことの方が重要だ。
>>689 ガンガレ 674!!
とりあえず動かしてみるのだ!!
>>687 2日もかかりますか…
俺も
>>688 の意見に賛成だね。
もっとも小学生だとそんぐらい掛かるかもしれない。
String str = "ABCDE";
str.endsWith( 'A' );//偽
str.endsWith( 'B' );//偽
str.endsWith( 'C' );//偽
str.endsWith( 'D' );//偽
str.endsWith( 'E' );//真
String str = "漢字文字列";
byte[] sjis = str.getBytes("Shift_JIS");
byte[] euc = str.getBytes("EUC_JP");
byte[] def = str.getBytes();
for( int i = 0 ; i < sjis.length ; i++ )
System.out.print( Integer.toHexString( sjis[i] & 0xFF ) + "," );
System.out.println();
for( int i = 0 ; i < euc.length ; i++ )
System.out.print( Integer.toHexString( euc[i] & 0xFF ) + "," );
System.out.println();
for( int i = 0 ; i < def.length ; i++ )
System.out.print( Integer.toHexString( def[i] & 0xFF ) + "," );
>>682 endsWith って String じゃないと無理じゃん?
このドキュメントって、どのクラスにあるのかが分かっててナンボというか、 素人の僕には目的の物がどこにあるのかが分からないのですが、 検索みたいなことは出来ないのですか? 今は、仕方なくMicrosoftのMSDNで検索してます…。
>>695 1.HTMLはテキストなんだからgrepなり何なりしろ。
2.パッケージごとに大体似たような機能がまとまってるから、考えろ。
3.Sunのチュートリアル嫁。
最近Java始めたものですが コンパイルは成功しても実行が出来ずなやんでいます。 Windows2000でJ2SDK1.4.0をインストール後、 HelloWorldをメモ帳で打ち込み、コンパイルは成功したんですが 生成されたclassファイル実行すると Exception in Thread "main" java.lang.NoSuchMethodError : main とエラーがでて実行されません。 初歩的な質問ですがよろしくお願いします
>>698 ちゃとmain関数は
public static void main(String[] arg)
になっているか?arg は別の名前でも可。
>>698 クラスのmainメソッドのシグネチャが間違ってるっぽ。
public static void main(String[] args)ってメソッド
が、ちゃんとあるかい?
>>698 それはきっと入力ミスだ。よくみくらべるべし。
>みなさん。
>>692 のコードを簡単にしてやってみたら、例外エラーが出ました。
>>692 のごちゃごちゃはそのせいかもしれないけど、知らないキーワード
だらけなので保留にします。もともと「知っとけよ」程度の(本では)段階
でしたから。首を長くして待つべし。ありがとう。
>>701 どうでもいいが、例外エラーなんて言い方する奴は馬鹿決定。
だってそういわれたもん。忠実だぽ。
www.javacat.com ってなくなっちゃったの?
>>706 そうです。そもそも前から情報価値なかったでしょ。
>>707 さん
ありがとう!3〜4年くらい前のjava本のリンクに載ってたんで・・・
本の索引の様に、昇順で単語が並んでいるCSVの中から単語を検索して どこに存在するかを知りたいのですが、こういう操作を行う時に 効果的なメソッド、もしくはアルゴリズムがありましたら名前だけ でもいいので教えて頂けないでしょうか? 現状ではstringに格納してindexOfで検索しているのですが、 せっかく元データが昇順に並んでいるのでそれを利用して 高速化したいんです。 よろしくお願いします。
>>709 java.util.Listに昇順保って放り込んで、
java.util.Collecitons#binarySearch()
ついでに、CSVファイルがやたらでかくてメモリが たりないなら、 java.lang.ref.SoftReference。 (この場合での使い方が、分かるかな?ニヤニヤ)
>>711 分かりません…持ってる本にも書いてないです。
でもここで聞いたら一生初心者になりそうなのでがんばって調べてみます。
教えて頂いてありがとうございました。
それにしても、サンプルコードがないと実装できないなんて終わりだな。 調べものしていると平気で 「ServletAPI2.3のHttpServlerResponseWrapperのようにHttpServletResponseをラッピング することにより、ServletにてJSPの出力結果を取得できる。」 としかないこともある。 ↑これはヒントとしては十分すぎるのかな?
>>713 SoftReference使う必要性に迫られるのはずいぶん先だと思われるので、
今のところ知らなくても全くかまわないと思われ・・・
>>711 このイケズさんたらもう
皆様、ありがとうございます!解決しました! Cのように省略してはいけないんですね。助かりました!
forte使っている方、おられますか? forteで作成したアプリを外部で動かしたいのですが方法が分かりません。 IDEを使わず、コマンドラインで実行させたいのですが・・・
サーブレットで質問です。
サーブレットコンテナとしてTomcatを使っています。
サーブレットを1つ(serv.class)作成し、
serv.classを
%TOMCAT_HOME%\webapp\dirx\WEB-INF\classes\serv.class
%TOMCAT_HOME%\webapp\dirx\WEB-INF\classes\serv.class
上記の2つのディレクトリにコピー、
%TOMCAT_HOME%\webapp\dirx\WEB-INF\web.xml
%TOMCAT_HOME%\webapp\diry\WEB-INF\web.xml
上記の2つのファイル中でserv.classをサーブレットとして登録。
これで
http://www.xxx.com/dirx/serv http://www.xxx.com/diry/serv 上記の2つのURLにアクセスした場合、
リクエストを返すサーブレットは別々のインスタンスとして起動されますか?
起動させたらどうなりましたか? public static な変数ですぐ試せますよね。
720 :
デフォルトの名無しさん :02/09/04 02:38
javaってプロセッサに依存するの? 例えば、xeonでも動くの? 64bitのプロセッサだとどうなの?
JavaをC@と呼んでいいですか? C#にならって。
C# にならうとなぜ C「@」になるんですか?
723 :
デフォルトの名無しさん :02/09/04 03:38
++c++ Java -> c!?
その昔、C@という言語のウワサがあったじゃーないですか。 それがJavaの原形なんでしょ。よくおぽえていないけれど。 だから(Java==C@)
それはデマだ>C@ マジレス
SDKの環境変数がうまくいかないのですが DOSプロンプトでjavacと打っても以下のように表示されてしまいます。 どうしたらよいでしょうか? Microsoft(R) Windows 98 (C)Copyright Microsoft Corp 1981-1999. C:\WINDOWS>javac コマンドまたはファイル名が違います。
728 :
デフォルトの名無しさん :02/09/04 11:55
DOSプロンプト上で >path と打ってみよう。 パス情報上に [JDKをインストールしたパス]\jdk[バージョン]\bin がなければパスが通っていない。ていうか通っていないはず パスの設定は >set PATH=%PATH%;[JDKをインストールしたパス]\jdk[バージョン]\bin をjavacするたびに打つか autoexec.batにセットするかどちらか
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ イー便茶役員一覧 社長池上(テンプスタッフを追い出された、人材派遣業ヒューマンアイも経営し、私腹をこやしている) 菅原(住商情シスで仕事をしたと威張ってる、偽EVS Framework開発者として、JavaONEで演説予定) 山本(リクルートをDrop outして人材派遣業という、いわゆる使えない社員の王道、ヒューマン偽アイコンサルタント) 児玉(なんだかんだで、結局辞めた) こんなやつらは、ゴミ以下のイーベンチャー ゴミサポート会社!!!! (ついでにゴミSE巡回サービスもよろしく!!) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
オブジェクトの複製についてです。 clone()はそのクラスがフィールドとして持っているオブジェクトも複製してくれるのでしょうか? class b implements Cloneable{ public Object Clone(){ super.clone(); } 〜 } class a implements Cloneable{ public Object Clone(){ super.clone(); } public b objb; }
>>732 全然ちがうじゃん。自分でよく読んでごらん?
>>733 メンバフィールドが 全部public とかそーゆークラス作って、
clone() して == とかで比べてみればいーじゃん…
>>733 デフォルトの実装ではしない。
その代わり自分で書いた好きな実装のclone()でオーバーライドしてよい。
739 :
デフォルトの名無しさん :02/09/04 18:48
>>737 多分DOSのこととかわかってない人だから気にするな。
きっと彼らは環境変数を変えるのにいちいち再起動する人たちなんだよ。
そっとしておきな。
昨日質問した674です。 あれから二日。ついに、 byte[] getByte()を成功しました。 出力は良くわからなかったけど、とりあえずは良しとします。 誰だ!例外エラーなんていったやつは! これからもちょくちょく世話になる予定ですが、よろしくお願いします。 ありがとうね。
>>741 例外エラーって何ですか?
Exception と Errorは明確に分けられるはずですけど。
>>742 うむ、わからぬ。そう表示されたのじゃ。
ところで
boolean bool = s1.equalslgnoreCase(s7);
はどこがおかしいですか?シンボルを解釈できないんです。
>>736 中途半端なデマ教えんな(ワラ
狙ってやってるのか?
operatorとかテンプレートが使えるようになるという 噂を聞いたが本当?
746 :
デフォルトの名無しさん :02/09/04 21:52
Linuxのxjedみたいにjavaのソースを色づけして見やすくしてくれるエディタはないですか? できれば、それ単体で動くものがいいのですが、、、 Mule for Win32にJDE搭載デキネーヨ ウワァァァ━ヽ(`Д´)ノ━(ヽ`Д)━( ヽ`)━ヽ( )ノ━(ヽ )━(Д´ヽ)━ヽ(`Д´)ノ━ン!!!
今はWindowsのコマンドプロンプトからコンパイル→実行しているので コンパイル機能は特に必要ではありません。 よろしくお願いします( ´∀`)
>>748 そんなのいくらでもあるだろ
(例)
Meadow + JDE
xyzzy + JavaTinyConsole
秀丸 + (以下略
Duron 1.2GHz メモリ256MB Javaアプリケーションがネイティブのように動きます。 JBuilderも手に吸い付くような使いやすさです。
equals Lgnore Case ?
754 :
デフォルトの名無しさん :02/09/04 22:10
755 :
デフォルトの名無しさん :02/09/04 22:13
>>743 こらこら
>boolean bool = s1.equalslgnoreCase(s7);
↓toUpperCase
BOOLEAN BOOL = S1.EQUALSLGNORECASE(S7);
>>757 すいませんだなんて、、、ありがとうございました!これから試してみます。
>>750 Meadowは.emacsの追加ができない厨房のためあきらめました。
xyzzy+JavaTinyConsoleは使えましたがxjedの使い心地には及ばないため保留。偉そうでスマン!
>>748 Meadow + epojava どうよ? M-Q で綺麗に整形してくれるのが気に入ってます
760 :
ぼぶ ◆EMrmvKLI :02/09/05 00:31
これからJAVAを始めたいのですが、
>>5 を見てもJDKのインストールの仕方がわかりません。
なんか、JREとSDKがあるんですがどっちをダウンロードしたらいいんですか?
761 :
デフォルトの名無しさん :02/09/05 00:38
そんなあなたは開発は無理。 JREでも入れたら?
762 :
デフォルトの名無しさん :02/09/05 02:21
JavaでWindows用のアプリケーションを作ってみたいんですけど、 exeファイルダブルクリックしてアプリが起動するようにするにはどうしたらいいんでしょう? Visual J++でも使わないとダメですか? どえらい厨房質問なのは百も承知ですが、どうか教えてください。
>>762 APIドキュメントに"JAR"の説明があるから、それ読め。
764 :
デフォルトの名無しさん :02/09/05 06:32
javaってプロセッサに依存するの? 例えば、xeonでも動くの? 64bitのプロセッサだとどうなの?
>>764 Java==C@.
これからはJavaをC@と呼ぼう。
>>726 以前何処かでC@という言語をポストC/C++として外人が作ってるって言う記事
自体は見た事があるんだが、何処に書かれていたのか思い出せない。
やっぱり俺の間違いだったのだろうか。Oakより以前のような気もするんだが。
766 :
デフォルトの名無しさん :02/09/05 07:53
VBくらいしかやったことないのですが、Javaやってみたいです。 JavaからAccessのデータベースに接続することってできますか? この場合、本買うとしたらサーブレットとか言うやしでしょうか。 1台のクライアントマシンだけでやりたいのですが。
WinだとManifestでMain-Class指定してあるファイルはダブルクリックで起動できるんじゃなかったっけ. だからjarコマンドの説明読めってコトだろ.
>>769 >>762 は、「exeファイルダブルクリックしてアプリが起動するようにする」方法を聞いているね。
「Visual J++でも使わないとダメです。」が妥当な答えだね。
似たような方法として、 JREがすでにインストールしてある環境下で jarファイルをダブルクリッ
クして起動する方法がある。
ってことだね。
gccコレクションのgjcを使えばいいんじゃねーの。 windows環境でまともに動くかどうかはしらないけれども。
>>762 Visual J++は使ったことないけど、Windows用のexeを作りたいなら
こんなものもある。
JET (
http://www.xlsoft.com/jp/products/jet/ )
パーソナル版は個人利用に限って無料で使える。ランタイムライブラリが
必要なのでexeだけでの配布はできない。プロフェッショナル版では、
コンソールアプリケーションならランタイムレスなexeを作れる。
SWTも使えるよ。プロフェッショナル版は20万円。60日試用版あり。
コンパイラだけでなく、コンパイルしたexeも60日後に起動できなくなるので注意。
GCJ (
http://gcc.gnu.org/java/ )
いわずとしれたgcc兄弟のひとり。まだ、AWT, Swing に対応していないが、
GUI対応も進められている。いまはまだ、コンソールアプリケーション向き。
実装されているクラスライブラリは 1.1 + α程度。正規表現とか使ったら
コンパイルできなかった。。あと cygwin + gcj ではマルチスレッドが
動かなかった(環境が悪いのかも…)
cygwin-gcj で作成した exe はランタイム cygwin.dll が必要。
mingw-gcj ならランタイムレス(実際はWindowsに標準装備されているライブラリを使う)
なので、exe単体での配布が可能。
他にもAOTコンパイラはたくさんあるようなのでレビューキボンヌ
>>771 CUI なアプリなら exe にはなるけど、ウィンドウまではまだ対応していなかったような気がする。
20分遅れて、しまも情報量少ないこと書いてしまった。すまそ
基本的なことで申し訳ないんですが、たとえばパケット送受信の クラスを書いていて if(TCP指定なら){ Socket socket = new Socket(host,port); }else{ if(UDP指定なら){ DatagramSocket socket = new DatagramSocket(); }} とか宣言すると、後のほうでsocketがcannot resolveゴルァとなるのですが、 "宣言されない場合がある"、というときはハネられるんでしょうか? そもそも、こういう書き方がダメなんでしょうか。
ありがとうございます。
結論を先に申しますと、VisualJ++でいこうと思います。
>>772 さんに紹介していただいたJETは少し値段がかさみますし、
GCJの方はGUI非対応ということなので。
当方、学生なので、VisualJ++をアカデミックで買えば、安ければ5000円で釣りが来そうです。
>似たような方法として、 JREがすでにインストールしてある環境下で
> jarファイルをダブルクリックして起動する方法がある。
こんなことも出来るんですね。まったく初耳です。
これからもっと色々ドキュメント読んで勉強します。
>>775 if ブロックを出たあとで socket を使おうとしてない?
そもそもコードの書き方が良くないと思うんだけど、どうしてもというのなら
共通の親である Object socket を宣言しておいて、
使うときに毎回キャストすることになる。
Object socket;
if(TCP) {
socket = new Socket(...);
} else if(UDP) {
socket = new DatagramSocket(...);
}
使うときも毎回
if(TCP) {
Socket t = (Socket)socket;
TCPの処理...
} else if(UDP) {
DatagramSocket d = (DatagramSocket)socket;
UDPの処理...
}
Socket と DatagramSocket は共通の親を持たないので、
ポリモーフィズムは使えないんだよ。だから同じ変数に入れようとせずに、
Socket と DatagramSocket の処理は別々に書きなさいってこった。
おながいします。 Web画面で、よくアップロード(Windowsのファイル画面)できるサイトがありますよね 例えば、写真のUPとか、HTMLファイルのUPとかです。 自分で作るとしたら、どのようにすれば良いのでしょう? 教えて下さい、おながいします。
>>778 それは本当にJavaで行うものなのですか?
すでにそういうものがJavaであるのか、Javaでそういうものを新しく作りたいのか?
780 :
デフォルトの名無しさん :02/09/05 16:45
アプリケーションでAudioclip を使って音楽を鳴らすにはどうしたら良いんですか? 教えてください。
>>776 Visual J++はJavaであってJavaでないので
普通にJavaを学びたいのなら避けたほうが良いと思われ
最新のJDKが1.4なのに対して、VJは1.1.x相当。
特に、今のJavaはJava2(1.2)でかなり環境が整備されたので、
1.2以降とそれ以前の差は大きい。
どうしても.exeで起動したいときは、java -jar xxx.jar をキックする小さな.exeを作るのが一般的。
有名どころ(JBuilderやeclipse)はそうなってる。
これだけならフリーのBCCなんかでも作れるしな
工房です。JAVAの勉強をしたいです。 どこかのスレにVisual JはJAVAにあってJAVAにあらずと書いてありました。 ソフトは何がお勧めですか?
>>777 ありがとうございます〜。
なるほど、その通りでした。処理を分けたら解決しました。
>>784 まずは本を買ってきましょう。j2sdk1.4対応な本ね。(なければ1.3でも)
んで、そこに書いてある通りにインストールして、勉強しましょう。
質問はそれからだ。
>>788 了解しました。早速買いに走ってきます。
Java言語プログラミングレッスンJava言語を始めよう
というのがいいという話を聞きました。
これでいいですかね?
790 :
デフォルトの名無しさん :02/09/05 17:36
すいません、ごめんなさい、教えてください。m(__)m イベント内で、this キーワードが使えないのって、何故なんですか? 手持ちの本に、Static が付いているメソッド(クラスメソッド)内部では this キーワードを使用することが出来ないとかいてありました。そのこと自体は解るのですが…。 もしかして、イベントもクラスメソッドなんですか?
>>790 hoge.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
// ここでthisが使えない.
}
}
);
こういう場合?だったら使えないよ。
>>792 そういう時って、OuterClassName.thisとすれば使えるんだよ。
結構知らない人が多いけど。ワーイ
thisだけだと、さしているのは自身のWindowAdapterのインス
タンスになっちゃうのね。
>>793 そうそう、ちなみに WindowAdapterを定義している外側のクラスを Enclosing class って言います。
後生だぽ。なにが悪いのか教えてくれぽ。 class ASD { public static void main(String args[]) { String s1 = "One Two Three Four Five Six Seven"; String s2 = s1.toUpperCase(); boolean b = s1.equalslgnoreCase(s2); System.out.println(equalslgnoreCase); } }
>>796 System.out.println(b);でした。
それでもエラーが出るのです。
>797 どこで聞けばよいの?
>800 キャ〜 感謝!
>boolean b = s1.equalslgnoreCase(s2); boolean b = s1.equalsIgnoreCase(s2); ですね。 っつーかネタ? 前も同じ事やってたし、 おまけに ちゃんと問題点指摘されてた気がするが…
803 :
デフォルトの名無しさん :02/09/05 22:00
804 :
デフォルトの名無しさん :02/09/05 22:01
805 :
初心者です :02/09/05 22:03
yahoo!ゲームを始めようとしたら 『javaうんぬんをダウンロードしますか?』 というログが出ました。 なんか怖いのでダウンロードせずに始めたら 何も表示されないんです。 左上に小さいバツが出ています。 どうしたらいいのでしょうか? 何かダウンロードしたほうがいいのでしょうか?
ヤフーに聞け
808 :
初心者です :02/09/05 22:06
yahoo!のヘルプ見たんですが、何やらさっぱりわからないんです。
ヤフーに聞け ^^^^^^^^^^^^ きくんだよ
>>808 だからってム板のJavaスレで訊くなよ。
811 :
初心者です :02/09/05 22:08
>>806 メールでyahooに聞いたのですが、
マイクロソフトに聞けと言われちゃいました。
たらいまわし状態(泣
812 :
初心者です :02/09/05 22:09
>>808 すいません どこで聞いていいのかわかんなくて。
>>812 ダウンロードしろ、もうここには来るな。わかったな?
あ、それはシークレット機能のバカフィルターです。 yahooはユーザーを選択していて、 ある一定の知能以下のユーザーには使わせないようにしてます。 だから、きっとあなたはそのフィルターに引っかかってしまったのです。 あきらめてください。 これ以上の丁寧なレスはおそらく望めないと思います。
815 :
初心者です :02/09/05 22:13
何をダウンロードすればいいのでしょう?
でたーーーーーーー! だって!だってだって私の読んでる本小文字エルと大文字アイの 見た目が全く同じなんだもん。グーグルでequalslgnoreCaseでも いっぱいでてきたもん!今までよくもばかにしてくれたな。 これが最初で最後だ。一応例はいっておこう。亜理瓦堵夜!
ふぉとしょっぷヤいらすとれーたナド
>>674 Javadocくらい目を通せよ。Javaの学習してるんだろ?
ignoreという単語も知らないのか(w そんなんでよくプログラミングできるよね。 変数名はローマ字ですか?
くくくく。勝った!
>>791 言葉が足りなくて申し訳ないです。
>>792 全くその通りです。
ありがとうございます。m(__)m
>>793-794 ありがとうございます。こういった周辺の情報は、非常に勉強になります。
また、その辺をヒントに、色々理解を深めたいと思います。
三方ともありがとうございました。m(__)m
htmlをパースするにはドーすればいいんですか。 SAXとかでパースできますか?
826 :
デフォルトの名無しさん :02/09/06 00:31
また、無謀なことを(w 何をしたいのか知らないがHTMLに目印を組み込んで自前でパースするのが吉。 XHTMLとかなら無問題だが、仮にhtmlが読み込めても補完方法が曖昧
827 :
デフォルトの名無しさん :02/09/06 00:52
COBOLからJAVAへのコンバージョンソフトって ありますでしょうか??
828 :
デフォルトの名無しさん :02/09/06 01:09
質問ですが皆さんはプログラミングをどういう所で習得なさったんですか? やってみようかなって思ってるので1から教えてくれる所なんかの情報を下さい。 お願いします
javax.swing.text.htmlとかは関係無いのですか?
830 :
ぼぶ ◆EMrmvKLI :02/09/06 01:24
はっきりした答えが出なかったのでもう一度質問します。
これからJAVAを始めたいのですが、
>>5 を見てもJDKのインストールの仕方がわかりません。
なんか、JREとSDKがあるんですがどっちをダウンロードしたらいいんですか?
>>830 ドキュメントを読めばおのずとわかる。
ただ、日本語に不都合が見受けられますので、苦労されるかもしれません。
その場合は何百回でもドキュメントを読み直しましょう。
言語の勉強は繰り返し行うしかありません。
>>830 どっちでも好きな方を。
間違えたら もう片方をダウンロードすれば大丈夫です。
>>830 冷たいように思われるかもしれんが、Javaの入門書を買ってきたらどう?
インストールからコンパイルの仕方まで載っているモノをね。
それが一番楽&早いと思われ
>>831 日本語に不都合があるのは830なのかドキュメントなのかがわからない文面ですた。
>>828 開発環境を毎日夢中でいじり倒した。
プログラミング関係の面白そうな記事の載っている雑誌を
買いあさったりその手のサイトをめぐっていろいろ試した。
1から全部独学なので
教えてくれる所なんかしらん。
専門学校にでも行ったら?
837 :
デフォルトの名無しさん :02/09/06 12:06
>>835 禿堂。
1から教えてもらった技術なんて結局役に立たないし、応用利かないよ。
バカにでもヒッキーにでもなっていいから、自分でいじり倒して学んだ方がイイ。
# ずっとヒッキーでも困るんだけどな。
JTableコンポーネントへのrowの追加について質問があります。 現在JTableコンポーネントには通常の文字列が入力できるカラムの他に JCheckBoxコンポーネントでチェックボックスによる入力が出来るカラムが存在しています。 テーブルへの入力は直接セルに文字列やチェックボックスの入力を行うのではなく ボタンを押下後ダイアログを表示しそこで必要な情報を入力し ダイアログにてOKボタンを押下する事でテーブルにデータを入力できるようにしようとしています。 ここでJCheckBoxコンポーネントへのダイアログ上の情報を反映する方法がわかりません。 テーブルのデータはDefaultTableModelのaddRowメソッドを使用して追加しようとしています。 文字列だけの場合ならばaddRowメソッドで追加できますが これにJCheckBoxなどのコンポーネントが加わった場合、どのようにすればよいでしょうか?
839 :
デフォルトの名無しさん :02/09/06 14:18
>>836 うわー
取り扱ってる題材とか参考文献とかめちゃくちゃセンスいいのに
変な対話形式と下手な絵とダサいレイアウトで相殺している!
>>836 、839
テキスト書いてる人は有名だよね
絵は…「画像表示禁止」っと。
JAVAで、ホスト名、もしくはIPアドレスを指定して 特定のPCの物理アドレスを取得することは出来るのでしょうか? ホスト名からIPアドレス取得、 IPアドレスからホスト名取得は出来たのですが・・・・ やっぱり、JNIなどを使わないと無理なのでしょうか?
>>838 これでどうよ?
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
public class TTT extends JFrame{
public static void main(String argv[]){
TTT ttt=new TTT();
ttt.show();
}
public TTT(){
DefaultTableModel mdl=new DefaultTableModel(new String[]{"もじ","ちぇき"},0);
mdl.addRow(new Object[]{"うぐぅ",Boolean.TRUE});
mdl.addRow(new Object[]{"が、がお",Boolean.FALSE});
JTable tbl=new JTable(mdl);
tbl.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new JCheckBox()));
tbl.getColumnModel().getColumn(1).setCellRenderer(new CheckBoxRenderer());
getContentPane().add(new JScrollPane(tbl),BorderLayout.CENTER);
}
class CheckBoxRenderer extends JCheckBox implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSelected((value != null && ((Boolean)value).booleanValue()));
return this;
}}}
参考:
ttp://www2.gol.com/users/tame/swing/examples/JTableExamples2.html
ここは夏よりも、学校始まってからの方が荒れるのね。
845 :
デフォルトの名無しさん :02/09/06 16:44
Canvasから継承したクラスのpaint()にdrawLineで20本くらい 線を引く処理を書き、これをアプレットにGridLayoutでadd()したんですが、 アプレットビューアで起動したとき、上述の20本の線のうち、半分の 10本くらいしか表示されず、その後アプレットビューアにマウスを ポイントすると全部表示されました。 自分の意図としては起動時にすべての線を表示したいのですが、どのあたりが マズそうですか? sdkの1.4を使っているのですが。
>>845 アプレットビューアで起動したとき、って言明してるってことはブラウザで見たときはオッケーなのか?
ちょっと情報少ないので、できれば関係ありそうなところだけでもソース晒してくれると答えが返ってくるかも。
俺の手元の環境では再現しないっす。
# >自分の意図としては起動時にすべての線を表示したいのですが、どのあたりが
# >マズそうですか?
# こんなの見ると「お前の頭がマズい」とか言いたくなるのって俺だけか?
# 特に理由はないし、
>>845 に非があるとかじゃないんだけど、なんか条件反射的に。
>842 うまくいきました!ありがとうございます。
DatagramPacketで通信するクラスを練習で書いているのですが、 これって送受信内容はbyteですよね。この内容を16進でコンソールに表示させたくて (要するにパケットのダンプ) 内容をString(16進表示)にしたいのですが、使えるメソッドはありますか? APIリファレンス読んだのですが、30分ほど考えて爆沈しました・・・。
>>849 便利なものはないという結論が出ていたような。
普通にしこしこ書いても、数行では?
852 :
・゚・(つД`)・゚・ :02/09/06 23:56
>>379 劇的亀レスで申し訳ないが
BigDecimalの名誉のためにレスしとく。
BigDecimalで四捨五入はROUND_HALF_UPで問題ない。
例えば9.9995をscale=3で丸めるたい時に
doubleでnewするとBigDecimalの値は
9.9949999999999992184029906638897955417633056640625に
ROUND_HALF_UPすると9.99になる。
StringでnewするとBigDecimalの値は
9.9995に
ROUND_HALF_UPすると10.00になる
doubleでnewしてることが問題なんだ
BigDecimalは悪くないんだ
853 :
デフォルトの名無しさん :02/09/07 00:12
そういえば、少数点以下があるBigDecimalって、Stringで newするのが推奨だねえ〜。 あるいは(整数)×(10^-(整数))の整数二個で作るとか。 そういえばJCPで10進小数演算用の拡張がJSRに上がってた ような。何番だっけ?
854 :
デフォルトの名無しさん :02/09/07 01:37
javaでGUIアプリを作っているのですが、jdbでデバグしようとするとVM Startedと表示されて反応がなくなります。 一応GUI部分とデバグ部分を切り離せば普通にjdbでデバグできるのですが、それだとスマートじゃないです。 GUI実装したアプリをデバグする場合はjdbではどうすればよいのですか?
>デバグ部分 デバグしたい部分のマチガイです。
>いや、やはり関係無いです。 え?HTMLのパースはできますよ。問題は結構ありますけど。
HTMLEditorKet.ParserCallbackなんかでパースできるね。 正しくないHTMLで適当にタグを自動補完してくれるのは ありがたいのかありがたくないのか微妙だが。
>>855 sageるのに、「さげ」って書いている人に、未来はない。
>>836 舐めてる絵はともかくとして、いいねそれ。
860 :
デフォルトの名無しさん :02/09/07 14:38
初めてjavaをやってみたんですがエラーが出てしまうのを質問させてください。 @JDKをインストール ABINにパスを通す。 Bjavac ファイルでclassを作る。 ここまでやったんですが、java クラス名でクラスを実行すると Exception in thread "main" java.lang.NoClassDefFoundError とでてきます。単なる"hello java"を表示しようとしただけなんですが、何故javacでクラスはコンパイルできたのに javaで実行ができないんでしょうか?
javaをはじめてまだ15分しか立ってませんが、床屋に逝ってくるので 5時ごろまた見に来ます
>>861 クラスパス通ってないんじゃないか?Java, CLASSPATHをGoogleで検索しる!
863 :
デフォルトの名無しさん :02/09/07 15:40
JEditerPaneより高速なHTML表示コンポーネントを探してます。 JavaからGekkoエンジンを使用したりって出来ますか?
半角カナなんて使ってるからじゃねーの?
>>863 ねーねー、Google使った?取り合えず自分で調べてから質問しろよ。
>>865 Java Gekko
Java Gekkoエンジン
Java Gekko Engine
Java HTML
Java HTML 表示
Java HTML コンポーネント
覚えてるだけでこれくらいは検索しました。
>>865 おいおい、ここは「googleで検索しましたが見つかりませんでした。」って書いてないと質問権ないのか?
>>868 一度言ってみたかった厨房か何かだろう。過剰反応するなって。
>>868 「腐るほど検索でHITするだろうが、目ん玉付いてんのかよ」…の方が良かったか?
>>871 で、検索キーワードはあくまで書かない。
素人からかうだけの識者。悪い場合答えわからんくせにマニュアル的に煽ってるバカってとこか?
Webアプリで使用するデータベースコネクションプーリングについて 質問です。 javax.naming.InitialContext ic = new javax.naming.InitialContext(); javax.sql.DataSource ds = (javax.sql.DataSource)ic.lookup("java:comp/env/jdbc/OraDB"); java.sql.Connection con = ds.getConnection(); 一般的に上記のようなコードで Connection を取得すると 思うのですが、この中の DataSource ds オブジェクトは アプリケーションの中でひとつだけ存在(シングルトン)すれば いいように思うのですが、正しい認識なのでしょうか? それとも Connection を取得する複数のクラスそれぞれで 毎回、上記のようなコードで DataSource を取得するべき なのでしょうか? DataSource や JNDI についての知識がないので、 詳しく分からないのですが、ds に、予め設定された コネクションプール数の Connection が関連づけら れていて、それを getConnection() で引っ張ってくる だけなら、ds はむしろ ONLY な存在であるべきな ような気がするのですが・・・
>>873 DataSource は別に複数生成していないだろ?そのソースでは。
あくまで探してきてその参照を取得するだけだろ。
で、その参照先がひとつ何だから貴様ごとき人間が悩む必要ねーんだよ
馬鹿はJ2EE使うな。
>>874 ほうほう、そういうことかい。
探すのにはコストは大してかからない?
JNDI lookupは非常に負荷の高い処理である。そのため、ここではstatic変数dataSourceにキャッシングし、繰り返しlookupしないようにしている。サーブレットの場合にはこの処理をinit()メソッドに置き、instance変数にキャッシングさせることにより同様の効果が得られる。
質問に答えないでただ罵しろうとするだけの奴多すぎ。 そういう奴は(・∀・)デテイケ!
床屋から戻ってきました。
早速
>>862 さんがおっしゃったことを見てみて、javacでコンパイルして作ったTest.classのあるところに
classpathを以下のコマンドで通してみましたが、
[java -classpath C:\チョメチョメ\ファイルのあるフォルダ]
Exception in thread "main" java.lang.NoClassDefFoundError:and
なるエラーがでてしまいます。
XPだからなのでしょうか?
よくわかりませんが一応admin権限持ってるユーザーでやってます。
どなたか教えてくださいませんでしょうか?
よろしくおながいします
880 :
デフォルトの名無しさん :02/09/07 18:12
jdb使っているんですが、変数の配列はdump hoge[0],dump hoge[1]、、、とかやっていると非常に面倒です。 一気に表示させる方法ないですか?
>877
「JNDI lookup 負荷」でGoogleしてみました。
http://www-6.ibm.com/jp/software/websphere/developer/performance/vol4.html ここらの引用ですな。
馬鹿なりにまとめてみると、DataSourceはそもそもひとつしか
存在せず、InitialContext#lookup()でその参照を探して
取得してくる。
でも#lookup()はコストのかかる処理なので、static変数に
キャッシュしておいて、それを再利用するのがベター。
結局は以下のようなクラスをアプリケーションの中に
用意して使うのがヨシってことかな。
pulbic class DataSourceHandler {
private static DataSource ds;
private DataSourceHandler() {
// lookup処理
}
public synchronized DataSource getDataSource() {
if (ds == null)
ds = new DataSourceHandler();
return ds;
}
}
>>879 ソースと実行時のコマンド(実際の入力)を示してください。
>>882 ありがとです。まずbinにパスが通ってます。
☆そーす(aa.java)
class Test{
public void main(String args[])
System.out.printIn("hello java!");}
☆コンパイル
javac aa.java
んでいちおうclassはできますた。
その後
java Test
と打つと、
>>860 のエラーが出てきてしまいます。
一応カレントはclassファイルのあるところまで移動しているのですがそうなってしまいます。
クラスが public でないから。 public class Test{ public void main(String args[]) System.out.printIn("hello java!"); }
↑ ばか
つーか、うまくいきません。(涙 aa.javaはTestに変えろって怒られたのでTest.javaにかえますた。 んで一応classができて、 java Testと打ちましたが、同じエラーがでます。 ☆えらー Exception in thread "main" java.lang.NoClassDefFoundError:Test
java -cp . Test
ハァ... set CLASSPATH=%CLASSPATH%;.
>>889 同じエラー
Exception in thread "main" java.lang.NoClassDefFoundError:main
>>890 同じエラー
Exception in thread "main" java.lang.NoClassDefFoundError:Test
一応set CLASSPATHの変数を確認しますたが、クラスファイルのあルところです。
ハァ... カレントディレクトリに Test1.class はあるのか? dir *.class
class HelloWorld { public static void main( String[] args ) { System.out.println("はろー"); } } ↑をc:\HelloWorld.javaに保存 c:\>cd \ c:\>javac HelloWorld.java c:\>java HelloWorld やって見れ
>>895 やってみます。ちと待っててください。
別のパソ立ち上げてきます
ハァ... echo %CLASSPATH% 貼ってみれ
同じエラーじゃないだろ。 888>Exception in thread "main" java.lang.NoClassDefFoundError:Test 891>Exception in thread "main" java.lang.NoClassDefFoundError:main ちゃんと自分がコマンドラインから何を実行しているか把握して 質問しようね。でないと答えるほうも答えられん。
個人的には Exception in thread "main" java.lang.NoSuchMethodError: main が出てると思われ。
>>896 だめですた。
同じエラー
Exception in thread "main" java.lang.NoClassDefFoundError:Helloworld
でした。
>>897 それはTest.classのあるフォルダに指定されてます。(setでしました)
一応クラスファイルのある場所にあります。
C:\Document and Setting\クラスファイルのあるところ
>>898 すいません。今日初めてまだ1時間もたってないので。。。。。許してください。
一応
javac(クラスファイル作成)
java (実行)
set CLASSPATH (ユーザー指定のクラスのあるカレント)
と理解しているつもりですた。
>>899 でてませんです。ハイ
いや、各コマンドの意味を理解しているかじゃなくてね、 888のエラーはTestがみつからんっていっているエラーで 891のエラーは(クラス名として)mainがみつからんっていっているエラーなんだよ。 ってことは、888のときはjava Testってやってて、 891のはjava -cp . main ってやってんだよ、きっと。もしくは ソース中のクラス名を変えたか。で、どっちも889に書いたのとは 違うでしょ。で、そういうの把握している?っていっているわけ。
ハァ... 入力(実行)したコマンドと実行結果をまとめてコピーしろよ。せいぜい数行だろ 嘘書いてるとしか思えん
>>903 なるほど。わかりやすいです。
java -cp や -classpathでエラーってことは
やっぱり、パスが通ってないってことなんでしょうか?
でもcd してきちんとファイルのある場所まで移動してるんですが・・・・・・
それともXPでは無理とか?
>>904 全く嘘なんか言ってません。
普通にやってます。
ソースつくってjavacでクラスにしてjavaで実行ですよね。
ちとまっててください。
@JDK1.3.1をインスコ Aマイコンピュータのプロバティで環境変数をC:\jdk1.3.1_10\binに通す。 B先ほどのHelloworld.javaをC:\に入れる。 Ccd C:\(もともとここにあるけどとりあえずcd) Cjavac Helloworld.java(問題なく次のプロンプトがでてきます。) Ddir Helloworld.class存在確認 Djava Helloworld←ここでダメ。 C:\>java Helloworld Exception in thread "main" java.lang.NoClassDefFoundError:Helloworld
こんなかんじです。
バカばっか全然解決しねーじゃn。
>嘘 ここでやれって書かれたことと、お前さんが実行したことと、実行したって主張してることが 全部一致してないんだよ。 お前の言うことなんか信用できんから、実際に画面に表示されたものを貼れって言ってるんだ
ハァ... いい加減氏ねよ set CLASSPATH=%CLASSPATH%;.
java Helloworld じゃなくて java HelloWorld だろ。
大文字小文字が完全に一致しないといけない。
>>913 今のJDKはCLASSPATHの指定はいらない
ハァ... type Helloworld.java
どっちもやれよ。 市販アプリの中にもCLASSPATHを設定するものがあって、そういう場合には設定しないといけない だから設定して悪いことはない。
>>916 だからそれは↑にでてますよ。
指定したものを書き込んだだけちゃんとClassできてるといってるじゃないですか。
set Classpathもただしくとおってます。
DOSコマンドの紹介じゃないのでいちいちtypeなんてやらなくても classができているので、一応(汗
XPだとたしかJVMがどーたらこーたらってでてたけどそれが問題なのでしょうか? でもJDK入れたし・・・・・
>>921 で、大文字小文字は正しく指定したのですか?
>>916 だから、どうやって「正しい」と判断したんだ。全部正しけりゃ動いてるよ。
お前の言うことは信用できんから実行結果を貼れって言ってるだろ。
つべこべ言わずに
echo %CLASSPATH%
path
dir
type Helloworld.java
全部実行して貼ってみろ。変に編集するんじゃねぇ
>>922 はい。クラスの一文字目は必ず大文字ですよね。確認しておりますです。
>>918 895のソース中で
class HelloWorld
ってなってんだから、javaの引数も HelloWorldだろうに。
で、916はソース読み直せっていってんだよ、きっと。じゃ俺は寝る。
HelloWorld ^^^^^^^^^^ W も大文字
>>927 ハハハッWは小文字でつくっちゃいました。
でも小文字でやっておりますので大丈夫だと思いますよ。
大文字はHだけです。
ハハハッ
言われたことを素直に実行できないことを認めましたね。
>>928 もうJavaは諦めた方がいい。迷惑だ。
んじゃ大文字にします。かわらないと思うけど
>>932 大文字小文字は、
.java ファイルの class xXxX {...}
と、javaコマンドで引数にする xXxX が一致してないとだめなんだよ。
>>935 一致させてます。んでHelloWorld.java
class HelloWorld{
public void main(String arg[]){
System.out.printIn("はろー");}
}
javac HelloWorld.java
のクラス作成←問題なし
java HelloWorld
↓以下のエラー
Exception in thread "main" java.lang.NoClassDefFoundError:Helloworld
ハァ...
printIn→println
>>923 の通りにしろ。無い頭で編集するな。
javac HelloWorld.java
java HelloWorld
の実行結果も貼れ。頭の悪い奴の解説なんぞいらん。
実行させたいクラスファイルの場所を指定する場合、通常のパス指定ではダメだにょ。 こういう場合は java Helloworld -cp c:\ でよろいのでございますにょ。 そのExceptionはクラスパス先にHelloworld.classが無いってことだからにぃ。
public void main(String arg[]){ ↓ public static void main(String arg[]){ だろっ!!!!!!!!!!!!!!!!!!!!!!!!!!!
printIn→println 劇藁にょ
>>938 この上嘘教えて混乱させるなよ。ここまで教える側に嘘は無かったのに
>>938 うーん。それでもいきません。
java Helloworld -cp c:\
java Helloworld -classpath c:\
も
Exception in thread "main" java.lang.NoClassDefFoundError:main
がでてきますた。
>>939 たぶん、コピペの能力ないんだよ、手入力なんじゃないかなぁ。
とりあえず、エラーはまだクラスが見つからんレベルで
mainメソッド探すとこまでいってないから、それ以前だ。
抽象的に言っただけでウソではないにょ public class HelloWorld { public static void main(String[] argc) { System.out.println("はろー"); } } と入力して javac HelloWorld.java java HelloWorld -cp c:\ でOK。いまやってみて正常に動いたにょ
先入観でプログラミングしているよね
↓
936 :860 :02/09/07 19:43
>>935 一致させてます。んでHelloWorld.java
class HelloWorld{
public void main(String arg[]){
System.out.printIn("はろー");}
}
javac HelloWorld.java
のクラス作成←問題なし
java HelloWorld
↓以下のエラー
Exception in thread "main" java.lang.NoClassDefFoundError:Helloworld
あー面白かった。w
>>907 通りやれば普通に動くだろ。w
実行結果をULしろって言われた時はふざけてんのがバレるのでできんかったよ。
あとはうまくだませた。w
んじゃ!おれ8時半から飲み会なので!
>>860 には、問題が解決してもしなくても、
このスレとともに真でもらいたいのだが。
>>945 何が抽象的、だ。アホらし。たまたま動いてるだけ。
for (int i = 0; i < argc.length; i++) { System.out.println(argc[i]); }
してみれば?
もう黙ってていいよ
>>945 それはね、カレントディレクトリがデフォルトユーザクラスパス
だからだよ。あなたの`-cp c:\'はargcのなかに吸い込まれている。
java.exeのオプション指定のやり方を勉強しようね。
>945 お前ははよCDQ完成させろ、ぼけ! こんな床で油売るな、アニオタがw
>>949 いや最初から遊んでただけ。w
こんなの引っかかるなよ。
俺が増えてる。。。。。 俺が本物だぞ。 いやマジで。 からかってすまんかった。
>>952 飲み会でも何でもいいから、ココから消えてください、おながいします。
1000!
>>956 いやプログラム云々はどうでもよかったのです。
ただ暇だったからネタを作って遊んでいますた。
だからULしろって言われたときにはネタがバレるかとおもたよ。
そうだったかにょ反省するにょ
言われたとおり書けって言われて書いたら終わっちゃうだろが。 だれが書くかw
新宿まで15分。
1000逝きたい!
うそついてました ほんとに動きません
>>860 いいから消えてください、おながいします。
俺もうそついてました。 まだ動きません。 エラーはどうすればいいんですか?
では、本日、中央線の終電で逝ってきます。 さようなら・・・
動きました!ありがとうございます!
>>860 嘘付いてても付いてなくてもどうでもいいです。頼むから氏んでください、おながいします。
まだ、動いてません。 どうしたらいいのでしょう?
俺に化けるなって。マジで時間が・・・・・・・・ でも1000見届けたい
860「残像拳!!」 ベジータ「ん?」
みんな嘘はやめてー ほんとに動かないんだって!
あと少し
まじで必死に説明してるやつワラタ。
15分切った
あとレス14
残念ですが、ここでは私が望んだ結果は得られないようです。 所詮2チャンネルなんですね。 さようなら。
次はUnix板で遊んできます。
ほんとの俺はもう飲み会に行っているはず
おまえが遊ばれたんだよ(藁
俺が遊んでやっただけだよ
>981 遊ばれましたが何か?
(;´Д`) だまされた
俺のせいで糞スレになっちまたなぁ
1000
このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
System.out.println("はろー1000")
私はうんこです
私を異界送りしてくささい
オブジェクト恥垢
私はティムポです
わたしはやってない、潔白だ
私は太郎です
必死で教えてた奴ワラウ
ボクの肛門がオーバーロードされそうです
1000
1000 :
1000 :02/09/07 20:28
このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。