トップページ⇒tech
1001コメント322KB

【初心者】Java質問・相談スレ4【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。雑誌や宿題などの疑問を質問するときは出展を明記した
ほうが解決が早いです。

関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)


JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。
0092デフォルトの名無しさんNGNG
-versionやsystem properties
0093デフォルトの名無しさんNGNG
>>92
初心者はそれだけじゃわからない罠
0094デフォルトの名無しさんNGNG
>>91

IE ならば

1. [ツール(T)]−[インターネットオプション(O)] の [詳細設定] を開き、
2. Microsoft VM の [Javaコンソールの使用] にチェック
3. IE を再起動し、[表示(V)]−[Javaコンソール(J)]
0095デフォルトの名無しさんNGNG
nativeって、どういう意味があって、どういう使い方するの?
0096デフォルトの名無しさんNGNG
>>94
ありがとうございました。
どうぞお納めください。
ttp://member.nifty.ne.jp/kannoudog/Photo/Vol1/photo8.jpg
0097デフォルトの名無しさんNGNG
>>96
女の人だったらどうするんだよ
009827(前スレ952)NGNG
>>97 あっ!

>>94さんごめんなさい。
男性にしろ女性にしろこの画像が気に入るとは限らなかったですね。
もし気分を害したならそれは当方の過ちです。
どうぞ叱ってください。罵ってください。
すみませんでした。
0099デフォルトの名無しさんNGNG
>>95
native -> ネイチブ -> 自然
これからわかるようにC言語を通じて機種依存のコードが書けます。
010095NGNG
ありがとう。今、
class test {
 native int nativemethod(int ch) {
  return ch;
 }
}
ってやってみたらコンパイルエラーになったので、少しわかってきた。

javaのプログラム上では(nateveで修飾した)メソッドの宣言だけしておいて、
実際の動作は別なところに(Cなどで)記述するってことだね。
で、Cなどからアクセスするためのインターフェースや規約は
ドキュメントのJNIのところに書いてあると。(全然読んでないけど)

実際に必要になるまでは、この程度の理解でよいのかな。
0101デフォルトの名無しさんNGNG
>>99
あ、気になる
ネイティブコード、ネイティブイベントって使い方するよね
コンピュータではネイティブ=機種依存でいいのかな
もーちょい詳しくお願いプリーズ
0102デフォルトの名無しさんNGNG
>>100
全然だめだろ……。指摘しようにもどこから突っ込んだらいいかわからん。
0103デフォルトの名無しさんNGNG
>>102
説明が下手な方は、このスレから去って下さい。
010495NGNG
そんなに変かな。
>>100は既存のソースに出てきた場合のことではなく、
自分で実装する場合のことを書いたんだけど。
「仮にnativeなメソッドを実装しても(javaソース上では)宣言部を書くだけ」と書いたつもり。
もちろん、他の誰かが書いたソースにnativeが現れたら、
それが「実際は別の.soなり.dllなりに実装されていてそれを呼び出している」なんて
あたりまえだと思ってるし。

それともJNIとは関係ないってことかな。
(ドキュメントの/jni/spec/design.doc.htmlにもあるのもみつけたので
全く無関係ではないだろうけど、nativeが全てJNIを使っているわけではないという意味で)

まあ、いいや。使いもしないのに質問した俺が悪いんだし。
010595NGNG
そうそう、
class test {
 native int nativemethod(int ch);
 public static void main(String[] args){
  test t = new test();
  t.nativemethod(1);
 }
}
これをやったらコンパイルは通って、実行時エラーになるのは確認済み。
ライブラリをリンクしてない(もちろん作ってない)から。
0106デフォルトの名無しさんNGNG
エクスプローラーのようにファイルをツリーで表示させたいのですが、
大量にディスク上のツリー情報を読み込むとに時間が掛かります。
この場合どうすれば良いでしょうか?いま自分が考えているのは、
表示されているディレクトリのアイコンをクリックすると、その時点で
そのディレクトリ以下のディスク上のツリー情報を初めて読み込み、
表示するという方法です。(proxyパターンの遅延処理のような)
0107デフォルトの名無しさんNGNG
異なる JVM から非同期に入出力が行われるファイルがあります。データベースが
使えない場合、ロックファイルを用意して獲得できなかったらスリープ、より
良い方法はありますか?

