[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 15:14 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:10:53 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド100【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1175317038

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

次スレは>>980あたりで。

702 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:17:59 ]
ObjectInputStreamのreadObject()でファイルを最後まで読みたいんですがどうもうまくいきません。
whileのところが今のままではjava.lang.Object と int は比較できません。というエラーがでます。
どなたか教えてください。

/**************** ファイルから入力 *****************/
List messages = new ArrayList();
try{
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream( file ) );
Object obj;
// ファイルの終端に達するまで読み込む
while( ( obj = ois.readObject() ) != -1 ){
Map map = (Map) obj;
messages.add( map );
}
if( ois != null ) ois.close();
}
catch( Exception ex ){
ex.printStackTrace();
}
finally{
System.out.println( "end input" );
}

703 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:20:04 ]
whileの中の-1ってなんだ? 説明できるか?

704 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:24:28 ]
とりあえずclose()する前にflush()しとけ

705 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:28:07 ]
教える側も素人かよ^^;

>>702
とりあえずJavaDoc嫁。EOFを返すなどと何処に書いてある?
2chを辞書代わりに使うな、むしろ時間の無駄と分かるぞ。

706 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:31:41 ]
ObjectInputStreamのAPIドキュメントに
>>バイト単位の読み込みでは、バイトが読み込まれたときに -1 が返されます。プリミティブ読み込みでは、EOFException がスローされます。
こういうこと書いてたので-1が返るのかなと思ってました。
それじゃもっとよんでみます

707 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:39:57 ]
ああreadObjectはバイト単位でもプリミティブ単位でもないのかごめん

708 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:43:36 ]
>>700
どうしてそんな偉そうなんだ?

709 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:49:22 ]
>>708
逆ギレかよ、わかんねーならそれなりの態度があるだろうに

710 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 13:45:50 ]
2ch向いてねえな



711 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:04:19 ]
無職乙

712 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:22:35 ]
年数を入力して、うるう年と一般の年を判別後、月を入力して、
その月が何日あるかについてのプログラムを組んでみたのですが、

コンパイル問題が未解決です。
構文エラーがあります。"}" を挿入して MethodBody を完了してください。
構文エラーがあります。"}" を挿入して ClassBody を完了してください。

と出て実行できません。
最後の『 } 』の数は合っていると思うのですが、何故エラーが出ているのでしょうか?

713 名前:712 mailto:sage [2007/05/20(日) 17:23:51 ]
public static void main(String[] args) {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.println("今は何年ですか?");
String line=reader.readLine();
int year=Integer.parseInt(line);
if(year%4==0)
{
System.out.println(year +"年ですね。");
System.out.println("今月は何月ですか?");
line=reader.readLine();
int month=Integer.parseInt(line);

if(month==2){
System.out.println("2月の日数は28日です");
}else if(month==4 || month==6 || month==9 || month==11){
System.out.println(month +"月の日数は30日です");
}else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
System.out.println(month +"月の日数は31日です");
}else{
System.out.println("月数の範囲を超えています");}

}

714 名前:712 mailto:sage [2007/05/20(日) 17:24:33 ]
else if(year%4!=0)
{

System.out.println(year +"年ですね。うるう年です。");
System.out.println("今月は何月ですか?");
line=reader.readLine();
int month2=Integer.parseInt(line);

if(month2==2){
System.out.println("2月の日数は29日です");
}else if(month2==4 || month2==6 || month2==9 || month2==11){
System.out.println(month2 +"月の日数は30日です");
}else if(month2==1 || month2==3 || month2==5 || month2==7 || month2==8 || month2==10 || month2==12){
System.out.println(month2 +"月の日数は31日です");
}else{
System.out.println("月数の範囲を超えています");}
}
}catch(IOException e){
System.out.println(e);
}catch(NumberFormatException e){
System.out.println("月に入力できる数は1〜12の実数です");}
}
  }
}

715 名前:712 mailto:sage [2007/05/20(日) 17:26:50 ]
開発環境はEclipsです

716 名前:712 mailto:sage [2007/05/20(日) 17:58:54 ]
あれ?なんだかよく分からないうちに自己解決しました。

何が問題だったんだろう……

717 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:23:19 ]
つ保存していない
つ余計な括弧がある

つ右クリック ⇒ ソース ⇒ フォーマット

