トップページ⇒tech
982コメント338KB

ネタ心者歓迎!今更ながらにJava相談室 その4

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
                        
 || ̄ ̄|   ∧_∧
 ||Java|  (     )   ∧∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||__|  ( ○  )  (   ) < 俺達の旅はここから始まる。
   ||    │ |  │   /  |    \___________
((二二)) .(_(__)〜(___ノ

( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0293デフォルトの名無しさんNGNG
>>287
Javaで業務アプリ関係で配列はあんまり使わないと思う。
0294デフォルトの名無しさんNGNG
>JBuilder使っているけど、パッケージやクラスの内容を
>理解しやすいと思う。

コレが必要な人っていうのは、javadocドキュメントを読むのが嫌いな人?
マルチディスプレイで片方でドキュメント開きながら秀丸でも、おいらは
十分だなあ。強調表示カラーリングのファイルとかはいろんな言語用のが
いっぱい出回ってるし。
0295デフォルトの名無しさんNGNG
>>294

292です。
だから、普通のエディターで満足している人には薦める
ほどじゃないんです。
0296デフォルトの名無しさんNGNG
ぐうう・・・
JBuilderからCPadへ移植できん・・・・
0297B-TNGNG
>>287
やはりこれくらいの事は知っていなくてはな!
>>289,290「これを知ってても意味ない」て言っているみたいだが、何?知らなかったの?
俺らんとこでは研修でこういうのを詳しく教えてくれえたぞ。
ちゃんと道理というものがあってこういう記述法が用意されているのだ。
何故、Integer[]をString型の変数名として利用できるのか、それくらいの事は分かるよね?
>>289,290共にろくに理論も知らずにやってるんじゃない?常識だよ常識。
0298 NGNG
1,2,5!
0299コルバNGNG
>>297
>何故、Integer[]をString型の変数名として利用できるのか、それくらいの事は分かるよね?
要はimportする中のクラス名とだぶった変数名を付けてコンパイラがブーブー言い出したら混乱の元だもんね。
これは知っておかないとね。
>>289
これらの問題、米国の過去のsun認定試験に出た実績のある問題です。どこかのホームページに出ていたのを見たことあります。
なので、別に問題無いわけじゃないのよ。
0300 NGNG
>>292
キー打つのが嫌。
0301デフォルトの名無しさんNGNG
>>297
ほほぅ.君んとこは,「常識」のとこを「研修で詳しく教えて」んのか.
0302コルバNGNG
>>298
確か正解は、1,2,5。
3番の、int[] test= new int[]{1,2,3}は、
    int[] test= new int[3]{1,2,3}
とすればコンパイルは通るはずです。
0303デフォルトの名無しさんNGNG
本当にどうでもいい質問なんで恐縮なんですが・・・

SwingやAWT、Servletってよく「コンポーネント」って言い方するけど、
俺は「Javaのコンポーネント=JavaBeansとEJB」だと思っていたけど、
SwingやAWTやServletも実はJavaBeansなの?

俺はこいつらはてっきり普通のクラスだと思っていたのだけど。
0304 NGNG
>>287の答え:
1.
2.
3.
4.
5.
が余計な為全て通りません。
外しても名前重複のため1しか通りません。
0305  NGNG
マジな正解は1,2,3,5のもよう。
0306コルバNGNG
>>304
確かにそうかもね。
でも上げ足取りすぎでは?
そういうこと言ってたらすべてのテストは誤問ばかりだがな。
0307コルバNGNG
>>305
マジで3番OK?
そしたら失礼しやした。
0308デフォルトの名無しさんNGNG
>>168でも質問されてますが、自分もJava Helloを実行すると
Exception in thread "main"java.lang.NoClassDefFoundErrorが出ます。
-classpathオプションで”.”を付けたり、\jdk1.3.1_02\jre\lib等指定してみたんですが、上手くいきません。
googleで上記のエラーを検索してみたんですが、>>173、>>178の方法しか見つけられませんでした。
Hello!!も見れないとは…
鬱駄市悩…

OSはWin2000、JDK1.3.1_02で、インストール先はC:\JDK1.3.1_02です。
このスレの方たちから見れば、何度も既出で(゚Д゚)ハァ?なレベルの質問かと思いますが、
ご教授願えますでしょうか?
0309こんなのは?NGNG
1=SET CLASSPATH = C:\jdk1.3.1_01\lib;C:\jdk1.3.1_01\jre\lib
2=SET CLASSPATH = C:\jdk1.3.1_01\jre\lib
3=SET CLASSPATH C:\jdk1.3.1_01\jre\lib
0310これだけでいいのかな?NGNG
SET CLASSPATH = C:\jdk1.3.1_02\lib;C:\jdk1.3.1_02\jre\lib
0311それでだめなら実行時オプションNGNG
-classpath C:\jdk1.3.1_01\lib;C:\jdk1.3.1_01\jre\lib
0312.もいれようよNGNG
SET CLASSPATH = .;C:\jdk1.3.1_02\lib;C:\jdk1.3.1_02\jre\lib
0313デフォルトの名無しさんNGNG
クラスパス以外に原因がある可能性も考えてみたらどうか。

実行しようとしてるディレクトリにHello.classがちゃんとあるか?
mainメソッドのシグニチャが間違ってないか?
実はパッケージ設定してないか?
0314デフォルトの名無しさんNGNG
>>299
>これらの問題、米国の過去のsun認定試験に出た実績のある問題です。

その試験でしか使わんような知識だよ。
もしも使うとしたら、どこかのバカが「俺ってこんなのも知ってるんだよー」的に
書いてしまったコードをデバッグする時ぐらいだろうけど、
まあ、人生に一度有るか無いかじゃないの?

なんでワザワザそんなに優先順位が低い知識を入社時にテストしなけりゃならんのか
俺にはワケワカラン。
0315308NGNG
>>309-313
レスありがとうございます。
set CLASSPATHも、-classpathもダメでした。
309-312まで全て試したんですが…

>>313
Hello.classはd:\java\に置いてあるんで、実行する時のファイル名指定はd:\java\Hello.classとしています。
とりあえずソース貼ります。

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!!");
}
}
0316308NGNG
インデントが無くなってる…(;´д`)
0317デフォルトの名無しさんNGNG
>>315
>実行する時のファイル名指定はd:\java\Hello.classとしています。

これの意味がよくわからない。
0318308NGNG
>>317
java d:\java\Hello って意味なんですが…
0319デフォルトの名無しさんNGNG
>>318
そりゃぁ動かないよ。
次の通りにやって味噌。

1. c:\tmpを作成
2. c:\tmpにHello.classを置く
3. DOSでc:\tmpに移動
4. CLASSPATHを消す。具体的にはDOS画面で
c:\tmp>SET CLASSPATH=
と打つ。
4. DOSでc:\tmp>java Helloと打つ。
0320デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. Java
0321308NGNG
>>319
動きました!
ありがとうございます。
でも原因が分かってないです。
d:\java\ってしてたのが悪かったんでしょうか?
環境変数の問題なんでしょうか?
0322デフォルトの名無しさんNGNG
両方かもね。
0323308NGNG
>>319
すみません。自己解決?しました。
DOSでd:\java>java Helloで動きました。
これ以降は自分で調べます。
遅くまでありがとうございました。
0324デフォルトの名無しさんNGNG
そういうのは自己解決とは…
0325308NGNG
>>324
表現の仕方が悪かったですね。
「何となく原因が判ったので、これ以降は自分で調べます。」に置き換えてください。
スレ汚しすみませんでした。
0326hogeNGNG
Java2Dの質問です。
環境は、JDK1.3 win2kです。

ある図形を,AffineTransformを使って、回転しました。
マウスを使ってその図形をドラックしようとしたところ、うまく行きません。多分、画面の上ではマ図形をウスで
クリックしているつもりでも、図面は、変換された座標上に有るので、一致しないのだと思います。
マウスが図形の中に入っているかどうかの判定は,図形r.contains(p)でやっています。
それで、二つ方法を考えました。
一つは、マウスのポイントを図形の座標へと変換する。
二つ目は、図形の座標を、実際の座標に変換し、マウスポインタと比較する。
一つ目の方法で、マウスのポイントをtransformしましたが、うまく変換していないみたいです。
二つ目の方法は、どの様にして良いのか分かりませんでした。
皆さんは、どんな方法で、マウスが図形の中に有るか判定してますか?
0327デフォルトの名無しさんNGNG
やったことないのでわからんけど、二つ目で、
AffinTransform#createTransformedShape()
で帰ってきたShapeをGraphicsにdrawするようにしたらどうでしょうか?
0328デフォルトの名無しさんNGNG
>>287
おたくの会社、
頭堅いやつばっかりでしょ?
0329デフォルトの名無しさんNGNG
TextFieldをGrigbagLayoutしたら、Frame下部に変な仕切りが
できてしまったのですが、逝っていいですか?
Linux+JDK1.3.1_02だす。
0330デフォルトの名無しさんNGNG
>>329
あ、それ経験があるYO!
いろいろレイアウトを弄って何とか消した記憶がある。
消し方は忘れたけど、消せるはず。
0331デフォルトの名無しさんNGNG
は〜〜。
「俺cobolしか書けないYO!」とか言われ、
java->cobolの呼び出しを実現できるのか調査してます。
microfocus cobolにはライブラリがあるようですが、
一般的な手法で何か参考になるようなwebとかご存知ないでしょうか?
0332デフォルトの名無しさんNGNG
>>331
COBOLオンリーな奴は、プロジェクトからはずすのが正解。
Cならまだしも。
0333331NGNG
それは提案もしたのですが・・・。
java->C->cobolと三段経由しか無いんでしょうか?
cobolなんて全く知らないんで、どうしたらいいでしょう。
0334331NGNG
連続カキコスマソ。

Javaを勉強する気が無い人たちに、
CORBAを理解させるのも同じぐらい骨が折れそうだし・・・。
0335 NGNG
JVM用のCOBOLコンパイラがあるでしょうが。
0336331NGNG
>>335
PREcobolというものでしょうか?ググルで検索したらありました。
ちょっと、調べてみます。

しかし、こういうものって、実際の業務で使われているのでしょうかね?
使ったことある方おられますか?
0337教えてクンNGNG
3つのソースファイルを作りました。
Mother.java
Human.java
Elevator.java
です。
# Mother.java #
public class Mother {
Mother() {}

public static void main(String args[]) {
/* クラスの生成 */
Elevator ev = new Elevator(***);
NewHuman hu = new NewHuman(***);
}
}

こうやってElavatorクラスの関数をNewHumanくらすが、
NewHumanの関数をElavatorクラスが使うにはどうしたらいいの?
0338 NGNG
static public
0339 NGNG
static public 関数で定義してー

Elevetor.関数名()で呼び出し。
0340デフォルトの名無しさんNGNG
>337
・同パッケージにする。
か、
・importする。
か、
・プルパスで記述する。

いじょ。
0341337NGNG
>>338
どういうことですか?
>>337
***の部分にはそれぞれなんて書けばいいのですか?
0342337NGNG
ちょっと用事ができたのでしばらく抜けます。
m(__)m
0343デフォルトの名無しさんNGNG
ひょっとして、new を関数と思っているのか?
こりゃ、コンストラクタなんで、あなたのつくったその
Elevator なり、NewHumanなりのコンストラクタの引数を書く。
で、ev.メソッド名()でメソッドが呼べる。
338さんが言っているのは、staticメソッドにしておけば、
インスタンスを生成しなくてもメソッドが呼べるってこと。

いじょ。
0344329NGNG
おお、同志がイタノカ・・・。
レイアウトからTextField抜いたYo!
文字列入力制御がイタイヨ。
0345風呂がま洗いNGNG
IPv6でちょっとしたツール書きたいんだけど、Javaじゃムリでしょうか?
すでに作ったことある人がいるなら、僕もJavaでがんばってみようかなと思ってます。
ムリならC逝きます。。。どシロウトだけど。
0346デフォルトの名無しさんNGNG
Inet6Address だかを使うんじゃないの?良く知らんけど。
このクラスって 1.4beta からだっけ?
0347風呂がま洗いNGNG
>>346
さんきゅー!
Inet6Addressでサーチしてみます。
なんとかなりそうで嬉。
0348332NGNG
>>331
どうしてCOBOLオンリーの奴をプロジェクトからはずせないのか、非常に気になる。
なんかすごい技術を持ってるの?

スレ違いだから、プログラマー板の愚痴スレにでも来てよ。
0349デフォルトの名無しさんNGNG
>>336
漏れも知りたい。
誰か人柱プロジェクトきぼんぬ。
http://flp.cs.tu-berlin.de/~tolk/vmlanguages.html
0350デフォルトの名無しさんNGNG
サーバー間との送受信データ量を調べたいのですが
どこかにサンプルプログラムとかないですか?
0351デフォルトの名無しさんNGNG
JVMについて知りたくなったのですが、
JVMのアセンブラーやCライクな言語でおすすめは?
0352デフォルトの名無しさんNGNG
Java仮想マシン仕様を読めばよし!
0353331NGNG
>348
漏れは技術支援業務だから、プロジェクト進行には関係ないのさ。
方針とかはお客様が勝手に決めてるYO!

結局IBM-UDBのストアドプロシージャ機能を推しておいた。
人柱になれなくてスマソ。
javaとあんまし関係ないんでsage
035475NGNG
ずいぶん前に質問したのですが、放置されっぱなしで
ちょっと悲しいです。
>>75
の様な事は普通は誰もやらないのでしょうか?
0355 NGNG
JAVAでGUIはやらないもん。
0356デフォルトの名無しさんNGNG
サーブレットスレかサーバサイドスレに書くべき内容だと思うんですが、
繁盛しているこっちに書かせてください。

今Servletを作っているんですが、その中で入力パラメータの禁止文字チェックやってます。
で、Tomcatでは以下のコードでうまくいってたのですが、IBMのWebSphereに移行したら
2バイト文字が全部禁止文字としてひっかかるようになってしまいました。
これって、あまりよいやり方じゃないんでしょうか?
もっとどのAPサーバに持っていっても汎用的に使える方法ってあるんでしょうか?
以下ソース。

String str = request.getParameter( "text" );
isvalid = new String( str.getBytes( "8859_1" ), "JISAutoDetect" );
java.text.StringCharacterIterator sci = new java.text.StringCharacterIterator( isvalid );
for( char c = sci.first(); c != java.text.CharacterIterator.DONE; c = sci.next() ) {
  if( "<>&\"\';^[:]\\,!#$%()=|{`+*}?".indexOf( ( int )c ) != -1 ) {
    throw new Exception( "記号文字を入力することはできません。" );
  }
}
0357デフォルトの名無しさんNGNG
tomcatの設定できたけど
おく物がなんもねえ
0358デフォルトの名無しさんNGNG
>356
2行目は不要かと
0359356NGNG
そうなのですか?>>358
参考書やネットでよくでてくる書き方なので、そのままコピーして使ったんですけど・・・。
0360デフォルトの名無しさんNGNG
WebSphere自体が文字コードの処理をやってくれてるはず。
弄ると逆にうまくいかない。
Tomcatだと自分でコーディングしないといけないけどね。
0361デフォルトの名無しさんNGNG
JDKでコンパイルして、コンパイルエラーになると
エラー個所のソースの行数を表示してくれますよね。
Antを使ってコンパイルすると、この行数が表示されなく
なってしまう(build.xmlの設定次第なのでしょうが)のですが、
エラー時にソースの行数が表示されるのは、どのような条件の時
なのでしょうか?
0362332NGNG
>>353
技術支援業務ってなんかかっこいいな。コンサルみたいなもんか。
いまだに、コボラーを飼ってる会社って凄いなあ。
プロジェクトは失敗する、に5000DIVISION!
0363 NGNG

