くだすれJava(超初心 ..
[2ch|▼Menu]
175:デフォルトの名無しさん
07/06/29 09:20:04
今度仕事でjavaを使ってアプリケーションを作ることになりました。
具体的には、画面からデータ入力してデータベースというものに格納され、
かつ帳票も作成するといった感じです。
プログラミングも初めてなので、正直何から初めてよいかわかりません。
いい勉強の仕方があれば教えてください。
また、現実的に開発にはどのぐらいかかりそうなのか経験者の方に
お尋ねしたいです。
ちなみに機能的には、画面数10帳票数5程度です。

176:デフォルトの名無しさん
07/06/29 12:36:30
まずは上司や先輩などの経験者に聞くべき
君がやろうとしている仕事の内容を一番知っているのも彼らだ
社員を育てるのも会社の仕事

177:デフォルトの名無しさん
07/06/29 14:43:46
>176
社内にはjavaを知っている上司や先輩はいません。
独学で学ぶしかないのですが、わかりやすい書籍や
WEBサイトとかないですかね。


178:デフォルトの名無しさん
07/06/29 15:11:04
君にとってわかりやすいのはどんな本なのか、、、材料が無いのでわからん

179:デフォルトの名無しさん
07/06/29 19:35:54
java未経験者とかならともかく、何でプログラミング未経験者にそんなものを作らせようと考えたんだろう。
プログラミングに対する適性にもよるがその開発が完了するのにかなり時間がかかりそうだ。
誰も知らないのにjavaを開発言語に選択した経緯とかも疑問だな。
周囲にjavaは知らなくてもプログラミング経験者がいるのなら、
まずその人間にプログラミングの基礎から教えてもらった方がいいかもしれん。
手取り足取りまでいかなくても直接疑問をぶつけられる人間がいると独学より効率がいい。
プログラミングの基礎が少しでもできればjavaに独学で入っていくのも楽になる。
だいたいどれくらいの期間のプロジェクトなんだ?
短期間でとかいうならよほど努力するか天賦の才がなければ大変なことになりそうだ。

180:デフォルトの名無しさん
07/06/30 00:07:27
プログラミング初心者になにも教えず、一人で開発させるなんて、
いったいどんな会社だwww

181:デフォルトの名無しさん
07/06/30 00:16:47
始めまして。
ラッパークラスの用途、利点が分かりません。
ラップするクラスの機能を拡張するという事でいいのでしょうか?

182:デフォルトの名無しさん
07/06/30 01:02:03
拡張だけじゃなくて隠蔽もできるぞ
特定の内部動作を外部からいじられないようにしたり
バグのできやすい部分を補ってやったり

183:デフォルトの名無しさん
07/06/30 07:53:44
>>175
ひだりもみぎもわからない初心者が独学でやるのは難しいんじゃないかな?
つらすぎると思うよ
なにも出来ないままただ時間が過ぎるだけになりそう
なにかとわけのわからない事が多いから
誰かしらおしえてくれる人がいないと
進まないでつまづいたままになって終わらないと思うよ


184:デフォルトの名無しさん
07/06/30 10:38:29
>>181
エレベーターガールを置くようなものだよ

185:デフォルトの名無しさん
07/06/30 16:44:52
>>181
あるクラスが柔軟性が高いとかできることが多様などの理由で呼び出しに複雑な手順を踏む必要がある場合、
柔軟性などを犠牲にしてでも簡単な手続きで呼び出せるようにしたいという需要を満たすために作るのがラッパクラス

186:デフォルトの名無しさん
07/07/01 16:03:13
質問です。
2chビューアを作りたいのです。
dat落ちしたスレのログを他のユーザが持っている場合はそちらからコピーできるようにしたいのです。
ネットワークプログラミングならJavaが良いと漠然と思うのですが、Javaはほとんど初心者です。
そこで次の質問にお答えください。
1 Javaよりもふさわしい言語は他にありますか?
2 開発環境はEclipseが有名なようですがどうですか?
3 SWINGとSWTがあるようですがどちらが良いのでしょうか?
4 何か良い本を薦めてください。
5 既にそういうソフトがあれば教えてください。車輪の再発明はやめます。

187:デフォルトの名無しさん
07/07/01 16:42:52
>>186
やめとけ

swing
URLリンク(v2c.s50.xrea.com)
スレリンク(software板)l50

swt(JFace)
URLリンク(lcm.hp.infoseek.co.jp)

188:デフォルトの名無しさん
07/07/01 16:53:23
>>187
即レスありがとうございます。
紹介してくださったソフトでは過去ログの共有はできますか?

189:デフォルトの名無しさん
07/07/01 18:18:55
>>188
あんたは何使っても無理だと思うよ

190:デフォルトの名無しさん
07/07/01 18:32:15
>>189
そういう返事はもっとレベルの高い質問スレでどうぞ。

191:デフォルトの名無しさん
07/07/01 18:40:01
>>190
どこ?

192:187
07/07/01 19:44:19
>>188
てっきりJavaで2chブラウザを作りたいのかと勘違いしました。申し訳ないです。
ログの共有に関しては2chブラウザによって形式が違ったりなどいろいろな問題があるので、
単純に対応というのは難しいと思います。
正直申し上げますと>>186の書き込みからしてこれを自作するのは困難かと思われます。
2chブラウザを探すのはソフトウェア板で聞かれたほうが有益かと思いますので、
そちらへ行かれることをお勧めします。

193:デフォルトの名無しさん
07/07/01 21:35:23
>>192
度々ご回答くださりありがとうございます。
P2Pのようなしくみでログを共有してスレや鯖が落ちているときも読めるようにしたいのですが。
まずは既存のソフトでそのようなものがないか探してみます。

194:デフォルトの名無しさん
07/07/01 22:54:17
共有は共有でもP2Pか
おれてっきり拾ったdatファイルを2chブラウザで見れるようにしたいのかと思ってたよ・・・orz

195:デフォルトの名無しさん
07/07/02 10:33:20
車輪の再発明って初心者が使うには便利な言葉だな。
やりたくないって意味だろ

196:デフォルトの名無しさん
07/07/02 16:18:51
おまいら、もっと初心者を甘やかしてJavaを普及させなきゃダメじゃないかw

197:デフォルトの名無しさん
07/07/02 18:32:51
甘やかして普及するくらいなら、滅びよ現実!

198:デフォルトの名無しさん
07/07/02 20:23:11
すみません。
サンのHPから JDK 6u1 をダウンロードしようと思うのですが、サーバーが見つかりませんの表示しか出ませんorz
開発環境をダウンロードするのって今はもう無理なんでしょうか。。。

199:デフォルトの名無しさん
07/07/02 20:50:29
JDK6 って公開されてからまだ1年経ってないよな

200:デフォルトの名無しさん
07/07/02 23:52:16
>>198
問題なく落とせるよ
何を使って落とそうとしてる?

201:デフォルトの名無しさん
07/07/03 00:06:30
IE6.0で、ダウンロードをいくら押してもサーバーが見つかりませんと出ますorz


202:デフォルトの名無しさん
07/07/03 00:15:02
うちもIE6だけど普通に繋がるなあ
ダウンロードボタンを押すと、リダイレクトされたり、その接続先がhttpsになったりで激しいから
201のセキュリティ環境が厳しすぎるとかなのかな
または、DNSがバカになっててダウンロード用の接続先を解決できないか

203:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/05 15:07:57
>>204

表示されました
ありがとうございます

206:デフォルトの名無しさん
07/07/07 16:49:19
URLリンク(www.uploda.org)

この問題の解答例をお願いします。

207:デフォルトの名無しさん
07/07/07 16:56:40
>>206
宿題は宿題スレへ

208:デフォルトの名無しさん
07/07/07 16:59:43
>>207
すまん、そんなスレがあったのか。
ありがとう。

209:質問1/2
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/08 17:13:00
Podcastの動画再生(MPEG4)ってJavaでできる?
wmvに変換してCで作った方が楽?

212:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/08 19:17:47
>>212
ありがとうございました、もう一度その方法でやってみます

214:デフォルトの名無しさん
07/07/08 19:27:51
>>212
上手くいきました、ありがとうございました。
どうやらboolean配列の要素の初期値はfalseだという基本的なことを理解していなかったのが原因だったようですorz

215:212
07/07/08 19:40:43
問題に本質的ではないけど、つっこまれる前に訂正しておく。
2*26=52だねorz

216:デフォルトの名無しさん
07/07/16 22:52:16
java、超初心者です。
諸事情により、javaでマウスポインタの軌跡を測定し保存することになったのですが…
そういうのってできますか?javaならできる!と言われたのですが自分では解らなくて…。

217:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/16 23:09:52
>>216
できるかできないかと言われればできる。

219:デフォルトの名無しさん
07/07/17 01:52:27
>217
Dodai クラスが宣言されていない。

220:デフォルトの名無しさん
07/07/17 01:54:32
マルチするやつは低脳

221:Cの老師を目指す女
07/07/18 00:23:11
裕美子といいます。大都会の片隅で、×いちの孤独なOLをやっています。

>>217
最近出版された書籍のサンプルプログラムですね。Dodai.jarはきちんと
指定されたディレクトリにコピーして、Pathの設定も指定通りでしょうか?

よくわからなかったら、Dodai.jarをソースファイルが置いてあるディレクトリ
にコピーしてみてください。

222:デフォルトの名無しさん
07/07/24 07:09:48
2chでいきなり自己紹介する奴は久しぶりに見た

223:デフォルトの名無しさん
07/07/24 08:08:32
新参か

224:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/24 15:20:24
>>224
何もしない同名のメソッドを他方にも作って継承元で仮想関数を定義。
「何かおかしい」と思うならそれは設計がおかしいんだろ、多分。

226:デフォルトの名無しさん
07/07/24 15:48:17
Javaって仮想変数ないですよね
やっぱり何もしない関数をスーパーに置いておいて、サブでオーバーライドするしかないんですね
ありがとうございました

227:デフォルトの名無しさん
07/07/24 18:24:57
>>224
静的な型がClassA型の変数variable1が呼び出せるメソッドはClassAで定義されているもののみ。
ClassAB型で定義されているメソッドを呼び出したければキャストで静的な型を動的な型に合わせればいい。
if (variable1 instanceof ClassAB){((ClassAB)variable1).cAB_Method1();}

228:デフォルトの名無しさん
07/07/24 18:29:08
キャスト演算子より.の方が優先順位が高いので、
(ClassAB)variable1.cAB_Method1();
としないように。

229:デフォルトの名無しさん
07/07/24 18:40:16
理解しにくけりゃ
if(variable1 instanceof ClassAB){ClassAB variable2=(ClassAB)variable1; variable2.cAB_Method1();}

ClassA variable1;
variable1=new ClassAA();
みたいにスーパークラス型の変数には無条件で代入できるけど
サブクラス型の変数へはキャストが必要になる
キャストは強引に型を変換するから代入したものが本当にその型でなければ当然死ぬ

230:デフォルトの名無しさん
07/07/24 22:02:29
>>224
>>226

仮想変数というものは寡聞にして知らないのだが:

Javaのインスタンスメソッドは全部C++でいう仮想関数だし、
純粋仮想関数(=0)はabstractで宣言したメソッドが該当するぞ。

何もしない
foo() {}
のようなメソッドではなく
abstract foo();
と宣言しておくことで、サブクラスでの実装を強制できる。




231:Tomcatについての相談ですが・・・
07/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
07/07/29 19:44:19
URLリンク(dream.mods.jp)

むむぅ・・・これが解決策なんでしょうか・・・。
Sysdeoっていうソフトを見つけてくればいいのかな。


233:デフォルトの名無しさん
07/07/30 11:09:35
流れぶった切ってスマソ

Javaをまじめに始めて3日ぐらいなんだけど、
PHPで言う所のsystem(); みたいなものって
Javaにもある?

234:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/30 18:58:34
プログラムの追加と削除でアンインストール。

236:デフォルトの名無しさん
07/07/30 20:19:11
>>233
PHPのsystem();がどんなものか分からんが
外部プログラムを起動するCのsystem関数に相当することをやるならProcessBuilderクラス
もし外部プログラムに対する入出力が必要ならProcessBuilder#startで得られるProcessインスタンスから
入出力のストリームをもらえ

でもjavaを始めて3日で外部プロセスに依存するなんていかんよ
まずはpure javaプログラムでどこまでできるか勉強したほうがいい

237:デフォルトの名無しさん
07/07/30 20:33:45
>>231
c:\programfileじゃないとこだったら
入ったよ。
一応、unc無効にしてからやったけど。

238:237
07/07/30 20:37:07
みすった。
uncじゃなくてuacだった。

239:デフォルトの名無しさん
07/07/30 20:41:08
>>236

おぉ、thx!

ProcessBuilder builder = new ProcessBuilder("notepad");

こういうことか。
いや、簡単なランチャー作れるね。

> PHPのsystem();がどんなものか分からんが
system("notepad",$retval);
こんな感じ。

> まずはpure javaプログラムでどこまでできるか勉強したほうがいい
今は基本部分やっとります。
延長上にそれがあるなら、楽しいなと思ってね。

ありがとう。

240:デフォルトの名無しさん
07/07/30 20:51:20
>>239
そうそう、そんな感じ
そのあとbuilder.start()で実際にプロセスを起動する
どんな言語もそうだけどjavaもいろいろ楽しいから楽しみながらがんばれ

241:デフォルトの名無しさん
07/07/30 23:02:58
あまり汎用性はないが、1.6だとGUI上のシェルみたいに
desktop.browse(uri)
desktop.open(file)
とかもできるようになった。


242:デフォルトの名無しさん
07/08/01 02:52:35
232へ
違うだろ。
これはあくまでもEclipseの場合じゃないかな?
サイトを見た限り。
で?できた?
この板ではなく別の板かサイトを見たほうがいいと思うよ。


243:231=232
07/08/01 12:00:11
>>242

>>232のサイトだと、Tomcatをインストーラーを使わずにzipでダウンロードし、
手動で導入すれば、フォルダのtomcat6.exeをクリックでとりあえず起動できる
ようになるということですよね。

さらにEclipse+Sysdeoを使えば普通にコントロールできるようになると・・・。

すみません。それらの方法はまだ試していません・・・。

一応全てのコードをメモ帳手打ちで学習したかったので、狭い部屋の狭い机の
Vista PCをどかして、XPのノートPCにTomcatを入れたら普通に動いたので
なんとか学習を継続しています。

244:デフォルトの名無しさん
07/08/01 16:03:01
いいんじゃないの?
それで。
しかし2台もPC持っているのはすごいな。
でも2台Windowsなのはもったいないから。
XPで学習が終わり次第、Linuxを入れよう。
幅が広がるよ。


245:デフォルトの名無しさん
07/08/01 16:19:22
PC2台って別にすごくないし珍しくも無いよ
特にこの板とかだとね

246:デフォルトの名無しさん
07/08/01 16:47:43
誰もメモ帳につっこまないw

247:デフォルトの名無しさん
07/08/01 18:50:15
>>245がKYだなw

248:231=232
07/08/03 01:34:03
もう一つお願いします(汗)。

サーブレット(Sample6.java)をコンパイルしようとしたのですが、コンパイルエラーとなり、

import mybeans;

の文が指摘されました(mybeansはサーブレットと同じディレクトリに属すフォルダ名です)。

「.」が無いということなので、次は「import mybeans.*;」に修正してコンパイルしても、
パッケージmybeansは存在しませんと言われてしまいます。

あるはずのパッケージがコンパイルにおいて認識されない場合、どういった原因が考えられ得る
でしょうか。ご教示いただけるとありがたいです。


Tomcatをインストール →(省略)→ WEB-INF →→ classes →→→Sample6.java
したディレクトリ                                         |
                                                       → mybeansフォルダ → CarBean.java

249:248
07/08/03 02:09:26
「やさしいJava 活用編 "import mybeans"」でググってみたら
「Java質問・相談スレッド102」でも全く同じ相談があったらしく、その人は自力で
解決できたみたいですけ、原因が分からなかったとか。

250:デフォルトの名無しさん
07/08/03 11:45:06
コンパイルって何を使ってんの?コマンドライン?

251:248
07/08/03 11:49:14
>>250
javacを使用しています。

252:248
07/08/03 11:56:11
コマンドプロンプトを使ってjavac Sample6.javaと入れてコンパイルを試みています。

253:デフォルトの名無しさん
07/08/03 12:06:28
まずさー、import mybeans.*; ってのは、以下のソースで

mybeans.hoge() とかのmybeans.を省略するためにあるんだから
hoge()とかがソース上に無いんだったら書かないでいいんだよ。

254:デフォルトの名無しさん
07/08/03 12:10:41
で、多分 mybeans.hoge() の省略である hoge()はあるんだろう
そしてそのmybeansの場所はclasspathに無いと駄目なんで
コンパイルしている場所をclasspathに含めるなら、 . を追加しないとね。

255:デフォルトの名無しさん
07/08/03 12:12:00
package も書いてあるのかどうかが気になるけど、まあいいや

256:248
07/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
07/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のつづき
07/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
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/06 02:00:19
わからんな。
ソースは間違っていそうにないのだが....
これってDBのデータをjavaで表示するんでしょう?
com.mysql.jdbc.CommunicationsException: Communications link failure due to under
lying exception:
このエラーググッても英語しかないんだよね?
これはjavaの質問スレッド板で聞いたほうがいいんじゃないかな?


262:デフォルトの名無しさん
07/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
07/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:デフォルトの名無しさん
07/08/06 08:50:16
>>263
>Access denied for user ''@'localhost' (using password: NO)

@'localhost' ってことはユーザーを何も指定していないってことだよな?
ふつー user@'localhost' みたいになるんじゃね? userのとこが root だっ
たりするかもしれんが。




265:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/07 01:51:37
やさjavaを終わったら別の本をやれ


267:デフォルトの名無しさん
07/08/11 01:35:56
やらしいjavaとか出版予定はないかな?

268:デフォルトの名無しさん
07/08/11 11:14:21
やさしい心よりやらしい体って山本弘の小説のキャラが言ってた。


269:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/12 00:32:30
269です。回答ありがとうです

>でもまぁ、その程度なら memberList をそのまま公開するよりか Team#addMember を設けるべきでしょう。
やっぱそうだよね…
メンバになってるクラスをそのままreturnするのは
最初からpublicで宣言してるのとあんま違わないというか
カプセル化が壊れてるような気分になって…

Map系のkeySet()ってノーチェックでした
ハッシュキーの一覧が取れて元のハッシュにも(削除系だけ)連動するのか
勉強になりましたー

272:デフォルトの名無しさん
07/08/16 01:12:41
Tomcatがよく動かなくなるのですがどんな理由が考えられるでしょうか?
ディレクトリのファイルの内容を動いていた状態に戻しても、まだ動いてくれず弱っています。

273:デフォルトの名無しさん
07/08/16 01:33:01
症状を必要かつ十分にもっと詳細に

274:デフォルトの名無しさん
07/08/16 02:39:21
>>272
多分夏バテ
涼しい所で栄養をたっぷりとって休養しよう

275:デフォルトの名無しさん
07/08/16 17:31:51
>>273,274
レスありがとうございます。
特にconfディレクトリにルートディレクトリ名のxmlファイルを入れたり、そこのserver.xmlに記述を追加するとダメなようです。

で、自作の上配置したファイルを別の場所に保管してTomcatをアンインストール、再インストールを行いました。
実は再インストール、今回が最初じゃないんです。そんな事もあって伺ってみたかったんですが。まあ、面倒です。

276:デフォルトの名無しさん
07/08/17 13:46:26
どなたでもいいので答えてもらえないでしょうか。
おそらくとても初歩的な問いなのですけど、どう答えていいか分からなくて

Q1
以下の条件を満たす変数 count を適切な型で定義してください。
- 整数値のみ
- 範囲は 0 〜 32000




277:デフォルトの名無しさん
07/08/17 13:55:20
候補としては int, short, unsigned int, unsigned short
「適切な」の解釈によるがintでいいんとちゃうの。

278:デフォルトの名無しさん
07/08/17 14:00:59
>>227
ですよね。私もそんな感じだと思ってはいたんですけど、
「適切な型で定義」って書いてあるのでどう答えていいか
分からず書き込んだのですが。

では答えとしては>>227さんの答えていただいた感じでいんですかね?

279:デフォルトの名無しさん
07/08/17 14:04:43
int -2147483648 〜 2147483647
short -32768 〜 32767
unsigned int 0 〜 4294967295
unsigned short 0 〜 65535

280:デフォルトの名無しさん
07/08/17 14:06:04
ってっこjavaスレだよな、、、

281:デフォルトの名無しさん
07/08/17 14:10:46
>>279
問題の
- 整数値のみ
- 範囲は 0 〜 32000
とはどういうことなんでしょうか?
範囲は0〜32000てことはint型の-2147483648〜2147483647
は該当するのでしょうか?
本当に低レベルな質問ですみません。勉強を始めて間もない者ですので。


282:デフォルトの名無しさん
07/08/17 14:23:42
javaスレなのにunsigned はつられただけだけだけど、
まあその範囲が収まればいいんじゃない?
short も iont も範囲内だけど
適切な、というのが範囲内で最も近い、ということなら
short になるんじゃない?もちろん int も正解だろうけど

283:デフォルトの名無しさん
07/08/17 14:30:26
>>282
レスありがとうございます。
教材だけだと説明など書いてあっても、聞くことができないので
こういう場や答えてくれる方に感謝します。
ありがとうございました。

284:デフォルトの名無しさん
07/08/18 19:11:44
Web上から画像を読みこんで表示するGUIプログラムを作ろうと思っています。
java.net.*のHttpURLConnection()でなんとなくデータをダウンロードすることはできました。

ぐぐってたところ、画像を表示するためにjava.awt.Imageを使えばよさそうだと思ったのですが使いかたがわかりません。
サンプルコードか、参考になるページを教えていただけませんか

285:デフォルトの名無しさん
07/08/18 22:29:55
java.awt.Toolkit と java.awt.Graphics

286:デフォルトの名無しさん
07/08/19 00:01:21
ありがと。精進します

287:デフォルトの名無しさん
07/08/23 01:47:52
例えばクラスAとクラスBがあるとします。クラスAである値を取得してそれを
クラスBで取得したい場合どうすればよいでしょうか?その値はstatic変数に
格納しないでpublicなアクセッサ(getter/setter)を使用したいです。現在JDeveloper
を使用して試行錯誤してますが、getterメソッドがstaticではありませんと
怒られています。


288:デフォルトの名無しさん
07/08/23 08:26:45
staticなコンテクストからgetterメソッドを呼んでるからじゃん
javaをもう一度最初から勉強し直した方がいいよ

289:デフォルトの名無しさん
07/08/23 08:30:36
A a = new A();
a,setFoo("hoge");

B b = new B();
b.setBaa( a.getFoo() );
こういうことがやりたいのか?

290:デフォルトの名無しさん
07/08/23 10:44:26
それともBをAの集約クラスにして
Bが持っているAのインスタンスが取得した値を
Bのメソッドの中で使用したいってこと?
class B {
A a;
someMethod() { ... a.getter() ... }
みたいに
この場合A#getterがインスタンスメソッドなのに
someMethodがクラスメソッドならgetterがstaticじゃないって怒られる

291:初心者
07/08/25 10:01:12
<PC環境> ★Windows Vista Home Premium, Eclipse3.2,
Tomcat5.0.28 //インストーラを使わずzipから展開,
C:\Program Files\Java\jdk1.5.0_07, C:\Program Files\Java\jre1.5.0_07

<環境変数>JAVA_HOME: C:\Program Files\Java\jdk1.5.0_07
Path: %JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

1. コンソール(cmd)からjavaもjavac も動く。
2. URLリンク(localhost:8080)でTomcatのトップページが表示される。そこからたどったJSPのサンプルは正常に作動。

<問題> だけど、Eclipseで自作したプロジェクト名sampleのsample/hello.jspは
URLリンク(localhost:8080)からは動かずに500エラーが出る。
hello.jspの中身は<%new java.util.Date()%>の一文だけ。

/* 500エラーの詳細
HTTPステータス 500 -
説明 The server encountered an internal error () that prevented it from fulfilling this request.
例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
原因 Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK */

なんとかhello.jspを表示させることはできませんか?
Vistaじゃできないのかな。勉強できない。超参った。

292:初心者
07/08/25 12:41:54
環境変数CATALINA_HOMEにTomcatのルートディレクトリを指定したら動きました。
Vistaのせいではなかった…。修行が足りんね。

293:デフォルトの名無しさん
07/08/25 16:46:04
文字列で指定したコマンドを実行するには、どうしたらいいでしょうか。

例えば、System.out.println()コマンドを実行したければ、

Runtime rt = Runtime.getRuntime();
Process ps = rt.exec( "System.out.println(\"hoge\")" );

のようにすればいいのでしょうか?

294:デフォルトの名無しさん
07/08/25 19:11:06
System.out.println()はコマンドじゃない。

やりたいことによっては楽にできるが、
本当に System.out.println() を実行したいなら初心者レベルでは
無理。


295:デフォルトの名無しさん
07/08/25 20:31:24
JRuby あたりからガツンとやったほうが楽なような気がしますー

296:初心者
07/09/02 12:46:00
JSPやサーブレットをGUIで組めるようなエディタないですかね(ガイシュツ?)
エクリプスのvisualeditorだとSWINGとかしかできない希ガス・・

297:デフォルトの名無しさん
07/09/10 01:50:41
java6は出ましたか?

298:デフォルトの名無しさん
07/09/20 15:40:48
swingでpaintとpaintComponentがありますが、どこが違うのですか?
どちらもrepaintを呼び出すと実行されるので、違いは内容に思うのですが。



299:デフォルトの名無しさん
07/09/20 17:11:22
paintは、まずpaintBorderを呼んで、次にpaintComponentを呼んで、最後にpaintChildrenを呼ぶ。

paintをオーバーライドすると、ボーダーと子コンポーネントが描かれなくなる。

300:デフォルトの名無しさん
07/09/20 17:57:18
MyClass a,b,c;

a = new MyClass(); //インスタンス1
b = new MyClass(); //インスタンス2
c = a;
a = b;

としたときに、cはどのインスタンスになりますか。



301:デフォルトの名無しさん
07/09/20 18:04:27
宿題?
インスタンス1

302:デフォルトの名無しさん
07/09/20 18:20:36
>>301
宿題じゃないのですが助かりました。有難うございます。
Cのポインタへのポインタみたいな参照方法を調べていました。

privateなメンバクラスをコンストラクタ引数で渡して
他のクラスから参照するような事をしていたのですが、
スコープを広げて参照しないとダメですね。

303:デフォルトの名無しさん
07/09/22 23:53:45
>>302
privateメンバの参照先を外部から
変えられちゃったらそもそもprivateの意味ないしねぇ。

それだったらsetterなり使って
適切な順序踏んで値設定するべきだと思うけど

304:デフォルトの名無しさん
07/09/23 00:34:48
>Cのポインタへのポインタみたいな参照方法
a = new MyClass(new MyClassItem());
b = new MyClass(new MyClassItem());
c = new MyClass(a.getItem());
a.setItem(b.getItem());

setter/getterでコピー渡しをしない場合これでc.getItem() == b.getItem()になるはず
まあ普通はこんなコードは書かないけどw

305:デフォルトの名無しさん
07/09/23 00:43:48
間違えた。
三行目c = a;か。

306:デフォルトの名無しさん
07/10/05 05:09:04
FrameとPanelってどう使い分ければいいのでしょうか?
同じだとしか思えません。


307:デフォルトの名無しさん
07/10/05 07:51:05
Frameの中にFrameは作ることはできないし、
Frameの外にPanelを作ることはできない。

308:デフォルトの名無しさん
07/10/05 10:18:19
Frame⇒一番外側(枠付)
Panel⇒内部コンポーネント

基本的にFrameは1つだけ
中にPanelを組みあわせて配置する
そういうフレームワークになっているだけ

309:デフォルトの名無しさん
07/10/09 02:05:25
TreeSetの入れ子構造って可能なんですか?

つまり、
TreeSet<TreeSet<String>> tree = new TreeSet<TreeSet<String>>;

TreeSet<String> t = new TreeSet<String>();
t.add("a");
t.add("b");

TreeSet<String> v = new TreeSet<String>();
v.add("1");
v.add("2");

tree.add(t);
tree.add(v);


Exception in thread "main" java.lang.ClassCastException: java.util.TreeSet
という例外になってしまうのですが。

310:デフォルトの名無しさん
07/10/09 02:14:41
>>309
TreeSetが.Comparableでないから無理

311:デフォルトの名無しさん
07/10/09 02:48:21
ありがとうございました。


312:デフォルトの名無しさん
07/10/09 23:58:22
BufferedImageをプログラム上で印刷するにはどうしたらいいでしょうか。
javax.print というのがあるのは調べましたが、使い方がわかりません。

313:312
07/10/10 00:53:41
自己解決しました。

314:デフォルトの名無しさん
07/10/13 21:58:32
多少筋違いの質問ですが、
最新のJDK6、Tomcat6.0と障害おこしませんか?OSはWindowsXP service pack2です。
ちなみに私、現在は前ヴァージョンの5.0を入れなおして使っております。

315:デフォルトの名無しさん
07/10/16 10:38:38
以下のプログラムの Blackbox を C=250 に変更させて
起動するにはどう修正したらよいか回答せよ。

public void main(String[] args){
 try{
  ServerSocket serverSocket = new Blackbox(55555);
  serverSocket.setSoTimeout(0);
  while(serverSocket!=null){
   Socket Blackbox = serverSocket.accept();
     ・
     ・
   socket.close();
  }
 }catch(IOException e)System.out.println(e);
}

316:デフォルトの名無しさん
07/10/16 12:03:05
>>315
何様?

317:デフォルトの名無しさん
07/10/16 12:36:52
宿題スレに行け

318:デフォルトの名無しさん
07/10/16 15:13:54
スクリーンセイバーにあるような宇宙空間を作りたいのですが
一から始めるのは難しいので少しづつ弄って覚えようと思ってます。
どこかにソースを公開してるサイトがありましたら教えてくれませんか?

319:デフォルトの名無しさん
07/10/16 16:20:25
あれって単に、白い点を少しずつ大きくしながら、画面中央から端に向かって動かしてるだけじゃないか?
3次元的な処理は何もないから簡単そうだ

320:デフォルトの名無しさん
07/10/16 19:15:27
学校で↓のクラスを使ってプログラムを作らなければいけないんですけど
考えてみたんですがわかりません。どなたか教えてください。

public class SimpleAdder3 {

public int add(int x, int y) {   ←x = 10, y = 20
return x + y;
}

public double add(double x, double y) { ←x = 0.5, y = 0.6
return x + y;
}

}

321:デフォルトの名無しさん
07/10/16 19:17:28
>>320
どこまでを考えて、どこからが分からないの?

322:デフォルトの名無しさん
07/10/16 19:19:06

クソの集まり創価学会

偽善者が政治活動、公明党

ネズミ講、騙されバカ信者、池田犬作チョン大教祖様、さっさと死ねや

323:デフォルトの名無しさん
07/10/16 19:30:12
スレリンク(tech板:320番)

class SimpleAdder3Usage {

public static void main(String[] args) {
SimpleAdder3 s;
s = new SimpleAdder3()

ここら辺まであってますか?

324:デフォルトの名無しさん
07/10/17 07:43:53
>>323
メソッドのオーバーロードは古いヴァージョンでは戻り値が同じ型を要求するので注意が必要。
ここ数年のヴァージョンなら君が書いたように戻り値が異なっていてもOK。
ただし、えてしてメソッドをオーバーロードする意味がある場合は少ないといえる。皆無と言っていい。
オーバーロードはコンストラクタ用の技と割り切る事を薦める。

なので、ここではメソッド名を変えておいた。(インデントはちゃんとやる事。)

class SimpleAdder3 {

public int add(int x,int y){
return x + y;
}

public double add2(double x, double y) {
return x + y;
}

}
public class SimpleAdder3Usage {

public static void main(String[] args) {
SimpleAdder3 s;
s = new SimpleAdder3();
System.out.println(s.add(10,20));
System.out.println(s.add2(0.5,0.6));

}
}

325:デフォルトの名無しさん
07/10/17 08:50:21
>>323
s.add(10,20);って感じで値が取れるからそれを出力すればおk

>>324
プリミティブ型ごとにオーバーロードすると、呼び出しをしたときにキャストとか接尾子とかで汚くなることがあるからな。
俺だったらaddInt、addDoubleって名前付けるけどな。

ま、↓のクラスを使ってって書いてあるから突っ込まなかったんだが。
それだったらaddをstaticメソッドに変えてSimpleAdder3.addInt(10 ,20);とかにしちゃうけど、
これは課題で求められているものではないだろうな。

326:デフォルトの名無しさん
07/10/17 15:55:44
>>319
できましたが、
点を2個以上に増やすとすべて同じ動きになってしまいますorz

public class Anime_2 implements Runnable{
Anime_1 an;
public Anime_2(Anime_1 an){
this.an=an;
}
public void run(){
while(an.circle_x<200){
try{
Thread.sleep(200);
an.circle_x=an.circle_x+4;
an.circle_y=an.circle_y-1;
an.repaint();
}
catch(InterruptedException ie){
}
}
}
}

点が一つの場合はこういう風に記述しました。
circle_x2とcircle_y2を追加して式も記述したのですがダメでした。。。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4010日前に更新/302 KB
担当:undef