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
zusa-
おつ
15 :
デフォルトの名無しさん :03/01/13 10:42
JGL って何ですか?
前スレで御世話になった結局JInternalFrameを使うことにした者です。 JDesktopPaneって、デスクトップアイコン感覚で MyIcon extends JComponent を貼りつけたりできないんですかね? ダメなら枠とか背景とか消した JInternalFrame を使う手があるのは承知してますが。 (こっちの方が全ての子がJInternalFrameとなって統一感が出て良いのかな・・・無駄な気がするが)
>>17 あれから、ふと思ったのだけどJInternalFrameの該当するソースをぬきだして
自力で実装するという手もあったかも。
19 :
デフォルトの名無しさん :03/01/13 12:40
>16 Java Generic とは違うのね?
>16 日本語解説ページってない?
結局OS再インストールで解決してしまった 打つだし脳・・・・・ なんかボーランドの開発環境ってインストールでやたらトラブルなぁ 開発環境自体は好きなんだけど。
分からん・・・。 JDesktopPaneには確かにJInternalFrameを優遇する機構はあるようだが、 だからと言って一般のJComponentを弾く機構は見付からず。 軽量オブジェクトらしいしとりあえずJInternalFrame使うか。 # 軽量オブジェクトが何なのか知りませんが。 >18 オブジェクト指向厨としてはそれは出来ません。 多少重くなっても継承とかメンバ変数を使います。
>>24 本来、使用目的の違うものをむりに使うよりは、
めんどうでも一から実装しなおしたほうが楽でいいよ。
そもそも、ある目的に特化したクラスを、
無理してべつの目的に使うのは苦労が多いし
それはオブジェクト指向的ともあまりいえないかと。
未だなにかに特化していない抽象的なクラスを、
なにかに特化させて用いるか、
もしくはなにかの部品として用いるのならいざしらず。
まあいまの方法でうまくいっているのなら、
そのまま進むのが一番だとはおもうけどね。
でもとりあえず、
>JDesktopPaneには確かにJInternalFrameを優遇する機構はあるようだが、
>だからと言って一般のJComponentを弾く機構は見付からず。
のためにはソースを見るのが一番かと。
>>25 ウィンドウシステムと今回作っている物(平面上の構造化データのエディタと思ってもらえばいいかな)の共通点
・マウスで移動、サイズ変更、閉じる(削除)、アイコン化(退避)が行える必要がある
・内部に部品を配置する必要がある
違い
・内部に配置する部品がウィンドウシステムでは様々なものが考えられるのに対し、
3種類(細かく分けると5種類くらいかな)に限られている
・階層化がウィンドウシステムではデスクトップ+MDIの2階層程度が普通なのに対し、
利用者が望むだけの階層を作れる必要がある(実際にはメモリ限界ですが)。
一つめは別に関係ないし、階層化については setContentPane(desktopPane) で行けますし、
メモリ消費も(比較実験はしてませんが)べとべと書いたのとあまり変わらなさそうなので、無理だという感覚は無いです。
むしろ良いもの見つけた、て感じです。
>ソース
ヘタレなのか見ても分からなかったです。
add周辺とpaint周辺を見てみたんですが・・・・・・。
もうちょい粘れば分かるかもしれないですけど、別に執着していないので。
JavaMail使って、IMAPサーバと通信するサンプルを、JSPで作れって言われたんですが、 Java自体素人な所為でサッパリです。 クライアントアプリでもいいので、IMAP4と通信するサンプルとかって、 どこかにないでしょうか? +激しく助けてください+
新スレ祝いage
>>27 JavaMail完全解説とかいう本またはそのサイトは駄目?
おれもJavaMailでSMTPのみ使ったことあるけど
エンコーディングに苦労した。
そのときはJavaMail完全解説のサイトからその本の著者が作った
ライブラリを使った。
いまならもっと改善されてそのライブラリすら要らないかもしれない。
SMTPのみなのでPOPとかはわかりません。
本は、回りの本屋に売ってないんですよ。 サンプルソースはどれがサンプルになるのか良くわからんです。 んー。。。「JavaMailでメッセージ受信を行うライブラリです。」とかって奴なんでしょうか? 参ったなぁ・・・
> 31 サンクスコ! ちょっと、調べてみます。
GikoMailはPOP3への対応のみのようでした。 IMAP4のサンプルって、なかなか無いんですね。 困りました・・・
コレはもう書いたらソース公開するしかないね(w
Servlet板と、こっちと、どっちに公開したらいいんでしょうね(w;
>>35 >>31 の3番目より転載
(前略)
JavaMailは名前通りなんですが、JavaでメールのやりとりをするためのAPIを定義したものです。
JavaMailの特徴は、JavaMail本体はインターフェースの定義が主で実際に通信を行うプロトコルの実装は
「プロバイダー」と呼ばれる部分で実装を行います。従ってプロバイダーを交換してやる事で新しいプロトコルに
対応する事が可能です。その際、アプリケーション側は使用するプロバイダーを変える記述をする以外の変更をする必要はありません。
JavaMail自体がフレームワークとして定義されているからですね。
JavaMail標準アーカイブ(mail.jar)では送信にSMTP、受信にIMAPのプロトコルを実装したプロバイダーが組み込まれています。
(後略)
て事は、このサイトにあるPOP3のサンプルソースをありがたくDLさせてもらって、中の、
Store store = sess.getStore("pop3");
を、"imap"に変更すりゃいいんじゃないの?
>>37 君が「わからない」ポイントは、JavaMailを使うって部分じゃないの?
「基本的にメールクライアントを」作った上で、その取得した内容をJSPに出力なんだろ?
ならここでいいんじゃないの?
つーか、いろいろ試してみれ。
>>19 基本的にはCollection APIみたいです。
JavaGenericLibraryって書いてあるけど
Tigerで追加予定のGenericsとは関係ないよーで。
えー。情けない話ですが。 JComponent で普通に通りました。サイズが 0x0 になっていた模様。 getLayout()==null の場合の仕様を、 初期位置が (0,0) サイズがgetPreferredSize() になると思い込んでいたのが原因です。 JInternalFrameを使う時は最初は中身が空→サイズを指定しないとまずいだろ、と 思ってやっていたのでうまく行っていたのですが、今度の場合は大きさ固定の物なので 自動的にやってくれるだろ、と思ってやってました。 くだらないオチですみませんです。お騒がせしました。
このスレの連中、スキルが低いな。 やっぱり所詮Java厨って事か。 つまらーんところで悩んでるよ(藁
>>43 初心者大歓迎のスレで高いスキルを期待されても…
今日オライリーのJavaプログラムクイックリファレンスを見てたんですが 2.8LinkedListでわけ分からなくなりました。 オブジェクトの比較でなんで算術演算子=が使われてるのかな。 「オブジェクトへの参照型」というのがなんかぐちゃっとした感じで......
>46 「算術」演算子ではないです。 両辺がオブジェクトの場合、== は 同じ物を指している場合true,そうでない場合falseを返します。 >44 このスレはJava初心者は歓迎しますが、煽りを無視できない2ch初心者歓迎しません。
あれえ? コードは public class LinkedList{ public interface Linkable{ public Linkable getNext(); public void setNext(Linkable node); } linkable head; それでメソッドの定義が続くんですが、たとえばこのように public synchronized void insertAtHead(Linkable node){ node.setNext(head); head=node; } なっていて、これはオブジェクトの比較ではないんでしょうか?
>>50 > head=node;
は比較じゃなくて代入でしょ。
(^^)
すみません、 なんとなく分かりました。 オブジェクトもなんらかの値をもっているということなんでしょうか。
>>54 どうも
自分でコードをを書いてみてそれがぐうーっと動く感じがほんのり分かった感じです。
質問です。 Windowsでjavaを利用したネットワークシステムで、 クライアントのアプリケーションを実行、操作するようなシステムを作りたいと思っているんですが、 可能でしょうか?? 良い方法かホームページなどあったら教えてください。 お願いします。
57 :
デフォルトの名無しさん :03/01/13 21:17
スレッドにsynchronizedをつけるのとオブジェクトにsynchronozedをつけるのと 何が違うのか教えてください。 オブジェクトをロックするってことは同じだと思うのだが…
> スレッドにsynchronizedをつける ???
>>60 要は相手のPCに常駐させて寝てる間にいろいろしちゃおうって話だろ。
学校で習ったjava使って。
>>61 VNC みたいな奴?
IBM が何か作ってなかったっけ?
>>62 VNC for Javaってのが存在したと記憶。
いちおう悪いことに使う気は全くなかったのですが。。。 まさにそのVNCみたいなやつです。
すいません、java で vb の #if みたいのってどうやってやるんでせう…。
>>56 RMIとかCORBAで検索をかけるとよろしいかと。
ほかに「分散コンピューティング」「エージェント指向」
などの言葉とJavaで複合検索するのもおすすめ。
>66 の >62 は >56 の間違いです。あと偉そうですいません。
4nd・・(ププッ
>>57 スレッドににsynchronizedをつけるとは、
具体的にいうとどういうことなのでしょうか。
ありがとうございます。 といあえずこれらを参考になんとか勉強してみます。 またわかんないとこあったらお願いします。
>>57 質問がアバウトだけども、synchronizedは、要するにオブジェクトの変遷を同期化します。(この答えもアバウト?)
スレッドだろうがなんだろうが、です。
>>57 要するに「2台同時に突っ込まれて来ても困るドライブするー」において、先に来た1台がなんかしてる間、
後の1台(以上)の車を待たせておくって事。
75 :
デフォルトの名無しさん :03/01/13 23:53
質問します GUIアプリケーションでフレーム(ウィンドウ)部分を 表示せずに、中身だけ表示するにはどうすればいいですか?
>>75 java.awt.Window とか javax.swing.JWindow 使うとか?
78 :
デフォルトの名無しさん :03/01/14 00:08
79 :
デフォルトの名無しさん :03/01/14 00:11
>>76 わかりにくかったみたいですね。
すみません
例えば、デスクトップ上に、ボタンが浮かんでるような
状態にするとかという意味です。
>>77 ,78
できればもう少し、詳細にお願いできますか。
それだけでは、想像もつかないので。
>>79 頼むからJavaで訳わからんもん作るのやめて下さいよ・・・。
良くも悪くも箱庭言語なんですから。
81 :
デフォルトの名無しさん :03/01/14 00:15
つまり、無理ってことでしょうか。 それならあきらめます。
82 :
デフォルトの名無しさん :03/01/14 00:18
そもそもJavaでGUIアプリを作るほうが愚か。
意地悪せずに、教えてやれよ。 地に落ちたJava厨やJavaプログラムの外聞なんて、 今更気にしたってしょうがないだろ。 デスクトップ上に、ボタンが浮かんでるようなアプリ、 Javaらしくて最高じゃん。
>75 ほらよ。 import javax.swing.*; import java.awt.*; for(int i=0;i<768;i++){ JWindow w = new JWindow(); w.setLocation(i,i); w.setSize(100,100); w.getContentPane().add(new JTextField(),BorderLayout.CENTER); w.show(); } 一応言っておくが、2行冗談が入ってるからそのまんま実行するなよ。
88 :
デフォルトの名無しさん :03/01/14 00:36
いろいろありがとうございました。 参考にしてもう少しがんばってみます。
デスクトップ上にボタンが浮かんでるソフト。見たい、見たいぞよ。 他人のパソコンにインストールして、一度使ってみたいぞよ。
良いじゃないか別に何だって…
>>89 >>86 のコードに5,6行つけくわればできる。
つーかじっさいにいま作って実行してみたがすごい光景だ…。
>>84 はJavaらしいというけれど、
なんかこれ、俺のイメージするJavaアプリとは
随分と、かけ離れているんですが…。絶句というかちょっと驚いた。
>>79 わざわざそういうものをJavaでつくるということは
Windows以外の環境でもそれを実現させたいわけですか?
Javaフリークな私からすれば
Windows以外でも動くアプリ作って普及させて欲しいなとは思いますが。
>>80 >>84 Javaで作っておけば将来そのプログラムが長生きする可能性が
残るから、まあいいのではないかと。
>>92 Javaで作ってる理由は、Javaの勉強のためという以外に、
特に深い理由はありません。
>>93 勉強のためとの事なので、念のため。
考え方として、
>>86 のソースにも書いてあるが(@see javax.swing.JWindow)「Windowが無い状態」でも、
その「コンテナ」は必要。場合によって、それを見せないだけ。あるいは、見えないようにするだけ。
と、考えてみるべし。
ちなみにC/C++でWin32プログラム作る時も同様。
スレ違いかもしれんが > ちなみにC/C++でWin32プログラム作る時も同様 何か誤解してると思う。
最近、weblogicでJSPやってます。プログラムを途中で終了させたいと思い、 System.exit()を使ったのですが、weblogicごと落ちてしまいます。 Java VMの処理を終了する、とはそういうことなのですか…。 JSPでプログラムを終了させるには、通常どうするものなのですか?? スレ違いかも知れませんが、ご存知の方、どなたかお助けくださいませ。
>>96 Tomcatなら startコマンドで、起動、stopコマンドで停止だが。
OSは何? WinNT系ならコントロールパネルのサービスで起動と停止ができるんでない?
最近のはOSが起動すると同時にServletContainerも起動するみたいだ(Tomcatインストーラの拡張子exeかmsi版)。
終了ってどういうもの?
ブラウザで表示するだけなら、終了しないでほっといていいんでない?
>97 どうもありがとうございます。 でも、そういうことではなく、JSPのソース内で、文字列の表示と プログラムの終了を、if()で切り替えたいのです。 if(xxx!=null){ %>文字列表示<% }else{ このスクリプトを終了させたいけど、 System.exit(0)は使えないみたい } %>まだまだ続きはあるの<% … … こんな場合、どうすればいいのでしょう。 System.exit()は、確かにプログラムは終了するのですが、 weblogicごと落ちてしまうのです。ちなみに、OSは、unix系です。
>>98 returnしてしまってその後の処理を中断するとか、
エラーページ送出にディスパッチするとか、じゃないのかね。
100 :
javax.sound :03/01/14 03:18
JAVAでボタンを押して音を鳴らすにはどうしたらよいでしょうか? au1 = getAudioClip(getDocumentBase(),"ファイル名.mid"); という部分で何度やってもエラーが出てしまいます
>>100 ちなみに
java.applet.Applet#getAudioClip(url,name)の事で、そこで使用しているインスタンスは、
java.applet.AudioClipだよね?(ちゃんと書くように)
つーか、それってMIDIも大丈夫なんだっけ?Appletは良く知らんけど。
103 :
デフォルトの名無しさん :03/01/14 03:31
"Audio","Clip"って、"*.wav"じゃなかったっけ?
104 :
javax.sound :03/01/14 03:58
java.applet.AudioClipです(すいません) auとmidは大丈夫らしいですけど・・・
>>100 SecurityExceptionじゃないだろうな?
ていうかエラーの内容書かないていうのは、俺らに対する挑戦か。
>>109 >質問のさいは状況が相手に伝わるように書きましょう。
>エラーコードなどもしっかり書いたほうが適切な回答を得られます。
>>100 のような質問の仕方では適切な回答を得るのは難しい。
>>111 109と100は別人と思われる。
100、104の名前欄を109と較べて見れば
その可能性が高いとみるほうが自然。
もちろん
>>100 のような質問では回答のしようがないことには同意だが。
>99 関数ではないので、returnは不可能です。 そして、他のページにも飛びません。 正常終了で、もう出力はないときに、どう終了すればいいのか 知りたいのです… もちろん、なければ関数化するとか、ifの構造自体を変更する、 という手は考えています。
>>115 どんなエラーが出るの?それ先に書いてよ。
>>114 JSPは関数だよ。ていうかやってみたの?
>>114 異常時に途中で終了するのは仕方ないが、正常時に途中で終了するような
処理は書かない方が身のためだぞ。
>>117 JSPは関数というのも問題があると思うんだけど。
>117 return で終了できました。どうもありがとうございました。 コンソールアプリ同様、main()が呼ばれている感じなんですね。 その内容、どこで定義されているのでしょうか? ご存知なら、教えていただけますか?
>>119 JSPはサーブレットに変換されます。通常そのサーブレットはHttpJspPageを
実装したもので、HTMLべた書き部分、スクリプトレットなどは_jspService
メソッド内に展開されます。
Weblogicだとどこにあるかわかりませんが、どこかにJSPをサーブレットソース
に変換したファイルがあると思いますから、探してみてください。
暇つぶしに標準配布の Java ドキュメントあさってたら下のようなものを 見つけたけど、誰か使ったことある人いたら使い物になりそうな出来か 教えてくだされ。 > MIF ドックレット - 実験的 - MIF (Maker Interchange Format) 形式で > API ドキュメントを生成します。 これらの MIF ファイルは、Adobe > FrameMaker (または fmbatch) で開くことができ、またオプションで PDF、 > PS、Microsoft RTF、Microsoft Word、または WordPerfect 形式に変換 > できます。 Java 2 SDK には含まれていません。
>120 どうもありがとうございました。スッキリしました。 続いて初歩的な問題かもしれませんが、質問させてください。 StringBufferは、配列にすることはできますか?
>>123 StringBuffer stringbuf = ....;
char[] array = stringbuf.toString().toCharArray();
とかって事ではなくて?
125 :
デフォルトの名無しさん :03/01/14 15:16
Stringの中に数字が入ってるかどうかを調べるには どうすればいいでしょうか? ご教授ください。
>>125 数字ってのがどの程度の塊であるのか知らんけど、
for(int i = 0; i < str.size() ; i++){
if( Character.isDigit(str.charAt(i)) )
return true;
}
return false;
とか やるとか。
>>126 >for(int i = 0; i < str.size() ; i++){
じゃなくて
for(int i = 0; i < str.length() ; i++){
だった…
>>125 String str; が数字だけかどーかを調べるんだったら
try{
Integer.parseInt(str);
return true;
}catch(NumberFormatException e){
return false;
}
とか。例外処理機構使うからアレだけど。
>>126 おっさん、true と false + 否定が逆だろう。それだと最初の 1 文字目が数字なら
必ず true で返るぞ。
俺はこうするが
try{
Integer.parseInt(str);
return true;
} catch(NumberFormatException ex){/* */}
return false;
130 :
デフォルトの名無しさん :03/01/14 15:39
>>126-129 さん
レスありがとうございます。
非常に参考になります。
>>128 さん
>例外処理機構使うからアレだけど。
とありますが、例外処理を使うと何かデメリットがあるのでしょうか?
131 :
デフォルトの名無しさん :03/01/14 16:10
配列についての質問です。 基本データ型の配列の場合は下のようにObject型の変数で受け取れるのに int[] sizes = {2, 4, 6, 8}; Object obj = sizes; 参照型の配列の場合には下のようにObject型の配列で受け取るようにするのは どうしてでしょうか? Test[] test = new Test[4]; Object[] obj2 = test;
>>129 >>126 のは一文字でも"数字"が入っている場合は true、
という意図で書いてるのでアレでおっけーです。
>>131 >参照型の配列の場合には下のようにObject型の配列で受け取るようにするのは
>どうしてでしょうか?
何を疑問に思ってるのか良くわからないっす…
ちなみに
Test[] test = new Test[4];
Object obj2 = test;
でもコンパイル通るでしょ?
>>130 >例外処理を使うと何かデメリット
とりあえずJIT様が最適化しにくいってのと
例外処理自体が結構重いってので速度面でデメリットがあります。
135 :
デフォルトの名無しさん :03/01/14 16:34
>>134 レスありがとうございます.
勉強になりました。
136 :
デフォルトの名無しさん :03/01/14 17:55
>>131 JavaのすべてのクラスはObjectクラスから派生されているんじゃないの?
>>131 プリミティブタイプはObjectのサブクラスではないので、
int[] sizes = {2, 4, 6, 8}; のような「intの配列」は
「Objectの配列」として扱うことが不可能だからです。
しかしプリミィブタイプ以外のJavaにおけるすべてのタイプはObjectのサブクラスなので、
Test[] test = new Test[4]; のような、「プリミティブタイプ以外の配列」は
「Objectの配列」として扱うことができるわけです。
故に、
>配列についての質問です。
>基本データ型の配列の場合は下のようにObject型の変数で受け取れるのに
>参照型の配列の場合には下のようにObject型の配列で受け取るようにするのは
>どうしてでしょうか?
と尋ねるよりは、むしろ、
基本データ型の配列の場合は「Object型の配列」の変数で受け取れないのはなぜでしょうか
と尋ねるべきかと。
敢えて
>>131 の質問に答えるのなら
「参照型の配列(つまりプリミティブタイプ以外のタイプの配列)」の場合には
Object型の配列で受け取ることが可能だから、Object型の配列で受け取るし、
プリミティブタイプの配列の場合は、Object型の配列で受け取ることが不可能だから、
Objectで受け取っているということです。
>>136 言いたいことは分かるが、その表現は正確でないです。
インスタンス・オブジェクトはjava.lang.Objectを継承しているが、Classオブジェクト
はjava.lang.Classを継承しています。
131じゃないけど、 なんでプリミティブタイプの配列はObject型で受け取れるの?
>>141 Javaにおいては、
「配列はオブジェクトとして扱う」という規則があるから。
もちろん、その配列の中に格納されているプリミティブタイプ自体はObjectではないので、
プリミティブタイプの配列はObject[]に格納することは不可能。
でも上記の規則によってプリミティブタイプの配列自体は、
これも一種の配列なのでObjectに格納することが可能。
ああややこしい。
143 :
デフォルトの名無しさん :03/01/14 19:19
公開されているソースを自分ので動かしたいのですが、 コンパイル時点で「推奨されないAPIを使用」とか 出てきてエラーになってしまいます。 何か別にすることはあるのでしょうか? 初心者なのでお願いします!
144 :
デフォルトの名無しさん :03/01/14 19:26
>143 公開されてる場所に情報があるかもしれないので確認せよ あとそのような質問の仕方では誰も対応できない あなたがどんな環境でどんなソースをコンパイルしているのかわからないから 質問するときは相手の立場にたってしなさい
>>143 javac -deprecation **.java
>>147 ありがとうございます!
推奨されないクラスとかってあるんですね?
ソースがまだ読めないので…
Javaも、1.0から1.1にバージョンアップしたときに大きく変わりましたし、 1.1から1.2のバージョンアップのときにも、また大きく変わりました。 こういったバージョンアップのさいに、 「推奨されないAPI」が生まれるわけです。 これから勉強するのなら、まあマイクロソフトのVM用や、 OS X以前のマッキントッシュ用にアプレットを作るのでもない限り、 せめて1.2以降のソースで学習したほうがよいかと。 仕事でアプレットを作らなければならないとかいうことでないのなら、 個人的にはアプレットよりもJava Web Startのほうがおもしろいかと。
151 :
デフォルトの名無しさん :03/01/14 20:43
ちょっと前にJava始めました。 入門書に書いているソースどおりに書いて、Applet作ったんだけど, appletviewerでは表示されるのに、なぜかhtmlを開いた時は灰色でしか表示されません。 MicrosoftVMもJavaVMもDLしているし、他に手のつけようがありません。 だれか表示できる方法を知っていたら教えて下さい。
>151 >MicrosoftVMもJavaVMもDLしているし、 両方あってもいいわけじゃないんだけど。 とりあえずJavaVM(sun製の奴か?)を使うように設定する。 それから、コンソールを表示してエラーログを見て対策を自分で考えろ。 それでも分かんなかったらそのログをここに貼れ。
>>151 おそらくそれも
>>149 にある
javac -target 1.1 コンパイルしたいクラスのファイル.java
で解決するかと。
現在のjavaコンパイラは、
そのままでは1.1用のバイトコードを生成してくれないのです。
1.1用のバイトコードを生成するためには
-target 1.1というオプションをつけてコンパイルしてやる必要があるのです。
灰色の画面しか現れないのは、おそらくブラウザが使用するJavaのVMが、
マイクロソフトのVMになっているからでしょう。
マイクロソフトのVMのヴァージョンは1.1なので。
>>151 MSJVMの場合は InternetExplorer で
ツール->インターネットオプション->詳細設定->MicrosoftVM->Javaコンソールの使用(再起動が必要)
にチェックすれば
表示->Javaコンソール
でJavaコンソール見られるので
(以下
>>152 の後半と同じなので略)
>>149 ところで「推奨されないメソッド」って
-target 1.1 でどーにかなるんだっけか?
はじめまして、ケイと申します。 いきなりの質問すみません。 5*d^2x/dt^2+2*dx/dt+3x=0 t=0の時 x=1 dx/dt=0 というのがあたえられていて、ヒントとして dx/dt=y dy/dt=-2y/5-3x/5 t=0~50の範囲で時間間隔を1秒おきでxを求めたい のですが正直解法が全くわかりません。これをオイラー法、2次のルン ゲクッタ法で解きたいのですが、誰か分かる方はいらしたら、どうか よろしくお願い致します。ちなみにこの二つの公式は分かるのですが、 実際どのようにつかうのかが分かりません。
>>155 この場合の推奨されないAPIは警告にすぎずコンパイル自体は通るので、
なにか問題があるとしたら生成されるバイトコードと
アプレットを実行するブラウザのVMのバージョンの違いとみた次第。
>>156 >t=0~50の範囲で時間間隔を1秒おきでxを求めたい
tを秒数とするのなら、
tを引数としxを返り値とするメソッドを作り、
あとはforループでそのメソッドを呼び出し
結果は配列にでも格納してゆけばよいのでは?
for (int t = 0; t <= 50; t++) {
x[t] = method(t);
}
>>157 いろいろ試してみたのですが原因がわかりません…。
1.1を使ってコンパイルしてもAPIの警告がでてしまいました。
でappletviewerで見ても動きません。
1.4.0の新しい書き方があるのでしょうか?
>>159 Javadocに、これの代わりに何々をしようするとか書いてあるよ。
書いてないことも結構あるけどね。
>>146 dungeon.mapの使い方が分かりません…。
できれば教えてください、お願いします!
それと
>>154 などを参考に、
実行時に出力されるエラーログを見たほうが解決は早かったかと。
>>146 他のアプレットは同じようにしたら動きました!
基礎的なことがまったく分かっていませんでした。
ありがとうございます
dungeon.mapは拡張子はgifでいいのですか?
ファイルで名前を付けて保存しちゃったのですが…
>>165 dungeon.mapの拡張子はmap。
"dungeon.map"というファイル名ね。
最初はもっと簡単な、たとえば画面に
Hello Worldと表示したり、
あるいはgifかなにかの画像ファイルを
描画するようなプログラムから始めたほうかいいとおもうよ。
>>146 はい…本当はそうしたいのですが、
金曜までにゲームを作れ!という課題がでてるのです。
内外設計書まで書いたのですが、JAVAの知識が無さすぎました。
そこでテンプレを探してたのですが、まったく動かず…
前にじゃんけんゲームのテンプレで他のゲームを作れたので、
今回もと思ったのです。。
>>167 どんな規模でどんな内容のゲーム?
オシエテクリ
>>168 パックマンに近いゲームを作ろうとしています。
ある程度ゲームなればいいらしいっす。
でもネットにソースが落ちて無いんですよね…
7行スレにパックマンなかったっけ?
>>172 パックマンなら中学の時、2時間(部活)で作った事ある。
つーか、初心者大歓迎!だから別にいいんだが、そんな切羽詰ってるなら、 2chでレス待つより先に調べる場所なり資料なりあるんじゃなかろうか、と言ってみるテスト。 「こうすれば動く」からこう書くのでなく、「これが動く理由はこうじゃないかな?」っていう Try&Errorが自分を育てるYO。 あと、ゲーム作りのポイントは言語がどうのというより、まずアルゴリズムとその土台。 「やり易い環境」「やる辛い環境」(VBなら楽だけど、Javaだと大変。あるいはその逆)てのがあるので、 その辺を今後はじわっと考えて、いろいろ試すといい。
以前、同じ質問をさせていただいてますが、改めてもう一度させてください。 StringBuffer型の配列を作ることは、可能ですか?? int[] aaa = new int[10]; みたいな感じで、 StringBuffer[] xxx = new StringBuffer...... のようなことができたらなーと夢見る今日この頃。
177 :
デフォルトの名無しさん :03/01/15 13:10
StringBuffer[] xxx = new StringBuffer[10]; でOKでないの?
>>174 おお、ついにJavaもここまで来たか。
javaw.exeとJavaWebStartでこういうことができるとは知らなかった。
あのアルファチャンネルのようなMacのようなガラスのように透き通るボタン
グラデーション、しかもGUIなのに遅くない。
テーマも変えられるのははじめてみた。
Swingというと、今まで紫色のSolarisカラーばかりだった。
この色をみただけでSwingを嫌がる人もいたのではないか、と思う。
>>177 ついでに説明するなら
for(int i = 0; i < xxx.length; i++){
xxx[i] = new StringBuffer();
}
も加えておいとくべきでしょ
単純な質問で申し訳ないのですが、 別のファイルで作ったクラスを読み込むには如何したら良いのでしょうか?
>>180 InputStream in = new FileInputStream("Hoge.class");
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
while(true){
int len = in.read(buffer);
if(len < 0) break;
out.write(buffer, 0, len);
}
byte[] content = out.toByteArray();
>181 えーっと、これってファイルを読み込んでるんですよね? 説明のしかたがマズかったです。スマソ。 File [SmpMain.java] public class SmpMain { public static void main(String[] args) { } } File [SmpClass.java] public class SmpClass { private int val; SmpClass{ val = 0; } public void subClass() { System.out.println(val); } } こー言った場合に、mainでsubを利用するにはどうしたら良いのかなーと・・・
>>180 二つのファイルを
おなじディレクトリにおいておくだけでいいよ。
// A.javaのファイル
public class A {
public B b = new B();
}
// B.javaのファイル
public class B {
}
/*
A.java と B.javaをおなじディレクトリにおいて、
javac A.java をコマンドラインから入力すると、
コンパイラが自動的にB.javaのファイルも読み込んでコンパイルしてくれる。
*/
さらに詳しいことが知りたくなったら、
「パッケージ」とか「クラスパス」とかのことを調べてね。
>183 ヽ(´ー`)ノ ワーイ
>>182 えーと、おれが説明したようなことではなくて、
インナークラスの話か。
subというのはsubClassのことていいのかな?
そです、サブクラスです。 インナークラスって言うんですか。 勉強不足でスマソ
>>185 クラスが何かもわかってなくて、
メイン処理とそこから呼び出すサブ処理というようにわけているだけかと。
>>186 いや失礼。よくよく見るとインナークラスではないんだな。
>>183 に書いてあるように、ふたつのファイルを同じディレクトリに入れておいて
あとはFile [SmpMain.java]をこう書くだけでいいよ。
public class SmpMain {
public static void main(String[] args) {
SmpClass smp = new SmpClass();
smp.subClass();
}
}
あとFile [SmpClass.java]だが、 これの4行目が、もしコンストラクタを書きたかったのなら、 SmpClass{ ではなく public SmpClass() { に修正してください。
> 183, 185 ウマーく行きました。 サンクスコ。
191 :
デフォルトの名無しさん :03/01/15 15:27
マウスを使って絵を描くプログラムはできたんですけど、 最大化や画面からでた時、描いた線が消えるんですよ。 再描画って、どうしたらできますか? おしえてください。
192 :
デフォルトの名無しさん :03/01/15 15:40
>>191 描画した画像のデータをクラス内部に持たせておき、
swingならpaintComponent()、AWTならpaint()内に、
その画像データをもとに、画像を描画するプログラムを書く。
194 :
デフォルトの名無しさん :03/01/15 15:51
>193 全部の線とか○とかを描き直さなきゃいけないのでしょうか
>177, 178 ありがとう!!StringBufferが配列になったワン!!
196 :
デフォルトの名無しさん :03/01/15 16:07
ある時間がきたら指定したプログラムを動作するようなプログラムを 作りたいんですがどうしたらいいのでしょうか・・。 またこのプログラム本体にパラメータの受け渡しもしたいのですが無理でしょうか?
197 :
デフォルトの名無しさん :03/01/15 16:20
>>196 ある時間までぼーっとしてるプログラムを書けばいい。
私はcronを利用してEJBを起動させてました。 アプリケーションサーバでもそうした機能を搭載しているものも あるようです。 自力実装するのであれば、起動時に次のスケジュールの時間まで Thread.sleep()させるというやり方でできるかもしれませんね。 まぁうまくおきてくれるとは限りませんが・・・。
199 :
デフォルトの名無しさん :03/01/15 16:22
>193 なんとなくですが、わかりますた。 ちなみに私はチョソですが、何か?
>>198 cron のが良いでしょうね。
Javaでやる場合はこんな感じっすかね?
Calender time;//指定時間
long sleepTime = time.getTimeInMillis() - System.currentTimeMillis();
while( 0 < sleepTime ){
try{
Thread.sleep( sleepTime );
}catch( InterruptedException exception ){
}
sleepTime = time.getTimeInMillis() - System.currentTimeMillis();
}
....; //プログラムを実行。
197-201ありがとうございます。 cronって初めて聞きました、それを使ったほうがいいのですか? JSPからパラメータをつけそのプログラムに渡して また時間がきたら別のJSPにパラメータを渡して起動しようとしたいのですが JSPから.javaを呼び出しパラメータを渡せばいけるのかな。 timer関連勉強してみます^^
swingだと オフスクリーンに書いておいてsetIconで描画すればいいんだよ。 paintComponent()なんて使わなくていいYO!
↑遅いいくない? Image img=crateImage(100,100); Graphics g=img.getGraphics(); g.drawRect(0,0,99,99); g.dispose(); ImageIcon ii=new ImageIcon(img); setIcon(ii); だぞ
205 :
デフォルトの名無しさん :03/01/15 17:43
(^^)
質問すたいことがあります。 System.gc()を使えば、参照されていないオブジェクトを 本当にすべて掃除してくれるのですか? 自作のJavaアプリを長時間動かしつづけていると次第に重たくなってしまう のです。それでSystem.gc()を入れてみたのですが一向に軽くならないです。 一言でよいので助言ください・・・・・・・
209 :
デフォルトの名無しさん :03/01/15 18:19
実行時のプロセスIDを取得することは可能ですか? シェルの機能で渡すことはできるようですが、Windowsでは?
>>207 Runtime#maxMemory()
Runtime#freeMemory()
Runtime#totalMemory()
等を使ってgc前後のメモリ量みてみるとか。
>>210 起動時にメモリを64MB取って
それを試してみたんですが、だんだん
47→32→14→5→1・・・
と減っていくのです。一応15MBくらいまでは回復するようですが
それ以上は回復せず、1~15MBあたりを行ったり来たりしています。
static int[] dat=new int[100000];
dat配列の中身を操作し、中身が変更されるたびに
VectorクラスへaddElement()やremove()しています。
>205 おいおい、一番厨房なヤツがなに言ってんだ?プ
>>211 で、自分で使ってるメモリ量は?
dat は一個で 400,000バイト使うけど。
dat と同じものが100個ぐらいあって、
常に新しい dat を生成 & 古い dat を廃棄してる場合は
そんなモンじゃないかと思うけど。
>>211 俺もそんなものだとはおもうけど、
一応、Vectorの現在のサイズなども毎回表示させてみては?
>>213 VectorやJavaの仕組みは分からないのですが、そういうものなのでしょうか?
static int[] dat=new int[100000];
Vector vec=new Vector(); // datを入れるもの
int[] ref;
ref=dat; // 参照
ここでref[100]=123;等、いろいろ代入する。
vec.remove(7); // vecには8個までdatを入れるのでケツの古いものは消す
vec.insartElement(ref,0); // 先頭に新しいdatを挿入する
本当はもっと複雑なのですがやっていることは大体上のとおりです。
vec.remove(7);の部分で参照が外されると思っていたのですが・・・。
↑207の者です
>>215 とりあえず vec.size() で要素数取ってみたら?
>>215 vec.size()で調べてみましたが、ようその数は8以上にはなっていませんでした。
-verbosegcオプションでGCの行動を調べてみたると、どうやら上で書いた
Vector等の処理が原因ではなかったようです。すみません。
他の部分で、JDailogをnewで生成したりdespose()で消去を繰り返すと
だんだんとメモリを消費していくみたいです。
JDialogをnew→dispose()のあとにSystem.gc()を行うと
[Full GC[Unloding class sun.reflect.GeneratedSerializationConstructor・・・
なるものが出てきて5~10MBほど減ってしまいます(減った分は永遠に増えない)
勉強不足です、すみませんでした。
>>219-220 まあなにはともあれ貴方の試したかった部分は、
きちんとガーベイジコレクトされているようでなにより。
>>209 プロセスIDは標準ライブラリじゃ取れないんでJNI使うしか無いと思われ。
誰かライブラリ作ってるかも?と思うなら "Java getProcessID" とかでぐぐってみれば見つかるかも?
>>175 はい…それが一番なんですよね…。
classファイルをjavaファイルに戻すことは出来るのですか?
>>224 ありがとうございます。完全な復元は無理ですか…。
課題はやっぱり自分で作ることにしました。
ブロック崩しをパックマンにがんばって変えています!
Exception in thread "main" java.lang.NoclassDefFoundError... と出てしまう時と、出ない時があります。 例えば、 class unnko { public static void main(string[]) { Sustem.out.println("unko"); }} なら実行できますが、 import java.io.*; class Sample6 { public static void main(String args[])throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str1 =br.readLine(); String str2 =br.readLine(); int sum=0; sum += Integer.parseInt(str1); sum += Integer.parseInt(str2); System.out.println("3つの数の合計は"+sum+"です。"); }} だと前述のエラーになります。 どうしてなんでしょうか? ちなみにj2sdk1.4.0_03 です。 ちなみにクラスパスの設定はカレントディレクトリは 含まれています。 厨房ですが、よろしくです。
>>226 227のいうとおり、きちんと設定できれば、ちゃんと実行できるよ。
がんばってね。
>>226 おそらく大文字・小文字の問題かと。
ファイル名がsample6になっているとか、
コマンドラインからjava Sample6と入力するべきところを
java sample6と入力してしまったのではないでしょうか。
おお、皆さん優しくてちょと感動しました。 ちなみに問題は解決しました。 クラスパスの設定が、やっぱり間違ってました。 合ってると思ったんだけど。。。 恥ずかしい・・・
なぜかまた実行できなくなりまそた。 あぁ おやすみなさい
そしてまたできなくなりました・・・ とほほ。 寝ます。また来ます。
233 :
デフォルトの名無しさん :03/01/16 09:37
Java Web Start ってノートンの LiveUpdate みたいな機能も付いているんですか?
だめだ・・・詰まってしまいました・・・ GikoMailのPOP3.javaを参考に、メールの取得を行おうとしているんですが、 ぜんぜん取れなくて困っています。 昨日一日、ググって見てたんですが・・・モウダメポ public String dumpPart(Part p) throws Exception { StringBuffer sb = new StringBuffer(); Object o = p.getContent(); if (o instanceof String) { // ココは通る sb.append((String)o); // 文字列が空になる } return (new String(sb)); }
if (o instanceof String) { // ココは通る sb.append((String)o); // 文字列が空になる } else { System.out.println(o.getClass().getName()); }
o.getClass().getName() の結果なんですが、java.lang.Stringらしいです。 んで、System.out.plintlnをしてみたのですが、やっぱ空・・・ 鬱
>>204 ImageIcon作る分そりゃ時間掛かるが
速度差なんてたかが知れてる。ゲームみたいにリアルタイム重視でも
十分使える。まあクソ重いswingでゲーム作るヤツは神だが・・・
>>237 ふつー File#createTempFile()
240 :
デフォルトの名無しさん :03/01/16 11:38
数当てゲームで 正解が出るまでに何回数字を入力したかを数えて、「正解がでるまで~かいかかりました!」というメッセージを画面に表示する。 さらにその回数が5回以下だったら「すばらしい!」10回以上「勘が鈍いですね」 5回と10回の間だったら「普通です」 と表示させたいのですが、ちょっと分からないので教えてください!! もう最終手段なのでお願いします!!助けて~。
241 :
デフォルトの名無しさん :03/01/16 11:38
>>237 一時ファイルくださいプログラムをつくる
一時ファイルなんて母体のOSに結構依存するから
>>239 どうも。
Javaな世界ではそれでいいんでしょうね。
割り切ってそうすることにします。
244 :
デフォルトの名無しさん :03/01/16 11:42
数当てゲームで、正解が出るまでに何回数字を入力したかを数えて、「正解がでるまで~かいかかりました!」というメッセージを画面に表示する。 さらにその回数が5回以下だったら「すばらしい!」10回以上「勘が鈍いですね」 5回と10回の間だったら「普通です」と表示させたいのですが、分かる人いたら教えてください!! お願いします!!
>>244 指つかえ!!
それで数えろ!
10本あるから数えられるだろ!!
>>241 プロセス周りもSWTみたいにToolkit化されていると
うれしいんですけどね。
>>244 そうすればいいじゃん。
標準出入力はSystem.inとSystem.outだぞ。
248 :
デフォルトの名無しさん :03/01/16 13:10
>>244 カウント用の変数を1つ用意して、入力ごとにインクリメント、
正解が出たら(ルーチンを抜けたら)その変数でif判定してください。
int count=0;
while(1){
//ルーチン
count++;
}
System.out.println("正解が出るまで"+count+"回かかりました");
if(count<6) System.out.println("素晴らしい!!")
else if(count>9) System.out.println("勘が鈍いですね");
>>248 >while(1){
while(true){
っすね。
>>249 あ、そうですね。
これは失礼しました。
251 :
デフォルトの名無しさん :03/01/16 13:37
ある本に載ってたプログラムなんだけど public class T21 { public static void main(String[] args) { TurtleFrame f; f = new TurtleFrame(); Turtle m = new Turtle(); Turle m1 = new Turtle(); f.add(m); f.add(m1); m.fd(100); m.rt(90); m.fd(150); m1.rt(90); m1.fd(100); } } これって単独でコンパイルできんの? 継承しなくていいんでつか?
>>244 おい、ネタだろ?
それがワカランかったら数が当たっているという判定ができんだろ?
それとも変数を表示させる方法が知りたかったわけ?
253 :
デフォルトの名無しさん :03/01/16 13:40
>>248 ありがとうございました!!
みなさんおりがとうございます。
>>251 既にTurtleクラスのオブジェクトが作成(コンパイル)済みであれば
勝手にリンクして(繋いで)くれるからエラーにはならないよ。
>>251 継承しなくてもいい(と思う)けど、
TurtleFrame やら Turtle が無いとコンパイルできんよ。
257 :
デフォルトの名無しさん :03/01/16 14:07
2次元配列を定数化したくて、こんな感じにプログラムしました。 final int[][] array={{1,2,3}, {2,3,4}, {3,4,5}}; array[0][0]=5; System.out.println(array[0][0]); コンパイルしても、エラー無しでarray[0][0]には5が代入されてました。 試しに final int a=100; a=300; にすると、エラーになりました。 配列は定数にできないのですか?
258 :
デフォルトの名無しさん :03/01/16 14:15
100個の乱数用意して、昇順に並べ替える。 ってどうするんですか? 時間がない、、やばいい、、
259 :
デフォルトの名無しさん :03/01/16 14:19
JDK1.4.1のSwingを用いて入力画面を作りました。 配置したJTextArea(スクロールペイン有り)には最大64kb(半角英数字65536文)が入力されます。 2048バイトずつカット&ペーストで入力し、20kbを超えた辺りから、 ペーストした後、それが表示されるまで時間が掛かり出し、 64kbまでペーストした時点で表示されるまでに30秒掛かってしまいました。 これは、Javaの仕様上しょうがない現象なのでしょうか? また、これを回避する為の手段はあるのでしょうか? 識者の方、御教授下さい。 PC=CPU:AMD750MHz,メモリ:256MB,WinMe
>>258 java.util.Arrays の sort でも使えば?
262 :
デフォルトの名無しさん :03/01/16 14:35
JDBC について質問があります。 わたしは今んとこ、JET使いです。 #素直にAccessといわんか! JETでは、SQLを流した結果を、Recordsetという変数に格納できます。 フィールドは、Fields(0)、Fields(1)....Fields(n)と結果にあわせて自動的に 設定されるので、あとはレコードの処理だけで簡単です。 JDBCでも同様に、SQLで得られた結果を可変的に格納する事はでき ませんか? JDBCに関する入門書は、どれもexecuteQueryで得られた結果は フィールド名指定で呼び出すようになっています。 これでは、SQLを実行する度にJDBCの設定が必要になってしまい、 大変に面倒です。 プログラム言語のスタンダードたるJAVAが、よもやVBAで出来る記述が できないとも思えないので、わたしの探し方に問題があるのかもしれません が、結果によってフィールドが変化するようなJDBCの記述について、 情報をお持ちでしたら教えてください。
263 :
デフォルトの名無しさん :03/01/16 15:02
このスレで質問に答えてくれる神々に質問! 神がJAVAを習得される際に用いた参考書OR問題集はなんでつか?
>>263 結城本上下とSUNのjavadocのAPI
265 :
デフォルトの名無しさん :03/01/16 15:14
先ほど教えてもらったのですが、 エラーが出てしまいます。 どこを直したらいいですか? 全部書き込むことができないので、 1部になりますが・・・。 int seikai = (int) (Math.random() * 1000); while(flag){ moji = kbd.readLine(); x = Integer.parseInte(moji); if(x > seikai && x <= 999){ System.out.println("大きすぎます、もう1回!"); }else if(x <seikai && x >= 0){ System.out.println("小さすぎます、もう1回!"); }else if(x == seikai){ System.out.println("正解です!"); flag = false; }else{ System.out.println("入力するのは0~999の間の数字ですよ"); int count=0; count++; } System.out.println("正解が出るまで"+count+"回かかりました"); if(count<6) System.out.println("素晴らしい!!"); }else if(count>9) System.out.println("勘が鈍いですね"); }
POP3で受信したら上手くいったっすよ>メール受信 IMAPとの相性か、サーバの問題かを切り分けるたびに出てきまっさ・・・
267 :
デフォルトの名無しさん :03/01/16 15:26
>>265 どこでエラーがおきるのかとエラーの種類ぐらい書いてくれると
解きやすい・・・
>>265 やっぱネタかなぁ…
素直にHelloWorldとかから勉強した方が…
>>257 コードが断片的ゆえなにをしているのかが少々理解不能だが、
エラーがでたのは、以下の部分ではないか?
final int a=100;
a=300;
finalと宣言され、さらに100という値の入力されたaに、
再度、300という数値を入れようとすれば、当然のことながらエラーになる。
finalと宣言された変数は、ただ一度しか代入できないので。
>>258 JDKのなかにdemoというディレクトリがあったかとおもう。
そのなかに大きさ順にならべかえるアプレットがあるので
それをご参考に。
>>265 >>1 に書かれていることをよくよんでから書き込んだほうが
適切な回答をもらえるとおもうよ。
シンボルを解釈処理できませんと表示されています。 すべてのプログラムを書き込みたいのですが、 改行が多すぎるため、エラーが出てしまいます。 全部表示させたほうが分かりやすいですか? 1部でも分かりますか?
>>257 >配列は定数にできないのですか?
無理っす。
>>270 出力されたエラーなら全部ここにマウスでコピペして貼り付けてよし。
膨大なソースコードをここにコピペしようとするのなら逝ってよし。
//ソースは一部でもわかるとおもうよ。
//その一部が適切な一部なら。
273 :
デフォルトの名無しさん :03/01/16 15:38
コマンド プロンプトではコピペできません。 本当にすいません。 かなり勉強不足だとは思うのですが、 教えていただければ幸いです。
コピペできないのなら、自分の指で入力すればよい。 まあもしWindowsをつかっているのなら、 そのプロンプトのウインドウの上のほうに いくつかボタンが並んでいるとおもうが、 そのなかの『プロパティ』というボタンをクリックして開いたダイアログのなかから、 『その他』をクリックするとマウスの設定画面がでてくるよ。
276 :
デフォルトの名無しさん :03/01/16 15:46
redirect操作知ってればそれで・・・ 例)java classname > tmp.txt 知らなければエラーの名前とそのクラスでのエラーの行数
>>276 コンパイルエラーは標準エラー出力に出力するはずだから > では取れないと思われ。
で
>>270 に出力されたエラーだけど、
ソースの何行目に問題があるとかの情報もいっしょに出力されているはずなので、
もしソースをはるのなら、その行あたりを貼るといいとおもう。
ちなみにそのエラーは、
Javaのコンパイラが意味不明な文字とであったときなどに出力される。
原因は、変数やメソッドの綴りの入力間違いや、
スコープなどのせいで無効な変数を使おうとした場合におこることが多い。
>>276 &>ではどうか?
まあDOSなどでは使えないような気もするが。
kadai1.java:40: 'catch' への 'try' がありません。 }catch(IOException e){ kadai1.java:42: \12288 は不正な文字です。 }catch(NumberFormatException e){ kadai1.java:42: \12288 は不正な文字です。 }catch(NumberFormatException e){ kadai1.java:46: '}' がありません。 } kadai1.java:4: 'try' への 'catch' または 'finally' がありません。 try{ kadai1.java:1: パッケージ Java.io は存在しません。 import Java.io.*; ^ kadai1.java:8: シンボルを解釈処理できません。 シンボル: クラス BufferedReader 位置 : kadai1 の クラス BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in) ); kadai1.java:8: シンボルを解釈処理できません。 シンボル: クラス BufferedReader 位置 : kadai1 の クラス BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in) ); kadai1.java:8: シンボルを解釈処理できません。
281 :
デフォルトの名無しさん :03/01/16 15:56
>>279 コンパイルエラーかよ・・・
ちなみに
import Java.io.*;
↓
import java.io.*;
>>278 WinXP だと
>javac ????.java > err.txt 2>&1
とかやればいーのかな?
>>279 try{
なにかの処理
}
するのならそのあとにcatch(例外) {
}
しなければだめということ。
ソースの一部に全角スペースがはいっている。
BufferedReaderを使うためのおそらくjava.io.*がインポートされていない。
不躾ですみません。
>>259 について何か情報ありませんか?
---
簡単に…JTextAreaには膨大(かな?)なデータを入力してはいけないのですか?
>>278 すまそ>&2。
このあたりはシェルスクリプトで色々だとおもうけど。
>>285 import javax.swing.*;
import java.awt.*;
public class test {
public static void main(String[] args) throws Exception {
JFrame w = new JFrame();
w.setLocation(100,100);
w.setSize(100,100);
w.getContentPane().add(new JScrollPane(new JTextArea()),BorderLayout.CENTER);
w.show();
}
}
みたいな最小のプログラムで試したけど
>>259 みたいな症状は再現しませんでした。
>>285 ごめん、GUIは詳しくない
SWING系のドキュメントに書いてないかな・・・
2つの整数をcompareTo()で比較する場合どういった 記述のしかたをしたらいいんでしょうか?
ありがとうございます。 もう分からなくなちゃって、{} がどこにつながっているのかがわからなくなってます。 色々アドバイスありがとうございます。
>>289 Integer num1 = ...;
Integer num2 = ...;
if(0 < num1.compareTo(num2)){
...;
}else if(0 == num1.compareTo(num2)){
...;
}else{
...;
}
とか?
素直に int で大小比較する方が簡単だと思う。
>>290 jdk1.2以降では直ってるって書いてあるけど…
Win9x + jdk1.1.* + swing の組み合わせの問題らしい。
CやVB等では同ページ内で指定した場所に移動するには goto文がありますがJavaでは使えないんですよねー;; で、何か別の方法ないでしょうか? for文内とかだと breakでできるらしいのですが・・
>>294 (古典的な意味での)リファクタリングをしっかり行なうなどしていれば、
goto文はとくに使う必要がないので。
それにJavaにおいてはラベルを指定してのbreakやcontinueがありますので。
何度も何度もすいません。 [5回と10回の間なら普通です] }else if(){ System.out.println("普通です"); ()の部分はどうすればいいですか?
>>296 もういちどしっかり授業を受けなおしたほうがいいとおもうが、
ifのところには、&&と<と>をうまく使うといいとおもうよ。
>>296 >if(count<6) System.out.println("素晴らしい!!");
>else if(count>9) System.out.println("勘が鈍いですね");
の後に続けるなら else だけでよいと思われ…
if(x > seikai && x <= 999){ System.out.println("大きすぎます、もう1回!"); }else if(x <seikai && x >= 0){ System.out.println("小さすぎます、もう1回!"); }else if(x == seikai){ System.out.println("正解です!"); flag = false; }else{ System.out.println("入力するのは0~999の間の数字ですよ"); } int count=0;//←エラー実行時えらー常にcountが0にセットされる count++; } System.out.println("正解が出るまで"+count+"回かかりました"); if(count<6){//←coutはwhile文の中で宣言されているのでwhile文のそとでは使えない System.out.println("素晴らしい!!"); }else if(count>9){ System.out.println("勘が鈍いですね"); } else { System.out.println("hutu-"); }
ありがとうございます。 もう最後の授業も終わってしまったので 教えてくれる人を探していたんです。 すいません。あまりにも初心者の質問でした。
>290
ご提示ありがとうござます。
>>293 さんが仰る通り1.4.1では問題無いみたいですね...
皆さんSwingはあまり使われないのかしら?
#今更C++に変更出来ないし...
その後の調べで以下のような事が判っています。
・起動時オプションで最大メモリ128MBなんてやってもやらなくて現象は変わらない。
・実行中のメモリ使用量見ても精々2MB弱位しか使ってない。
・キー入力して行くと、5,000文字を超えた辺りから動作が緩慢になり出し、
9,000文字位からレスポンスが悪く(キー入力してから3秒経ってから表示)なる。
・一気に64kbの文字をコピペすると、10秒位表示されず、他のフィールドに移動すら出来ない
>1分ほど経過したら移動出来るようになった。
303 :
デフォルトの名無しさん :03/01/16 16:40
org.w3c.dom の DOMService を使いこなせる猛者はいらっしゃいますか?
ふーむ、リファクタリング^^; やっぱbreakしかないのかな・・ 頑張ってみます。ありがとうございました^^
リファクタリングというよりは構造化と素直に言ったほうが判りやすいかと
306 :
デフォルトの名無しさん :03/01/16 17:16
J2SE SDK 1.4.1-01 で Excelsior JET 3.0 Personal を使いたく インストールしたのですが Could not determine the compiler と表示され Excelsior を起動することが出来ませんでした 解決方法をご存じの方いらっしゃいますか 環境 Windows 2000 Pro (latest updated) J2SE SDK 1.4.1-01 Excelsior JET 3.0 Personal
308 :
デフォルトの名無しさん :03/01/16 18:04
javaを学習して1ヶ月ですかどうしても理解できないことが複数あるので 宜しくお願い致します。 現在クラスライブラリを勉強してるんですが そのメソッドに 「int indexOf(int ch)」 についてです。 文字を格納するなら、仮引数として 「int indexOf(char ch)」 になるんでは・・・?と未熟ながら思うんですよ。 StringbufferクラスはCHAR型で理解できるんですよ →「StringBuffer append(char c)」 なぜIndexofメソッドの仮引数がint型なのか誰かご教授お願い致します。
後、StringBufferクラスについてなんですが 「StringBuffer append(char c)」 のStringbufferは「戻り値の型」になるんでしょうか? int,double,byteは型だと判るんですが Stringbufferという型が存在するものなんでしょうか? どうように 「String charAt(int index)」 のStringも同じように疑問です。 宜しくお願い致します。
無視られてるようなので。
>>262 >JDBCでも同様に、SQLで得られた結果を可変的に格納する事はでき
>ませんか?
java.sql.ResultSet
>>309 >「StringBuffer append(char c)」
>のStringbufferは「戻り値の型」になるんでしょうか?
YES
>Stringbufferという型が存在するものなんでしょうか?
クラスは型
StringBufferはクラス
∴StringBufferは型
クラス=型です
>>308 「int indexOf(int ch)」
なんていうクラスのメソッド?
314 :
デフォルトの名無しさん :03/01/16 19:43
マッピーのようなアプレットを作成しようとしてるのですが、 例えば右に行きたいときにそこに壁があったら進めなくするには どうするのでしょうか? 私が考えた方法だと、全ての存在する壁の数ぶんだけ当たり判定 をさせ、当たれば右方向入力をキャンセルさせるという方法ですが これだとすごく時間が掛かると思い、他にいい方法がないかと 思い質問しました
315 :
デフォルトの名無しさん :03/01/16 19:43
double sa = 1.0 - 0.8; System.out.println(sa); を実行すると、 0.19999999999999996 という出力になるのですが、正しい 0.2 と出力させるには どのような手段を用いればよいのでしょうか?
>>306 ですがスレ違いかもしれないのでよそで聞いてきます
しつこいようですが、
>>259 ,
>>302 について何か情報ありますか?
周りの男性人は、わたしが派遣社員だからと思って、思い切り無視してくれるし...
恐れ多くてJH-MLには入れないし...
2chに期待するわたしが間違っているのかしら…エェーン(T_T;
階乗プログラム作成中・・・。char *insert_abc(int abc,int n,int(*Set)(int n));
[A] [AB BA] [CAB CBA ACB BCA ABC BAC]のように、成長していくポインターを作りたい。
その際、できるだけループをすくなくする事を心がけ階乗値を使うこと。
ポインターの成長例:
[CAB[0][1] CBA[0][1] ACB[1][0] BCA[1][1] ABC[2][0] BAC[2][1]]
次ループでは、
[CAB[0][0] CBA[0][1] ACB[0][2] BCA[0][3] ABC[0][4] BAC[0][5]]
×4=4!=24
という具合に3重ループで成長します。
これらの、バグを取ろうにも複雑すぎてわからない状態。
1981ソースが、長いためこちらの掲示板をみてください。
http://www.tachiki.com/cgi-bin/chatc/ealis.cgi?#3
>>152 >>153 >>154 かなり遅れましたがすいません。レスありがとうございます。
>>153 の、
>javac -target 1.1 コンパイルしたいクラスのファイル.java
で直りました。
本当にありがとうございました。
>>311 .312
レス有難うございます。
クラスライブラリのクラスは全て「型」という認識でいいのかな...
例えばMATHクラスの場合、MATH=「型」でいいってことですか?
凄く参考になりました。有難うございます。
>>313 Stringクラスです。
著書で感じた疑問なので、ひょっとしたら誤植なのかな・・?とも
思ったので調べてみます。
324 :
デフォルトの名無しさん :03/01/16 20:27
>>314 壁の数が少ないなら総当りでかまわないはず。
壁が方眼紙のような定位置に存在するなら
2次元配列を使えば決め打ち
マッピーの位置から該当する配列の要素を調べるとか。
定位置じゃないなら適当にソートして調べるとか。
ちょっと思いついただけなので。
もっと効率の良い方法がありそう。
JAVAやっててCが恋しくなりました。 このままJAVA続けるべきでしょうか?
>>318 BigDecimalの解説を読んでもよく分からない(泣)。
BigDecimal sa = new BigDecimal(1.0 - 0.8)
System.out.println(sa.doubleValue());
こうやってみても結果は同じなんだけど、どうすれば
0.2は出てくるのでしょうか?
>>314 ゲーム技術板に行けといいたいところだが
AA荒らしの巣になってるな
>>314 画面を網の目状に区切って番号うってけ。
配列使って何とかしろ!!
0が空間、1が壁。
int[] map={
1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,1,
1,0,1,1,0,0,0,1,
1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1 }
背景のブロックの大きさが16x16とし、横8コ、縦5コ分の面積のゲーム画面とし
自分の座標の変数をmx,myとする。
もし自分が座標(57,33)の位置にいてそこが壁かどうか知りたい場合は
if( map[ (mx/16)+((my/16)*8) ]==1 ) {
壁です。動けません }
else { 空間です。動けます }
とする。後は自分でやろう。ていうか板違い。ゲ製作板へどうぞ。
Cと結婚します
>>326 >new BigDecimal(1.0 - 0.8);
この時点で new BigDecimal(0.19999....); になってる。
BigDecimal a = new BigDecimal(1.0);
BigDecimal b = new BigDecimal(0.2);
System.out.println(a.subtract(b).doubleValue);
>>329 的確に教えていただき有難うございます
二次元配列にして苦しんでたのですが
map[ (mx/16)+((my/16)*8) ]==1で十分ですね
ゲ製作板は見て無かったです。というかあるのすら知らなかった
早速行ってきます
ゲ製作板=廃墟
>>331 BigDecimal b の 0.2 を 0.8 にしてやってみたけど
結果は同じでした。
BigDecimal a = new BigDecimal(1.0);
BigDecimal b = new BigDecimal(0.8);
System.out.println(a.subtract(b).doubleValue());
0.19999999999999996
demoについてきたJavaで作られたノートパッド風のエディタで 再現するかどうか試してみては?
>>335 BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.8");
System.out.println(a.subtract(b).toString());
>>338 ありがとうございます。これで 0.2 を出力できました。
ですが、double値として取得して、その後の計算で
利用したいのですが、そういったことは不可能なので
しょうか。
>>335 解説しとくと、 0.2(1/5) や 0.8(4/5) は二進数では循環小数になるので
浮動小数点数(doubleやfloat)では近似値でしか表現できません。
つまり BigDecimal(0.8) ってのは 0.8 の時点で0.800000 の近似値になってるので
BigDecimal 使っても意味が無くなってるわけです。
>>302 えーと、JTextArea に setLineWrap(true) して
64kb全く改行なしのテキスト突っ込むような無茶すると遅くなると思うけど
そーゆー事してないよね?
>>339 BigDecimal#doubleValue()
>>342 ちなみに
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.8");
System.out.println(new BigDecimal(a.subtract(b).doubleValue()));
すると
0.200000000000000011102230246251565404236316680908203125
が得られます。
>>339 あんま良くなくみえるかも~
import java.math.*;
public class Main {
public static void main(String[] argv){
BigDecimal a = new BigDecimal(1.0);
BigDecimal b = new BigDecimal(0.8);
System.out.println(a.subtract(b).setScale(1, BigDecimal.ROUND_HALF_EVEN).toString());
}
}
>>343 つまり精度を気にするなら全部BigDecimalだけで計算しろってことだろ。
大抵の場合はStrictMathやstrictfpでもいいのだが。
問題はBigDecimalだけだと三角関数とか対数の計算は自分で関数作らないと
いけないんだな。
toString()でString方にしてからdoubleに変換する方が精度はいいだろう。
315は精度を気にしているわけじゃないんじゃ・・・・・・。 むしろ、数桁の精度の小数を綺麗に出したいって感じではないのだろうか。 「書式付き java」とか、「printf java」で検索してみ。いくつかライブラリが見付かる。 決定版がどれなのかは分からん。
>>347 DecimalFormatですか。
なら小数点以下第何桁をカットして表示ができますね。
349 :
デフォルトの名無しさん :03/01/16 23:26
delphiのexitのようなメソッド等から抜け出して呼び出し元に戻る方法を 教えてください
最近javaに手をつけた超初心者です. helloworldのアプレットを作成し,htmlよりアプレットを よみだしたいのですが, アプリケーションにコマンドを送信しているときに、エラーが発生しました。 と表示されIEの窓が全て閉じてしまいます. どなたか解決法をご教授いただけないでしょうか? ソースは以下の通りです. ちゃんとディレクトリも同じところに作成しました. helloworldのソース import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint( Graphics g ) { g.drawString( "Hello World", 0, 0 ); } } helloworld.htmlのソース <HTML> <BODY> <APPLET CODE="HelloWorldApplet.class" WIDTH=160 HEIGHT=120 > </APPLET> </BODY> </HTML>
>>351 クラス名が HelloWorld なのに
html では HelloWorldApplet.class を呼んでるのは何故?
ClassNotFoundExceptionだろうな~
>>257 遅レスだが、、、配列もfinalつける意味はあるよ。
つければ配列自体は変更不可になる。
ただ配列の中身をfinalにしたわけじゃないから中身は変更可。
同様にクラス変数をfinalにした場合も
その変数が参照しているものは変更可なので注意。
final int a = 100;
a = 300; // 変更不可なのでエラー
final int[] b = new int[] {0, 1, 2};
b = new int[]{0, 1, 2}; // 変更不可なのでエラー
b[0] = 3; // 変更可なのでエラーにならない
同じコードでも実行しようとすると、 その時々で、Exception in thread "main" java.lang.NoClassDefFoundError になります。 わけがわかりません、お願いします。 ちなみに、j2sdk1.4.0_03です。
356 :
デフォルトの名無しさん :03/01/16 23:52
ペイントで書いた絵が表示されなくて困っています。 一筆で書かないとダメだと言うことを聞いたことが あるんですが、どうなのでしょうか? よろしくお願いします
>>355 java.lang.NoClassDefFoundError
ロードしようとしたクラスが見つからないってさ。
Exception in thread "main"
「main」って名前のスレッドで例外が発生したそうだ。
>>356 初めて聞いた。
>>356 「ペイント」としか書いてないけど「ペイント」って何?
「表示」としか書いてないけど、どのように表示しようとしたの?
あと、マルチポストはやめたほーがいーよ。
360 :
デフォルトの名無しさん :03/01/16 23:56
>>356 他の絵(ちゃんとしたソフトで書かれた絵)は表示できるんですが、
原因は何なのですか?
361 :
デフォルトの名無しさん :03/01/16 23:58
>>359 アクセサリのペイントです。
表示は拾ってきたソースで画像だけを変えてみたいのです。
>>358 >「ペイント」って何?
Windows知らないと今時食っていけないでしょう。
>356 gifやjpgは表示できるがbmpは表示できないってことかね
>>357 それってコードの正誤とかも関係あるんですか?
それ以外にどういった理由で発生するものなのでしょうか?
ちなみに
クラスパスの設定はあってると思います。
>>360 それでは特定しずらいです。
もう少し情報プリーズ。
画像の種類、表示できるというソース上の画像名を置き換えた結果など
367 :
デフォルトの名無しさん :03/01/17 00:01
>>364 拾ってきた絵は使えるんですけど、
自分で書いた絵はgif,jpg,bmpと試してみたんですが
無理でした。
>>359 参考になります!ありがとうございます
>>363 そうですよね。でも特に変わった事はしてないと
思うんですが、突然実行できなくなったり
するんで なんでかなー?と思ったんでそう書きました
すいません
一筆で描けっての
>>367 とりあえず一筆書き云々は関係なさそう。
ソースのファイルの読み込み部分
*.bmp とかが書いてある付近の前後10行程度を
張ってみてくれれば何かわかるかも?
public void init(){ setLayout(new BorderLayout()); Panel p=new Panel(); text1=new TextField("Push start!!",10); text2=new TextField(Integer.toString(score),5); p.add(text1); p.add(text2); p.add(new Button("Start")); add("South",p); resize(350,380); setBackground(Color.black); image=getImage(getDocumentBase(),"kaeru.gif"); image2=getImage(getDocumentBase(),"0.gif"); image3=getImage(getDocumentBase(),"1.gif"); image4=getImage(getDocumentBase(),"1.gif"); image5=getImage(getDocumentBase(),"1.gif"); audio=getAudioClip(getDocumentBase(),"ooh.au"); audio2=getAudioClip(getDocumentBase(),"whoopy.au"); Dimension dd=size(); offScreen=createImage(dd.width,dd.height); offGraphics=offScreen.getGraphics(); d= new int[10][10]; xx= new int[4]; yy= new int[4]; m= new int[4]; d_set();
ぐぐぐが 実行できた・・?
意味わからん
該当する理由も
>>353 の方にはなかったし・・・
とりあえず解決できたので、
ありがとうございました
お手数かけてすいません ゲームのソースらしいです。
一筆で描かないとどう考えても無理
>>352 ,353さんレスありがとうございます
>>351 です.
HTMLのソースを
<HTML>
<BODY>
<APPLET CODE="HelloWorld.class" WIDTH=160 HEIGHT=120 >
</APPLET>
</BODY>
</HTML>
に書き換えてもダメでした..やっぱり
IEの窓が閉じてしまいます…ググっても
全然情報が無いみたいです…(><;)
何故なのでしょうか…
ちなみに今更ですが簡単な環境です
OS windows2000
ブラウザ IE6
エディタ メモ帳
>>375 .classいらないよ。
<APPLET CODE="HelloWorld" WIDTH=160 HEIGHT=120 >
>>375 jdk1.4以降の場合はコンパイル時に
javac -target 1.1 HelloWorld.java
みたいにしないとダメだけど、そーゆー事じゃないよね?
でもまぁ、-target 1.1 付けなくても IE の窓閉じないと思う…
うん。せいぜい灰色の横幅160高さ120の四角が表示されるだけ。 ところでHelloWorld.classを削除してそのhtmlファイルをIEで開いても落ちる?
>>371 MSJVM だと bmp も表示できるみたいだけど…
Sun の JVM でも png,gif,jpeg は表示できるはずだし。
ちなみに WindowsXP 付属のペイント使って出力した jpeg, png, gif 全部 getImage() で読み込めてます。
jdk1.4.1_01 だけど。
>>371 暇だったら
public class test extends Applet {
Image image;
public void init(){
image = getImage(getDocumentBase(),"test.png");
}
public void paint( Graphics g ){
g.drawImage( image, 0, 0, this );
}
}
みたいな最小のプログラムでも表示できてないか試してみてくらさい。
>>376 さん,
>>377 さん,
>>378 さん,
>>379 さん
レスありがとうございますm(_ _)m
.classを消して見ても無理でした…
<applet>~</applet>を消すと IEは閉じないです.
色々検索していてお礼が遅くなりました…すみません…
>>382 MSJVM 入ってないとか…
でも IE6 だと JVMダウンロードするか問い合わせてくるような気もするし…
とりあえず appletviewer で動くか確認してみるってのは?
>>382 ちなみに私の手元だと、
g.drawImage( image, 0, 0);を
g.drawImage( image, 10, 10);に
変えただけで、ちゃんと動いたよ。
>>384 drawImage と drawString がゴッチャになってるよーな…
386 :
デフォルトの名無しさん :03/01/17 06:31
質問させてください。 あるtreeを作成し、そのオブジェクトをバイナリデータとしてObjectOutputStreamで ファイルに書き込んでおき、のちのちObjectInputStreamで読み込んで使用したいんです。 小さなtreeであれば上手くいくのですが、どうも巨大なtreeであると書き込み時にエラー がでてしまいます。エラーも多すぎてコマンドプロンプトだとスクロールしきれないし 困ってます。Serializationに関して何か「こういうオブジェクト」はできない!みたいな のがあるんでしょうか?ちなみに書き込み前のオブジェクトは正常です。(ちゃんとしたtreeが できていることを確認しました。)文章だけですいませんが、お願いします。
あらっ、351と、381が混じっちゃった。 384は、351のほうで、drawStringを使用。
>>386 他のオブジェクトを参照として持ってるものとか。出来るの?あれ。
>388 何やら、writeObjectとreadObjectをオーライドしてどうこうすると みたいなことが書いてあるのだけど、いまいちよくわからない。 適当にやってみたらエラーは消えて書き込みは出来た様なのですが、 読み込みができない・・・。
遅くなったけど
>>382 g.drawStringは 0,0だとアプレットの表示範囲に表示されない。
以下の場合だとぎりぎりで左上に表示される。
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet
{
public void init()
{
repaint();
}
public void paint( Graphics g )
{
g.drawString( "Hello World", 0, 10 );
}
}
>>306 表示された英文の意味は判りますよね。
なんのコンパイラを使うか設定してあげればよろしいのではないでしょうか。
readmeファイルやドキュメントなどには書いてありませんか。
>>388 ,
>>390 オブジェクトが循環参照になっていたとしても直列化できるよ。
内部的な動作では、ストリームに同じオブジェクトを複数回直列化する必要がある場合、
初回のみ実際の直列化を行い、二回目以降はオブジェクトの番号みたいなものだけを
書き込むようになっている。
readObject()/writeObject()を実装する目的は、直列化時に特殊な処理をする必要がある
フィールドを持っている場合などに、直列化処理をカスタマイズするためのもの。
例えば、EJBの場合に、リモートオブジェクトからハンドルに変換して書き込むとかね。
>>386 が例外の内容を書いてないから原因はわからんが、Serializableじゃない
オブジェクトが混じってるとか、バージョンが違うとか、クラスが見つからないとか、
そんなところじゃないかな?
まとめてレスします。
レスくれた方、どうもありがと。
>>323 残念…(なんとタイムリーな...)
つい最近まで、
http://秘密 (--; に掲載されてました。(目線有りで)
って言うか、元彼が勝手に投稿してた...頭来たので今裁判中(爆
#デジカメで撮り合いした事があったんですが、その場で消してもらったんで気にもしてなかった...
思い出したらムカついて来たっ!! ヤロォ~!!!
鬱出汁脳...
>>336 >>287 で教授頂いた最小プログラムで実行しました。
やはりダメでした。
が...
>>341 さんが指摘された事、行なってました。
入力データが改行しちゃいけないデータなので、改行があるとダメなんです。
なので、改行無しで64kb分のデータ作ってコピペ他動作チェックしてました。
っで、改行付きデータを64kb分コピペしたら実際のプログラムでも問題無く動作しました。
と言う事で、>341さん、”そーゆー事”してました。
これってしょうがない?
でも、何で遅くなるのかしら~。遅くなる理由ギボンヌ!!
>>356 アプレットはどうだか分かんないけど、getImageでファイルから画像データ
取った時は、一旦オフスクリーンへコピーし、以後はそのコピーしたものを
使うようにせんといろいろ不便だよ。
レス、ありがとうございます。
>>394 treeのノードクラスはjava.io.Serializableをインプリメントしましたが、
そのノードクラスから参照しているいくつかのクラスに関してSerializableを
インプリメントしていなかったのでそれが原因かもしれないです。
>>392 エラーメッセージ、もう少し良く見てみようと思います。
ちょっとこれから月曜までPCが使えなくなってしますので、来週、出来るかどうか
試してみてご報告します。ありがとうございました。
>>383 さん
appletviewerではきちんと作動しています.
ほかにもいくつかアプレット作って見たのですが,
やはり全て窓が閉じてしまいます.
appletviewerではすべて作動しています.
IEが原因でしょうか?
セキュリティレベルなどは中でデフォルト状態で試しているのですが…
情報まってます.
詳しくは。。。
>>351 >>375 >>382 です.
皆様よろしくお願いします.
>>398 マイクロソフトにエラー報告しといたら?
IE6ってバグ多いって聞くしね。
>>398 テユーカ どこか適当なサイトのアプレットを見た時どうなの?
それでもだめだったらIEの再インストール(できるかしらんけど)だね。
>>398 ほかのブラウザではどうなった?
Netscape, Opera, Mozillaとか。
特にNetscapeでの動作確認がお勧め。
コントロールパネルのJavaコンソールでは、Appletの設定がIEでも有効に機能しているか?
IEのオプション-[詳細設定]で、<applet>にJava2にv1.4.1を使用(再起動が必要)
がチェックされているか?
もしSunのJVMを使う気が無いならMSJVMをコントロールパネルの
プログラムの追加と削除で一旦アンインストール、再インストール。
>>399 400 401さんレスありがとうございます
他のアプレット見た時もIE全部窓閉まります…
いろいろ検索してみましたがキーワードが上手くヒットしていないのか
情報が見つかりません…
再インストしかないですか…(><;)
>他のアプレット見た時もIE全部窓閉まります… じゃ、ソースの問題じゃないじゃん!<<バカー(#゚Д゚)ゴラァ >再インストしかないですか…(><;) ブラウザのね
>>398 >セキュリティレベルなどは中でデフォルト状態で試しているのですが…
セキュリティレベルをカスタムにし、[レベルのカスタマイズ]をクリック
MS VMの設定-[Javaの許可]-[カスタム]を選択すると
[Javaカスタム設定]ボタンが現れる。
そこで何か変更するのはどうだろうか。
Operaでためしてみました. やっぱりアプレットのあるページは全てエラーが出てしまいます. Operaでもエラーが出たってゆーことは ブラウザ再インストしても直らないのではないでしょうか? すみません知識不足で…
407 :
デフォルトの名無しさん :03/01/17 19:37
409 :
デフォルトの名無しさん :03/01/17 19:38
継承するとコンパイルエラーが出ます。助けてください。 下のソースはPointクラスをPoint3dクラスで継承しようとしています。 ■エラー内容 Point3d.java:5: シンボルを解釈処理できません。 シンボル: クラス Point 位置 : points.Point3d の クラス public class Point3d extends Point { ^ Point3d.java:8: シンボルを解釈処理できません。 シンボル: 変数 x 位置 : points.Point3d の クラス x += dx; y += dy; z += dz; ^ Point3d.java:8: シンボルを解釈処理できません。 シンボル: 変数 y 位置 : points.Point3d の クラス x += dx; y += dy; z += dz; ^ エラー 3 個
続きです。m(__)m ■Point.javaの内容 ------------------------------------------------------------ package points; public class Point { int x, y; public void move(int dx, int dy) { x += dx; y += dy; } } ------------------------------------------------------------ ■Point3d.javaの内容 ------------------------------------------------------------ package points; import points.*; public class Point3d extends Point { int z; public void move(int dx, int dy, int dz) { x += dx; y += dy; z += dz; } } ------------------------------------------------------------- 環境は以下の通りです。 JDK1.3.1_04 OS Win2000 sp2 IE6sp1
>>409 xという変数はどこかで宣言されているの?
>>410 どちらも同じディレクトリに入っている?
Pointクラスのxとyをpublicかprotectedにしてみては?
>環境は以下の通りです。
>IE6sp1
この、ブラウザの情報は関係ないと思う。
>>413 こういうときは大抵、x,y,zを初期化するコンストラクタを指定する。
public Point(int x, int y){
this.x = x;
this.y = y;
}
public Point(){
this(0, 0);
}
public Point3d(int x, int y, int z){
super(x, y);
this.z = z;
}
public Point3d(){
this(0, 0, 0);
}
>>413 同じディレクトリ(フォルダ)、同じパッケージ名にあるなら
>import points.*;
宣言は不要。
ファイル名とクラス名は一致。となると、ほかに考えられる原因は....。
ソースに全角文字..や全角空白..?
416 :
デフォルトの名無しさん :03/01/17 20:06
Serializeをつかって 深いコピーをしています あるクラスを深いコピーして そのクラスのフィールドで参照されている 一部の他のクラスは浅いコピーすることは できるのでしょうか? つまり 深いコピーされたオブジェクトと元のオブジェクトが 同じオブジェクトを参照するようにしたいのです Serializableインターフェースをインプリメントと しないと NotSerializableExceptionが発生していまいます よろしくお願いします
>>416 deepコピー後にアクセッサメソッドなどでフィールドにアクセスし = で参照。
>>417 レス ありがとうございます
ちょっと私の説明がわるかったと思います
深いコピーだとフィールドで参照されている
オブジェクトもコピーされますが
参照されている一部のオブジェクトは
コピーされないようにしたいのです
不可能でしょうか?
つたない説明ですいません
>>418 コピーしたいフィールドのみclone()し
コピーしたくないオブジェクトは=にした自作clone()メソッドをオーバーライド
>同じディレクトリ(フォルダ)、同じパッケージ名にあるなら >>import points.*; >宣言は不要。 あ、そうなんですか。 エラーが出るもんで追加してました。 >ファイル名とクラス名は一致。となると、ほかに考えられる原因は....。 >ソースに全角文字..や全角空白..? 特に見当たりませんでした。 継承しない場合はコンパイルエラーは出ません。(その場合、変数の宣言の追加が必要ですが) みなさんは409のソースでコンパイルエラーは出ませんか? 環境の問題なんでしょうか??
>>420 クラスパスの設定は? コンパイル時のカレントディレクトリは?
すくなくとも以下の状況ならコンパイルできる。
・クラスパスにカレントディレクトリが入っている
・カレントディレクトリはpointsの親ディレクトリ
・以下のコマンドでコンパイル(Windowsの場合)
javac points\Point3d.java
>>418 readObject(InputSteream)
writeObject(OutputStream)
をオーバーライド(正確にはオーバーライドではないのだが。
Objectにはそんなメソッド無いので。)してしまえ。
>>420 >>410 のソースを2つとコンパイルしたが何もエラーは出なかったぞ。
文字コードは問題なし? Windowsでメモ帳使っているからShift_JISだよな?
UTF-8が標準だが。
>>423 > 文字コードは問題なし? Windowsでメモ帳使っているからShift_JISだよな?
> UTF-8が標準だが。
すまぬ。勝手にメモ帳使っているとか書いた。他の、メモ帳を使っているとレスした人の古いレスと間違えてしまった。
>>419 >>422 レス ありがとうございます
やはり コピーをつくるメソッドを
自分で定義すればよいのですね
わかりました
今回はシリアライズを使うので
readObject(InputSteream)
writeObject(OutputStream) を独自に
書いてやってみます
アドバイスしてくださった みなさん
ありがとうございました
426 :
デフォルトの名無しさん :03/01/17 23:51
JSPなどでよく見られる <input type=\"text\" name=\"name\"> という\はどう言う意味ですか?
>>426 「"」などの特殊文字のエスケープ。たぶん。
>>274 コピペできるYo! (Win2000/XPでの説明)左上のアイコンクリックして[編集]-[範囲指定]
でドラッグできるようになる。Enterでクリップボードに貼り付けられる。
プロパティで簡易編集モードを選択するといきなりドラッグできる。
>>275 それは(ボタンが並んでいるのは)Win9x/Meだと思われます。
>>427 正解だから胸を張れ。特殊文字というのはいただけないけれど。
>>426-427 その通りです。が、
この場合、out.println()メソッドなどのなかに""で囲ったときのみで、
JSPでout.println()などを使わないときは \ は不要です。
>>429 すまそ。いやおれJSPとかよく知らないのよ。
たまたま板を開いたとき一番上にこのスレと、
その質問があったから答えてみたの。
432 :
デフォルトの名無しさん :03/01/18 00:14
>>432 例えば文字列を代入するとき""で囲むとき
str内に"を入れたいとき、二つ目の"が現れたとき文字列の終了と
勘違いするので\でエスケープする。
String str = "\"2ちゃんねる\""
\\ \そのもの \n改行 \r リターンコード \t タブ など
初歩的で簡単なことなのでJavaの本やサイトで調べましょう。
>421 解決しました。 ありがとうございました。 \points>javac Point3d.java となっていました。
LinkedListに格納されているStringの要素を配列で取得したいんですが、 LinkedList list; String strings[]; strings = (String[])list.toArray(); とするとClassCastExceptionが発生します。 LinkedList list; String strings[]; int n; strings = new String[list.size()]; for(n = 0; n < list.size(); n++) strings[n] = (String)list.get(n); のように、要素を1個ずつキャストするしかないんでしょうか?
>>435 toArray(Object[] a)っていうメソッドがあるよ。
>>436 strings = new String[list.size()];
list.toArray(strings);
でうまくいきました。サンクスです。
あと、
strings = new String[0];
strings = (String[])list.toArray(strings);
とするのもアリのようです。こっちの場合は
配列の長さを要素数の分に確保し直してくれるんですね。
>>437 >strings = new String[0];
>strings = (String[])list.toArray(strings);
確かにありですが、内部でリフレクションを利用して配列をnewし直すのでおっそいです。
> 確かにありですが、内部でリフレクションを利用して配列をnewし直すのでおっそいです。 ソースちゃんと読んだ事あるか?
>>439 ほい。
>public Object[] toArray(Object a[]) {
> if (a.length < size)
> a = (Object[])java.lang.reflect.Array.newInstance(
> a.getClass().getComponentType(), size);
プ
> 確かにありですが、内部でリフレクションを利用して配列をnewし直すのでおっそいです。 早いとか遅いとかを問題にしているのではなくて、 >配列の長さを要素数の分に確保し直してくれるんですね。 不必要な用を確保しなくてもすむ所にメリットを感じる場合は >strings = new String[list.size()]; >list.toArray(strings); よりも、 >strings = new String[0]; >strings = (String[])list.toArray(strings); が、良いです。それはソースにもある様に 必要な要素分だけnewInstanceする からです。 >public Object[] toArray(Object a[]) { > if (a.length < size) > a = (Object[])java.lang.reflect.Array.newInstance( > a.getClass().getComponentType(), size); コードもすっきりとするのではないでしょうか? 終了。
>>442 >不必要な用を確保しなくてもすむ所にメリットを感じる場合は
>>strings = new String[0];
不必要な配列(new String[0])を使ってるのでは?
>>443 サイズ0の配列は、速くて、軽いね。
計測すると、差もほとんど無し。
コードがすっきりする方がメリットがでかいですな。
不必要なnewは良くないね。必ずヒープを消費するわけだし。 なぜtoArrayの引数にclassが取れないんだろう。ダサいね。
>>442 toArray(new String[0]) みたいなコードは
toArray(Object a[]) は a.length < size の時 a.length の配列を
reflection で確保して返す、という前提条件を知らない場合
サイズ0の配列を確保してる行為が意味不明ですっきりしてないと思うぞ。
そのぶん toArray(new String[list.size()]) みたいに書いた方が誰でも理解できてすっきりしてる。
ところで toArray(new String[0]) みたいなコードは何がすっきりしてるの?
P503isとP504iの実機では動いているものが、504エミュでは動きませんでした。
問題はネットからデータを読み込み、スクラチパッドへ入れるところ
なのですが、この部分はフリーのソースを使っていまして。
自分でも勉強しているのですが、まだ実力が足りずリファレンス等を見ても
何が悪いのか見当がつきません。
エミュではjava.lang.IndexOutOfExceptionが出ます。
利用ソース元は
http://throw-and-catch.hp.infoseek.co.jp/lib/lib.htm にあるPadManagerクラスで、画像の読み込みと保存を主に利用しています。
今あるソースを拡張して30kbの中で作りたくて504環境に移行しましたが、
504になって変わった点等、アドバイスがございましたらお願い致します。
>>445 メソッド数増やしたくなかったのでは?
toArray(Object[] a) と toArray(Class clazz) の
どっちか選べって言われたら前者だと思う。
俺は 0<collection.size() のとき
collection.toArray(new String[0]) が
IllegalArgumentException とか
IndexOutOfBoundsException を投げないって仕様の方が不思議。
>>447 マルチポストは止めた方が良いと思われ。
>>444 サイズ1のArrayListでやったけど倍近く差が出たよ。
10,000,000回に回数増やしたら4倍ぐらいに差が広がった。
>>445 >なぜtoArrayの引数にclassが取れないんだろう。ダサいね。
Class[]が作れなくなるから。
あ、作れるか。スマソ
あんまりな質問ですみません。 BufferedReader.read() で取った数値を文字にしるには、どげんしたら良かとですか?
>>454 (char)BufferedReader.read()
>>454 Integer#toStringとかええんちゃうん?
antについて質問です。 <property name="build.srcdir" value="${basedir}/src"/> <property name="build.destdir" value="${basedir}/classes"/> <target name="build" description="ビルド"> <mkdir dir="${build.destdir}"/> <native2ascii encoding="utf-8" src="${build.srcdir}" dest="${build.destdir}" includes="**/*.java"/> <javac srcdir="${build.destdir}" includes="**/*.java" destdir="${build.destdir}"/> </target> 以上のようにnative2asciiで変換させているのですが、2回目以降は > ant Buildfile: build.xml build: [native2ascii] Converting 1 file from D:\program\java\src to D:\program\java\classes [native2ascii] java.lang.Exception: D:\program\java\classes\jp\rcl\net\j2ch\Main.java に書き込むことができません。 BUILD FAILED file:d:/program/java/build.xml:13: conversion failed と上書きできない旨のエラーが出ます。 毎回native2asciiの出力先を消しておかなければならないんでしょうか?
>>458 俺は、native2asciiするファイルはエディタで変換しちゃうから、
antのタスクでnative2ascii使ったこと無いけど、
とりあえず、native2asciiの前にantのタスクで消せばいいんちゃうんかと。
460 :
デフォルトの名無しさん :03/01/18 20:17
>>458 javac タスクに encoding 指定するのじゃダメなんすか?
462 :
デフォルトの名無しさん :03/01/18 20:18
アプレットのTextAreaについての質問です 大変困っているので、何卒どなたかお願いします TextAreaに表示される文字の色を列毎に変える事は可能ですか? TextArea.setForegroundで文字の色字体は変えれるのですが、当然TextArea全体 の色が変化してしまい、意味がありません。 1行目は青、2行目は赤と言った風に文字を変える事は可能なのでしょうか? どうかよろしくお願いします
>>458 おれの場合、src, classes以外に、asciiに変換した用のソースディレクトリを作っている。
native2ascii実行する前にasciiディレクトリを一旦rmdirしmkdirする。
それからsrcからasciiディレクトリにascii化したソースを出力する。
asciiディレクトリのソースをjavacしてclassesに出力、
コンパイルが終了したらasciiディレクトリをrmdirする
このようにしてbuild.xmlファイルを記述している。
>>460 それ、JavaじゃなくてJavaScript。全然違うものです。
よって板違いだが、作りたいものがそれに似たものならそれのソースを見ればだいぶ勉強になる、と助言しとく。
(JavaScriptはソースがDLできるよ。DL法は勝手に勉強しろ)
>>460 ほんとだimage.htmlにもmenu.htmlにもappletタグもobjectタグも見つからなかった。
レスありがとうございます。
>>459 >>463 やはりnative2asciiの前にascii化ソースを削除するということですね。
今は
<delete>
<fileset dir="${build.destdir}" includes="**/*.java"/>
</delete>
<native2ascii encoding="utf-8" src="${build.srcdir}" dest="${build.destdir}" includes="**/*.java"/>
としているので、このままで逝きたいと思います。
>>461 すいません。書くの忘れていましたが、jikesを使っています。
>462 JTextPane JEditerPane
460です。レスありがとうございました。JAVAとJAVAスクリプトはちがうのですか。 ダウンロードはしてみたんですが無断転載不可ということなので、 似たような者をつくろうと思っていたのですが。。。 助言ありがとうございました!
>>469 javax.swing.text.StyledDocument 実装すれば良いだけ…
ってすげー大変そうだけど。
>>471 DefaultStyledDocumentって使えないの?
>>472 あくまでデフォルトなのがネック。継承して自分なりのレンダラにするのがめんどいっす。
474 :
デフォルトの名無しさん :03/01/18 22:36
182 :通りすがりのマルチ ◆n.CHii/cVw :03/01/17 02:07 ID:IY2pTvoD
>>149 上が180以上、下が120。高脂血漿。医者にいつ心筋梗塞起きても
おかしくないと言われました
javadocのパッケージの部分の説明ってソースのどこに書けばいいのでしょうか?
>>475 パッケージのソースと同じディレクトリにpackage.htmlを置く。
それから、javadocを使う。
>>476 overview.htmlもあるといいねぇ。
package.htmlをantで使うときは要注意か?
copyタスクをつかっておかないといけないかも
478 :
デフォルトの名無しさん :03/01/19 02:36
>>440 のJavaのソースってどこでみれるんですか?
>>478 src.jarってのを解凍する。
ただし、そのソースを見た場合、(略
481 :
デフォルトの名無しさん :03/01/19 02:50
そうですか。
>>462 TextAreaを使わずにpaintする。
言い換えるとg.drawStringで書く。と言うのは?
483 :
名無しさん@3周年 :03/01/19 08:53
たまに、 import AAA.bbb.*; import AAA.bbb.ccc; っていうインポート文をみるんだけど、 import AAA.bbb.ccc;って 意味あるの?
>>483 cccという名前のクラスが別のパッケージにもあって、そっちのパッケージも
*でパッケージごとインポートしている状況で、そのファイル内でAAA.bbb.ccc
をクラス名(ccc)だけで呼び出したいときは、そう書きますよ。
理想は、*でインポートするのを即刻止めるべきですが。
できのよいIDEならimport文の自動編集くらい当然のようにやってくれますし。
>>482 ドキュメントのレンダリングをすべて自力でやる手間よりは、
APIライブラリ解析して使うほうが楽だと思うよ。
>>483 import java.awt.*;
import java.util.*;
とかやると java.awt.List と
java.util.List で衝突したりするよ。
487 :
デフォルトの名無しさん :03/01/19 16:32
はじめまして。 このごろ本格的にJAVAの勉強をはじめました。 早速ですが質問です。 class Bで格納した変数aをclass Aに引き渡す場合どうすればいいのでしょうか? よろしくお願いします。
>>487 質問が意味不明。そういう質問のときはメソッドという言葉が出てくるはず。
とりあえず引数として渡す方法と、参照を保持させておくという方法があると言っとく。
>>487 変数(フィールド)aがpublic staticなら
class A{
public void method(){
//処理
B.a;
//処理
}
}
変数(フィールド)aがprivate 非staticな例なら
class B {
private int a;
public B(int a){
this.a = a;
}
public int getA(){
return a;
}
}
class A {
public void method(){
B b = new B(1);
int x = b.getA();
}
}
490 :
デフォルトの名無しさん :03/01/19 18:28
初心者です。 よろしくお願いします。 AWTのリストをリストα,リストβと2つ作ったとします。 1つ(同一)のItemLisnerに2つとも登録します。 つまり同一↓の関数内でα,βの判別を行いたいのです。 public void itemStateChanged(ItemEvent ie){ } この中でα,βどちらのイベントなのか判断する方法がわかりません。 どなたかご存じでしたら教えて頂きたいのですが、よろしくお願いします。
>>490 ItemEvent#getItemSelectable() で α か β への参照が得られるはず。
492 :
デフォルトの名無しさん :03/01/19 18:33
今オブジェクトに関して勉強しているのですが 著書に解説していない事項が気になって(涙 複数疑問があるので、ぜひ宜しくお願い致します 1 static(クラスメソッド)からインスタンスメソッドにアクセスできない と勉強したんですが、その逆はアクセスできるんでしょうか? 個人的にインスタンスメソッドからクラスメソッドにはアクセスできる ような気はするんですが、どうなんでしょうか? 2 今のところ、「クラス型の変数」はStringクラス、StringBufferクラスの 2通り習ったんですが、このMATHなどもフィールドで宣言できるものなんですか? 3 mainメソッドでオブジェクトをつくるとき、 例 Car car1=new Car(); このcar1というものは「ローカル変数」「インスタンス変数」「クラス変数」 どれに該当するものなんでしょうか? メソッドの中だから「ローカル変数」なのかな・・と思ってるんですが・・ どうぞ宜しくお願いします。
493 :
デフォルトの名無しさん :03/01/19 18:39
>>492 1.できる
2.言っていることがわからない。MATHって何?
3.そのとおり、ローカル変数。
1と(内容はよくわからんが)2は自分ですぐ試せるんだから、自分でやれよ。
>>492 > 1
> static(クラスメソッド)からインスタンスメソッドにアクセスできない
> と勉強したんですが、その逆はアクセスできるんでしょうか?
> 個人的にインスタンスメソッドからクラスメソッドにはアクセスできる
> ような気はするんですが、どうなんでしょうか?
同じクラス内での話だね。
試しに自分でやってみよう。それが理解への近道。
> 2
> 2通り習ったんですが、このMATHなどもフィールドで宣言できるものなんですか?
ちょっと意味がわからないぞ。MathクラスのフィールドはPIとEだけです。
質問内容をもっと具体的に説明したほうがいい。
> 3
> mainメソッドでオブジェクトをつくるとき、
> 例 Car car1=new Car();
> このcar1というものは「ローカル変数」「インスタンス変数」「クラス変数」
> どれに該当するものなんでしょうか?
> メソッドの中だから「ローカル変数」なのかな・・と思ってるんですが・・
ローカル変数。もしcar1がそのクラスのフィールドであればインスタンス変数か
クラス変数のどちらかになる。
クラス変数はstaticな変数のこと。
staticでなければインスタンス変数。
2 Math クラスはコンストラクタが private で定義されているのでインスタンスを作れない 数学計算というグループでまとめてるだけで、 オブジェクト指向的でないといえばそうかも。
>492 1.やってみれば分かるだろ。そういうのは推測どおりにならない場合に聞きに来いよ。。 2.Mathの間違いだな? class hoge{ Math math = new Math(); } ↑やってみれば分かるだろ。publicコンストラクタが無いので無理。 3.やってみれば・・・・・・分からないな。いい質問です。正解。 >494 >ローカル変数。もしcar1がそのクラスのフィールドであればインスタンス変数か >クラス変数のどちらかになる。 ローカルスコープで上書きされると思われ。
>>491 ありがとうございます。
さっそくやってみたのですが、今度は意味不明のエラーが出てしまいます。
public void itemStateChanged(ItemEvent ie){
}
↑この中でリストα.()やリストβ.()とα,βの何かを呼び出そうとすると
NULLEXCEPTIONが発生してしまいます。
リストも関数も同一クラス中に存在します。
リストはクラスのコンストラクタでnewしてます。
そもそもItemListenerが反応しているのにNULLも何もないと思うのですが。
リスト宣言をstaticにもしてみましたが、駄目でした。
何か特別な事をしないといけないのでしょうか?
498 :
デフォルトの名無しさん :03/01/19 19:16
Javaの文で全く同じ文でも returnがある文とない文があるのですが いまいち違いがわかりません returnがあるとどうなって、ないとどうなるのですか?
>>497 スマソ。解読は試みたんだが、
>>498 返り値の無いメソッドで、
最後にreturnがあるか、無いかの違いなら気にするな。
大人になったらわかる。
500 :
デフォルトの名無しさん :03/01/19 19:25
Excelファイルに図を挿入したら bmpでもjpgでも元のファイルよりも莫大な容量の ファイルになってしまいます 例えば100kのファイルを挿入したら、Excelでは5Mぐらいになってしまいます これの解決方法をオ願いします
誤爆だ
>>500 なりません。もっとまともなネタで出直してきなさい。
503 :
デフォルトの名無しさん :03/01/19 19:47
再度の質問です Exclesior JET を正常に使用している方で よかったら環境等を教えていただけませんか 当方の環境だとエラーが出て起動できなかったので参考になるかと思いまして
サーブレットで、アクセスされるごとに、インスタンスフィールドを 初期化したいんですが。。。 init(SerletConfig)メソッドはいったいどこで呼ばれるんでしょうか? Tomcat4.1で、JDK1.4です。
505 :
デフォルトの名無しさん :03/01/19 19:51
初心者の質問ですが 同じクラスファイルの中にたまに何個もクラスがありますよね。あれってどう言う意味ですか あとBeansでsetの部分とgetの部分は具体的にあそこで何をしてるのですか? ↓の文は例です public void setItemName(String strName){ itemName = StraName; } public String getItemName(){ return itemName; }
>>506 public class MonaMona {
String itemName; // ←注目 注目 注目
public void setItemName(String strName){
itemName = strName; // 引数に与えられたstrNameをitemNameに入れる。
}
public String getItemName(){
return itemName; // フィールドのitemNameを返す。
}
}
>>505 これは内部クラスのことを別としての説明です。
単なる練習用、動作テスト程度にプログラミングするなら
同じファイルに複数のクラスがあっても構わない。
クラスをパッケージ化した場合は同じファイルに複数ある場合、
ファイル名と名前が同じで且つpublicになっているクラスのみ
パッケージ外部からアクセスできる。
長いプログラムや、あるクラスを何度も再利用したい場合は同じファイルに複数のクラスは入れないほうがいい。
複数のファイルに分割した方が良い。
>>504 initという名前からして初期化の意味
Servletを起動したときinit()が呼び出される。
init()メソッドをオーバーライド
>>500 Excelは板違い。
ソフトウェア板かWindows板かビジネスsoft板で質問したほうがいい。
510 :
デフォルトの名無しさん :03/01/19 21:13
クラスやメソッドの前にある publicがあるとき privateがあるとき あと何もなしの時の違いがわかりません public・・・ほかでも反映されるって、ほかってどこのことですか? publicとprivateはわかるのですが、何もない時ってどう言う動きになるのですか?
ネタにしても、もう少しレベルあげれ。
>>511 激しくスレ違い
上級者のみのJavaスレでも行け
>>510 何も無い時はデフォルトでprivateが付く、
publicは
「全部ずるっとまるごとお見通しだ!」
状態
privateは
「すいません、結婚式は身内だけで静かにやりたいんで、、」
状態
protectedは
「俺の娘に手を出したら殺す!!!みんじゃねーよ糞が!!」
状態
やっぱりinit()、init(ServletConfig)メソッドが呼ばれるタイミングが わかりません。 そのクラスを最初に実行したときに、呼ばれるんでしょうか? それとも、各クライアントごとに呼び出されるんでしょうか? それとも一つのクラスを非同期で共有するのでしょうか? わかんなくなってきました。。。
>>510 とりあえず試してみるって発想は無いのか。
試せない状況で気になって仕方ないってんなら、スコープについて調べてみろ。
>>513 privateとprotectedの違いって何?
外からしたら不可視なわけでしょ?
>>513 デフォルトは package public でしょ。
>>513 > 何も無い時はデフォルトでprivateが付く、
これは間違ってます。
同じパッケージ内からは参照できる(だったっけ?)
>>516 privateは不可視、
protectedも不可視、しかしこれは、自分を継承した
子クラスからのアクセスにだけは公開してあげるよ♪てこと。
あんまり使わない。
>>517 うおおお!!今までずっとprivateだって信じてたのに!!!
package public = friend(friendという宣言はないが) 少なくともprivateではない。privateだと継承されないから。
protectedはパッケージ内からは丸見えよ~
つまり public 全部丸見え protected パッケージ内丸見え private 誰も見れない
523 :
デフォルトの名無しさん :03/01/19 22:20
ちなみに、Interfaceはpublicがデフォルトでした。
>>512 その仕様、最初に知ったときは驚いたね~
折角シコシコprotectedにしたのに、丸見えだからね~
public - アクセスに制限がない。 protected - 同じパッケージ、またはそのサブクラスからしかアクセスできない。 省略 - 同じパッケージ内からしかアクセスできない。 private - 同じクラスからしかアクセスできない。
で、パッケージの定義とはなんぞや?
527 :
デフォルトの名無しさん :03/01/19 22:31
http://www.hellohiro.com/jdbcmysql.htm のHelloWorldJDBCMySQL.javaを動かそうとしてるのですが、
下記エラーが出てしまい動きません。
jdbcのドライバの設定がおかしいと思うのですが、
いくら考えても分かりません。誰か教えてください。
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:8)
素直に「パッケージって何ですか?」って聞けよ(w
>>526 「パッケージの定義とはなんぞや?」とはなんぞや?
_、_ パッケージて何ですか? ( ,_ノ` ) ζ [ ̄]'E  ̄
>>527 ClassNotFoundExceptionて書いてあるだろうが
つーかソース晒せよ
>>530 用途ごとにディレクトリ分けて
同一ディレクトリにあるクラスをまとめたやつ
とでも覚えとけ。
>>532 _、_ Javaのprotectedて何の使い道も無いっすね。
( ,_ノ` ) コーヒーのくせに使えない奴だ。>Java
ζ
[ ̄]'E
 ̄
>>532 protectedは継承したときに初めてアクセスできるようになるんだよ
お前が使えねー
>>527 ここで例外出てる。
Class.forName("org.gjt.mm.mysql.Driver");
このクラスが無いんだと。クラスパスを通してあげてな。
536 :
デフォルトの名無しさん :03/01/19 22:46
初心者なので、馬鹿みたいな質問だとは思いますが、よろしくお願いします。 一つのプログラムに対して、いくつかのファイルに分けて 記述されているとき、 たとえば、ファイル A.java と B.java があって 【A.java】 package shop; ・ ・ public class Shop { ・ ・ ・ } 【B.java】 packeage shop; ・ ・ public class Buy(Shop shop){ } という感じで、A.java内で定義したクラス型を他のファイルで使うと、 コンパイル時に、「シンボルを解決できません」というコンパイルエラーが出て コンパイルできません。 こういう場合はどうすれば、良いのでしょうか? 初心者なので、非常に初歩的な質問かと思いますがよろしくお願いします。
packeageがスペルミス
> public class Buy(Shop shop){ おかしくないかい?
>>540 C:\j2sdk1.4\lib
にもクラスパス通してあげて。
>>541 違う。これだこれ。
set classpath=C:\j2sdk1.4\lib\org\gjt\mm\mysql;.;
>>540 念のために言っておくと、カレントにもパス通せよ、と。
あと補足だが、*.jarは一つのディレクトリと解釈されるので、それもちゃんとパス通せよ、と。
544 :
デフォルトの名無しさん :03/01/19 23:26
メソッドやクラスでvoidがあるのとないのとありますが 違いって何ですか?
サーブレットで開発をしているのですが、 ある画面に遷移した際に、IEのステータスバーに出ている読み込み具合を 示す青いバーが遷移後に表示をはじめて、途中でとまったままに なっています。画面は表示されるのですが、「ページが表示されました」 というメッセージがでません。なぜなのでしょうか。 画面はフレーム構成で、上フレームのonloadで下フレームを呼んでいます。
545は分からないでしょうか。 フレーム構成で、まずフレームを表示したあと、フレームの上の 部分をsrc指定で表示し、その後上フレームのonloadで下フレームを 表示しています。
550 :
デフォルトの名無しさん :03/01/20 00:02
>>546 うーん
よくわかりません
素人考えながら、それならvoidは別になくてもいいのでは?
>>550 返り値が無い事と明示的に示す必要があるから。
例えばコンストラクタメソッドは返り値の指定が無い。これは
自動的にポインタ(とはJavaでは言わないが)を返す事になっているから。
要するにこれらをはっきり区別するため。
>>549 あんた、いろんな所に誘導されてるようだが、多分、web製作か、WebProgで、
聞くのが妥当かと。
すんません、質問です。 jdb 使用時に System.in.read は使用することが出来ないんでしょうか、 以下、「メール受信を行いますか?[y/n]:y」の末尾の y を拾おうとして失敗しています。 VM が起動しました: 保留した ブレークポイント mypop.getResponse を設定しました メール受信を行いますか?[y/n]:y 認識できないコマンドです。ヘルプを参照してください... > >
そうですか。 分かりました。 web開発をしていてよくある現象なので、みなさんは知っていらっしゃる かと思ったのですが。もしかしたらhtmlを読み込む前にonloadで htmlの要素を呼び出しているのがよくないのかとか思ったのですが。 もしくは1画面で2つサーブレットを呼び出すとそういうことに なるのかな。とか。
555 :
デフォルトの名無しさん :03/01/20 00:27
>>550 int a(){
return b;
}
float c(){
return d;
}
かた おなまえ(いれてね){
かたのものをかえすよ
}
というせんげんのきまりがあるからだよ
ほかのはちゃんとかたをせんげんしているんだから
やっぱりぼいどーとさけんだほうがみためもいいし
こんぱいらさんがわかりやすいとおもうんだ
つけなかったらぼいどね、でもいいとおもうけれど
みんなぼいどつけることになれてるから
それでいいんじゃないのかな。
>>550 >素人考えながら、それならvoidは別になくてもいいのでは?
そのとおり。voidを記述しなければいけないのは過去をひきずっているだけ。
>>554 それって、たぶんIEのバグ。
複数コンテンツをロードする時に、なんかのタイミングでIEの独自プログレスバーが
リセットされなくなる現象。海外のMLでそんな記事見つけた。
尚、この話はスレ違いなので、これ以上質問しないように。
>>556 お前はインタフェース(宣言のinterfaceにあらず)の可読性をないがしろにしたいの
ですか?
>>556 >過去をひきずっているだけ。
ハァ?
過去ってC++の事?C/C++のVOIDはjavaのvoidではないぞ。
へみ猫のほうのvoidとも違うぞ。
ということに(以下略
>>556 関係無いけどIDLでも戻り値 voidの指定がある理由って、わかる?
>>544 voidや返す型が無いのはメソッドではなくコンストラクタ
>>550 コンパイラがコンストラクタとの区別を高速化する手段にもなっていると思う。
voidはつけたほうが解りやすい。
Javaではvoidはずしたらエラーになるぞー
「戻り値の型が宣言されていません!!!」
と文句を言ってくるぞー
>>557 >>559 プログレスバーって、Servletとは関係なく、
JavaScriptで(IEの場合はJScriptか?)
動くヤシではないか? スクリプト使ってる?
567 :
教えて君return :03/01/20 00:54
iアプリの勉強をはじめたばかりの者です。
何卒ご教授お願い致します。
ネットからデータを読み込み、スクラチパッドへ入れるところを
http://throw-and-catch.hp.infoseek.co.jp/lib/lib.htm にあるPadManagerクラスが便利なので利用しているのですが、
P503isとP504iの実機では動き、504エミュでは
実行時にjava.lang.IndexOutOfExceptionが出ます。
コンパイルは通ります。
503環境時は普通に使用できてました。
今あるソースを拡張して30kbの中で作りたくて504環境に移行しましたが、
504になって変わった点等、アドバイスがございましたらぜひお願い致します。
>>567 試しにIndexOutOfExceptionの前にArrayIndexOutOfExceptionや
StringIndexOutOfExceptionをcatchするのはどうですか?
そのときのメッセージ内容もここに貼り付けるのはどうでしょう?
>>566 使っています。
javascriptの問題なのでしょうか。
>>567 ソース付いてるやん・・・自分で調べろよ・・・
>>567 × java.lang.IndexOutOfException
○ java.lang.IndexOutOfBoundsException
俺はiアプリは知らないが、「実機では動く」ってのは実機側で例外を根こそぎcatchしてるから
本当は死んでるんだけど、動いてるように見えるってオチは無いよな。
つーかどこでその例外吐いてるのか。
573 :
デフォルトの名無しさん :03/01/20 01:01
ここへの書き込みミスのため、指摘が違う方向へ行っちゃったので、 修正して書きます。 初心者なので、馬鹿みたいな質問だとは思いますが、よろしくお願いします。 一つのプログラムに対して、いくつかのファイルに分けて記述されているとき、 たとえば、ファイル A.java と B.java があって 【A.java】 package shop; ・ ・ public class Shop { ・ ・ } 【B.java】 packeage shop; ・ ・ public class Buy{ public void additem(Shop shop){ ・ ・ } } という感じで、A.java内で定義したクラス型を他のファイルで使うと、 コンパイル時に、「シンボルを解決できません」というコンパイルエラーが出て コンパイルできません。こういう場合はどうすれば、良いのでしょうか? 初心者なので、非常に初歩的な質問かと思いますがよろしくお願いします。
過去を引きずっていると言ったのは、無くても動作可能(Eiffelは返り値が無いとき記述なしですよね) で、JavaがC/C++似の文法を採用していることを理由とした自分の推測です。 それをひっくるめて可読性にも寄与しているとも思いますが。
575 :
デフォルトの名無しさん :03/01/20 01:03
あ、すみません。また直し忘れています。 packeage => package プログラムではきちんとなっています。
>>575 怪しすぎる。何故プログラムからコピペしない?
>>575 // Shop.java
package shop;
public class Shop {
}
// Buy.java
package shop;
public class Buy{
public void additem(Shop shop){
}
}
何の問題も無くコンパイルできましたよ?
なんとなく、コンパイルするディレクトリの問題の予感。
>>573 B.javaのファイル名を Buy.javaにするか、
Buyというクラスのクラス名をBという名前に変更せよ。
>>574 煽る訳じゃないが、Eiffelは関係無いのでは?
つーかEiffelで動作可能だからって、Javaとは関係無い。
戻り値が無いって事を明示的に書く方が可読性が上がると思うんだが。
CLASSPATHにこれらが入っているフォルダまでのパスを追加したら 成功しました。 お騒がせしました。
>>580 EiffelをあげたのはJavaに似た言語で単にvoidが無くても動作する例を見せたかったからです。
voidが無くても動作可能だったはずなのはわかりますよね。
>戻り値が無いって事を明示的に書く方が可読性が上がると思うんだが。
C/C++ユーザが多い = voidがあった方が読みやすい人が多い
ということであれば同意します。
はっきり言ってあってもなくても大して変わらないと思うのでC/C++ユーザを確保するために
他の文法も含めてJavaではvoidを書くことにしたのだと思います。
>>581 AクラスとBクラスを別ディレクトリ、別パッケージから参照するプログラムを作るわけでなければ
CLASSPATHいらないと思う。
>>582 Java/C/C++/C# と Python との比較はどうですか?
あれこそ斬新な記述方法を持った言語という気がする。
戻り値の記述がかなり簡略化されているのに惹かれた。
procedureとfunctionみたいな明確な線引きって無いからな。 でもやっぱ可読性高めるためにvoidはつけとけよ。 大した手間でもあるまいし
>>584 すいません、そういう話は好きなんですが
スレ違いになりそうなのと僕がPythonを良く知らないのでダメです。
というわけでPythonを勉強してきます。。。
>>585 そういうことですね。
voidつけるのもたいした手間じゃないし
voidが無いことから返り値がないことを理解するのもたいした手間じゃない。
というわけであってもなくてもどっちでも良いですけれど。
構文の一貫性は重要。
>>581 そんなバカな!コンパイルエラーと言っていたではないか!
return void;
void f1() { } void f2() { return f1(); } これができないのは糞
コンストラクタでreturn使うのってどうなん? hoge(String str){ if (str == null) return; this.str = str; } みたいの
593 :
デフォルトの名無しさん :03/01/20 02:18
初歩的な質問なんだけど、例えば public Amethod(double x){}の引数xにint型の値を渡してメソッドを呼ぶことって出来たっけ?? それとコンストラクタの場合も同様に??
相談にのってくださいませ。 今perlでテキスト処理がメインのプログラムを作ってます。 コードが長くなり袋小路に追い込まれています。 そこで、オブジェクト指向の考えを取り入れようかと思っています。 しつもんなのですが、オブジェクト指向で テキスト処理が主のプログラムを作成するときに、 ・今までどおりperlでオブジェクト指向を取り入れる ・正規表現も使えるようになったJavaに移行する のどちらがベストですか。 よろしくおながいします。
テキスト処理程度ならperlでいいだろ…
>>594 あなたの中で繋がっているであろう認識の連鎖が、必ずしも一般的では無い可能性について、
心のノートに300字以内でまとめよ。
それが出来ない場合、Perlスレに行き、構造化ないしOOの設計について質問汁。
>>594 Python や Ruby を使ってみるに一票
598 :
名無しさん@3周年 :03/01/20 03:17
Javaでimportされたクラスにmainメソッドがあって、 importしたクラスにもmainメソッドがある場合、 importされたクラスのmainメソッドは動作しないんでしょうか?
長いって何行?
>>598 実行するときにクラスを指定してるじゃん
601 :
デフォルトの名無しさん :03/01/20 05:30
>>594 コードが長くなり、袋小路に追い込まれているのとオブジェクト指向はほとんど関係ないでしょう。
その状態であればPerlを使いつづけるのがいいと思います。
Perlで手続き型のプログラミングをしても立派なコードはかけます。
機能ごとにメソッドに分割するとか、変数名などを誰にでもわかりやすい名前に変更するなどして、
コードを理解しやすくしましょう。
あとグローバル変数を利用するのは止めましょう。
>>504 HttpServlet の init メソッドは インスタンス生成時に一回だけ、
つまりServlet コンテナが起動してから最初にServletが呼び出されたときのみ呼ばれる。
アクセス毎に呼び出される処理を書きたかったらservice(あるいはdoGet,doPost)内に
書くべし。
604 :
教えて君return :03/01/20 08:17
>569 >572 お返事ありがとうございます。 実機では本当に動いています。 操作可能なんです。 >○java.lang.IndexOutOfBoundsException でした。m(_ _)m そのとおりです。 504のプログラミングを解説しているサイトをご存知無いでしょうか? 503時代はあんなにたくさんあったのに・・・。
>>498 特に記述する必要はないが「明示的」に 返す値はない といった所かな。
ただし、記述する必要がなくても「明示的に」記述することでソースが
読みやすく(見やすく)なる場合もあるよ。
boolean bFlag ;
と宣言しても
boolean bFlag = false ;
と宣言しても、booleanは初期化しない場合はfalseなので記述の義務はないが、
後者「明示的に」書いておくことで、 目で見て理解できるでしょ?
Object o = null ;// ここも 明示的に nullを書いているだけ
o = new Object();
>>498 メソッドの途中でif文等の分岐で条件によっては
そこで処理を終わらせて強制的にメソッドを抜けたいときには
return を書くとそこで処理を終わらせることができる。
>>605 Object o;
と
Object o = null;
は違うよ。
前者は初期化なしで変数の宣言のみ。
この記述だけだと変数oはnullとはならない。
後者は宣言と初期化を同時に行う。
607 :
デフォルトの名無しさん :03/01/20 11:51
>>605 試しにこんなプログラム書いてみ。
public class Test{
public static void main(String[] args) {
Object o;
if (o == null) {
System.out.println("null");
} else {
System.out.println("nullではない");
}
}
}
Test.java:6: 変数 o は初期化されていない可能性があります。
if (o == null) {
^
エラー 1 個
こんなエラーが出てコンパイルできないから。
voidをつけることは
>>588 のいうとおり必要なことだとは思うが、
C/C++のように intで宣言して int 0; でvoid扱いにするといったことをJavaでは
「やめ」にしたと、俺は解釈しているよ。
メソッドは宣言する際に必ず「何の型の値を返す」かを指定する必要があり、返す
値がない場合は void型の値を返すことになるのでは? そーいう意味では
voidメソッドに return ; はあっても良いよね。
さらに
>>592 のいう、voidを付けることすら許されないコンストラクタの場合、
当然 return ; するべきではないと思う。実際、そーいったソースはよく目にするけどね。
あ、いわれてみれば確かにそうだね。 newする前に使うことを(使われることを)考えていなかったよ。 俺は = null ; とする事で、「この変数はまだ new されてないんだよ~」と 「明示的に」しておくことが出来ると思ったんだ。
>>608 int 0 ; -> return 0 ; だね ^^;ごめん
611 :
デフォルトの名無しさん :03/01/20 12:28
独習JAVAで勉強中のスーパー初心者です。 静的変数とインスタンス変数の違いを教えてください。 いろいろと他のドキュ探して読んではいるのですが、もうサッパリ、、、 なんかJAVA抑えるにはこの辺が肝になりそうな予感なので、 わかり易い資料等ありましたらぜひご教授ください。
612 :
デフォルトの名無しさん :03/01/20 12:57
>>611 java直前必修問題集を読め。(青本)その前にやさしいjavaもいいぞ。
>>
↑ミス、すまそ
>>612 あとで本屋に逝ってきます。
静的変数の場合 System.out.println("Min of -8 and -4 is " + Math.min(-8, -4)); このステートメントの場合だと、Mathクラスのminというメソッド を呼び出して()内の値を返す。
インスタンス変数の場合 String s = "One Two Three Four Five Six Seven"; String substring = s.substring(0, 10); System.out.println(substring); このステートメントのあるクラスのsというString型のインスタンスに substring(0, 10)というメソッドを使って値を返す。 という認識でよいのでしょうか?
>>616 ありがとうございます。
もうひとつよろしこです。
s.substring(0, 10);
と記述することで、sというインスタンスに、
Stringクラスのsubstringというメソッドが呼び出せる
であると、Stringクラス はString型のインスタンスに対して、
".メソッド名"が記述されたことで呼び出される。。。
と思っておけば良いのでしょうか???
つーか自分で頭の中が整理できたきがするにょ
英語の文字列の先頭を大文字に変えるメソッドってない? Sunのリファレンスを一通り見たんだけどないみたい。 誰か知っていたら教えてくれ
>>619 Sunのリファレンスみたのなら、java.lang.StringのtoUpperCase()は
見つからなかったの????
文字列の先頭文字をsubstringとかcharAt()で取り出して、toUpperCase()で
大文字に変換してreplace()かなんかで元の文字列の先頭文字と入れ替えれば
OKじゃないのかな?
>>619 Character.toUpperCase(str.charAt(0)) + str.substring(1);
こんな感じかな?
char[] c = str.toCharArray(); c[0] = Character.toUpperCase(c[0]); new String(c); なんてやり方もある。
こんにちわ。 数日前にSerializableについてバイナリデータとして保存できないということ で質問したものです。 保存できないのはどうもStackOverflowErrorという再帰メソッドに関する エラーのためなようです。階層が深すぎるためのもののようですが、 解消法としてtreeを浅くするしかないのでしょうか??
>>623 循環参照をしてるんじゃないか?
フィールドが保持しているインスタンスを注意深く見てみれ
>624 循環参照ってお互いに参照しあってるとか自分自身を参照してるっていう ことですよね。一応それは避けるようにプログラミングしたし、実際tree のノードをみてみたけど循環している気配はなかったです。
626 :
デフォルトの名無しさん :03/01/20 18:21
下記のsourceがコンパイルできません。 「abstractとして宣言してます」と表示されるんですがどうしてなんでしょうか? 長いみたいなので2つに分けます。お願いします class CarI { private int num; private double gas; public CarI() { num=0; gas=0.0; System.out.println("車を作成しました。"); } public void setCar(int n,double g); { num=n; gas=g; System.out.println("ナンバーは"+num+"にガソリン量を"+gas+"にしました。"); } public void show() { System.out.println("車のナンバーは"+num+"です。"); System.out.println("ガソリン量は"+gas+"です。"); } }
class sample9 { public static void main(String args[]) { CarI cars[]; cars=new CarI[3]; for(int i=0;i<cars.length;i++){ cars[i]=new CarI(); } cars[0].setCar(1234,20.5); cars[1].setCar(2345,30.5); cars[2].setCar(3456,40.5); for(int i=0;i<cars.length;i++){ cars[i].show(); } } }
>>626 ほんとにこれだけ? 親クラスを継承したりインタフェースを実装してたり
していない?
どこにabstractがあるんだろう。。。
>>626 エラーメッセージを貼らないのは答えてもらえないパターン。
どうせあとで聞かれるんだから最初から貼れよ。
すみません。errorメッセージは下記の通りなんです・・ ソースは上記の2つだけです。 C:\A\BIN>javac sample9.java sample9.java:11: メソッド本体がないか、abstract として宣言されています。 public void setCar(int n,double g); ^ sample9.java:13: シンボルを解釈処理できません。 シンボル: 変数 n 位置 : CarI の クラス num=n; ^ sample9.java:14: シンボルを解釈処理できません。 シンボル: 変数 g 位置 : CarI の クラス gas=g; ^ エラー 3 個
>>631 public void setCar(int n,double g);
{
隊長!余分なセミコロンを発見しました!
>>632 氏初め、皆様方
セミコロンは外してコンパイル成功しました。
皆さん本当に有難うございました。
でもどうして「abstract」と表示されるんでしょうか・・・
もう少し勉強してみます
>>633 public void setCar(int n,double g);
だとエラーメッセージが言うようにメソッド本体がないことになるから、
メソッド本体は派生先で実装することになる。だからabstractって言われる。
>>594 >>602 perlだと継承できないんでなかったっけ?
>>606 tryの中にreturnがあるときはfinallyを先に実行してからreturnするよーん。
>>611 おれは初めてJavaを勉強した本は「独習Java」だったがまあまあよかったと思うぞ。
なんであんな本買ったかというとあれのC言語版、「独習C」がすごく丁寧に説明されていたから、
という単純な理由だけで「独習Java」を買ってしまった。Javaを初めて勉強するにはまあまあだったとは思う。
あれで実際に例題と練習問題を解いて自分でコンパイルして自分で実行すれば
あれでも基礎的な理解だけでも十分深まると思う。
>>635 さんくすこ!見えてきました!
このまま「独習Java」で最後まで猛進します。
>>636 ただし、独習Javaはプログラムの経験がない人には難解なので注意が必要。
はじめてプログラムを勉強する人向けの本ではない。
639 :
デフォルトの名無しさん :03/01/20 22:15
JAVAを初めて2ヶ月ぐらいで大それた事をしようとしてヒィヒィ言ってます。
アプレットで作成した画像をCGIを介して保存したいのですが、
String stAddr="www.***.co.jp";
String stUrl="
http://www.***.co.jp/~hoge/hoge.cgi BufferedImage bi;
try { // サーバー接続用ソケットと出力ストリーム作成
sock=new Socket(adr,80);
osStr=sock.getOutputStream();
} catch(Exception e) {}
try{
ImageIO.setUseCache(false);
ImageIO.write(bi, "png", osStr);
} catch(Exception e) {}
とやったのでは当然出来ません。
そこでヘッダーを追加したいのですが、
String stHead="POST "+stUrl+" HTTP/1.0\n";
stHead+="Content-Length:"+String.valueOf(s)+"\n\n";
とし、どこかにstHead.getBytes()と追加するのだと思っていますが、
ImageIOから出力されるであろうサイズsを求めるにはどうすればよいのでしょうか。
またヘッダーはどういう風に追加すれば宜しいのでしょうか?
ご教授お願いします。
640 :
デフォルトの名無しさん :03/01/20 22:48
/ ̄ ̄ ̄ ̄\ / ● ●、 |Y Y \ | | | ▼ | | \/ _人_| | ___/ \ / | l | | | | / /| | | / | | | | | U | || | | / | | // | | // | | // | | U U
>>639 念のために聞くが、当然そのCGI(Servletでもなんでもいい)は、
multipart/form-data を解析して、サーバ内のファイルシステムに保存するような
処理はしてるんだよな?
とりあえずRFCを読め。特に"POST"のバウンダリ文字列関係の記述部分。
#つーかなんでSocket使ってるんだろう...。使いたかったのか。
>>641 おいおい、なんでmultipart/form-dataなんだよ(藁
>639 そういう経験は無いけど俺だったらどうするか。 1、まず、とりあえずプレーンテキストで同様のことをするプログラムを組んでみる。 2、今度はアプレット上の画像をJPEGかPNGにしてBASE64かなんかで テキストに変換して標準出力に出す奴を作ってみる。 3、それをプレーンテキストを受け取るCGIに送りつけるのを作る。 (Javaの標準APIでできそう。ってバイナリも意外と行けたりしてw) 4、CGIをいじってBASE64デコードをさせる。 完成。バイナリデータを清く正しく送るんだ!とかいう理想に萌えてるんならRFCを読みましょう。
CGIというかperlで read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); と一行で標準出力から得られるんで open (GOTPIC, "hoge.png"); print GOTPIC $buffer; close GOTPIC; とすれば保存は出来るのかなと思ってました。 標準出力する為に必要なのが分からなくて、 調べてたらSocketで出来たからというのがSocket使ってる理由だったりします。
645 :
デフォルトの名無しさん :03/01/21 00:08
importでsqlなりutilなり用途ごとに宣言するけど あれって共通のものは初めから全部宣言して、 宣言したけど使わないものは別に無視にしたら良いと思うけど 駄目なの?
>>645 そうしたほうが良いという意見と、してはいけないという意見、
どちらも見たことがある。自分で決めてくれ。
>>591 C++ではできるらしいね。STL用に構文が拡張されたとか。
>>606 ローカル変数は初期化されないがフィールドに関しては
参照型はnullで、値型はfalse, 0, 0.0などで初期化されることが保証されてる。
648 :
デフォルトの名無しさん :03/01/21 04:16
byte型で、0xffを代入したいときはどうすればいいのでしょうか? 精度が落ちる可能性がある、って言われてエラーになります。 それとも、符号有りなので無理なんでしょうか?
>>648 byte の範囲は -128 ~ 127 まで。 0xFF は 255 なので範囲外。
Java では精度を落とす型変換をCみたいにコンパイラが
暗黙のうちにやってくれないため、 byte b = (byte)0xFF;
みたく明示的にキャストしてやらないとダメです。
皆様レスありがとうございました。 結局 ByteArrayOutputStream oSt = new ByteArrayOutputStream(); ImageIO.write(bi,"png",oSt); byte[] t = oSt.toByteArray(); //ヘッダ byte[] stSend = stHead.getBytes(); として強引にtに書き込みました。 そこでtとヘッダのstSendを足したいのですが、バイナリデータ同士を足すにはどうすればよいのでしょうか?
>>649 説明間違ってませんか。
0xFFって2進で1111 1111 1111 1111でしょ?
別に精度の問題なくbyteにキャストできる。
ちなみにbyteは2の補数で負数を表現するから-1だよ。
>>650 サイズがわかっているのであれば、新たな配列を確保して、
System.arraycopyしてやればいい。
>>648 簡単な説明:
OxFFというリテラル値を、コンパイラはintと解釈します。
byteへの代入は縮小変換になりますので、キャスト無しでは
コンパイラが代入を許してくれません。というだけの話。
>>651 >0xFFって2進で1111 1111 1111 1111でしょ?
藁
>別に精度の問題なくbyteにキャストできる。
精度落ちるよ。
byte b = (byte)0xFF;
byte c = -1;
System.out.println(b == c);
>>656 b = 1111 1111 (2)
c = 1111 1111 (2)
658 :
デフォルトの名無しさん :03/01/21 10:01
>>650 oSt.toByteArray()する前に、oStに追加分をwriteすれば?
ストリームってなんだか分かってますか?
660 :
デフォルトの名無しさん :03/01/21 10:01
なんかマヌケなやり取りがつづいてますね。
微笑ましいですね。
>>647 >ローカル変数は初期化されないが
ここかポイントだったね
663 :
デフォルトの名無しさん :03/01/21 11:03
>>645 やってもかまわんがソースの可読性の問題だね。
664 :
デフォルトの名無しさん :03/01/21 11:32
さすが初心者スレ
>>645 import java.util.* ;
も
import java.util.Vector ;
どちらも処理等に影響することはないんだけどね。
特に何を必要としているかが分かるでしょ?しかもソースの頭で。
public class HOE extends java.applet.Applet //← { // こーいう指定の仕方はどうかとは思うけど、同じクラス名で衝突する // 場合もあるからそーいう時は java.util.xxxx foo = new java.util.xxxx() // とする時はあるよね }
レス有り難うございます。 まさか、宣言時にキャストが要るとは思いもしませんでした。
激しく古いネタですが・・・ 使ってたIMAPサーバがJavaMailのコマンドに対応していませんですた・・・ #こんな感じ XX FETCH 1 (BODY[2]<0.16384>) 調べた結果、mail.imap.partialfetch Propertyn変更で一応の対応はできたっぽいです。 # Properties props = System.getProperties(); # props.put("mail.imap.partialfetch","false"); まぁ、まだ本文部分は取得できとらんわけですが・・・ (つД`)
669 :
デフォルトの名無しさん :03/01/21 15:04
java1.3.1でチャットを作っています。 TextArea 内に Append するときに文字色を変えようと思ったのですが、 そういう機能が見つからず、JTextArea を使おうかと思っています。 しかし、JTextArea だと水平方向のスクロールバーがとれなくて困っています。 また、色を変えるのに setSelectedTextColor メソッドを使ったのですが、 変わってくれません。 どなたかやり方を教えてください。 質問をまとめてみます。 1.TextArea 内に表示する文字の色を変えることができるのか。 2.1が可能ならばその方法。 3.JTextArea の水平スクロールバーを削除する方法。 4.JTextArea 内の文字色を変える方法。 ヒント程度でいいので、おねがいします。
>>669 >1.TextArea 内に表示する文字の色を変えることができるのか。
無理
>3.JTextArea の水平スクロールバーを削除する方法。
JScrollPane の setHorizontalScrollBarPolicy(int policy) 等で
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER を指定する。
>4.JTextArea 内の文字色を変える方法。
javax.swing.text.StyledDocument の実装
もしくは javax.swing.text.DefaultStyledDocument を改造する。
671 :
デフォルトの名無しさん :03/01/21 15:31
EJBのめんどくささには呆れてます。 早くなくなれJAVA
JCP 見てたら Tiger(JDK1.5) 用拡張案を発見しますた。
More New I/O APIs for the JavaTM Platform ("NIO.2")
http://www.jcp.org/en/jsr/detail?id=203 1.ネイティブファイルシステムに依存しない広範なファイル属性へのアクセス,
ファイルシステムにプラグインできるサービスプロバイダ作成用API
2.ファイルとsocket両方の非同期I/O処理用API。
3.バインディング、オプション指定、マルチキャストデータグラムを含む
JSR-51で定義されたソケットチャンネル機能性の完成。
プログラムと全然関係無いのですが、すいません。 ワードで画像を貼り付けたあと、画像を動かしたいんですができません。 教えてください。お願いします。
678 :
デフォルトの名無しさん :03/01/21 17:48
>>676 霊的現象によるパソコンの誤作動が原因っぽいので、
塩水を本体にかけて清めてみろ。
>>634 abstractやinterfaceの実装はまだ理解できていないので
意識して学習してみます。有難うございます。
少し学習してふと思ったことんですが
例えばCarクラスのコンストラクタの
public Car()
{
}
「Car」という部分は戻り値みたいなものなのかな...と思ったのですが
どうなのでしょうか...?
680 :
デフォルトの名無しさん :03/01/21 18:05
ほんとすみません。 切れてませんでした。 わざわざ教えていただいたのに・・・汗
683 :
デフォルトの名無しさん :03/01/21 18:57
コンストラクタに戻り値がないのは、コンストラクタは自身の オブジェクトを返す必然性から戻り値を指定する意味がない から(自身の型を返すしかないから)だと思うのだが。
>>684 そゆことだネ。
返り値を指定できるとしたらプールしたインスタンスのポインタを返してやるとか、
いろいろあるネ。
686 :
デフォルトの名無しさん :03/01/21 21:51
マルチキャスト使ったプログラムを作ったんですけど、 Linuxじゃ、外にパケットが飛んでいきません。入っても来ないです。 PORTは1002を使ってます。 Windowsで同じバイナリで動くことは確認しました。 原因が分かる方はいらっしゃいませんでしょうか?
689 :
デフォルトの名無しさん :03/01/21 22:44
>>686 OSがLANカード認識してないとか(ワラ
>>686 回答もらえて良かったですね。ではがんばってください。
ありがとう。がんばるよ。 Linux板の方が良かったかな・・・。
692 :
デフォルトの名無しさん :03/01/22 00:07
参考書みても全然載ってないのですが ビジネスロジックとフレームワークって何ですか? 具体的に何をさしてるのですか?
>>692 暴論な。
ビジネスロジック:≒ロジック≒アルゴリズム
フレームワーク:そのジャンルのアプリケーションで共通な部分をモジュール化し、必要最低限のコードを書けばソフトが完成してしまうと言う便利だけれど融通の利かないクラス群。
695 :
デフォルトの名無しさん :03/01/22 00:17
かわいそーだよー(;_;)
ネットワークってまるでダメ男なんだけど、答える方だってもう少し情報が欲しいんじゃないの? つか、ファイアウォールの設定とかだったら死刑だけど。 つか、ウェルノウンポート一応避けるとか。
698 :
デフォルトの名無しさん :03/01/22 00:28
classpathの設定が悪くてエラーが出ると思われるのですが、 自分ではclasspathを設定しているつもりです。 現在設定されているclasspathを確認する方法はありませんか?
ごめん。
書いたあとで、情報少なすぎることに気付いた。
>>693 もう来ないから堪忍してくれ。
マジで申し訳ない。
>>698 DOS
> echo %CLASSPATH%
他
$ echo $CLASSPATH
他 set
>自分ではclasspathを設定しているつもりです 設定している部分を見る。
set | grep CLASSPATH とか。
704 :
デフォルトの名無しさん :03/01/22 01:24
<ソース>
http://www.hellohiro.com/src/HelloWorldJDBCMySQLUpdate.java <設定クラス>
%classpath%;.;c:\azMySq;c:\j2sdk1.4;c:\j2sdk1.4\jre\lib;.;c:\j2sdk1.4\jre\lib;c
\j2sdk1.4\jre\lib\ext;c:\azMySq;c:\j2sdk1.4;c:\j2sdk1.4\jre\lib;C:\j2sdk1.4\lib
org\gjt\mm\mysql;c:\j2sdk1.4\jre\lib;c:\j2sdk1.4\jre\lib\ext;C:\j2sdk1.4\lib\ex
\org\gjt\mm\mysql;C:\j2sdk1.4\lib\mysql-connector-java-2.0.14-bin.jar;C:\作業フ
ォルダ\mysql-connector-java-2.0.14
<Driver保存場所>
C:\j2sdk1.4\lib\ext\org\gjt\mm\mysql
<エラー>
Exception in thread "main" java.lang.NoClassDefFoundError: Driver (wrong name: o
rg/gjt/mm/mysql/Driver)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:9)
エラーの内容です。 お手数ですが、よろしくお願いします。
>>686 Linuxがどうなっていたかは判りませんが、
たしかUNIX系のOSはルート権限をもつ者でなければ、
1024番未満のボートは使用不可能なのではなかったかと。
それか
>>689 などの
プログラム以前のハードよりのところに原因があるのではないかと。
>>686 の情報だけではなんとも助言のしようもありませんが。
失礼。ボートではなくポート。 訂正しなくとも判るとはおもうけど一応訂正。
>>645 Dateクラス使うとバッティングするで
Dateクラスなど使うときはやめとく。
同じソースファイルで
java.sql.Dateとjava.util.Date両方使いたいときは、import宣言は使用禁止や
>>704 C:\j2sdk1.4\lib\ext\org\gjt\mm\mysql
が怪しい。 末尾にjarファイルも指定してみては?
jreとかパス通しすぎ。重複しているようにも見える。
何とか動きました。 ありがとうございました。 原因はやはり、クラスパスでした。 クラスパスが汚れすぎてよく分からなくなってしまったので、 またやり直す予定です。 <対処方法> クラスパスの追加。ドライバをコピーしていくつか ヒットしそうな場所にコピー。 <実行結果> Hello! 1 日本語 こんにちわ 世界 2 英語 Hello World
Swingなどのウィンドウアプリケーション(Not アプレット)で、自分自身が すでに起動していないかを調べる(WinMain関数の引数みたいな)方法を 知りたいっす。
>>711 JNIを利用するか、Application LoaderをOS依存のCかなんかで書くかして、そこでチェックするしかないですね。
>>711 汚い方法で良いなら、特定のファイルが生成されてたら起動不可
みたいなプログラム使えば出来なくも無い。
1919とか使われてなさそうなポートにバインドしておく。二回目以降1919のバインドに失敗する。とか。
715 :
デフォルトの名無しさん :03/01/22 09:56
すみません JavaでDVD動画再生アプリって作れるものなのですか?
>>715 出来ない理由はあまり無いです。所詮はDVD-ROM上のファイルなんで。
問題はDVDのプロテクトだな。あとは速度とかフルスクリーン表示は どうするの?とかいった些細な問題しかないだろう。
718 :
デフォルトの名無しさん :03/01/22 11:12
JRE 1.4.1_01 と Navidia と WinXPSP1 の組み合わせで フリーズするひとはおられますか!?
>>718 nVidiaってISA時代からビデオチップをものすごい種類作ってて最近はマザーボードにまで手を出してるんだが。
>>719 それがどうかしたのか? 信者で悪口を言われたようでむかついたとか?
>>720 nVidiaの何使ってんだよハゲ。ってことですよ。
722 :
デフォルトの名無しさん :03/01/22 11:28
WinXP SP1クリーンインスコで 時たまランダムリブートしてしまうのですが、、、 これってSunに公表されていないのかな
>>721 たしかに。SONY使ってるんですがうまく洗えないんです。みたいなもんだ。
>>720 漠然と nVidia ってだけじゃ情報不足って事では?
ところで Navidia ってのは typo でいーんだよね?
725 :
デフォルトの名無しさん :03/01/22 11:30
G force2 Go ってやつです。スマソ
>>725 1. Java を使ってるときだけ発生するのか?
2. 1.が yes なら、どのクラス(コンポーネント)を使ったときに再現するかを調べて
BugParadeに報告しといてくらさい。
レス感謝! Java使ってるときだけです 調べてみていないのですがやってみます
どうもありがとう。。。 これでやっと先に進めます
>>729 一応言っておくけど、キミんとこで発生してるバグが
>>728 と同じとは限らないので要注意。
731 :
デフォルトの名無しさん :03/01/22 14:13
java関係ないかもしれないんですが教えてください^^; JSPで inputtype=textareaにて取り込んだ改行つきのデータを SQLに保存し後でそれをそのまま出そうとしたら改行が無効になってでてきてしまいます。 textareaボックスを作ってその中にだすと正しく表示されるのですが どうしてなんだろう・・
>>731 <br /> タグと \nとの違いはわかるか?
>>712-713 711です。どうもありがとう。とりあえず
>>713 さんの方法が
一番簡単っぽい。ただ、ファイル作ってクローズしちゃうと
ファイル消していくらでも起動できるので、起動でファイル
を作ったら開きっぱなしにしておいて、終了で削除するの
がいいような気がしてきた。
俺の提案は無視されたか・・・。
>>713 は汚い方法じゃないよ。 れっきとした手法だよ。
>>714 は汚い方法だよ。 でも俺はこっちの手法のが好きだ。最高。
<br /> はタグで \n は文字コード?
>>737 >SQLに保存し後でそれをそのまま出そうとしたら改行が無効になってでてきてしまいます
こいつの出力先はHTMLだよな?
HTMLなら \nを <br />に変換汁
TEXTAREAに改行を生かすオプションとかあったような。 ちがうか。
740 :
デフォルトの名無しさん :03/01/22 16:44
>>740 その通り、しかし何とも面倒くさい。
JDK1.5のジェネリック機能に期待と言うところか。
>>740 受け取るのが String だったら例外的に
vec.get(index).toString() みたいにする事もできるんだけどね…
743 :
デフォルトの名無しさん :03/01/22 17:54
(String)vectoe.get(i)とかな
744 :
デフォルトの名無しさん :03/01/22 19:08
カスタムタグの属性にObject型は渡すことは可能でしょうか? toStringしてから属性に設定するしかないのでしょうか? 以下のような方法でテストしてみました。 JSP <% Date date = new Date(); %> <sample:test arg="<%=date%>"> タグハンドラ public String arg; public void setArg( Object arg ){ this.arg = arg.toString(); } public int doStartTag(){ pageContext.getOut().print( arg ); }
745 :
デフォルトの名無しさん :03/01/22 20:28
Javaで動的配列ってどうやって作るの? String[] a = new String[]; じゃダメみたいだし。
>>745 ArrayListか、LinkedList使っとけ。
目的によって使い分けるが吉。
748 :
デフォルトの名無しさん :03/01/22 20:42
次のアセンブリ言語で書かれたプログラムは何を計算するのか答えよ。教えてください おねがいします! MOV $1000,%EAX MOV $0,%EDX L1; CMP $0,(%EAX) JNZ L2 JMP L3 L2; ADD(%EAX),%EDX INC %EAX JMP L1 L3;
スレ違いだしバグってるし。 宿題スレに池。
750 :
デフォルトの名無しさん :03/01/22 20:49
すみません
751 :
デフォルトの名無しさん :03/01/22 23:52
指定したある文字と文字の間の文字列 例えばコメントの/*------*/ の間の文字列を一斉に削除したいのですが うまいやり方ってありますか? ちょっとならいいけど、たくさんだと、それだけでかなり時間のロスになってしまいます もちろんコメントは必要だと言う批判はあると思いますが、お願いします
>>751 java.util.regexはお嫌い?
753 :
デフォルトの名無しさん :03/01/22 23:58
JFrameやJDialogで「リサイズ可能」にした場合の「最小サイズ」みたいなのって指定できませんか? 「この大きさよりは小さくできないよ」ってやつ。 コンポーネントが消えないサイズでガードしたいんですけど。。
754 :
デフォルトの名無しさん :03/01/23 00:09
>>751 エディタの正規表現置換機能を使うといい。
>>753 getMinimumSize()とかオーバーライドするのはダメかな?やってみないと分からんが。
エディタの中には「コメント一斉削除(範囲選択可)」みたいなのもあるから そういうの使ってもいい。
すいません、今JavaServletにてWEB上にてデータを打ち込み そのデータをメールで送るようなものを作成しているのですが、 1回目の送信はうまくいくのいですが2回目メールを送信しようとすると文字化け が発生してしまいます。 文字化けの処理もちゃんとかけてはいるのですが何故かうまくいきません。 どなたかよろしければお教えください。 環境は、Linux(RedHut6.2) sendMail で動作させています。
import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class Doctor extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { PrintWriter out = getWriter( response ); HttpSession session = request.getSession( true ); String name = ""; String email = ""; String school = ""; String faculty = ""; String phone = ""; String regist = ""; String question = ""; try { if ( request.getParameter( "_NAME" ) != null && !request.getParameter( "_NAME" ).equals( "" ) ) { name = getParameter( request, "_NAME" ); } if ( request.getParameter( "_EMAIL" ) != null && !request.getParameter( "_EMAIL" ).equals( "" ) ) { email = getParameter( request, "_EMAIL" ); }
if ( request.getParameter( "_SCHOOL" ) != null && !request.getParameter( "_SCHOOL" ).equals( "" ) ) { school = getParameter( request, "_SCHOOL" ); } } catch ( Exception e ) { } try { StringBuffer sb = new StringBuffer(); sb.append( "名前:" + name + "\n" ); sb.append( "メールアドレス:" + email + "\n" ); sb.append( "データ1:" + school + "\n" ); mail.SendMail.Send( "localhost", "from@2ch.net", "to@2ch.net", "件名", sb.toString() ); } catch ( Exception e ) { } // HTML部分の作成 out.println( testHtml.getHtml() ); out.close(); } public void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { doGet( request, response ); }
//----- PrintWriter をHTML表示用にSHIFT-JIS に合わせる-----// public PrintWriter getWriter( HttpServletResponse response ) throws IOException { response.setContentType( "text/html; charset=Shift_JIS" ); return new PrintWriter( new OutputStreamWriter( response.getOutputStream(), "Shift_JIS" ) ); } private String getParameter( HttpServletRequest request, String key ) { try { return new String( request.getParameter( key ).getBytes( "8859_1" ), "Shift_JIS" ) ; } catch ( Exception e ) { return ""; } } というようになっています(長くてすいません)
762 :
デフォルトの名無しさん :03/01/23 00:52
>>758 Servletのバージョンは?
何で、JavaMail使わないの?
あ、すいません、sendMailはメールサーバーの種類です メール送信部分にはちゃんとJavaMailを使用しておりますです servletsは2.2を使用しております
>>758 ソース追いかけてないけど、文字化けしたときの一般論としては、
入力と出力をhex dumpしてみるとかするね。例えば、getParameter()
のとこで入力をShift_JISで決めうちにしているけど毎回必ずShift_JISで
入ってきているのかとか。
>>764 さん
ありがとうございます
たしかにgetParameter()のところでしか変換処理をしていないので
そこをMAC等のPCで流れる文字等を見ましたが2回目とかに流れる文字は
UnicodeでもShift_JISでもないただの壊れた文字(?)のようになってしまい
よくはわからないのが現状でした。
何故2回目にservletが呼ばれたときにはそこで文字が破損するのかがわからない
ので、分かる方いらっしゃいましたら是非回避策等よろしくお願いします
766 :
デフォルトの名無しさん :03/01/23 01:31
勉強中ですが クラスとかメソッドとかはわかるようになったのですが インターフェイスがどうしても理解できないです・・・ あるとないとではどう違うのですか? また、どう言う時に必要なのですか?
>>765 安易なやりかただとJISAutoDetectで.
ブラウザ依存だと<form>要素に accept-charset=Shift_JIS、つけるとかいろいろ。
>>753 ウィンドウにリスナーを登録して、リサイズされたときのInsetsを
取得して、一定以下だったらsetBoundsすればいいんじゃない?
>>767 さん
レスありがとうございます
知り合いと一緒になって調査していたところ、一番最初はエンコード
を正しく行い2回目からはできないとのことでしたが、TOMCATなんだか
サーバーの設定なのかわかりませんが、一回目にエンコード処理をすると
何故か2回目以降の文字もエンコードが勝手に行われていたようで、今までだと
エンコードされた文字を更にエンコードしていたために文字が壊れているのでは
という結論になりました。
あまり納得できませんでしたが原因がわかったのでなんとかやってみようと思います
>>764 >>767 お二方レスありがとうございました
>>769 Tomcat3.3.xを使ってるならserver.xmlのContext - DecodeInterceptorで
文字コードを指定する。
これでgetParameterの時の小細工が要らなくなる。
>>766 ・異なる継承関係にあるクラスに共通の振る舞い(メソッド)を持つことを強制できる
・異なる継承関係にあるクラスを共通の型で扱うことができる
・文字通り、インタフェース(外から見える部分)だけを先に定義しておき、
実装クラスは自由に作れる/入れ替えられるという設計が可能。
フレームワーク等ではこういったオブジェクト指向の利点を利用していると言える。
言語機構としての Interface を理解するには、 java.util の コレクションフレームワークを調べてみるのが 一番手っ取り早いと思ふ。 ArrayList と LinkedList のメリットデメリット。 その違いを意識せずに利用できる List インターフェイス。 一番単純でわかりやすい例だと思うんだけど。
>>769 >知り合いと一緒になって調査していたところ、一番最初はエンコード
>を正しく行い2回目からはできないとのことでしたが、
そうなの?
new(s.getBytes(), JISAutoDetect)
とかの問題じゃないんだ?
原因が分かったら詳細キボンヌ
ワリィ "JISAutoDetect" にしといて""でくくってちょ。 分かると思うけど^^;
List list = new ArrayList(); 勉強したての頃は何でこんなことやるのかわからなかったなぁ
直接、Javaとは関係ないのですが 1 1.1-1 1.1-2 2 2.2-1 2.2-1-1 このようなデータを 1 ├1-1 └1-2 2 └2-1 └2-1-1 このような形で表示したいのです。 データの階層は StringTokenizer 使ってぶった切ったのですが ツリーの記号の付与し方がわからず困っています。 どなたか、良い知恵はありませんでしょうか?
>>776 └ と ├ とどっちを使うかだけだろ。ほんのちょっぴり面倒くさいのは。
1の子が1.x、2の子が2.xなら 2.xの下は2.x.xじゃないの? 上の例なら 2 2.2-1 2.2-1.1
779 :
デフォルトの名無しさん :03/01/23 13:45
String変数に入っているIPアドレスが、 指定したネットワークアドレス内に含まれているかどうかを 判定するクラス・メソッドはJavaではないでしょうか。 192.168.1.10が、192.168.1.0/24 の範囲ないかどうかを判定させたいのです。 ロジックをゴリゴリを自前で書かないとダメでしょうか。
>ロジックをゴリゴリを自前で書かないとダメでしょうか。 それほどのことかねぇ・・? で、ここでいうロジックって何?
覚えたての初心者が解く練習問題レベルじゃねーか
782 :
デフォルトの名無しさん :03/01/23 15:18
WindowsでThreadのPriorityの設定は効果がないと 聞いたんですが、どうなんでしょうか?
>>782 JDK1.4.1 のソース覗いてみたけど最終的には
Win32API の SetThreadPriority 呼び出してます。
784 :
デフォルトの名無しさん :03/01/23 17:24
今継承について学んでいるんですが、 スーパークラスを指す変数に、サブクラスのオブジェクトを代入した時、 著書では「サブクラスで新しく定義したメソッドは呼び出せない」 との記述があって疑問に思ったことがあります。 つまり、 サブクラスの フィールド; コンストラクタ; オーバーライドされるメソッド; の三つはOKで オーバーライドされないサブクラスで新しく定義したメソッド; のみは使用できないとの認識であってるんでしょうか? 実験してみたんですが、コンパイル自体できないからいいのかな・・? とも思ってます 宜しくお願いします
>>784 >サブクラスの
>フィールド;
>コンストラクタ;
上記二つが、そのスーパークラスで定義されていないものなら
この二つもNG。
もう一つ下らない質問かもしれないですが、 上記の逆はできないですよね? サブクラスを指す変数に、スーパークラスのオブジェクトを代入する...みたいな。 逆のケースではコンパイルできなかったし....
class Hage extends JPanel { public void doHage(){} } というクラスを作ったとき、 Hage hage = new Hage(); hage.doHage(); // OK JPanel hage2 = new Hage(); hage2.doHage(); // NG ということ。 変数の型によってオブジェクトのインタフェイス (どういうメソッドを持っているか、という意味くらいに考えてくれ)が決定される。
>>785 すいません。
書著のソースををみると、
サブクラスのフィールド、コンストラクタは
サブクラス独自でしか定義していないような気がして
混乱してます。
具体的にどういうことでしょうか?
今現在私の知識じゃ理解できないようでしたら、
どの編まで学習すれば理解できますか?
もしご迷惑でなければお願いします。
789 :
デフォルトの名無しさん :03/01/23 17:49
Javaでデータベースにデータを追加するときに、プログラム中の変数を含んだ SQL文はどのように書けばいいのでしょうか? String sql = "INSERT INTO table VALUES (" + 変数 + ", " + 変数 + ")"; のように書き方では、 「パラメータが少なすぎます」 というエラーが出てしまいます。 どなたかアドバイスをお願いします。
>>784 たとえばSuperタイプのsuperという名前の容器があったとして、
派生タイプのインスタンスをこの容器に代入した場合。
Super super = new Sub();
この容器superには、Subクラスのインスタンスが入っているにもかかわらず、あくまでも外からみたときはSuperタイプのインスタンスとしてしか、あつかわれない。
故に、Superクラスで定義したメソッドやフィールド以外にはアクセスできない。
ただしSuperクラスで定義されたメソッドを呼び出した場合、
もしそのメソッドがSubクラスにおいてオーバーライドされていた場合は、
実際に実行されるのはSubクラスにおいて記述されたコードであって、
Superクラスにおいて記述されたコードではない。これすなわち多態性。
>>786 もしそれが許されていると
Subクラスにおいて新たなメソッドやフィールドを定義していた場合、
問題が発生するので、それは許されないものとなっています。
たとえばSubクラスに新しく"subMethod()"というメソッドが新たに定義されていた場合のことを考えてみてください。
Sub sub = new Super();
で、Subタイプの変数に、Superのインスタンスを代入することが許されたとして、
この場合のsubは、あくまでも外からみたときはSubクラスのインスタンスとして扱われます。
故に、subを介せばSubクラスで宣言した(publicな)すべてのメソッドやフィールドにアクセスすることができる。
ゆえにsub.subMethod()という、Superクラスには存在しないメソッドが呼び出される可能性がある。
いかにこのsubが外見的にはSubクラスのインスタンスのようにふるまうといっても、
このsubの中身は実際はSuperクラスのインスタンスなので、
Superに存在すらしないsubMethod()など呼び出すことは不可能。
>>788 多態性などについて学習されると理解できるようになるかもね。
>>789 > String sql = "INSERT INTO table VALUES (" + 変数 + ", " + 変数 + ")";
二番目に登場したダブルクォーティーションがくせもの。
つまり上の文はこういうふうに解釈されているからエラーがでたわけです。
String sql = "INSERT INTO table VALUES ("
「"」の前に「\」を使えば解決するかと。
>>785 コンストラクタって継承の束縛うけたっけか?
>>791 そうなの?
オレはてっきりinsert文中の "" (''でもいいけど)が足りなかったり
;が抜けてたりしてる方が問題だと思ってたよ。
>>792 そもそも
>スーパークラスを指す変数に、サブクラスのオブジェクトを代入した時、
というのなら、
>上記二つが、そのスーパークラスで定義されていないものなら
などの条件づけ以前に、コンストラクタの呼び出しは不可能だな。
;は不要。 VALUES ('" + 変数 + "',' " + 変数 + "')" でいいんじゃないか。
798 :
デフォルトの名無しさん :03/01/23 18:33
アプレットでmp3形式のファイルを使う事はできますか?
>>797 セミコロンがなかったらコンパイルできないと思うけど:-)
>>789 それを見る限りでは間違っているところはわかりませんね。
生成されているSQLをコンソールなりログなりに出力して、それを
クエリツール(クエリアナライザとかSQLPlusとか)で実行してみたら?
ああ、「SQLにはセミコロンいらん」といいたかったんだ。 SQLplusなら必要だけど
classファイルと同じディレクトリにあるmp3ファイルを、アプレット内で再生 する事は可能か?ということ? それともローカルのmp3ファイル? アプレットでの再生ではなく、別アプリケーションへの関連づけでも良いの?
802 :
osiete!!! :03/01/23 19:14
質問っす。 public class tako{ public static void main(String [ ] args){ System.out.println("IKA"); } } のプログラムで、①「args」て、何ですか? (メソッドじゃ、ネ-ヨナ、かと、言って、クラス の訳は、ネ-しな。う~ん、何だろう。 よく わからんけど、う、引数なのか。でも、引数の場合、 どういう意味があんだ。←心の中で勝手に思ってる事。) ②Stringの次の「[ ]」は、何ですか? 配列なの? また。この「[ ]」が、Stringの次になくて、「args」の 次に来る場合(String args[ ]←こんな感じ。 ) もあるんすけど、この2つの表現の違いて、なんすっか? 宜しくお願いします、わ。
>>802 1
引数。
その意味はプログラムを起動するときに、
お好きな引数を持たせることができる。
例java tako 8
などとしてtakoを起動すれば、
args[0]に"8"という文字が代入されている。
お試しあれ。
2
どちらも意味はおなじ。記述者の好みでお好きなほうを。
ただargs[] のほうは、どちらかというと
旧来のC言語的な書き方のような気がする。
Stringの配列型のargsという変数が引数になっているメソッドという意味。 hoge.classがあるとき、コンソール上で java hoge a b c とした場合、a b c がそれぞれ args[0] args[1] args[2] になる。 String args[] と、String[] args はどっちでもよいが、昔からの慣習というか Cプログラマへの配慮と思われ。 String[] argsの方が正しいと思うけどね。
書き忘れ。
>>802 質問2の答えは配列。
たとえばjava tako 足 八本
でtakoを起動するとargs[0]には"足"が、
args[1]には"八本"が、それぞれ代入されているとおもうよ。
System.out.println()などで、お試しあれ。
マケテル...(;´Д`)
807 :
802です。 :03/01/23 19:35
>>803 様
サンクスコです。
1
やっぱ、引数ですか。う~ん。なるほど。
で、また、すんません、質問っす。
「例java tako 8」のこれは、DOS窓のコマンドラインの事
ですよね。(←当然か。)
また、この場合、引数をDOS画面から入力する事によって
クラス内でのロジック(仮にあったとした場合)制御とか
で、使うって事になるんですか?
すんません、お暇なら、宜しく願いますだ。
class Test { public static void main(String[] args) { System.out.print(args[0]); System.out.print(args[1]); } } -------------------------------- C:\hoge>java Test 2 ch 2 ch
java -deprecation hoge.javaとかやるでしょ?
810 :
デフォルトの名無しさん :03/01/23 19:39
2 ch じゃなくて 2ch ですた(;´Д`)
と思ったけどprintlnにnullを指定しても大丈夫な気がしてきた。
nullはnullと表示されるはず
815 :
802です。 :03/01/23 19:45
>>804-
>>811 様(除く810)
あ、どうもありがとう。ございます。
いやー、よくわかった、わ。
(
>>808 が、うん、一番だ。)
816 :
802です。 :03/01/23 19:47
訂正
あ、どうもありがとう。ございます。
いやー、よくわかった、わ。
(
>>812 が、うん、一番だ。)
>>813 その前に配列の範囲外なので例外が出ますよ。
以下のようにすれば、引数の数を固定せずに出力が出来る class Test { public static void main(String[] args) { for(int i=0; i<args.length;i++){ System.out.print(args[i]); } System.out.println(""); } } -------------------------------- C:\hoge>java Test 2 ch 2ch それと public static void main(String[] args){... ですが、 String args[] だとString型の、argsという配列変数ともとれますので String型配列の args という変数と宣言するのが正しいです。 変数名はあくまで args[]ではなく、args ですから。 勿論どちらでもエラーになりません。
819 :
便乗質問です。 :03/01/23 19:55
>>808 さんへ
便乗質問です。
>C:\hoge>java Test 2 ch
よく、「hoge」というディレクトリが、なんか、よく例として
でてくるんですが、何をあらわしてるんですか?
UNIXの ほら、/etc/・・・なんたらかんたら、の「etc」とか
のWin版すっか?
お、お、お暇なら・・・・お・し・え・て君!!!
(^^)
>>819 たしかこの板にも「武田騎馬軍団がhogeの謎をとくスレッド」みたいなのがあったはず。
俺も、その語源はよくしらないや。
英語圏だとfooとかがよくつかわれるのかも。
2ch圏ならnanasisanとかfusianasanとかか?
822 :
819っす。 :03/01/23 20:05
>>821 さんへ
あ、そうなんすっか。ふ~ん。
後で、そのスレ見てみますわ。
THANKS!!
823 :
819っす。 :03/01/23 20:14
824 :
デフォルトの名無しさん :03/01/23 20:39
(コ-ディングの)学習方法について、教えて下さい。 メソッドとか、例外とかの語句(例;IOExceptionとか)ありますよね。 これらをコーディングする時、ヤッパ、スペルこれ全部 暗記するんですか? ツ-ルとか、使えば、そんな事、心配しなくてイイヨ、てな、事になるんでしょうか? 今は、メモ帳で、いちいち、打ってます。(あ~メンドくせ-な、て。) もち、コピペも多少ありますよ。 (でも、面倒だな。→あ、すいません、決してコ-ディングを馬鹿にしている訳では ありません。ただ、効率的な方法がないかな~。という事なんです。)
825 :
デフォルトの名無しさん :03/01/23 20:51
>>824 Javaをどのレベルまで学習したいのかによります。
APIドキュメント見ながら打て。
>>789 誰からもまともな答え貰えなかったんだな(w
java.sql.PreparedStatement
java.sql.Connection#prepareStatement(String)
>>824 Exception 程度だと指が覚えると思うけど…
>>824 一番効率的なのは向いてなかったと諦める事です。
とか言ってみるテスト。
832 :
デフォルトの名無しさん :03/01/23 23:19
コンパイルしちまえば一緒なのは了解ですが、 日本語を含んだ Java のソース書くときは文字コードは何が行儀がいいと思いますか? やっぱUTF-8か
すいません、 java標準のフォルダ用アイコンとかドライブ用アイコンって 何処にあるんでしょうか? gifもアイコンも無いし・・・ プリントスクリーンを切り抜いてgifで保存するしかないですか?
834 :
〝マネーの虎〟 :03/01/23 23:28
>>833 demoあたりから、持ってってください。
>>836 無いです(TT)
諦めてプリントスクリーンから作りました。
>>838 無い!? そいつは悪いことをしたな。スマソ。
>>833 rt.jar の com/sun/java/swing/plaf/*/icons/ は探してみた?
>>840 ありました!
rt.jarを解凍したらWindows風のとMotifが。
でも、僕の欲しい、javaっぽいのはフォルダからして
無かった・・・(; ;)
でも、良いんです。
ありがとうございました。
今度のjdkの中にjava用アイコンセット入れといてくんないかなぁ。
>>837 何も考えずコンパイルしとき。
JavaBeanってのはね、シリアライズ可能でアクセッサがついているオブジェクトのことよ。
深く考えるのはやめとき。
843 :
デフォルトの名無しさん :03/01/24 07:57
>>842 ありがとうございます。さっそくコンパイルしてみました。
あとはこれをどうやったらBDKで使えるのでしょうか?
ほんとに初歩的なことですいません。
>>776 CompositeパターンやVisitorパターンを適用してみてはどうですか?
>>832 UTF-8マンセー。 JavadocもServlet,JSPもantもUTF-8がgooです。
XMLはUTF-8が標準でーす。 antなど使って
>>835 のようにasciiしてからコンパイル,javadocするとさらにgoo
>>843 JavaBeans, BDKで検索。詳しい使い方載ってた。
845 :
デフォルトの名無しさん :03/01/24 10:59
JavaBeansだけを使ってVisualAgeJava等で コードを書かずに何か作れるとかですよね? AlphaBeansて所にいっぱいBeansがあるけど 昔はもっといろんなサイトがあったと記憶してますが 皆、止めてしまったのでしょうか?ガメラ?とかいう所とか。
Javaアプレットの質問をさせてください。 TextFieldから値を取り出して、Listの条件をswitchで分岐させて計算、出力する アプレットを作ったんですが、二つのうちのボタンの一つが動作しないんです。 動かないのは計算を実行するボタンで、動くのは値をクリアするボタンです。 JBuilderで作ってるんですが、JBuilderのVMでは正常に動いているんですが InternetExplorerのほうで動かしてみると押してもうんともすんとも・・・。 JDK1.1以降に実装されたクラスやメソッドは使ってないはずなのですが これはやはりIEの搭載しているVMの問題なんでしょうか? IEのほうのVMはおそらく最新の物を使っています。 何度も原因を探ろうとソースを読み返したり、デバッガを走らせたんですが JBuilder上では正常動作しているので結局何も分からずじまいで。 これだけでは判断がとてもし辛いとは思いますが、見解をお聞かせください。
IEの最新のVMって? MS版は例の裁判だか権力闘争だかの影響でめちゃめちゃ古いよ。 Sunの奴をプラグインとして使うべし。タスクバーの時計の脇にアイコンが出るはず。 配布などでMSVM対応の必要があるなら、新VMを待つ(詳しくは最近のニュースを見れ)か、 JDK1.1合わせにするか。
> JDK1.1以降に実装されたクラスやメソッドは使ってないはずなのですが って書いてあるじゃん。
あ、1.1以降だと間違ってました。 ぴったり1.1で実装されたメソッドは確か使っています なので1.2以降が正解でした ですがIEのVMは現在1.1.x(正確には忘れました までサポートしていると、何かの本で読んだので、大丈夫だと思います。 あと、一応ページで公開するので、IEでは最低動かないとまずいんです 実はこれ途中で改良してから動かなくなったんです、改悪ですね(苦笑 しかも馬鹿っぽく前のソースを残しておらず・・・(泣 ソースの比較が出来れば何かの糸口になっただろうと今更後悔してます (動いていたVerの時から1.1のメソッドは使っていたはずなんですが
そのボタンのイベント部分のソースを貼り付けてみて。 計算するボタンと、クリアするボタン。 そもそも一つは呼び出される訳だから、イベント自身は問題ないみたいだね。 動かない方のボタンにも イベントをaddしてる? button.addAction....(this)とか。 それをちゃんとすましているのであれば、計算するメソッドに問題があるんだろうね。 JDKで -target オプションを使って VM1.1相当でコンパイルしてみると良いんだけどね。 JDKもしくはSDKもってる?
>そのボタンのイベント部分のソースを貼り付けてみて。 >計算するボタンと、クリアするボタン。 中身のほうですよね、ちょっと長いんですが・・・いいんでしょうか? あと、変数名で何するやつか分かっちゃうので ちょっと恥ずかしいのもあるのですが(爆 >そもそも一つは呼び出される訳だから、イベント自身は問題ないみたいだね。 >動かない方のボタンにも イベントをaddしてる? button.addAction....(this)とか。 確認しましたけど、ちゃんとaddされてます ビルダー上では動いてるので、ないと多分最初から動きませんけど^^; >JDKで -target オプションを使って VM1.1相当でコンパイルしてみると良いんだけどね。 >JDKもしくはSDKもってる? ビルダーを使い始めてから使ってないので入ってないんです 入れてやってみます
じゃあ、それら2つのボタンのイベントがあるだろ?<<確認 その一つはちゃんと動く訳だ<<これはクリアするボタンだったな もう一つは動かないんだな? じゃあ、試しに 動かない方のボタンにクリアするメソッドを関連づけして見れ。 それでちゃんとクリアできるようであれば、動かない方のボタンは計算するコードに 問題があることになる。 訳が分からないばやいは、二つのボタンそれぞれが呼び出されたら System.out.println("呼び出された"); とかを実行するようにして、ブラウザのJavaコンソールを出して確認して見ろ。 ここまで言っていることわかるか?
>訳が分からないばやいは、二つのボタンそれぞれが呼び出されたら >System.out.println("呼び出された"); >とかを実行するようにして、ブラウザのJavaコンソールを出して確認して見ろ。 似たコードを入れてみたことがあります 呼び出された時の一番最初、先頭に入れた場合は表示されて 最後に入れても表示されませんでした。 この間に問題がある・・・んですよね、って最初に言わなきゃだめか^^; 前者の >じゃあ、試しに 動かない方のボタンにクリアするメソッドを関連づけして見れ。 >それでちゃんとクリアできるようであれば、動かない方のボタンは計算するコードに >問題があることになる。 も初期表示を少し変えてやってみて、動きました。
>この間に問題がある・・・んですよね、って最初に言わなきゃだめか^^; お。いいぞいいぞ。 そうやって一行ずつ最後においたSystem.out....を上に上げて原因のある行を 特定するのだ。原始的だがとっても確実だ。
いっそ一行おきに入れてしまえば どこで落ちてるか確実にわかるぞ!
今入れてるのかな?ヽ(´ー`)ノ マターリイコウヨ
>>856 それいいですね
吐くのに番号つけて何行目か、一気にやってみます
ええと・・・ブラウザのJavaコンソール見たら例外が出てました・・・(汗 Exception occurred during event dispatching: java.lang.NoSuchMethodError: java/lang/Double: method parseDouble(Ljava/lang/String;)D not found at winapp/winMain.calButton_actionPerformed at winapp/winMain$1.actionPerformed at java/awt/Button.processActionEvent at java/awt/Button.processEvent at java/awt/Component.dispatchEventImpl at java/awt/Component.dispatchEvent at java/awt/EventDispatchThread.run Exceptionて出てるのに何で気づかなかったんだろう(TT ...この例外は何なのでしょう? 実行時のエラーって初めてで^^;
実行時というか、ボタンを押して呼び出すと出たんですが
JDK1.2で導入されたjava.lang.Double#parseDouble(java.lang.String)を使ってると読めるな。 awtのどっかの実装がそれを使うように変わってるんだろうな。 J2SDKのjavac使って -target=1.1 試してみ。
862 :
デフォルトの名無しさん :03/01/24 16:54
Javaでデータベースの更新を実行すると、 「構文エラー:演算子がありません」 といわれてしまいます。 エラーの出る部分のソースは以下のとおりです。 String sql = "UPDATE table SET data='hoge' WHERE a=3 && b=1"; statement.executeUpdate(sql); SQL文の条件式のところがおかしいようなのですが、分かる方はアドバイスをお願いします。
∑ あああぁぁぁぁ! 値を変数に代入する所、parseDouble使ってました・・・ 引っ掛かってるのもそこでした(T_T Doubleの実装は1.0でも、parseDoubleの実装は1.2だったんですね(T_T メソッドまでちゃんと確認していくべきでした・・・ 入力の精度は小数点の精度は必要ないので、parseIntに変えて おそらくこれで解決します・・・、ヨカッタ・・・。 結果ももう少しで報告出来ると思います。
864 :
デフォルトの名無しさん :03/01/24 17:05
"&&" じゃなくて、"and"だとわかったのですが、今度は 「抽出条件でデータ型が一致しません」 というエラーが出てしまいました。
動きましたー とても勉強になりました、なんとお礼を言ってよいやら・・・ 皆さん、本当にありがとうございました_(_ _)_ 同時に私が抜けているためにスレ資源を大量に消費してしまい 誠に申し訳ありませんでした^^;
>>865 よかったね♪ これに懲りずにJavaをがんばってちょ
>865 くだらないミスほど解決に手間がかかるものです。おめでとう。
871 :
デフォルトの名無しさん :03/01/24 21:12
872 :
デフォルトの名無しさん :03/01/24 22:42
DirectShowで扱うようなキャプチャデバイスからの動画入力を javaから扱いたいのですが、そういうAPIは存在するのでしょうか?
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090-8505-3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール hentaimtt@k9.dion.ne.jp
グローバル探偵事務局
876 :
デフォルトの名無しさん :03/01/24 23:06
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ □□□■□□□■□□□□□□□□□□■□□□□□□□□■□□□□■□■□□□□□□□□□□□□□□□□□□□□□□□□□ □□■□□□□■□□□□□■■■■■■■■■■■□□□■□□□□■□■□□□■■■■■■□□□□□□□□□■□□□□□□ □■□□■□□■■■■■□□□□□□■□□□□□□■■■■■■□□□□□□□□□□□■□■□■□□□□□□■□□□□□□ □□■■□□■□□□□■□□■■■■■■■■■□□□□■□□□□□□□□□□□□□■□□■□■□□□□□□■□□□□□□ □□■□□□□□□□□■□□■□□□■□□□■□□□□■□□■■■■□□□□□■■□□□□□□□□□□□□■□□□□□□ □■■■■□□■□□□■□□■□□□■□□□■□□□□■□□□□□□□□■■■■■■■■■■■□□□□□□■□□□□□□ □□□■□□□□■□□■□□■■■■■■■■■□□□■□□□□□□□□□□□□□■□□□□□□□□□□□□□□□□□□□ □■□■□■□□□□□■□□□□□■■■□□□□□□■□□□□□□□□□□□□■□□□□□□□□□□□□□□□□□□□□ □■□■□■□□□□□■□□□■■□■□■■□□□□■□□■□□□□□□□□□■□□□□□□□□□□□□□■□□□□□□ □■□■□■□□□□□■□■■□□□■□□□■■□■□□□■□□□□□□□□□□■□□□□□□□□□□□□■□□□□□□ □□□■□□□□□■■□□□□□□□■□□□□□□■□□□□■■■■■□□□□□□■■■■□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
>>875 CaptureDeviceManager の
getDeviceList(Format) で取ってくるんじゃんないでしょーか?
JTableの各セルは書き換えできないようにするけど 列は選択できるようにする (getSelectedColumn() で取ってこれる) しかも選択した行がユーザが目で見てわかる といううまい方法をご教授願います
switch文でbreakひとつ抜けていただけでプログラムが誤作動してました こんな俺に罵倒メッセージをください。
>>882 そんなの普通。つか俺は年中。
ヽ(´ー`)ノ マターリイコウヨ ガンバッテ
885 :
デフォルトの名無しさん :03/01/25 18:29
すいません、どなたか教えてください。 double a = 0.0; int b = 1; for(int i = 50 ; i <= 150 ; i++){ a = (i - 50) / (150 - 50); g.drawString("" + a , b , 20); b += 10 } とやると、doubleで宣言したのに、aの値がはiが150のときのみ1で それ以外は、小数点以下が切り捨てられ、0となってしまいます。 小数点以下を切り捨てないでaに代入する方法をどなたか教えていただけないでしょうか?
>>880 Swingは使った事無いけど、とりあえず、別の何かカーサになるようなモノを作って、
それをイベントを元に任意座標に重ねて表示とかじゃだめなのかね。
ただ、その場合
>(getSelectedColumn() で取ってこれる)
は無理だろうが。
ま、独自に実装するか、コンポジティブなアダプタでも書いてみるといいかも。
iがintだからそっちの型で計算されるわけだろ doubleで変数もう1つ定義して計算前にiの値を代入してみてはどうか
>>885 つーか、キャスト汁。
× a = (i - 50) / (150 - 50);
○ a = ((double)i - 50) / (150 - 50);
んだね。 キャストでいいね。
× a = (i - 50.0) / (150.0 - 50.0);
あるいは、 × for(int i = 50 ; i <= 150 ; i++){ ○ for(double i = 50 ; i <= 150 ; i++){ #なんでか知らないけど forにつかうカウンタって、暗黙の内に intにしがちだよな。
892 :
デフォルトの名無しさん :03/01/25 18:49
>>887 ,888
なるほど。
やはり、iが整数型だったからダメだったようです。
iをdoubleで宣言したら、できました。
どうもありがとうです。
893 :
デフォルトの名無しさん :03/01/25 18:52
>>891 確かにそうですね。
あんまりループ変数に小数点を使うことはないですからね。
質問です。 Tree○○○ というようなクラスがいくつかあるのですが、 木構造が使えるクラスが用意されているのですか? あれば教えてください。
>>892 その例では大丈夫だけど、doubleの比較をやるときは丸めに注意してね。
System.out.println(1.0-0.8);
なんてやると分かります。2進/10進変換や四捨五入でずれる。
>>894 TreeMap とかは内部でツリーを使ったMapの実装。
ツリーとして使うためのツリーってJDK内部に用意されていたっけ・・・。俺は知らんです。
ツリーって場面毎に求められる性能特性が違うから用意されていなくても不思議では無いと思う。
JTableの上にカーソルを置いてると 左下10ドット10ドットくらいのところに1ドットの黒点 が表示されない? カーソルを動かすとすぐ消えるんだけど。
898 :
デフォルトの名無しさん :03/01/25 22:16
Javaで2chブラウザ作れますか?
>>898 既に2,3の実装があります。俺も1つプロトタイプ作ったし。
900 :
デフォルトの名無しさん :03/01/25 22:51
Javaで2chブラウザを作るとき、一番悩ましいのが スキンの実装なんだけど、みんなどうやって解決してる?
>>900 >スキンの実装なんだけど
そんなもん本質ではないしUIの変更なんてSwingの十八番だと思うんだが。
>>901 かちゅのスキンとかああいうの指してるんだろ。
>>900 「一番」悩ましいか?適当なスキンファイル食って置換させればいいんじゃないの?
今から作るんならローカルプロキシタイプをキボンしてみる。
>>902 Javaにやらせるのはいまいちアホっぽいけどな・・・。
悩ましいのは、かちゅ~しゃのスキンなら
JavaScript等を使って機能を追加することができるが
>>902 のような安易な考えでは見た目しか変更できないという点
かちゅのスキンがどんなもんかは知らんが > javascriptを使って機能追加 というなら, javaコードで機能拡張できるように設計して 2chブラウザ作ればいいじゃん。
>>900 はJEditorPaneの存在を知らない予感。
みんなも気づいてるだろうが、実際スキンなんて、どうでもいい、と。
>>903 LinuxとWindowsをデュアルブートしてて、ログを共有したいんだが、アホっぽいか?
こーゆーときのためのJavaじゃないの?
>>904 レスポップアップくらいはjBVの方法で出来るよ。他に何がいるっけ。
俺は
>>903 じゃないが...。
>LinuxとWindowsをデュアルブートしてて、ログを共有したいんだが、アホっぽいか?
...何を言わんとしているか、意味不明。
>>909 >903がアホと言った理由が分からんと言いたい。
漏れはローカルプロキシとして動く奴がいいが、
独立アプリならHTMLに拘る意味は無いのでJEditorPaneとかなのかな。
AAがずれないようにするのがちと面倒くさそう。
スキンぐらい好きんにさせてよ・・・
ログを共有したいだけなら、ログの書式を決めて(xmlとか) 各OS用にその書式を処理させるプログラムを書けばよいだけなので、 Javaである必要ないんじゃない? つーかたぶん、 > 一番悩ましいのがスキンの実装 あたりが皆様の逆鱗に触れてると思われ。
>ログを共有したいだけなら、ログの書式を決めて(xmlとか) ログは2chのスレッドdat形式でいいだろ。かちゅみたいに独自形式だと何かとややこしい。 問題はブックマークなどの整理機能だね。 >各OS用にその書式を処理させるプログラムを書けばよいだけなので、 >Javaである必要ないんじゃない? 誰が各OS用に同じプログラムを書いてくれるの?JVM用に書けば終わるのに。 Javaである必要が無ければJavaで作っちゃいけないんだろうか。
Javaのアプリってスキンがダサダサだからなあ
>>913 知らん。実装なんか作りたいやつに任せりゃいいじゃん。
要は、データ形式さえがっちり決めちゃえば、Javaにこだわらなくたっていいだろってこと。
で、一番悩ましいのがスキンなら、悩まない言語でそれぞれ用に作れば?ってことで。
必要ない=いけない、ではないので、JavaがいいならJavaでやれば?
>>915 読み取り装置もあらかじめJavaでやっとけば拡張が容易になるってことだろう。
ブラウザがJavaでできていれば読取装置もJavaのほうが移植が素早く完了する。
OSが異なっても移植に関する影響が少ないといいたんだろう。
そこで見た目にこだわり、SWTを使って、 Write once , Run Windows Only になるという罠
SWTだったらRun Anywhereは保たれるんじゃない?
初歩的、というかそれ以前の問題なのですが
ttp://mizo-www.ia.noda.sut.ac.jp/Ajiwai/ の第5章、第7章のファイルをBeansとしてBDKで使うにはどうしたら良いのですか?
MANIFEST
---
Manifest-Version: 1.0
Name: SimulatorBean.class
Java-Bean: True
Name: MyBAdaptor.class
Name: LocationComponent.class
Name: MobileComponent.class
Name: MobileComponentListener.class
Name: MobileEventObject.class
Name: MobileRobot.class
Name: MobileRobotBean.class
Name: SimpleSimulator.class
Name: SonarComponent.class
---
と既述して
jar cmf MANIFEST.mf MobileRobot.Bean.jar *.class
を実行しjarにしたのですたBDKでloadして使おうとするとエラーがでます・・・何が原因でしょうか。
package理解したばかりの房には難しい(というか資料なさすぎ)です(;´Д⊂)
>>922 エラーがでます・・・ってどんなエラーがでたの?
それがわかればなにか回等できるかも。
それにしてもそのリンク先、文字化けはするし、
ディレクトリの区切りに逆スラッシュ使っているせいか
ソースファイルがNot Foundになっているな。。。
//WindowsのIEで見たら平気なようではあるが。
>>922 >BeansとしてBDKで使うにはどうしたら良いのですか?
これって、「beanboxから使う」って意味か? // ちゃんと書くように
つーか、そのリンク先のソースって、Appletだと思うんだが。
beanboxとしても、こんなのロードされても困るのでは。
...って、なんでBDKなんか使ってるの?
つーか、あの中にある「*Bean.java」をbeanboxで使いたいって事か? にしても、それを使う為の利用側クラスって、当然別途用意してあるんだろうな?
926 :
デフォルトの名無しさん :03/01/26 08:13
>>906 しぃスキンレベルのものが動かないと意味が無いんだよね
>>900 >Javaで2chブラウザを作るとき、一番悩ましいのが
>スキンの実装なんだけど
一番悩ましいのは処理の高速化じゃない?
>>902 >今から作るんならローカルプロキシタイプをキボンしてみる。
あと、外部プロクシの切り替え機能の実装は難しくないよね
>>903 >Javaにやらせるのはいまいちアホっぽいけどな・・・。
え?どして?
>>908 >LinuxとWindowsをデュアルブートしてて、ログを共有したいんだが、
ログを格納するディレクトリを選べるようにしてあげれば良いんだよね。
あとは、文字コードに気を付けて読み書きすれば問題ないよね?
Javaでプロクシ機能を実装してログ(何のログ?)を他のユーザーや
別ドライブの同じブラウザ同士で共有できる機能を持つブラウザを
作るのは難しい事じゃないと思うけど、JavaでGUIアプリを作る事に
さほど価値を感じないJava開発者が多いのでは?
コンソールで2chがみれるJavaCUIアプリなら作ってみようかな?
928 :
デフォルトの名無しさん :03/01/26 11:54
Ver1.4.1の正規表現について聞きたいんですが、一般に boolean result = Pattern.matches(正規表現, 文字列); で判定ができますよね。これはいいんですが… 文字列の最初の数文字に適合するか判定したいんです。 で、適合した場合は正規表現とコンビになっているコマンドを 実行したいんです。どうすればいいですかね?
例として正規表現=d*g、文字列=dog&catと考えてください。 d*gの認識に伴って実行したいコマンドがf1()メソッドとしてみます。
確かに。マニュアルに boolean b = Pattern.matches("a*b", "aaaaab"); って例が載っていたもので(笑)。まあそれはいいじゃないですか。 StringのcompareToやindexOfみたいな使い方できない?
matches() じゃなくて lookingAt() 使え。
>>923 WARNING: Could not instantiate bean "SimulatorBean" from
JAR "E:\bdk1_1\beans\jar\SimulatorBean.jar"
But were unable to load the class "SimulatorBean" because of
java.lang.ClassNotFoundException: SimulatorBean
といったエラーが出ます。MANIFESTの書き方などはこれでいいのでしょうか?
>>924 本でBDKを使っていたんです。
利用側クラスを別途用意しなければならないのですか?よく分からなくて・・・
そんな分からない物を押し付けるなよと言われればそれまでなのですが、
ソースは全部記載されていたようなので、見る人が見れば理解できるのかな、
と思って質問してしまいました。
では、あれはアプレットとして使うもの(つまり別物)なのでしょうか。
>>939 >本でBDKを使っていたんです。
ハァ? 意味がわからないが。
その本の中で、あのサイトのソースを使うように書いてあったのか?
>ソースは全部記載されていたようなので、見る人が見れば理解できるのかな、
自分でソースを良く読まずに、無関係な本に書かれてた実行手順どおりに動かないもんだから、
人に丸投げした、と。こういう事?
ていうか、beanboxてどういうモノか知ってるの?
"extends Applet" って、どう意味か知ってる??
941 :
デフォルトの名無しさん :03/01/26 14:19
メソッドの名前を文字列変数に入れておいて、 直接メソッド名を記述せずに呼び出すことできますか?
できます。
>>941 クラス java.lang.Class
パッケージ java.lang.reflect
>>940 そうなんですよ。
前述したとおり、こちらはまだアプリケーションを齧っている段階で、beansは理解しきれていないんです
その「本」というのも理解できる人向けに書いてあるものなので詳しい手順などは略されているのです。
時間があるならば自分でアプリケーション→アプレット→???→beanなどと学んでいきたいのですが
それは叶わないので今回のように丸投げしてしまいました。すいません。
クビ覚悟で自分でなんとかしまつ。スレ汚しスマソ。
946 :
デフォルトの名無しさん :03/01/26 14:37
Javaのネットゲームでサーブレット以外に使われている技術というのは あるのでしょうか? サーブレットだと、Httpを対象としていると思っているので他のプロトコルは どうしているのかと思って質問しました。 Javaのサーバ系プログラム公開で有名な団体はJakarta-Projectぐらいしか知らないので、 ゲーム系でそんなのがあったら教えてください。
> Javaのネットゲーム 意味不明...
>>945 >その「本」というのも理解できる人向けに書いてあるものなので詳しい手順などは略されているのです。
そういう話じゃなくてさ。「そのサイトのソース」は読んだのか、と。beanうんぬんの話じゃなくてさ。
>時間があるならば自分でアプリケーション→アプレット→???→beanなどと学んでいきたいのですが
>それは叶わないので今回のように丸投げしてしまいました。
俺も時間は無い。でも勉強してるよ。仕事以外でもいつも。でも、丸投げはしない。
まず調べろ。つーか、基礎からやり直せ。
「持ってる本が難しいから」とか「時間が無いから」というのは、かなり恥ずかしい類の言い訳だと 肝に命じた方がいいな。
「本が難しい」→もっと簡単な本を探す 「時間がない」→誰だって無い(この業界は特に)
>>946 >サーブレットだと、Httpを対象としていると思っているので他のプロトコルは
>どうしているのかと思って質問しました。
例えばHTTP以外にどのプロトコルを使用したいのですか?
>>954 >例えばHTTP以外にどのプロトコルを使用したいのですか?
市販のネットゲームで使われているようなものを。
FPSならUDPを、MMORPGならTCPを。
(自分でゲームを作る気は無いのですが、興味があったので質問しました)
上手く言えないのですがSocketクラスだけではなく、TOMCATのような土台と
なるプログラムでネットゲーム系でそういったものがあるのかなあと思いました。
Javaはそういうの向いてないねえ
>>946 1. java.servlet.HttpServletのスーパークラスは、別にHTTPに限定されていない。
HTTP以外のプロトコルを動かしたいなら、これを継承しろ。
2. 通信プロトコルが明確に規定されているなら、プロトコルハンドラを書け。
3. もちろん、低レベル通信の実現にはjava.net.Socket使え。
4. クライアントもJavaなら、RemortMethodInterfaceとか使えば、Netを意識する必要さえない。
次スレきぼんぬ
960 :
デフォルトの名無しさん :03/01/26 16:30
プログラムは実行結果のためだけに作るのではないのですよ・・・
>>960 abstractを外したことで実際には実行されないコード書く羽目にあったろ。
気持ち悪くないか?
> void show()
> {
> System.out.println(speed);
> }
963 :
デフォルトの名無しさん :03/01/26 16:42
>>960 abstractメソッドがあるときにはabstractクラスにしなければならない。
でもわかんないだろうから、とにかく人のソースを読んで勉強するのが一番良い。
特にAPIのソースを読むのが良いんじゃないかな。
964 :
デフォルトの名無しさん :03/01/26 16:52
>>960 モデリングの勉強をしよう。
考え方や概念として抽象クラスにする、ということが理解できるようになる。
あとは、インスタンス化すべきではないクラス。必ずサブクラスを定義して
そこでその場に合わせた適切な実装を強制したい場合に抽象クラスを使う。
フレームワークなんかで用いることが多いかな。
>>961 には激しく同意。
プログラムは「動けば何でも同じ」ではない。
>>962 なるほど。無駄なコードを省くのもメリットの一つと考えて宜しいんですね。
>>963 javaを学習すればするほど、沢山覚えなくちゃいけないことあるんですね。
もっと勉強します。
>>966 あ、ついでに interface の意義についても考察してみるといいYO
まあ、printlnくらいならいくら無駄があってもいいんだけど、 これが return password; なんて文だと下手なダミー書くとバグになるよな。 abstractがあれば、バグの一部がコンパイル時に分かるって訳だ。 interfaceの意義はこのスレで最近あったね。 ↓反則。 throw new NoSuchMethodException();
969 :
デフォルトの名無しさん :03/01/26 20:05
HTMLのタグを大文字から小文字に書き換えるソフトを作ろうと思い、 PerlTools.jarというライブラリを拾ってきたのですが、 \Lでの大文字→小文字変換が出来ません。 Perl5Util util = new Perl5Util(); String s2 = util.substitute("s!<(\\/)?([A-Za-z]+)!<$1\\L$2!g", s1); Perl5互換と書いてあったのですが、\Lは使えないのでしょうか? 使えない場合、別の解法はありますでしょうか? よろしくお願いします。
String sTag = "<foo>"; sTag.toLowerCase(); これで何故ダメなのか。
971 :
デフォルトの名無しさん :03/01/26 20:40
Java初心者です。次のようなエラーメッセージがでました。 Exception in thread "main" java.lang.NoClassDefFoundError: testProg 原因がまったくわからないのですが教えてください。
>>970 レスありがとうございます。
"<foo>"にtoLowerCaseを使う場合、タグの種類を1つずつ全て指定するのでしょうか?
何度もループを回すのが面倒なので一括置換したいのですが
ずれた反応でしたらすみません。
>>971 >1の上から4つ目のリンク先に行くと良い。
975 :
デフォルトの名無しさん :03/01/26 20:57
Java FAQを見てみるのもいいんじゃないかってことじゃない?
>>972 toLowerCase() は文字列内のすべてのアルファベットを小文字に変える
メソッド。それで良いなら s1 = s1.toLowerCase(); とすれ。
ただし属性値も小文字に変換されてしまうが (<foo bar="HELLO!"> とか)
>>977 そうですね。それが嫌なのでPerlライブラリ探してきたのです。
すんなり流用できないようなら地道に1文字ずつ判定していくしかないのかな?
うーん、素直にPerlで書いたほうがいいのか・・・
って、書いてから気づいたけど、↑のどっちでやっても、結局パーザ部分は自分で書く必要があるな。
>>980 いいや、例によってバグバグでよければ、sunのモジュール使ってもいい。
バグバグでよければ。
>>965 >モデリングの勉強をしよう。
>考え方や概念として抽象クラスにする、ということが理解できるようになる
「モデリング」って言葉を始めて聞きました。
著書を参考にして、深く勉強してみたいです
>>967 >あ、ついでに interface の意義についても考察してみるといいYO
今日の午後に勉強予定です(笑
頑張ります。
引き続き抽象クラスを学習してるんですが、
http://deepmind.hp.infoseek.co.jp/ari.txt スーパークラスの変数にサブクラスのオブジェクトをいれてるんですが、
サブクラスの変数を作ってオブジェクトを格納しても、コンパイルができません。
抽象クラスは必ずスーパークラスの変数にサブクラスのオブジェクトを
いれなくてはならないものなんでしょうか?
>>982 >スーパークラスの変数にサブクラスのオブジェクトをいれてるんですが、
>サブクラスの変数を作ってオブジェクトを格納しても、コンパイルができません。
具体的には?↓は通るよね。
CarA car = new CarA(1234,20.5);
car.setSpeed(60);
car.show();
>抽象クラスは必ずスーパークラスの変数にサブクラスのオブジェクトを
>いれなくてはならないものなんでしょうか?
そんなことはない。
用語に注意。抽象クラスはインスタンスを作れない。
VehicleA は抽象クラスだが、CarA、PlaneA はそうではない。
抽象クラスである親クラスの型の変数に入れることで、
子クラスのオブジェクトを同じものとして扱える。いわゆる多態性。
↓の部分ね。
for(int i=0;i<vc.length;i++){
vc[i].show();
}
>>982 レス有難う御座います
>CarA car = new CarA(1234,20.5);
>car.setSpeed(60);
>car.show();
でコンパイル成功しました。
実験用に作ったソースが間違いみたいだったです。
コンパイルにエラーがでたときの見方がわからなかったので
少し悔しいです(泣
>そんなことはない。
>用語に注意。抽象クラスはインスタンスを作れない。
>VehicleA は抽象クラスだが、CarA、PlaneA はそうではない。
了解しました。
お陰様で、心のもやもやが晴れました(感謝
難しいですけど、面白いですね\( ・ω・)/♪(java
>>984 あと、たまには教科書を疑ってみることも必要だよ。あなたのサンプルコード
見たけど、abstractの効果を説明するサンプルとしてはわかりにくい。
確かにサンプルの言わんとするところはわかるんだけど、実用になるコード
を書きたいのに「哺乳類クラスから継承して犬クラスと猫クラスを」なんて事
やってられないでしょ。
教科書はでかい本屋で片っ端からチェックして、できのいい一冊だけ選んで
買うほうがいいよ。
986 :
デフォルトの名無しさん :03/01/27 08:13
いや、大抵の初心者向けの本には 動物クラスと犬猫とか、鳥クラスとカラス・インコだとか そんなのでしか解説されてないと思う。 だからわかりづらいんだよな。こんなことして何になる?としか思えなくなる。
でも、実用的な例だとコードが長くなるからねえ。 一つの本で同じ題をその章で教える内容を盛り込んで大きくしていく という書き方ならいいけど。
>>969 遅レスだけども,java.util.regex を使うと
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);
とか書けるんですけれど,PerlTools でも似たような書き方が出来るんでない?
990 :
デフォルトの名無しさん :03/01/27 14:22
JAVA初心者です。 質問なんですけど。 配列を使わずに変数をの一部の値を部分参照でとってくる クラスってあるのでしょうか?? COBOLだったら 変数名(2:3) 見たいな感じの何ですけど。。。
>>990 java.util.List#subList() のことか?
COBOL知らんからとらえ間違えてるかもしれんが。
つか少なくとも助詞は正確に使ったほうが伝わりやすいと思うぞ
992 :
デフォルトの名無しさん :03/01/27 14:39
ありがとうございます>991 あと、わかったらで良いんですがjavaプログラムで excelファイルを読み込むことは可能でしょうか?
全角英数字を使う人には教えません。
994 :
デフォルトの名無しさん :03/01/27 14:42
すいません。 わかったらで良いんですがJavaプログラムで Excelファイルを読み込むことは可能でしょうか?
>>994 Excelのファイルが読めるサードパーティ製ライブラリがあったと…
POI だっけ?
POIで検索したらいっぱい出てきた そうなんだよな 検索キーワードさえわかればあとはどうにでもなる世の中 検索キーワード教えろスレ とか建てたいな 絶対需要あるよな
997 :
デフォルトの名無しさん :03/01/27 14:49
よくわからないんですけど、それってツールなんですか??
999 :
デフォルトの名無しさん :03/01/27 14:53
ありがとうございます>998 調べてみます
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。