1 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 11:54:09 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 Java使いが優しくコメントを返しますが、 お礼はJavaの布教と初心者の救済をお願いします。 Java SunのHome Page www.java.com/ja/ 前スレ くだすれJava(超初心者用) pc10.2ch.net/test/read.cgi/tech/1126470659/l50
175 名前:デフォルトの名無しさん [2007/06/29(金) 09:20:04 ] 今度仕事でjavaを使ってアプリケーションを作ることになりました。 具体的には、画面からデータ入力してデータベースというものに格納され、 かつ帳票も作成するといった感じです。 プログラミングも初めてなので、正直何から初めてよいかわかりません。 いい勉強の仕方があれば教えてください。 また、現実的に開発にはどのぐらいかかりそうなのか経験者の方に お尋ねしたいです。 ちなみに機能的には、画面数10帳票数5程度です。
176 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:36:30 ] まずは上司や先輩などの経験者に聞くべき 君がやろうとしている仕事の内容を一番知っているのも彼らだ 社員を育てるのも会社の仕事
177 名前:デフォルトの名無しさん [2007/06/29(金) 14:43:46 ] >176 社内にはjavaを知っている上司や先輩はいません。 独学で学ぶしかないのですが、わかりやすい書籍や WEBサイトとかないですかね。
178 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 15:11:04 ] 君にとってわかりやすいのはどんな本なのか、、、材料が無いのでわからん
179 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 19:35:54 ] java未経験者とかならともかく、何でプログラミング未経験者にそんなものを作らせようと考えたんだろう。 プログラミングに対する適性にもよるがその開発が完了するのにかなり時間がかかりそうだ。 誰も知らないのにjavaを開発言語に選択した経緯とかも疑問だな。 周囲にjavaは知らなくてもプログラミング経験者がいるのなら、 まずその人間にプログラミングの基礎から教えてもらった方がいいかもしれん。 手取り足取りまでいかなくても直接疑問をぶつけられる人間がいると独学より効率がいい。 プログラミングの基礎が少しでもできればjavaに独学で入っていくのも楽になる。 だいたいどれくらいの期間のプロジェクトなんだ? 短期間でとかいうならよほど努力するか天賦の才がなければ大変なことになりそうだ。
180 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:07:27 ] プログラミング初心者になにも教えず、一人で開発させるなんて、 いったいどんな会社だwww
181 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:16:47 ] 始めまして。 ラッパークラスの用途、利点が分かりません。 ラップするクラスの機能を拡張するという事でいいのでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:02:03 ] 拡張だけじゃなくて隠蔽もできるぞ 特定の内部動作を外部からいじられないようにしたり バグのできやすい部分を補ってやったり
183 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 07:53:44 ] >>175 ひだりもみぎもわからない初心者が独学でやるのは難しいんじゃないかな? つらすぎると思うよ なにも出来ないままただ時間が過ぎるだけになりそう なにかとわけのわからない事が多いから 誰かしらおしえてくれる人がいないと 進まないでつまづいたままになって終わらないと思うよ
184 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 10:38:29 ] >>181 エレベーターガールを置くようなものだよ
185 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 16:44:52 ] >>181 あるクラスが柔軟性が高いとかできることが多様などの理由で呼び出しに複雑な手順を踏む必要がある場合、 柔軟性などを犠牲にしてでも簡単な手続きで呼び出せるようにしたいという需要を満たすために作るのがラッパクラス
186 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:03:13 ] 質問です。 2chビューアを作りたいのです。 dat落ちしたスレのログを他のユーザが持っている場合はそちらからコピーできるようにしたいのです。 ネットワークプログラミングならJavaが良いと漠然と思うのですが、Javaはほとんど初心者です。 そこで次の質問にお答えください。 1 Javaよりもふさわしい言語は他にありますか? 2 開発環境はEclipseが有名なようですがどうですか? 3 SWINGとSWTがあるようですがどちらが良いのでしょうか? 4 何か良い本を薦めてください。 5 既にそういうソフトがあれば教えてください。車輪の再発明はやめます。
187 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:42:52 ] >>186 やめとけ swing v2c.s50.xrea.com/ pc11.2ch.net/test/read.cgi/software/1182536712/l50 swt(JFace) lcm.hp.infoseek.co.jp/index.shtml
188 名前:デフォルトの名無しさん [2007/07/01(日) 16:53:23 ] >>187 即レスありがとうございます。 紹介してくださったソフトでは過去ログの共有はできますか?
189 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 18:18:55 ] >>188 あんたは何使っても無理だと思うよ
190 名前:デフォルトの名無しさん [2007/07/01(日) 18:32:15 ] >>189 そういう返事はもっとレベルの高い質問スレでどうぞ。
191 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 18:40:01 ] >>190 どこ?
192 名前:187 mailto:sage [2007/07/01(日) 19:44:19 ] >>188 てっきりJavaで2chブラウザを作りたいのかと勘違いしました。申し訳ないです。 ログの共有に関しては2chブラウザによって形式が違ったりなどいろいろな問題があるので、 単純に対応というのは難しいと思います。 正直申し上げますと>>186 の書き込みからしてこれを自作するのは困難かと思われます。 2chブラウザを探すのはソフトウェア板で聞かれたほうが有益かと思いますので、 そちらへ行かれることをお勧めします。
193 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 21:35:23 ] >>192 度々ご回答くださりありがとうございます。 P2Pのようなしくみでログを共有してスレや鯖が落ちているときも読めるようにしたいのですが。 まずは既存のソフトでそのようなものがないか探してみます。
194 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 22:54:17 ] 共有は共有でもP2Pか おれてっきり拾ったdatファイルを2chブラウザで見れるようにしたいのかと思ってたよ・・・orz
195 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 10:33:20 ] 車輪の再発明って初心者が使うには便利な言葉だな。 やりたくないって意味だろ
196 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 16:18:51 ] おまいら、もっと初心者を甘やかしてJavaを普及させなきゃダメじゃないかw
197 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 18:32:51 ] 甘やかして普及するくらいなら、滅びよ現実!
198 名前:デフォルトの名無しさん [2007/07/02(月) 20:23:11 ] すみません。 サンのHPから JDK 6u1 をダウンロードしようと思うのですが、サーバーが見つかりませんの表示しか出ませんorz 開発環境をダウンロードするのって今はもう無理なんでしょうか。。。
199 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 20:50:29 ] JDK6 って公開されてからまだ1年経ってないよな
200 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:52:16 ] >>198 問題なく落とせるよ 何を使って落とそうとしてる?
201 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:06:30 ] IE6.0で、ダウンロードをいくら押してもサーバーが見つかりませんと出ますorz
202 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:15:02 ] うちもIE6だけど普通に繋がるなあ ダウンロードボタンを押すと、リダイレクトされたり、その接続先がhttpsになったりで激しいから 201のセキュリティ環境が厳しすぎるとかなのかな または、DNSがバカになっててダウンロード用の接続先を解決できないか
203 名前:デフォルトの名無しさん [2007/07/05(木) 07:34:57 ] JFrame frame1 = new JFrame(); JTextArea jta = new JTextArea(); func1(){ frame1.setSize(300, 300); frame1.setVisible(true); frame1.add(jta); これでテキストエリアが表示されないのですが どうすればいいのでしょうか
204 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 09:01:01 ] >>203 func1(){って何だよw 表示されてしまったコンテナのサブコンポーネントが変更された時は そうと知らせなければコンテナは自身の大きさが変更されるとかのイベントでも起きない限り サブコンポーネントの変更を知りようがない 試しに元のままでフレームのサイズを変更してみればJTextAreaが表示されるはず frame1.add(jta); frame1.setVisible(true); のようにaddしてからsetVisibleするか frame1.setVisible(true); frame1.add(jta); frame1.validate(); のようにaddしたあとvalidateで再配置させる
205 名前:デフォルトの名無しさん [2007/07/05(木) 15:07:57 ] >>204 表示されました ありがとうございます
206 名前:デフォルトの名無しさん [2007/07/07(土) 16:49:19 ] www.uploda.org/uporg892942.gif.html この問題の解答例をお願いします。
207 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 16:56:40 ] >>206 宿題は宿題スレへ
208 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 16:59:43 ] >>207 すまん、そんなスレがあったのか。 ありがとう。
209 名前:質問1/2 mailto:sage [2007/07/08(日) 07:16:45 ] コマンドラインから入力した数字以下の素数を表示させるプログラムを作っていたのですが public class Sosuu1 { public static void main(String[] args) { int[] data = new int[args.length];//ここから3行はコマンドラインから数字を入力するためのものである。まず、int型の配列dataをつくる。 data[0] = Integer.parseInt(args[0]);//ここで整数に変換する System.out.print(data[0] + "以下の素数を表示します ");//コマンドラインから入力した数字を表示する boolean[] prime =new boolean[1000];//判別 for(int tasikame = 2 ; tasikame < 27 ; tasikame++){ //37×27=999 ここでは配列を1000個しか用意していないのでtasikame < 27とした。 prime[2*tasikame] = false;//素数でないというフラグをつける prime[3*tasikame] = false;//素数でないというフラグをつける prime[5*tasikame] = false;//素数でないというフラグをつける prime[7*tasikame] = false;//素数でないというフラグをつける prime[11*tasikame] = false;//素数でないというフラグをつける prime[13*tasikame] = false;//素数でないというフラグをつける prime[17*tasikame] = false;//素数でないというフラグをつける prime[19*tasikame] = false;//素数でないというフラグをつける prime[23*tasikame] = false;//素数でないというフラグをつける prime[29*tasikame] = false;//素数でないというフラグをつける prime[31*tasikame] = false;//素数でないというフラグをつける prime[37*tasikame] = false;//素数でないというフラグをつける }
210 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 07:18:06 ] int i = 0;//int型の変数iを初期化 for (int s = 2 ; s < data[i] ; s++) { if(prime[s]==false){//もしprime[s]がfalseのときは・・・ System.out.print("×");//なにも表示しない }else{ // それ以外のときは System.out.print(s+",");//表示せよ } } } } で実行しても、どうしても上手くいかないのですがなぜなのかどうしても分かりません。 どうすればいいのでしょうか?
211 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 17:13:00 ] Podcastの動画再生(MPEG4)ってJavaでできる? wmvに変換してCで作った方が楽?
212 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 18:26:16 ] >>209 boolean配列の要素の初期値はfalseだということ。 全てにfalseが入っている配列にfalseでフラグを立てても意味がない。 最初に全要素にtrueを代入するか、または、trueで非素数のフラグ立てをするかする。 どううまくいかないのか、どうなってほしいのか書いていないから推測だが、 その方法だと、例えば、2の倍数は2*26=56までしか非素数フラグを立てられない。 3の倍数だと3*26=78まで。もし、そういう方法を取るのなら各素数ごとに、 tasikameの終わりの値を変えないと取りこぼしがいくらでも出てくる。 それに、その方法は41の倍数の排除ができないよね? もしそのやり方を通したいなら、まず2自身を除く2の倍数だけ排除して、 排除されなかった最小の整数(つまり3)自身を除くその整数の倍数を排除して、 という感じで順番にやれば簡潔なプログラムになると思う。
213 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 19:17:47 ] >>212 ありがとうございました、もう一度その方法でやってみます
214 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 19:27:51 ] >>212 上手くいきました、ありがとうございました。 どうやらboolean配列の要素の初期値はfalseだという基本的なことを理解していなかったのが原因だったようですorz
215 名前:212 mailto:sage [2007/07/08(日) 19:40:43 ] 問題に本質的ではないけど、つっこまれる前に訂正しておく。 2*26=52だねorz
216 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:52:16 ] java、超初心者です。 諸事情により、javaでマウスポインタの軌跡を測定し保存することになったのですが… そういうのってできますか?javaならできる!と言われたのですが自分では解らなくて…。
217 名前:デフォルトの名無しさん [2007/07/16(月) 22:53:46 ] 付箋を作成したいのですが、コンパイルができません。 C:\sample>javac FusenExec.java FusenExec.java:6: シンボルを見つけられません。 シンボル: クラス Dodai 場所 : FusenExec の クラス Dodai fusen; ^ FusenExec.java:7: シンボルを見つけられません。 シンボル: クラス Dodai 場所 : FusenExec の クラス fusen = new Dodai(); ^ エラー 2 個 因みに、ソースはこれです。どこがおかしいかを指摘ください。 class FusenExec{ public static void main(String[] args){ Dodai fusen; fusen = new Dodai(); fusen.setSize(300,50); fusen.setVisible(true); } }
218 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:09:52 ] >>216 できるかできないかと言われればできる。
219 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 01:52:27 ] >217 Dodai クラスが宣言されていない。
220 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 01:54:32 ] マルチするやつは低脳
221 名前:Cの老師を目指す女 mailto:sage [2007/07/18(水) 00:23:11 ] 裕美子といいます。大都会の片隅で、×いちの孤独なOLをやっています。 >>217 最近出版された書籍のサンプルプログラムですね。Dodai.jarはきちんと 指定されたディレクトリにコピーして、Pathの設定も指定通りでしょうか? よくわからなかったら、Dodai.jarをソースファイルが置いてあるディレクトリ にコピーしてみてください。
222 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:09:48 ] 2chでいきなり自己紹介する奴は久しぶりに見た
223 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 08:08:32 ] 新参か
224 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:45:49 ] 抽象クラスClassAから派生させた、 ClassAAのインスタンスやClassABのインスタンスの入る可能性のあるvariable1は ClassA variable1; variable1 = new ClassAA(); variable1 = new ClassAB(); てな風に使えますよね? ここでClassAのメソッドは、variable1.cA_Method1();という風に使えると思うのですが、 ここで、変数の内容がclassABのインスタンスだった場合のみ、classABのみに実装されている .cAB_Method1()を呼び出すにはどうすれば良いのでしょうか if (variable1 instanceof ClassAB){variable1.cAB_Method1()} とやっても ifの中の実行内容はなんら変わってないので何の解決にもなりませんでした 動的言語しか使った事無いのでよくわからません
225 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:20:24 ] >>224 何もしない同名のメソッドを他方にも作って継承元で仮想関数を定義。 「何かおかしい」と思うならそれは設計がおかしいんだろ、多分。
226 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:48:17 ] Javaって仮想変数ないですよね やっぱり何もしない関数をスーパーに置いておいて、サブでオーバーライドするしかないんですね ありがとうございました
227 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:24:57 ] >>224 静的な型がClassA型の変数variable1が呼び出せるメソッドはClassAで定義されているもののみ。 ClassAB型で定義されているメソッドを呼び出したければキャストで静的な型を動的な型に合わせればいい。 if (variable1 instanceof ClassAB){((ClassAB)variable1).cAB_Method1();}
228 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:29:08 ] キャスト演算子より.の方が優先順位が高いので、 (ClassAB)variable1.cAB_Method1(); としないように。
229 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:40:16 ] 理解しにくけりゃ if(variable1 instanceof ClassAB){ClassAB variable2=(ClassAB)variable1; variable2.cAB_Method1();} ClassA variable1; variable1=new ClassAA(); みたいにスーパークラス型の変数には無条件で代入できるけど サブクラス型の変数へはキャストが必要になる キャストは強引に型を変換するから代入したものが本当にその型でなければ当然死ぬ
230 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:02:29 ] >>224 >>226 仮想変数というものは寡聞にして知らないのだが: Javaのインスタンスメソッドは全部C++でいう仮想関数だし、 純粋仮想関数(=0)はabstractで宣言したメソッドが該当するぞ。 何もしない foo() {} のようなメソッドではなく abstract foo(); と宣言しておくことで、サブクラスでの実装を強制できる。
231 名前:Tomcatについての相談ですが・・・ [2007/07/29(日) 17:58:06 ] 『やさしいJava活用編第2版』の学習をした方、あるいはTomcatを使ったことがある方が いましたら以下の問題の解決にご協力くださいm(_ _)m。 付録CD-ROM内のTomcat 5.5をウィザードに従ってインストールしたのですが すべてのプログラム→Apache Tomcat 5.5 →Monitor Tomcatという風にTomcatを 起動しようとしても、 (X) アクセスが拒否されました。 Unable to open the Service Manager と表示され、プログラムを起動することができません。 インストールする際に、麻奈本に載っていたスクリーンショットではUser Nameがadmin、 Passwordが空欄だったにも関わらず、ユーザー名とパスワードを設定してインストール したのが原因なのかな?と思い、アンインストールし、パスワードを設定せずにインストール し直しましたが駄目でした。 ちなみにOSはWindows Vista Home Basicです。 よろしくお願いします。m(_ _)m
232 名前:232 mailto:sage [2007/07/29(日) 19:44:19 ] dream.mods.jp/news/tomcat.html むむぅ・・・これが解決策なんでしょうか・・・。 Sysdeoっていうソフトを見つけてくればいいのかな。
233 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 11:09:35 ] 流れぶった切ってスマソ Javaをまじめに始めて3日ぐらいなんだけど、 PHPで言う所のsystem(); みたいなものって Javaにもある?
234 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:42:09 ] くだすれでも聞きにくい超低レベルな質問というか確認なのですが・・・ 現在c: >Program Files >javaに入っているフォルダが jdk1.5.0_11 jdk1.5.0_12 jre1.5.0_11 jre1.5.0_12 jre1.6.0_01 となってます。古いバージョンが残っているようなのですが、最新バージョンを入れても 古いものが上書きされるのでなく、旧バージョンは手動で削除する必要があるのでしょうか? この場合は jre1.6.0_01、jdk1.5.0_12を残して他はすべてフォルダごと削除してもOKなのでしょうか? 幼稚な質問ですがよろしくお願いします。
235 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 18:58:34 ] プログラムの追加と削除でアンインストール。
236 名前:デフォルトの名無しさん mailto:java [2007/07/30(月) 20:19:11 ] >>233 PHPのsystem();がどんなものか分からんが 外部プログラムを起動するCのsystem関数に相当することをやるならProcessBuilderクラス もし外部プログラムに対する入出力が必要ならProcessBuilder#startで得られるProcessインスタンスから 入出力のストリームをもらえ でもjavaを始めて3日で外部プロセスに依存するなんていかんよ まずはpure javaプログラムでどこまでできるか勉強したほうがいい
237 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:33:45 ] >>231 c:\programfileじゃないとこだったら 入ったよ。 一応、unc無効にしてからやったけど。
238 名前:237 mailto:sage [2007/07/30(月) 20:37:07 ] みすった。 uncじゃなくてuacだった。
239 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:41:08 ] >>236 おぉ、thx! ProcessBuilder builder = new ProcessBuilder("notepad"); こういうことか。 いや、簡単なランチャー作れるね。 > PHPのsystem();がどんなものか分からんが system("notepad",$retval); こんな感じ。 > まずはpure javaプログラムでどこまでできるか勉強したほうがいい 今は基本部分やっとります。 延長上にそれがあるなら、楽しいなと思ってね。 ありがとう。
240 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:51:20 ] >>239 そうそう、そんな感じ そのあとbuilder.start()で実際にプロセスを起動する どんな言語もそうだけどjavaもいろいろ楽しいから楽しみながらがんばれ
241 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 23:02:58 ] あまり汎用性はないが、1.6だとGUI上のシェルみたいに desktop.browse(uri) desktop.open(file) とかもできるようになった。
242 名前:デフォルトの名無しさん [2007/08/01(水) 02:52:35 ] 232へ 違うだろ。 これはあくまでもEclipseの場合じゃないかな? サイトを見た限り。 で?できた? この板ではなく別の板かサイトを見たほうがいいと思うよ。
243 名前:231=232 mailto:sage [2007/08/01(水) 12:00:11 ] >>242 >>232 のサイトだと、Tomcatをインストーラーを使わずにzipでダウンロードし、 手動で導入すれば、フォルダのtomcat6.exeをクリックでとりあえず起動できる ようになるということですよね。 さらにEclipse+Sysdeoを使えば普通にコントロールできるようになると・・・。 すみません。それらの方法はまだ試していません・・・。 一応全てのコードをメモ帳手打ちで学習したかったので、狭い部屋の狭い机の Vista PCをどかして、XPのノートPCにTomcatを入れたら普通に動いたので なんとか学習を継続しています。
244 名前:デフォルトの名無しさん [2007/08/01(水) 16:03:01 ] いいんじゃないの? それで。 しかし2台もPC持っているのはすごいな。 でも2台Windowsなのはもったいないから。 XPで学習が終わり次第、Linuxを入れよう。 幅が広がるよ。
245 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 16:19:22 ] PC2台って別にすごくないし珍しくも無いよ 特にこの板とかだとね
246 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 16:47:43 ] 誰もメモ帳につっこまないw
247 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 18:50:15 ] >>245 がKYだなw
248 名前:231=232 mailto:sage [2007/08/03(金) 01:34:03 ] もう一つお願いします(汗)。 サーブレット(Sample6.java)をコンパイルしようとしたのですが、コンパイルエラーとなり、 import mybeans; の文が指摘されました(mybeansはサーブレットと同じディレクトリに属すフォルダ名です)。 「.」が無いということなので、次は「import mybeans.*;」に修正してコンパイルしても、 パッケージmybeansは存在しませんと言われてしまいます。 あるはずのパッケージがコンパイルにおいて認識されない場合、どういった原因が考えられ得る でしょうか。ご教示いただけるとありがたいです。 Tomcatをインストール →(省略)→ WEB-INF →→ classes →→→Sample6.java したディレクトリ | → mybeansフォルダ → CarBean.java
249 名前:248 mailto:sage [2007/08/03(金) 02:09:26 ] 「やさしいJava 活用編 "import mybeans"」でググってみたら 「Java質問・相談スレッド102」でも全く同じ相談があったらしく、その人は自力で 解決できたみたいですけ、原因が分からなかったとか。
250 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:45:06 ] コンパイルって何を使ってんの?コマンドライン?
251 名前:248 mailto:sage [2007/08/03(金) 11:49:14 ] >>250 javacを使用しています。
252 名前:248 mailto:sage [2007/08/03(金) 11:56:11 ] コマンドプロンプトを使ってjavac Sample6.javaと入れてコンパイルを試みています。
253 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 12:06:28 ] まずさー、import mybeans.*; ってのは、以下のソースで mybeans.hoge() とかのmybeans.を省略するためにあるんだから hoge()とかがソース上に無いんだったら書かないでいいんだよ。
254 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 12:10:41 ] で、多分 mybeans.hoge() の省略である hoge()はあるんだろう そしてそのmybeansの場所はclasspathに無いと駄目なんで コンパイルしている場所をclasspathに含めるなら、 . を追加しないとね。
255 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 12:12:00 ] package も書いてあるのかどうかが気になるけど、まあいいや
256 名前:248 mailto:sage [2007/08/03(金) 12:44:45 ] >>253-255 さんのおかげで解決できました。 classpathってこれのことですよね?と確認するために 変数名:CLASSPATH 変数値:C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar;, と書いたら、\servlet-api.jar;,←セミコロン、カンマとなっていました。 そしてインポート文をimport mybeans.*;にしたらコンパイルできました。 ご迷惑おかけしました。
257 名前:248 mailto:sage [2007/08/05(日) 16:52:34 ] 以下は『やさしいJava活用編第2版』の232ページからの引用です。 import java.sql.*; public class Sample1 { public static void main(String args[]) { try{ //接続の準備 String drv = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql:///cardb"; String usr = ""; String pw = ""; //データベースへの接続 Class.forName(drv); Connection cn = DriverManager.getConnection(url, usr, pw);
258 名前:257のつづき mailto:sage [2007/08/05(日) 16:53:40 ] //問い合わせの準備 Statement st = cn.createStatement(); String qry = "SELECT * FROM car_table"; //問い合わせ ResultSet rs = st.executeQuery(qry); //データの取得 ResultSetMetaData rm = rs.getMetaData(); int cnum = rm.getColumnCount(); while(rs.next()){ for(int i=1; i<=cnum; i++){ System.out.print(rm.getColumnName(i) + ":" + rs.getObject(i) + " "); } System.out.println(""); } //接続のクローズ rs.close(); st.close(); cn.close(); } catch(Exception e){ e.printStackTrace(); } } }
259 名前:248 [2007/08/05(日) 17:14:52 ] 何度も申し訳ございません。m(__)m 上の2レスはMy SQLのデータベースに接続するためのプログラムで、コンパイルは しっかりと通るので載せる必要はなかったのかも知れませんが、java Sample1の実行時 に次のように始まる大量の例外メッセージが出てきてしまいます。 C:\YJKSample\8>java Sample1 com.mysql.jdbc.CommunicationsException: Communications link failure due to under lying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException MESSAGE: Permission denied: connect (長すぎて後略します) これはこのスレで相談することでなくデータベースソフト関連の板に当たった方が良いかも しれませんが、何が原因で起きているか判別できる方はいらっしゃらないでしょうか。 他のスレで「やさしいJava」同梱のMy SQLはバージョンが古いと聞いていたので、My SQLも JDBCドライバもTomcatと同様に最新のものをダウンロードしておきました。 My SQLにテキストファイルを読み込ませてデータベースを作成するテストは成功しているので ちゃんと動いているはずなのですが・・・。 本ではJDBCドライバはTomcatのフォルダにコピーするようにとあるのですが、JDKには インストールしないで大丈夫なの?とも思ってしまいます。 すみません!長文を大量に投稿してしまいました。もう少し、調べて問題点を整理してみます。
260 名前:デフォルトの名無しさん [2007/08/05(日) 21:20:17 ] 人間のゴミビンゴ(1列揃えばアウト) @│A│B ─┼─┼─ C│D│E ─┼─┼─ F│G│H @ 無職 A 童貞 B 引きこもり C キモ顔 D 肥満 E 毎日オナニー F 低学歴 G 30歳以上で独身 H 貯金100万未満
261 名前:デフォルトの名無しさん [2007/08/06(月) 02:00:19 ] わからんな。 ソースは間違っていそうにないのだが.... これってDBのデータをjavaで表示するんでしょう? com.mysql.jdbc.CommunicationsException: Communications link failure due to under lying exception: このエラーググッても英語しかないんだよね? これはjavaの質問スレッド板で聞いたほうがいいんじゃないかな?
262 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 02:29:32 ] 問題はその下で実際にMySQLが出したエラーだから、 Permission denied: connect こっちだよな。 connect(2)がPermission deniedすなわち EACCES エラーを 出すのは、手元のBSDのマニュアルによると [EACCES] The destination address is a broadcast address and the socket option SO_BROADCAST is not set. 接続先アドレスはブロードキャストアドレスだがオプションに SO_BROADCASTはセットされていない または Search permission is denied for a component of the path prefix. パスの一部のディレクトリに検索パーミッションが出ていない (パスってことはUNIXドメインソケットの場合限定か) または Write access to the named socket is denied. 名前付きソケットへの書き込みが拒否された。 だそうだ。 あとはMySQLのどこのconnectで実際にエラーになってるか を探すくらいか。
263 名前:248 mailto:sage [2007/08/06(月) 06:22:52 ] >>261-262 教えてGooの似たような問題のトピックで「String drv = "com.mysql.jdbc.Driver"; 」のところが、 「org.gjt.mm.mysql.Driver」のように記述されているのを見たので、自分のソースコードもそれに 変更してみたら、例外の内容が少し変わりました。 java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO ) SQLException: Access deniedでググると例によって教えてGooなどの質問掲示板が続々ヒット するのですが、回答者の多くが、それは読んで字のごとく、SQLへのアクセスが拒否されたことだろうと 説明していました。 MySQLの設定ウィザードでもセキュリティー設定(パスワード)のチェックを外してあるので、 アクセス拒否されるのが信じられないのですが。そのほかファイアウォールを切ってみたり ソースコードを素人なりにごにょごにょいじったりしてみました。 うーん、難しいですね。とりあえずSQLExceptionだとググるとたくさん出てくるのでもう少し粘ってみます。
264 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 08:50:16 ] >>263 >Access denied for user ''@'localhost' (using password: NO) @'localhost' ってことはユーザーを何も指定していないってことだよな? ふつー user@'localhost' みたいになるんじゃね? userのとこが root だっ たりするかもしれんが。
265 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 15:34:17 ] >>264 レスありがとうございます。何とかデータベースへ接続できました! 私も最終的には「ユーザー認証」が問題の根幹なのだろうと的を絞っていました。 先ほど>>263 さんのレスを読んで、もう一度MySQL Server Instance Config Wizard と自分のJavaファイルをいじくって見ました。 「やさJava」では上記のウィザードでパスワードの設定を行わないものとし、セキュリティー設定の 可否のチェックそのものを外していたのですが、しっかりパスワードを設定し、Javaファイルも String usr = "root"; String pw = "(パスワード)"; にしてみたら、コマンドラインからデータベースの内容を表示することができました。 ただ、不思議なのはこういったパターンも以前試したはずですし、Javaファイルを上の ように修正する前にmysqlファイルのようなものが作業フォルダにいつのまにかできて いるのを見て驚いたことです。それは削除しましたが。 JDBCドライバをあらゆるlibフォルダに絨毯爆撃してみるなど、ググってみつけたことを 次々と実行していったので、どれが決め手になったのやらorz
266 名前:デフォルトの名無しさん [2007/08/07(火) 01:51:37 ] やさjavaを終わったら別の本をやれ
267 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 01:35:56 ] やらしいjavaとか出版予定はないかな?
268 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 11:14:21 ] やさしい心よりやらしい体って山本弘の小説のキャラが言ってた。
269 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 15:57:00 ] 他人のソースを読ませてもらって勉強してる初学者ですが すごく違和感を覚える記述に出会いますた これは常識的な(見習ってもいい)書き方なのか教えて下さい こういうクラスがあって public class Team { // (中略) private ArrayList memberList = new ArrayList(); public ArrayList getMemberList() { return memberList; } // (中略) } 別の場所でこうやってる Team team2ch = new Team(); team2ch.getMemberList().add("茂名"); // ← team2ch.getMemberList().add("擬古"); // ← team2ch.getMemberList().add("志井"); // ← getterを通じてメンバ変数の中身をいじる、というやり方は Java(というかOO?)の世界ではありふれた手法なんでしょうか? 変だと思う俺の方こそ変で、認識改めた方がいい?
270 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 16:25:31 ] 場合によりけりだけど、個人的には getXxx っていう名前は微妙。 単なる memberList() だったら自分的には許容範囲かな。 teamFoo.memberList().add("bar"); とか。 でもまぁ、その程度なら memberList をそのまま公開するよりか Team#addMember を設けるべきでしょう。 標準ライブラリだと java.util.Map#keySet なんかがそれと似たものかもね。 ちょっと違って、Map の内部フィールドをそのまま返すわけでもないし、 add できなくて remove だけに制限されてるけど。 Map map = new HashMap(); map.put("A", "1"); System.out.println(map.get("A")); // → 1 Set set = map.keySet(); set.remove("A"); System.out.println(map.get("A")); // → null
271 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:32:30 ] 269です。回答ありがとうです >でもまぁ、その程度なら memberList をそのまま公開するよりか Team#addMember を設けるべきでしょう。 やっぱそうだよね… メンバになってるクラスをそのままreturnするのは 最初からpublicで宣言してるのとあんま違わないというか カプセル化が壊れてるような気分になって… Map系のkeySet()ってノーチェックでした ハッシュキーの一覧が取れて元のハッシュにも(削除系だけ)連動するのか 勉強になりましたー
272 名前:デフォルトの名無しさん [2007/08/16(木) 01:12:41 ] Tomcatがよく動かなくなるのですがどんな理由が考えられるでしょうか? ディレクトリのファイルの内容を動いていた状態に戻しても、まだ動いてくれず弱っています。
273 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 01:33:01 ] 症状を必要かつ十分にもっと詳細に
274 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 02:39:21 ] >>272 多分夏バテ 涼しい所で栄養をたっぷりとって休養しよう
275 名前:デフォルトの名無しさん [2007/08/16(木) 17:31:51 ] >>273 ,274 レスありがとうございます。 特にconfディレクトリにルートディレクトリ名のxmlファイルを入れたり、そこのserver.xmlに記述を追加するとダメなようです。 で、自作の上配置したファイルを別の場所に保管してTomcatをアンインストール、再インストールを行いました。 実は再インストール、今回が最初じゃないんです。そんな事もあって伺ってみたかったんですが。まあ、面倒です。