718 名前:デフォルトの名無しさん [2007/05/20(日) 19:32:20 ]
宿題があるんですけど教えてください。

719 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:36:31 ]
>>718
スレ違い

★★ Java の宿題ここで答えます Part 61 ★★
pc11.2ch.net/test/read.cgi/tech/1179168569/

720 名前:デフォルトの名無しさん [2007/05/20(日) 22:51:05 ]
スタンドアロンプログラムをWindows上で動かし、
フォルダを指定しエクスプローラを開く、
といった処理をしたいんですが、なかなか情報が見つかりません。

なにか良い方法があれば教えてください。
ちなみにGUIはSWTを使用し作成しています。



721 名前:デフォルトの名無しさん [2007/05/20(日) 23:25:16 ]
>>720
質問が良くわからないんだけどSWTでエクスプローラーを作ったって事?
他にGUIが見当たらないんだが・・・。

722 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:42:14 ]
>>720
Runtime.exec(String command)
どう開くかは適当に。
cmd /c start ......
とか
support.microsoft.com/kb/152457/ja?FR=1&PA=1&SD=HSCH
とか
ところで >>603-608 のながれと関係あるの?

723 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:52:30 ]
javaやってる人ってオブジェクトとインスタンスって混ざって言ってるような
きがする、なんか違いあるの?

724 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 01:32:36 ]
クラス + インスタンス = オブジェクト


725 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 06:13:54 ]
オブジェクトという名前の基底クラスがあるから紛らわしい

726 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 11:47:38 ]
テキストファイルの内容の一部だけ削除したいんですけど
一回全部よみこむ→該当部分削除→書込み直す
っていう方法は思いついたんですけど、
効率悪い気がするんですが、ほかにいい方法ってないですか?

727 名前:デフォルトの名無しさん [2007/05/21(月) 12:08:54 ]
ResultSet型のオブジェクトに代入されている結果セットのレコード数を知りたいんですが、何かいいメソッドって用意されていますか?

728 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 12:19:33 ]
いまこのページ(↓)を読んでパッケージについて勉強してました。
ttp://www.ytp.ne.jp/tech/java/sineruka/classpathhowto.html

このページで言うところの C:\Source\Java\test\HelloWorld2.class に対して
C:\Source\Java\test>java HelloWorld2
と実行するのと
C:\Source\Java\test>java test.HelloWorld2
と実行するので結果に差がある(前者はエラーになる)ことは確認しましたが、
いまいち納得ができません。

ディレクトリ直下のHelloWorld2.classを直接指定するのと
CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで
何が変わってくるのでしょうか?

729 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:04:27 ]
>>728
javaコマンドの引数に指定するのは、ファイル名ではなく
パッケージ名を含むクラス名(FQCN:完全修飾クラス名)であることに注意。

”java HelloWorld2”のコマンドは、
HelloWorld2.classを参照するよう指定しているのではなく、
クラスパスからHelloWorld2というFQCNのクラスを見つけて、
それを実行するよう指定している。
この場合、HelloWorld2のFQCNはtest.HelloWorld2なので、
該当するクラスがクラスパスにないためNoClassDefFoundErrorになる。

730 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:13:53 ]
>>728
補足。パッケージ名はclassファイル自体に埋め込まれるので、
HelloWorld2.classをC:\Source\javaに移動しても、
HelloWorld2のパッケージを移動したことにはならない。



731 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:53:20 ]
>>727
おまえはおれか


732 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:25:56 ]
まず訂正を。自分の書き込みを見てびっくりしたのですが、

>ディレクトリ直下のHelloWorld2.classを直接指定するのと
>CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで

の2行目は\test\HelloWorld2.classのミスタイプです。

>>729
回答ありがとうございます。
.classファイルを探すのではなく、FQCNでクラスを探しに行くから
test.HelloWorld2は存在するけれどHelloWorld2なんていう物は
存在しないという事ですね。

>パッケージ名はclassファイル自体に埋め込まれるので、
>HelloWorld2.classをC:\Source\javaに移動しても、
>HelloWorld2のパッケージを移動したことにはならない。