File lock = new File("hogehoge.lock");
boolean locked = false;
for(int i=0; i<10; i++){
  if(lock.createNewFile()){
    lock.deleteOnExit();
    locked = true;
    break;
  }
  Thread.sleep(200);
}
if(! locked)  throw new HogeException("Lock Pending");
try{
  // … ファイル入出力処理
} finally {
  lock.delete();
}
0108デフォルトの名無しさんNGNG
>>107
それ、どうしても異なるVMが直接ファイルを扱わなきゃ
いけないの?
0109デフォルトの名無しさんNGNG
今、swingの勉強中なのですが、
どうしてサンプルのソースはどれもJFrameを継承してるんでしょうか
継承しなくてもnew JFrameでいいように思えるのですが・・・
0110デフォルトの名無しさんNGNG
>>108
いやアプリの制限として「2 つ以上立ち上げんな」「ファイル共有すんな」
でも良いんだけど、Pure Java, no DB のプロセス間リソース問題って
これしかないよな、と思って意見を聞いてみたところ。

以前にも異なるコンテキストのサーブレットで同じような問題に
ぶち当たったし (そんときはあきらめて同一コンテキストにした)。
0111デフォルトの名無しさんNGNG
>>109
そうしたい人はそうすればいいです。
あれはこっちのクラス、これはこのクラス、あっクラス名間違えたとか延々やりたいのなら。
0112デフォルトの名無しさんNGNG
>>110
File.createNewFileはアトミックであることが仕様。
でもプロセス間のリソース共有するのにこれしかないか、
という話なら、RMI使うとか手段はあるんじゃない?
0113デフォルトの名無しさんNGNG
>>112
そうか RMI を忘れてたな。
でも今「お手軽 one JSP 掲示板!! ファイルコピーで 2ch 型掲示板立てまくり!!」
とかいうのに挑戦してるんだわ。該当ファイルが消えたら notify() されるような
都合の良い API なんて無かったよね。

いや、参考になりました。感謝です。
0114デフォルトの名無しさんNGNG
>>111
GUIの制約とかじゃないのね。スッキリしました、THX.
0115デフォルトの名無しさんNGNG
>>106
JTree.DynamicUtilTreeNodeつかいなされ。

>>113
そのファイルアクセス専用のちっちゃいサーバプロセス立ち上げるのが普通だよね。
RMIにするかソケットにするかは、好みの問題かなあ。どっちがいいんだろうね。

>>111
GUIコンポーネントを継承するなんて、オーバーライドしたいときでもない限り
めったにやらないぞ。機能をそのまま使うときは専ら所有して委譲+publicメソ
ッドでプロパティ変更。

素人ですか?
0116デフォルトの名無しさんNGNG
>106
それ、前に作った事ある。
俺も君の考えてるようにしたよ。
ディレクトリを示すノードにはダミーのノードを1個追加しといて、ハンドルを無理やり表示。
TreeExpansionEvent 拾ってダミー削除&ノード追加みたいな感じ。
JBuilder のファイルダイアログ?を目指してみた。

115氏の言う JTree.DynamicUtilTreeNode を使えばもっと簡単に出来るのかも。
てゆうか使い方がわからなかったんだよね・・・。
0117デフォルトの名無しさん(デコード?)NGNG
16進の文字コードを「文字」に変換するとき

char c = 0x301C;
System.out.println(c);

こんなかんじで文字が見れるのですが、

この16進の文字コードを文字に変換して、
Stringに格納するにはどうしたらよいのでしょうか?

char c = 0x301C;
String str = ?????(c);
0118デフォルトの名無しさんNGNG
javaでも覚えるか〜
0119デフォルトの名無しさんNGNG
>>117
String str = "\u301c";
or
char[] c = {0x301c};
String str = new String(c);
0120デフォルトの名無しさんNGNG
>>115
> GUIコンポーネントを継承するなんて、オーバーライドしたいときでもない限り
> めったにやらないぞ。

は〜
0121デフォルトの名無しさんNGNG
>>115
> GUIコンポーネントを継承するなんて、オーバーライドしたいときでもない限り
> めったにやらないぞ。

ぷ〜
0122デフォルトの名無しさんNGNG
>>121
どうやらあんたはVectorを継承してStackを作るバカと同レベルらしい。
0123デフォルトの名無しさんNGNG
120は問題なく 121は問題ありなのか・・・
0124デフォルトの名無しさんNGNG
>>122
ほもしろすぎ。しんで。
0125デフォルトの名無しさんNGNG
>>122
市ね場?
0126デフォルトの名無しさんNGNG
メインクラス(main関数のある)のあるディレクトリを取得する方法を教えて
0127デフォルトの名無しさんNGNG
>>126
.
0128デフォルトの名無しさんNGNG
>>126
クラスから実行するだけじゃないという問題は無視して?
0129デフォルトの名無しさんNGNG
(main関数のある)
0130デフォルトの名無しさんNGNG
ネタっぽいな。
0131デフォルトの名無しさんNGNG
釣られたのか・・・シュボーン
0132132NGNG
某サイトから情報を読んで、それを加工してファイルに記録したいのですが、
そういう場合は、情報をどこに読み込んでどこで加工するといいのでしょうか?