>>356
それはJava Scriptですか?
0364デフォルトの名無しさんNGNG
J2EE1.3のJMSやJTAを業務システム開発で使ってる人って、います?
面白そうなんだけど、仕事で使うとなるとコンセンサス得るのが
大変そうな気がしまして…
0365 NGNG
Jなんとかって3文字のは嫌いだ。
良くある方法に名前つけちゃって、肥大化したライブラリなぞ見る気に
ならない。
0366デフォルトの名無しさんNGNG
JCB
JRA
JFK
0367デフォルトの名無しさんNGNG
最後のは J.F.K. だ
0368デフォルトの名無しさんNGNG
>>365
アンタみたいな奴が、「そんなの簡単そうだから自分で作る」とか
言い出して、独り善がりで間抜けなライブラリを生み出すおろかな
行為が、日本では多く見られます。

ウチの上司もソレなんだよ…なんでだろうね?糞上司のオナニー
ライブラリなんか保守していくのやだぞ、まじで。
0369 NGNG
>>368
sunのことかな?
0370 NGNG
メッセージのAPIにネットトランザクションのAPIか
おめでてーな。
俺ならメソッド3つか4つで終わるな。
つうかメッセージの方はいちいちAPI作らんわ。
0371 NGNG
あ、死滅スレと間違えてたり・・・。ゴメンネ
0372デフォルトの名無しさんNGNG
>>370
どうやるの?
Publish-Subsclibeモデルだの2フェーズコミットだのを?
0373 NGNG
んなものは必要ない。
グローバルなメッセージプールとロックとメッセージ送るのと
受けてなんか起動するメソッドあれば十分。
0374デフォルトの名無しさんNGNG
かくして壮大な車輪の再発明は続く、、、。
0375デフォルトの名無しさんNGNG
>>356