これについてですが、試しにソースはいじらずに.javaファイルを
C:\Source\Javaへ移動し、Message→HelloWorld2の順にコンパイルしたところ、
Messageはコンパイルできたものの、HelloWorld2はパッケージotamesiが
見つけられずにコンパイルできませんでした。
また、普通にコンパイルしたHelloWorld2.classをC:\Source\Javaに移動して
java test.HelloWorld2 してみたら
Exception in thread "main" java.lang.NoClassDefFoundError: test/HelloWorld2
が出てしまいました。
「パッケージを移動したことにはならない」というのは
「単純にフォルダ移動してもパッケージ情報(?)は変わらないから
 パッケージと同名のフォルダに入れておかなければならない」
という意味でしょうか?

733 名前:728 mailto:sage [2007/05/21(月) 14:28:00 ]
名前入れ忘れ。。。
>>732>>728です。

734 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:53:29 ]
>>732
そういう意味でおk

735 名前:デフォルトの名無しさん [2007/05/21(月) 15:33:15 ]
>>731
結局API読みまくった結果、ResultSetを直でいじくりまわすのはやめて、
内部クラス作ってそれのpublic変数に結果セットの最終行までResultSet.getStringしてって
ArrayListのオブジェクトにつっこんでArrayListのオブジェクト.size()しました。
配列のサイズきめたくて結果セットの行数しりたかったんですけど、配列作るよりArrayListつかったほうが何かすっきりしました

736 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:14:08 ]
>>732
合ってるがもっと単純明解な前提条件があるぞ。
フォルダの移動はOSのオペレーション、パッケージの指定はjavaの仕様。
根本的、本質的にもこの二つはまったくの別物。
くっつけて考えてしまうならそこが"間違えて分からなくなってる"部分だ。
まずは問題の切り離しからだな。

737 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:52:51 ]
ネットワーク越し(現在使用しているのはRMI)にIterator的なオブジェクトを
渡して受け取り側が辿れるようにするには、各メソッド内で通信するよう自前で作るしかないのでしょうか。

738 名前:デフォルトの名無しさん [2007/05/21(月) 22:04:02 ]
Byte a[]={0,0,0,1};

をa[0]〜a[3]のバイト列をもつint型に変換する方法教えてください。

739 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:11:55 ]
a[0]<<24|a[1]<<16|a[2]<<8|a[3]

740 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:24:35 ]
すまんすまん
a[0]<<24|a[1]<<16&0xff0000|a[2]<<8&0xff00|a[3]&0xff
こうだ



741 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:36:31 ]
>>738
new DataInputStream(new java.io.ByteArrayInputStream(a)).readInt();
java.nio.ByteBuffer.wrap(a).getInt();

742 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:58:25 ]
>>727
適当なトランザクションレベルで select count(適当なカラム) from テーブル
という SQL を発行すればいいよ。リソースを消費を気にしないなら count(*) でも可。

743 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:10:41 ]
>>735
対策まで一緒だな
おまえはおれか

744 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:13:21 ]
>>737
質問の意図が良く分からんけど
org.JSON とか使うと解決するかもね

745 名前:デフォルトの名無しさん [2007/05/22(火) 00:55:41 ]
サーブレットでsubmitやセッションしたりしないでその画面のままテキストフォームから入力された値を取る方法ってありますか?


746 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:14:01 ]
セッション関係無くね?

747 名前:720 [2007/05/22(火) 01:24:15 ]
ご回答してくれた方ありがとうございました。

>>721
自分で作ったGUIからWindowsのエクスプローラを呼ぶには?
という質問でした。

結局JNI経由でWINAPIのShellExecuteを呼び出す形式で解決しました。
Webしかやったことない自分としては
GUIは妙に難しく感じます^^

748 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:25:57 ]
JavaScriptを使えばいい
フォームの入力チェックにも使われている

あー仕事がほしいー

749 名前:720 [2007/05/22(火) 01:29:44 ]
>>745
Submitしないという時点でクライアント側の処理になります。
サーブレットでの処理は無理です。
Javascriptが一番手っ取り早いのでは?


750 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:46:17 ]
>>745
言葉が意味わからんがsubmitなしではservletに渡すことは普通は無理

XMLHttpRequestを使えばできる(ブラウザー依存)
いわゆるAJAXだな




751 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:49:06 ]
>>745

Ajax

GWT