普通に変数に読み込んで編集してその内容をファイルに書くのですか?
なにか良い方法があったら教えて下さい。
0133デフォルトの名無しさんNGNG
>>132
お好きなように、としか。

URLクラス、Socketなどなどでとってきて
0134132NGNG
>>133
> お好きなように

どんな方法を使うのが一般的ですか?
0135デフォルトの名無しさんNGNG
>>133
> URLクラス、Socketなどなどでとってきて

>>133さんは、どういう意味でこれを書いたの?

0136デフォルトの名無しさんNGNG
>>133
なにか勘違いしてない?
0137デフォルトの名無しさんNGNG
スーパークラスのオーバーライドしたメソッドを呼ぶにはどうしたらいいのでしょうか。
0138デフォルトの名無しさんNGNG
>137
super.A()
0139デフォルトの名無しさんNGNG
>>137
super.method(); だがサブクラス以外から呼ぼうとしてもだめだよ。
0140デフォルトの名無しさんNGNG
Red Hat Linux 7.3でSwingを使ってダイアログを表示したら
日本語部分が文字化けするんだけどなんででしょうか。
0141デフォルトの名無しさんNGNG
>>138>>139
ありがとうございます。

もう一つお願いします。
C++のprotectedと同じアクセスレベルはないのでしょうか。
自クラスとサブクラスからのみ参照可能なアクセスレベルです。
0142デフォルトの名無しさんNGNG
>141 無い。
0143デフォルトの名無しさんNGNG
>>142
がーん。ありがとうございます。
0144デフォルトの名無しさんNGNG
>>141
完全に同じじゃないけど protected。同一パッケージ内からでもアクセスできて
しまうが、1パッケージに全部クラスぶち込むようなウンコ設計じゃなければ
便利よ。
0145デフォルトの名無しさんNGNG
>>139
サブクラス以外から、スーパークラスって呼ばないと思われる。
0146デフォルトの名無しさんNGNG
>>145
C++ だとそういう呼び出し方もあるのでわざわざ断ってる。
0147デフォルトの名無しさんNGNG
>>146
最初から「C++でいう」を付けろ。 いまさら言い訳だろ?
0148デフォルトの名無しさんNGNG
>>147
しつこいなおまえ。C++ 使えないのは分かったからもう消えて良いよ。
0149デフォルトの名無しさんNGNG
C++ すら知らない人間でも教師ヅラできるスレはここですか?
0150デフォルトの名無しさんNGNG
>>148
147しか書いていませんが、しつこいですか?
言い訳野郎うざいよ。消えろよ
0151デフォルトの名無しさんNGNG
>>148
恥ずかしいなお前
0152デフォルトの名無しさんNGNG
スーパークラスのメソッドの呼び出し方も知らない奴が、サブクラス外から
呼び出せないって知ってると思うか? C++ 移行組ではないという保障は?
VB 上がりの莫迦 ウザイ
0153デフォルトの名無しさんNGNG
>>152
意味わからん
0154デフォルトの名無しさんNGNG
つまり、139がきちんと説明をすれば問題はなかったということですね。
0155殺伐イヤン♪NGNG
旦⊂(`Д´)お前らマターリしる!
0156デフォルトの名無しさんNGNG
>>152
>>147
0157デフォルトの名無しさんNGNG
オーバーライドされたメソッドのスーパークラスの方を外から直接呼べないか
とか言ってた奴、このスレだったか知らんが以前にもいたな。そこらへん記憶
にあれば >>139 の指摘になると思うが。
0158デフォルトの名無しさんNGNG
>>144
protected とか アクセス指定なしを
連発されたパッケージもどーかと思うよ。
0159デフォルトの名無しさんNGNG
super 修飾子がサブクラスからしか使えないのは Java 常識
⇒ super を知らない初心者にそんな常識は通用しない

と考えて >>139 を書いたんだがな。想定外の自演莫迦が釣れちまったようだ。
0160デフォルトの名無しさんNGNG
>>158
どういう意味?詳しく説明規模
0161デフォルトの名無しさんNGNG
>>160
クラスを作るときにはキチンとアクセス制御しておこうよ。 っていう感想なんじゃないかと推定
0162デフォルトの名無しさんNGNG
>>159
はぁ?
0163デフォルトの名無しさんNGNG
「同一パッケージ内からでもアクセスできてしまう」
の方を活用しすぎているパッケージはどーかと思う、という話です。
0164デフォルトの名無しさんNGNG
>>159
最初からみんなでお前は説明不足だって言ってるじゃん。認めろ
0165デフォルトの名無しさんNGNG
>>160
>>159 じゃないけど、あまりアクセススコープ考えないで設計された
パッケージの事じゃねー?

フレームワーク系の機能作ってると、クラス間の協調機能を外に公開
したくない目的でパッケージプライベートとか多発することもあるけど。
0166デフォルトの名無しさんNGNG
>>163
そういうことか。
0167デフォルトの名無しさんNGNG
>>159
もっとわかりやすく説明してごらん? JavaとC++の違いを説明しているのに言葉1つ1つに説明がないからなにを
いいたいのかわからんのだよ。
0168デフォルトの名無しさんNGNG
この辺がバカってことでもういいよ。
>>158-159
0169159NGNG
>>168
俺もっすか…
0170デフォルトの名無しさんNGNG
> 最初からみんなで
いやに説明的なだな (藁
で、結局自分の ヴァカ さ加減を晒したので顔真っ赤にしてムキになってると (激藁
0171158NGNG
>>169
俺が馬鹿だったんです。ごめんなさい。
0172デフォルトの名無しさんNGNG
言葉足らずなだけでしょ。もういいよ。
0173デフォルトの名無しさんNGNG
>>167
super 修飾子がサブクラスからしか使えないのは Java 常識
⇒ super を知らない初心者にそんな常識は通用しない
⇒ C++ 移行組ならサブクラス外からも使えて当然と思っているかも知れない

だな。
0174デフォルトの名無しさんNGNG
どう考えても>>139==>>159の方が真っ当。
煽ってる連中の頭弱すぎ。
0175デフォルトの名無しさんNGNG
ごめん すごく気になったんだけど


>>170
> 結局自分の ヴァカ さ加減を晒したので

139以外がバカ晒しているのってどれ?
0176デフォルトの名無しさんNGNG
>>174
論拠言わないただのアフォがやって参りました!
0177デフォルトの名無しさんNGNG
>>174
内容について話しましょうね。
0178デフォルトの名無しさんNGNG
>>173
煽られても、説明下手だな。がんがれよ
0179174NGNG
一杯釣れるなー。
いや、一人かも知れない というか一人であってくれと切に願うが。

>>173
全然違うと思うがな。
C++組の事なんか意識するまでも無く、superを外から使えないかと考える奴がいる事は十分考えられる。
0180デフォルトの名無しさんNGNG
>>178
おまえの読解能力が低いだけだから安心して宿題やれ。
0181デフォルトの名無しさんNGNG
>>179
バカはすっこんでろ
0182デフォルトの名無しさんNGNG
>>179
ねぇねぇ何の話し?
0183デフォルトの名無しさんNGNG
>>168
頭の弱さを晒してる日本語だな。
0184174NGNG
まぁ、アホは死ねや(藁
superクラスは多重継承の場合は配列になっている。
注意が必要だぞ。初心者諸君。

>>181
お前もな。C++組を代表して言っておく。
0185174NGNG
騙り厨まで(・∀・)ツレタ!!

つーか>173&>184、何でそこまでC++に執着すんの?なんかコンプレックスでもあるのか?
0186デフォルトの名無しさんNGNG
>C++組を代表して言っておく。

使いこなせもしない癖に何ボケてんですか??(ププ
0187173NGNG
>>185
いや、無いけどさ。当然と思ってる事って案外ハマりどころじゃん。そんで
今回の件は C++ じゃ当然できることだから。
0188デフォルトの名無しさんNGNG
メソッドっていつ使うのですか?
参考書を見る限り、文が短いせいか
別に必要ないように思えるんですけど

どういった状況になったらメソッドが有効ですか?
素人レスごめんなさい
0189デフォルトの名無しさんNGNG
>188
ス、スゲエ
0190デフォルトの名無しさんNGNG
代表されたくは、無いな、やっぱりな。
0191デフォルトの名無しさんNGNG
おやくそく。
>>188
使う意味がわからないうちは、使わないでいいです。
(っても、Javaスレだよな、ここ…)
■ このスレッドは過去ログ倉庫に格納されています