String str = request.getParameter( "text" );
if(request.getCharacterEncoding() == null){
  isvalid = new String( str.getBytes( "8859_1" ), "JISAutoDetect" );
}

多分これで Tomcat も WebSphere も通るコードになる。サーブレットエンジンが適切な
文字エンコーディングを認識できていれば文字コード変換しなくてもよいということ。
0376デフォルトの名無しさんNGNG
ちょっと手が空いたので楽しみにしてた Struts のフレームワークを使ってみたら
俺らとその周辺で散々再発明しつくされたされたフレームワークでやんの。
俺が仕事で JDK1.1.6 の頃作ったヤツよりヘボいフレームワークだったよ。がっかり。
0377デフォルトの名無しさんNGNG
へぇぇぇ、すごいすごぉい!
0378デフォルトの名無しさんNGNG
マウスをクリックした時、mousePressed, mousedReleased, mousedClickedは
どのような順番で呼び出されるんですか?
0379デフォルトの名無しさんNGNG
>>378
自分の手でやっても
0380デフォルトの名無しさんNGNG
隣のプロジェクト、IBM-MQモドキを再発明している途中です。
ソース見たら、間抜けきわまるライブラリでした。本気で売る
つもりなのかな?
0381デフォルトの名無しさんNGNG
>>373
その程度の事ならRMIでそのままやるだけじゃん。メソッド作るまでもない。
(つうか、それ用のメソッド作ってる人はアホだと思う。)
その上の層をいちいち自分で実装するのか、ライブラリにして標準化して
おくのかの差でしょ。
0382デフォルトの名無しさんNGNG
JMSって、JDBCみたいな単なるインターフェイス定義でしょ?
実装はIBM-MQとかで、そういう商品に対するブリッジドライバが提供される
だけだと思ってたんだけど、違うのかな?
0383デフォルトの名無しさんNGNG
アプレットで、AWTのボタンを使用しています。
Button button1 = new Button("ちんぽ");
といった感じで、ボタンに文字列を表示させてます。