752 名前:デフォルトの名無しさん [2007/05/22(火) 05:56:30 ]
>>727
実は最初はそうしてたんですが、レコード数が膨大でcount(*)のリソースがどうしても気になって気になって、今の方法にしました。
>>743
もうステップ数を気にする時代ではないような気がしたので、リソースとのバランスを見ても、この方法がやはりベストなのかなと。
贅沢を言わせてもらうと>>727を読んだ時点で教えてもらいたかったです・・・



753 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 06:11:20 ]
>>752
ごめん
ほぼ同じペースで同じことやってるみたいなのでw

当初は ArrayList へ移し替えやってたんだけど
いろいろ事情があって
結局いまは ArrayList はやめて JSONArray に変更したんだけど
標準のコンテナ(Hash Map など)よりも意外と便利で病みつきになりそう


754 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 10:12:13 ]
>>744
ありがとうございます。
質問の意図が分かりづらかったようですみません。

ネットワーク越しにリストとなるデータを転送する際、コレクションや配列をそのまま渡すと
データが大量だった時にメモリを圧迫する可能性があるため、一気に渡すのではなく
少しずつ渡す必要があります。

そうするとIteratorのようなインタフェースから少しずつ取得できると理想ですから、
現在の私の状況であれば RMI 通信を隠蔽した Iterator 実装があると理想だったのですが、
見つけられなかったため質問しておりました。

JSONライブラリがこの背景と合っていたか不明ですが、少々調べてみます。

755 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:48:01 ]
>>754
その渡そうとしているデータは、まさかDBからのクエリ結果だったりはしないよね?

756 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:07:53 ]
なんでSunの命名規約はパッケージ名を全て小文字にすることになっているんですか?
longpackagenameのように長いと読みにくいです。
LongPackageNameの方がいいと思うのですが。

…とうちのリーダー(Java未経験)が仰ります。
どうすればいいでしょうか?

757 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:29:05 ]
>>756
long_package_name にするとか……

758 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:38:23 ]
大文字と小文字を区別する環境にも、そうでない環境にも同じように対応するためじゃね?
ディレクトリ名がHogeとhoge両方作れてしまうOSとか。

759 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:49:23 ]
>>756
どうぞご自由に。

それは厳密に規定された規約というよりガイドラインのはずです。
名前の衝突回避と読みやすさのために用意されています。

外部に公開するライブラリとかには止めた方がいいと思いますが
閉じたアプリケーションで、利用する分には害がないと思います。

が、自分の経験だけに基づいてプロジェクトに他の言語の流儀を持ち込むと
利用しているライブラリ等とずれるので、かえって汚くなってしまう可能性もあります。

In Rome, do as the Romans' do.

760 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:49:58 ]
>>755
いえ、Iteratorの開放がリソースを制御していることはありません。
外部ライブラリですが、外部ライブラリがそのまま持ってしまっていると言う
事もないようです。



761 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:07:45 ]
>>759
いまは仕様じゃなかったか?
ファイルシステムの都合で利用できない文字を含む場合はUnicodeエスケープしろって書いてなかった?

昔はクラス名もパッケージ名も単語の頭は大文字を推奨してたけどすぐ変わったよ。

762 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:03:44 ]
www.itmedia.co.jp/enterprise/articles/0608/25/news010_3.html
{"ResultSet":
{"type":"web",
"totalResultsAvailable":242000000,
"totalResultsReturned":3,
"firstResultPosition":1,
…略…,
"Result":[
{"Title":"Apple",
"Summary":"Macintosh hardware, software, and Internet tools. Offering Quicktime info, developer resources, and other items related to Apple computers.",
"Url":"http:\/\/www.apple.com\/",
…略…
},
{"Title"、"Summary"、など次の結果…},
…略…
}
}

763 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:14:56 ]
Eclipse使っている方いますか?

764 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:39:32 ]
むしろEclipseでないと無理。

765 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:56:02 ]
swingで一番上のJFrameでKeyEventを取ろうとしてもうまく取れません。
簡単なtoy programだとうまくいくのですが、panelをいくつか入れ子にしたものだと上手くいかない。
なにか理由が考えられるでしょうか? できればそこら辺を判り易く詳しく解説してあるサイトでも
教えていただければ幸いです。 あと、panelの上手な入れ子の仕方などの解説もあればうれしいです。
(ちゃんと表示されないこともあるので・・・)

