【初心者】Java質問・相談スレ47【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath
前スレ
【初心者】Java質問・相談スレ46【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1085129540/l50
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/ */
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGhttp://java.sun.com/j2se/1.4.2/ja/download.html
Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java 2 プラットフォーム SE v1.4.0
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
0006デフォルトの名無しさん
NGNG10からカウントダウンするのを表示させようと思うのですが、
スレッドを使わずお手軽に処理を一時停止する方法はありますでしょうか?
0007デフォルトの名無しさん
NGNGそれごときなら Timer の方がかえって面倒
0008デフォルトの名無しさん
NGNG当方、Eclipseを使ってますがthread.sleepはSunが推奨してないらしく
コンパイル、実行共に問題は無いのですが黄色いびっくりマークが表示されててなんか気持ち悪いんです。
他の方が書いたソースなんか見てもも.sleepを使ってるようですし。Sunが推奨してるやり方ってあるのかなーっと。
0009デフォルトの名無しさん
NGNGThread.sleep
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGWin2000、MS-JVM、VJ++6.0という環境で
アプレット上にjava.awt.Choiceを配置して複数の選択項目から1つ選ぶ
サンプルプログラムを作っているのですが
選択項目を9個以上addItemさせると選択リストに
スクロールバーが表示されるてしまいます。
選択リストの表示項目数はどうやって指定するのでしょうか?
0012デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGappクラスからprinterクラスを呼び出すといったものです。
本来importステートメントを使わないといけないと思うのですが、
使わなくてもコンパイルできました。なぜ通ったのか気になります。
ご教授ください。
0015デフォルトの名無しさん
NGNG同じパッケージ内ならimport不要だよ
0016デフォルトの名無しさん
NGNGいうわけですね?
0017デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGを貼り付ける方法はないですか?
AWTだとできないこともないみたいなんですが・・・。
0020デフォルトの名無しさん
NGNGできるのは 1.2 以降対応の場合。(swing は 1.2 以降だから当然)
JRE のおまけで plugin が入ってるなどすればOK。
002114
NGNGもちろんimportを使ってです。するとシンボルを解釈処理できませんと・・・
結論として違うディレクトリにあるクラスを参照する場合は必ず
CLASSPATHや-classpathを使わないといけないのですか?
0022デフォルトの名無しさん
NGNGアクセス指定の問題と思われ。
0023デフォルトの名無しさん
NGNG毎度毎度の質問ですね。
>違うディレクトリ
どこにどう? パッケージとディレクトリ階層のことはちゃんと分かってやってるんだよね?
>CLASSPATHや-classpathを使わないといけないのですか?
クラスパスは、必ず要る。指定しないときは、"." を、君が(いわば積極的に)指定したとみなされる。
どのクラスパスが有効になってて、それ+用意したディレクトリのつながりが、
用意したソースの package 宣言と合致してるかどうか、意識してコンパイルしないとダメ。
加えて、必要なら sourcepath も指定。
0024デフォルトの名無しさん
NGNGimportはつまりは指定したディレクトリを参照の候補にするという意味に置き換わる
importを使わない時のディレクトリはどこか、つまりはカレントと
002514
NGNG>パッケージとディレクトリ階層のことはちゃんと分かってやってるんだよね?
パッケージとはクラスファイルの集合のことですよね。
ディレクトリ構造も理解はしていると思います。
>どこにどう?
C:\Java\app
C:\Java\sub\printer
あとpackage宣言ですか?まだ独学初日なものですからそこまでいってないです(恥
単に二つのクラスを作り同ディレクトリ内と、そうでない場合でコンパイルして
みての疑問です。
コアパッケージの扱い方はjava.lang.*とかでC系のincludeに似ているのでわかるの
ですが、Javaの場合複雑なので(ry
0026デフォルトの名無しさん
NGNG>ディレクトリ構造も理解はしていると思います。
>あとpackage宣言ですか?まだ独学初日なものですからそこまでいってないです(恥
理解してないっぽいな。
それぞれを個別に、断片的に理解してたってしょうがねーんだぜ? 2者の関係のことを聞いてんだぜ?
>C:\Java\app
>C:\Java\sub\printer
それをそれぞれでどう呼び合って、どうコンパイルしてるんだ?
(先回りで1つ聞いておく。君の状況に合わなくて意味が分からなかったら無視していい。
「App のソースに Printer を使うようなことが書いてあって、
Printer.class (.javaじゃない) がどこにあるのか、コンパイラはどうやって知ると思うんだ?
ローカルシステムのディレクトリ構造全部探すのか?」)
それと、クラス名は大文字から始めれ。混乱の元だ。
0027デフォルトの名無しさん
NGNGつまりですね、「ディレクトリを分ける」からには動機があるわけなんです。
君の動機がなんなのか知りませんけど、
普通の人は「あとで使い回しする」「違う仲間だから」ゆえに「別々に管理したい」となるわけで、
Java はそのために package ちう概念を提供して、開発時や実行時のディレクトリ構造と連携をとってるんです。
上に述べたような動機があるなら package について勉強すべきだし、
そうでもなくて今すぐ勉強するのもしんどいなら、ディレクトリ分けなんてやめなされ。
0028デフォルトの名無しさん
NGNGペーンの中にキャンバスを入れたときに、
キャンバスにおける座標 P が画面に見えるようにスクロールしてほしいんですが、
なにやら挙動不審な動作を示します(法則性はあるようなないような)。
このメソッドを使うときの注意点などありますでしょうか。
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG・右、下のスクロールバーの状態もおかしいのか?
・Canvas の PreferredSize との関係はどうか?
・paint 方法に問題はないか?
例えば、再描画が必要な部分しか clip されないようだが・・・(ちょっと確認しただけで、うろ覚え)
003228
NGNGCanvasをsetSize()したあとにScrollPaneをdoLayout()したところ
とりあえず指定した座標が画面に見えるようになりました。m(_ _)m
ただ、その見えた時のスクリーン座標が一定しません(端っこの点を指定してるわけでもないのに)。
例えば必ずペインの中心に持ってくる方法はありますでしょうか。
0033デフォルトの名無しさん
NGNG>例えば必ずペインの中心に持ってくる方法はありますでしょうか。
いまいち意味がわからん。
きれいに絵かいてうpすれ。
0034デフォルトの名無しさん
NGNG二人のやり取りを見てて混乱しちゃったんだけど、ディレクトリ分けする以上
パッケージ宣言しないといけないと思ってたけど違うのかな?
まーオラがディレクトリ分けするようなレベルのプログラムを組むのはまだ先なんだわさ。
0035デフォルトの名無しさん
NGNG自分のディレクトリからは他のファイルをそのまま実行できるけど、そうでない場合はルートから辿ることになる
じゃあそのルートって何処を指してるの?
それはクラスパスに設定されたディレクトリや圧縮ファイルを纏めた、仮想アーカイブディレクトリのこと。
パッケージと呼ばれるものは、さらにその中にあるディレクトリのことで、クラスとはファイルのこと。
だから同じディレクトリ内のものにはそのままアクセスできるけど
ex) prompt> sample.out
> run...
ディレクトリが変わるとルートから指定(import)してあげなくちゃいけない
ex) prompt> sample2.out
> file not found
prompt> /mypackage/sample2.out
> run..
0036デフォルトの名無しさん
NGNGex) prompt> /mypackage/sample2.out
> run...
import版はこっち
ex) prompt> cd /mypackage
prompt> sample2.out
> run...
0037デフォルトの名無しさん
NGNGクラスパスは複数のディレクトリをひとつのルートと仮想できること。
importは複数のディレクトリをカレントディレクトリと仮想できること。
この点。
0038デフォルトの名無しさん
NGNG激しく自己満足のかほり。ww
スラッシュ区切りのUNIX的言い回しで、import されるパッケージとその階層を
ディレクトリの階層に置き換えて説明しているらしい。
out っていう拡張子はUNIXの世界の実行形式を表してるのかしら?
> プロンプトとクラスパスやimportとの違いは
プロンプト???ハァ?
自分で勝手に持ち出した用語「プロンプト(prompt)」との違いを語られてもねぇ・・・。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGなんか嫌な事でも有ったか?
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGPATHにカレントディレクトリを含めていればな。中途半端なことを言うな。
実行ファイルはPATHからたどれるものが実行される。
クラスファイルはCLASSPATHからたどれるものが使用される。
実にわかりやすい。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGPATHって何ですか?
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGSwingだSWTだ言ってもここらへんが全然ビジュアルじゃねぇw
0049デフォルトの名無しさん
NGNG0050login:Penguin
NGNG何がビジュアルなんだ?その考えで言えば?
005128
NGNGブラウザで開いてみたところ、
java.security.AccessControlException: access denied (java.io.FilePermission xxx.txt read)
という例外が出て読み込めません。
同じディレクトリのファイルは読み込めると記憶していたのですが、違うのでしょうか。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGjarやディレクトリをドラッグアンドドロップすれば関連付け終了とかだな
0054デフォルトの名無しさん
NGNGブラウザ上で動くアプレットは、でふぉるとではソケット開くことも
ファイルシステムにアクセスすることもできません。
「サンドボックス制限」でぐぐりゃれ。
0055デフォルトの名無しさん
NGNG現在のカレントディレクトリから相対的に。
0056デフォルトの名無しさん
NGNG#define のような置換機能が無いのは致命的欠陥だと思います
0057デフォルトの名無しさん
NGNGビジネスロジックのエラー(検索結果が1件もなかった、登録しようとしていたデータが既に登録されていた等)
と、FormのValidaterでのエラーの表示方法を分けるにはどうしたらよいでしょうか。
例えばFormのValidaterでのエラーはポップアップのみで表示し、
ビジネスロジックのエラーはポップアップと画面の上方に表示するなどです。
よろしくお願いいたします。
0058デフォルトの名無しさん
NGNG違います。*クラスパス上*からです。
アプレットだとセキュリティ上制限がありますが。
005914
NGNG結局CLASSPATH環境設定しました。とりあえずコンパイルできましたが、
Exception in thread "main" Java.lang.NoClassDef found Error:app"
と出て実行できません。
0060デフォルトの名無しさん
NGNG最近はどの言語でも「何を表しているのか一目でわかる名前をつける」のが風潮です。
それこそ冗長と思えるくらいでちょうどいい。
>#define のような置換機能が無いのは致命的欠陥だと思います
CPPなり勝手に使ったらどうですか。
0061デフォルトの名無しさん
NGNGわけもわからず適当にCLASSPATH設定したんだろ。
CLASSPATHとコンパイル後のクラスファイルの生成される場所とが食い違ってる予感。
0062デフォルトの名無しさん
NGNGmainから呼び出される側のクラスファイルの場所をCLASSPATHに設定すれ
ばいいんですよね?
0063デフォルトの名無しさん
NGNGどういうエラー制御をしているのかわからんが、俺なら
Validatorでのエラーはinput元に返す。
Actionのinput属性を指定しておけば済む。
ビジネスロジックで起こったエラーは別のActionにforwardさせる。
global-exceptionでもいいかも。
> 例えばFormのValidaterでのエラーはポップアップのみで表示し、
> ビジネスロジックのエラーはポップアップと画面の上方に表示するなどです。
validate属性をfalse。html:javascriptはそのまま。
ビジネスロジックで起こったエラーはActionErrorやActionMessageなりをセットして
input元へ遷移するActionを呼び出して、jspで表示させる。
ポップアップもさせたいならjspでJavaScript部分を動的に書き換える。
すまんが、そのぐらいしか思いつかない。
0064デフォルトの名無しさん
NGNGmain の入ってるクラスもだよ。
呼ばれるクラスが呼んでるクラス、それが呼んでるクラス、とにかく全部。
0065デフォルトの名無しさん
NGNG>>54-55 に付け足してあげる。
アプレットが置いてあるサーバへの、リクエストとしてのアクセスはできる。
特に、HTTP アクセスでファイルを GET することはできる。
アプレット自体もクライアントから要求されて、サービスが応答して送ってるんだから、
おなじサービスを活用しない手はない。
もしアクセスしたいファイルが、内容の固定された読み込み専用ファイルなら、
jar 内につっこんで Class#getResource するのがおすすめ。
さもなければ http:// 〜 と URL を指定して読み込む。(ただし、ユーザがブラウザにURL指定すれば当然中身は見えちゃう)
書き込みは、書きこむ CGI を GET/POST するとか、書き込むことのできるサービスを鯖がわに用意しなければならない。
間違っても、サーバに対して File インスタンスでのアクセスはできない。
自マシンにサーバ立てないでローカルの html を直接ブラウザ開いてるなら・・・アプレットの使い方間違ってるよ。
アプレットにする意味がない。
006614
NGNGでもまだ疑問が残ったまま・・・
カレントディレクトリにあるクラスはCLASSPATH設定しなくても
いいはず。でも今回みたいに他のディレクトリの他のクラスを呼ぶときは
CLASSPATHが必要なのか不思議。
0067デフォルトの名無しさん
NGNG不思議でもなんでもない。仕様。
>>他のディレクトリの他のクラスを呼ぶときは
他のディレクトリはカレントディレクトリじゃないじゃない。
そのクラスがどこにあるかJVMは知らないし、指定されたところ(CLASSPATH)以外は探しに行かない。
006814
NGNG今回はカレントディレクトリにあるクラス(main側)を見て
CLASSPATH指定されたPrinter(呼び出される側)を参照したわけ。
なぜmainクラスのディレクトリにもCLASSPATH指定が必要か納得いかない。
0069デフォルトの名無しさん
NGNGクラスパス=JVMがクラスを探す範囲。デフォルトはカレントディレクトリ。
環境変数CLASSPATH=クラスパスを上書きする一手段
環境変数CLASSPATHを設定しない場合はデフォルトのクラスパスである
カレントディレクトリが検索範囲となるだけであって、クラスパスという
ものが設定されていないわけではない。
0070デフォルトの名無しさん
NGNGが上書きされるので、上書きするCLASSPATHの値にカレントディレクトリを
含めないとカレントディレクトリがクラスの検索範囲から外れてしまう。
0071デフォルトの名無しさん
NGNGhttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/findingclasses.html
を熟読のこと。
007214
NGNGおぉ。なるほど。理解しました。
しかし、CLASSPATHを指定しカレントディレクトリが上書きされてしまうの
であればコンパイルも通らないのでは。
0073デフォルトの名無しさん
NGNGjavac の sourcepath と classpath は別。
0074デフォルトの名無しさん
NGNG本は嘘や誤解を招く書き方であることもしばしばだし、
ひとまず sun が提示している内容のうち、理解できる分は理解しとかないといかんだろ。
0075デフォルトの名無しさん
NGNG>>69-70を100回読め
0076デフォルトの名無しさん
NGNGオプションをどういう風に指定したかは君しか知らんのだ。
どうしてうまくいったか、何故うまくいかないかなどを分析できるのは君だけだ。
それをろくにすることなく
>しかし、CLASSPATHを指定しカレントディレクトリが上書きされてしまうの
>であればコンパイルも通らないのでは。
と疑ってかかるような奴は成長しないし、
少なくともそういう書き方をしてる分には次第に相手にもされなくなる。
0077どうすんの?
NGNG携帯のアプリで3dゲームつくりたいのですが、
必要最低限用意する環境ってどんなものですか?
エミュレータとj2seはありますがそれ以外にjava3Dって必要なのですか?
また、DirectX使ったほうが良いとか言う話は聞いたことがあるのですが、
DirectXってwin専用APIなのではないのかと思うのですが?
何か認識が違うようでしたら教えてください。
0078デフォルトの名無しさん
NGNGWin では DirectX を使う奴を使えばそりゃ高速だな。(ここは JNI を知ってれば話は早いんだが・・)
携帯の 3D は、似てるだろうが、それとは異質のものとしてとってくれ(どっちもろくにやったことない)。
携帯のクラスライブラリをひろってきて、コンパイルが通ればそれでいいんだ。
エミュレータと一緒に手に入ってないか?
これ以上は専用のスレにでも行った方がいい。
0079どうすんの?
NGNG0080デフォルトの名無しさん
NGNGなんで使ってんの?
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG過去ログ等検索していたのですが
ttp://www.wakhok.ac.jp/~tomoharu/Java/csv/
こちらのサイトの「csv_1_0_1.zip (35,706 bytes) 」をそのまま利用しCSVのreadをしみたところ
1行の項目数が上手く取得できずに困っています。
test.csvの内容(実際にはセルごとに内容が区切られているので「,」は入っていません)
11,12,13
21,22,23,24
31,32
実行内容
FileReader f_read = new FileReader("test.csv");
BufferedReader b_read = new BufferedReader(f_read);
String line;
int i = 1;
int j = 0;
while((line = b_read.readLine()) != null) {
CSVTokenizer getCSVString = new CSVTokenizer(line);
//項目長チェック
System.out.println("line = " + line);
System.out.println("length = " + getCSVString.countTokens());
}
f_read.close();
008483
NGNG出力結果
line = 11,12,13
length = 4
line = 21,22,23,24
length = 4
line = 31,32
length = 4
予想としては
line = 11,12,13
length = 3
line = 21,22,23,24
length = 4
line = 31,32
length = 2
となると思っていたのですが、何故lengthが全て「4」となってしまうのでしょうか?
java使いの先輩方!どうかご教授くださいm(__)m
0085デフォルトの名無しさん
NGNGどういう意味?
, が入らなきゃ CSV とは言わないんだが。
出力結果が
line = 11,12,13,
length = 4
line = 21,22,23,24
length = 4
line = 31,32,,
length = 4
なら分かるんだがなぁ。
008683
NGNG>(実際にはセルごとに内容が区切られているので「,」は入っていません)
はexcelで見たときはという意味です。わかり辛くて申し訳ありません。
出力結果は85さんのおっしゃるとおり
最後にカンマが入っていました。出力結果をコピペしなかったので書きもれていました。
重ね重ねすみません><
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG・入力・出力は必ずコピペしましょう。つかまずよく見ましょう
2点目はパソコン初心者の心得ですよホンマ
008983
NGNGご指摘ありがとうございます。
たび重なる不手際申し訳ありません。
顔を洗って出直してまいります。
スレ汚し失礼いたしましたm(__)m
0090デフォルトの名無しさん
NGNGJUnitのインストールと起動確認まではできました。
そして、java -classpath d:\junit3.8.1\junit.jar junit.swingui.TestRunner "テストしたいクラス名"
を実行してみたんですが、Runボタンを押しても"Class not found "テストしたいクラス名""と表示されるだけでテストができません。。
何か設定とか必要なんでしょうか?
0091デフォルトの名無しさん
NGNGJUnit以前に>>2あたりを勉強しな
0092デフォルトの名無しさん
NGNGつくりたいんですがそういうことって出来ますか?
0093デフォルトの名無しさん
NGNGJAVA 2 SDK SE v1.4.2_04をウィンドウズ上からインストール中
インストールシールド展開後、インストールに入るのですが
JAVA(TM)仮想マシンが実行中なためJAVA(TM)UPdateをこのマシンにインストールできませんと出ます
起動直後、最小限のアプリケーション構成でインストールしてみましたが上記のような状況でインストールが正常に完了しません
どなたかご教授頂けると大変助かります。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGJAVA(TM)仮想マシンが実行中なためです。
0096デフォルトの名無しさん
NGNGど真ん中直球的なご回答有難う御座います。
ウィンドウズ上で動作するJAVA仮想マシンを用いるプロセスをgoogleで探しまして
該当すると思われるプロセスを殺して再度インストールしてみましたが同様の症状です。
クライアントに障害があるとも予想できたので3度程再DLを試してみましたが改善されませんでした。
宜しければヒントだけでも頂ければ大変助かります。
0097デフォルトの名無しさん
NGNGあたまわるいんですか?
0098デフォルトの名無しさん
NGNG右下にコーヒーカップでも表示されてないか?
0099デフォルトの名無しさん
NGNGそもそもインストールが完了してないのでアイコンは表示されていません。申し訳ないです。
0100デフォルトの名無しさん
NGNGエクスプローラーから java*.* を検索し
関係ありそうなのをかたッ端からフォルダごと削除しちまえ
もちろん at own risk で
■ このスレッドは過去ログ倉庫に格納されています