普通にIEで実行(標準の古い規格のJVM)すると、ちゃんと表示されていました。

しかし、昨日JavaPlug-in(1.3)を入れたら(Java2Dもやりたいので)、
ボタンの文字が ロロロ のように、四角に化けてしまいました。
この化けかたって、UNICODE<->SJIS間の化け方だと思うのですが、
なぜPlug-inを入れただけでこんなになってしまうのでしょうか?
Sunのfaqとか見てもいまいちわかんないし・・・

しかし、Javaplug-in入れたとたんに、いきなり動作が重くなったんだけど・・・
こんなもんなの?
0384デフォルトの名無しさんNGNG
>>383
最新のJavaPlug-inは、Appletを感知した時になにかのデーモンを立ち上げる
ようになっているようなので、ソレの起動に時間が掛かってるとおもわれます。
タスクトレイに変なのがでるでしょ?2回目起動からはそんなに遅くないと思う
んだけど。

マシンのロケールが日本語になってないと、画面表示のときにUNICODE→
SJISエンコードしてくれないよ。
0385383NGNG
>>384
立ち上げもそうなんだけど、
実行中も重くなっちゃったんだよね。
例えば、文字のスクロールとかさせてるんだけど、前はいつでもスムーズだったのに、
plug-in入れてからは、ちょっとスクロールバー動かしたりすると
ガクガクしちゃったり・・・