766 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 04:15:33 ]
>>765
その入れ子にしてるコンポーネント階層とどういう実装してるか言わないと分かる訳ないだろう。
描画に関しては重量と軽量を混ぜてて軽量が正しく描画されないって話じゃなければ描画を破壊してるだけ。

767 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 04:36:38 ]
>>765
とりあえず>>403以降のやりとり見てみそ

768 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:02:04 ]
JTextPaneの幅や行数を指定するにはどうすればいいですか。
JTextAreaでは一部の文字色変更などができなかった為に乗り換えました。

769 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:08:39 ]
>>768
JTextPane では文字の大きさが変えられたりするから
列数とか行数ってのは意味無いんじゃないかと。

770 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 12:03:00 ]
なるほど、気がつきませんでした。
文字数で指定しても意味がありませんね。

私のプログラムは文字サイズが一意なので、JTextPane#setSize(int width, int height)
メソッドを使えばよさそうですが、うまくいきませんでした。
サイズを指定しても反映されません。
GridBagLayoutを使っているのでこれが原因かと思い、他のレイアウト
―FlowLayoutを試してみましたが、同じくダメでした。

JTextPaneの大きさを指定するにはどうすればよいでしょうか。



771 名前:770 mailto:sage [2007/05/23(水) 12:19:07 ]
解決しました。
JComponent.setPreferredSize(Dimension preferredSize)メソッドが期待通りの動作をしました。

772 名前:デフォルトの名無しさん [2007/05/23(水) 12:29:39 ]
インスタンスメソッドとクラス(静的)メソッドの使い分けがよくわかりません><
一言でいうと、どういうケースで使い分ければいいのでしょう?
インスタンス化の手間を考えなければ、
全部インスタンスメソッドでいいのでは?とか思ってる状態です。

773 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:10:10 ]
Eclipseのインストール時に書込みエラーと警告が出てしまうのですが、
どなたか解決方法を教えていただけないでしょうか?

774 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:38:15 ]
>>772
使い分けというか、具体的にどういう場面(ソース)でそう思ったとかを書いておくれ
>>773
PC初心者板へどうぞ

775 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:08:28 ]
RMIサーバを立ち上げ、普通にリモートメソッド呼び出しが可能な状態となるのですが、
RMIサーバをそのまま放っておくと数分後に以下のようなエラーが出てサーバが終了します。

java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused

数分後という原因がよく分かりません。何かのデフォルトのパラメータか何かに依存しているのでしょうか?
なお、RMIサーバを起動するのが Linux, Windows ともに発生していますので、
Windows独自のファイアウォールなどとも違うように思います。

776 名前:775 mailto:sage [2007/05/23(水) 16:22:21 ]
計測したところ1分で落ちてしまうようです。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/sunrmiproperties.html

を見るとデフォルト値が1分なのは

sun.rmi.transport.tcp.handshakeTimeout

ですが、クライアント側の設定のようですし、この値を設定してみても
やはり1分で落ちてしまいます。

777 名前:775 mailto:sage [2007/05/23(水) 16:30:22 ]
自己解決しました。恐らくGCで削除されてしまっていたようです。
参照を持たせていたつもりが実は出来ていませんでした。

778 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:13:04 ]
配列に10種類の文字を入れておいてランダムに3つ取り出したいです
ダブらないようにそういう制御させるにはどうしたらいいですか
エロい人教えてくださいorz

779 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:14:43 ]
色んなやりかたがあるけど
ランダムにシャッフルして
先頭の3つ取り出すとかどう?


780 名前:778 mailto:sage [2007/05/23(水) 19:16:20 ]
あぁ!!そういうやり方もあるんですね
でもどうランダムにシャッフルするのかわからないです・・・'A`



781 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:22:24 ]
>>780
blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AE%E3%82%AF%E3%82%A4%E3%82%BA_4_again_%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB
blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AE%E3%82%AF%E3%82%A4%E3%82%BA_4_%E5%9B%9E%E7%AD%94%E7%B7%A8_%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB

782 名前:デフォルトの名無しさん [2007/05/23(水) 20:23:40 ]
Runtime.exec()を使って他マシンのプロセスを生成する方法を教えてください。