ロケールは、見直してみます。
JVMの設定?
0386 NGNG
>>383
まちがって英語版のプラグイン入れてるからだよ。
International版いれればOK。
0387 NGNG
↓ここにInternational版もある。
java.sun.com/j2se/1.3/ja/jre/download-windows.html
0388デフォルトの名無しさんNGNG
RunnableとThreadの違いは何?
0389デフォルトの名無しさんNGNG
>>388
クラスとインターフェースの違い。
Runnableのほうが応用が利く。
0390383NGNG
international版いれて解決しました
ありがとう

これのサイレントインストールって、サーバー側にissファイルを置いておくと、
アクセスした人はなにも操作しないで、勝手にインストールしてくれるのですか?
それは違う?
0391デフォルトの名無しさんNGNG
Jpegを読み込みたく、下記のようなものを作ったのですが
小さいサイズのものは読めるのですが
大きいサイズ(10M程度)のものがOutOfMemoryが出てしまいます
なにか、回避策はありますか?

private BufferedImage getImage( InputStream inf ){
  JPEGImageDecoder id = null;
BufferedImage inbuf = null;
  //画像の読み込み
try {
id = JPEGCodec.createJPEGDecoder( inf );
//BufferdImageへの変換
inbuf = id.decodeAsBufferedImage();
} catch ( Exception ex ) {
ex.printStackTrace();
}
return inbuf;
}
0392388NGNG
以下はあるプログラムの一部ですが、バグがあるらしく
Human Remove!!
と表示されません。何でですか?
ちなみに、vec_time, vec_planの要素数は同じです。
エラーメッセージは
java.util.NoSuchElementException
at java.util.Vector.firstElement(Unknown Source)
at (クラス名).run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
です。

public void run(){
Integer now, goal;
Integer wait;

try {
do {
wait = (Integer)vec_time.firstElement();
vec_time.removeElementAt(0);
now = (Integer)vec_plan.firstElement();
vec_plan.removeElementAt(0);
goal = (Integer)vec_plan.firstElement();
ev.set_now(now, goal);
th.sleep(wait.intValue());
}while(vec_plan.size() != 1);
System.out.println("Human Remove!!");
th.sleep(3000);
}
catch(InterruptedException e) {
System.out.println(e);
}
}
■ このスレッドは過去ログ倉庫に格納されています