783 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:00:32 ]
>>772
全部クラスメソッドにしようとしているなら考え直せとアドバイスするところだが、
全部インスタンスメソッドになるのは、クラスメソッドの必要性が出てくるまでは
放っておいてもいいんじゃないか。


784 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:53:15 ]
>>772
783の言うとおりだな。
全部インスタンスメソッドで、ほとんどの場合は問題ない。
インスタンス生成のコストがって言うアホがいたら、何回作れば0.1秒?と聞いてやれ。

クラスメソッドにする必要性があるケース。
そうだなぁ、基本ライブラリで言えばインスタンス生成系かね。
Integer.parseInt()とかCalendar.getInstance()とか。
後はユーティリティ系、Math.max() とか

785 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:38:03 ]
>>772
思いがけない仕様変更があったとき、
インスタンス生成の手間を惜しまずインスタンスメソッドにしておけば良かった、
と悔やむことはある。
逆は無い。


786 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 07:39:33 ]
漢字のJISコードをとるにはどうすればいいのでしょう?
getBytes("JIS")とかして取得すると
半角英数などは
ttp://ash.jp/code/
にあるようなコードがとれるんだけど
漢字だとマイナスの数値が取れたりしてうまくいかないんだけど・・・
どなたかご教授を

787 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:19:15 ]
>>786
「JISコード」とは何? 区点コードのこと?
ISO-2022-JP や Shift_JIS や EUC-JP での値?


788 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:24:04 ]
質問です。
class hogelist {
hogelist(int data) {
this.data = data;
}
public hogelist prev;
public hogelist next;
public final int data;
}
listのクラスなのですが、
hogelist(int data) {
this.data = data;
}
の部分はコンストラクタなのでしょうか?
修飾子はいらないのでしょうか?

789 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:27:22 ]
>>788
コンストラクタですね。
「class」のところと同じで、パッケージスコープなら
public/protected/privateはいらない。


790 名前:デフォルトの名無しさん [2007/05/24(木) 10:00:24 ]
package-privateと言って同一パッケージ内からのみ見えるアクセス修飾です。




791 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:28:34 ]
>>787
ttp://ash.jp/code/
にあるような
T → 54
試 → 3b 6e
のような変換がしたいんです。
半角文字は上記のような値が取れるんですが・・・



792 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:29:15 ]
>788
クラス名は大文字からはじめておけ。
class Hogelist {
Hogelist(int data) {
this.data = data;
}
んで、メソッド名は小文字ではじめる。
こうすれば、コンストラクタとメソッドとを混同しなくて済む。

って昔の人が考えたんですよ。名前の付け方のルール

793 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:38:03 ]
>>791
byte[] raw = "試".getBytes("ISO-2022-JP");
してから、raw の先頭に 0x1b があれば先頭3バイト除去、
raw の後ろから3バイト目が 0x1b だったら末尾3バイト除去、
とすれば2バイトだけ残って 0x3b と 0x6e になると思う。

Shift_JIS や EUC-JP の場合は、そのまま raw が2要素の配列になるは
ず。



794 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:40:39 ]
>漢字だとマイナスの数値が取れたりして
>漢字だとマイナスの数値が取れたりして
>漢字だとマイナスの数値が取れたりして
>漢字だとマイナスの数値が取れたりして



795 名前:デフォルトの名無しさん [2007/05/24(木) 12:02:37 ]
ど素人質問ですみません
JAVAって機械の制御に使えるんでしょうか


796 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:38:29 ]
javaチップって携帯電話に乗ってたっけ?

797 名前:デフォルトの名無しさん [2007/05/24(木) 13:30:39 ]
JAVAを使えるマイコンってありますか

798 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:44:41 ]
おまえらJavaOne行ってこい

799 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:47:37 ]
>>798
今年のJavaOneは もう終わりましたが

800 名前:デフォルトの名無しさん [2007/05/24(木) 18:17:51 ]
質問ッス

ResultSet rs=stmt.executeQuery(sql)
でResultSetの変数rsにsqlの結果を入れたわけですが、
中の列要素に大きなデータが入ってまして、あふれた分を切られてたわけです。

これは、どうやって解決すればいいんでしょうか?



801 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:48:17 ]
具体的にどの型のデータなの?

802 名前:800 [2007/05/24(木) 18:54:37 ]
String型です。最高で500文字はあるみたいで・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef