1read 100read
2011年11月2期プログラム38: ★★Java質問・相談スレッド149★★ (938) TOP カテ一覧 スレ一覧 2ch元 削除依頼

★★Java質問・相談スレッド149★★


1 :11/10/18 〜 最終レス :11/11/25
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド148★★
http://hibari.2ch.net/test/read.cgi/tech/1316477239/
次スレは>>950あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

2 :
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 9
http://hibari.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://hibari.2ch.net/test/read.cgi/tech/1164877399/
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
http://hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
http://hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part8 ※ dat 落ち
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 71 ★★
http://hibari.2ch.net/test/read.cgi/tech/1309076891/

3 :
■ NetBeansに関する雑談は --
NetBeans Part6
http://hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
http://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
http://java.sun.com/javase/ja/6/
■ Java SE 7(Early Access)
http://jdk7.java.net/download.html
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
http://www.java.com/ja

4 :
じゃばーアホなのですぐ重複スレを立ててしまう

5 :
>>1
どんまい
さっさと削除依頼出してこいマヌケ

6 :
JavaのSwingとアプレットの違いがわかりません。
Swingは描画クラスですよね?アプレットとの関連は?

7 :
>>6
全てのものはオブジェクトです。

8 :
>>7
ありがとうございます。アプレットクラスってありますか?

9 :
>>8
ググれよ
http://java.sun.com/javase/ja/6/docs/ja/api/java/applet/Applet.html

10 :
じゃあ、あなたたちは何のためにいるんですか?

11 :
>>5
あっちはテンプレ間違えてるだろアホか

12 :
暇つぶし

13 :
はじめまして
今度JOGLを勉強しようと思っているのですが、ダウンロードできる場所と
インストールの方法が良く分かりません。
java.netの説明がたくさんあるのですがそこに行っても、ダウンロードできません。
よろしかったら教えてください。
スレ違いだったらすいません。誘導していただければ幸いです。

14 :
>>13
HOME: http://jogamp.org/jogl/www/
BIN; http://jogamp.org/deployment/jogamp-current/archive/
DOC: http://jogamp.org/wiki/index.php/Main_Page

15 :
ソケット通信に使うパケットって、どんな風に設計しますか?
パケットクラス作るものだと思ってたんですが、
byte[]が普通なんでしょうか。

16 :
まさか
if(buf[243]==OK)
とかやっとれんから作るでしょ

17 :
UDPのパケットだったら java.net.DatagramPacket あるけど、
そういう話じゃないのか?
普通はストリーム垂れ流しでパケット単位とか面倒くさい事しないと思うが。

18 :
パケットをSerializableにしてObjectOutputStreamを使ったのですが、
非常識な実装でしょうか。
非常識なら非常識で良いのですが、普通はどのようにするのでしょうか。

19 :
それパケットとか言わんよ、普通。

20 :
eclipse で エディタプラグイン作っており
ツールバーにトグルボタン追加して
ボタンがONの時に、キャレット位置の文字列を取得して
OFFにしたら、その文字列を表示する
というのを試しているのですが
public void run(IAction action) {
  if (action.isChecked()) {
    //文字列取得
  }else{
    //表示
  }
}
if文の中で、文字列の取得やってるんですけど
今の場合だと、ボタンをONにした時しか文字列を取得しません。(つまり1回だけ)
ONの間にキャレット位置を変更したら、文字列も取得しなおす
というようにするには、どうしたらいいでしょうか?
一応javaなのでここで質問したのですが、違ったらすいません。

21 :
>>19
言わんのはわかったのですが、普通はどうするのでしょう。
ByteStreamで各値を入れていく様な形でしょうか。

22 :
普通は好きにする。

23 :
普通と好きとが対立した場合、どちらを選ぶのが普通なんでしょうね。

24 :
ジャバではprivate void meth()となっている関数はprivate fianl void meth()とどう違うのでしょうか?

25 :
privateなメソッドは暗黙にfinalを宣言したのと同等になる。
finalクラスの中のメソッドと同じ扱い。

26 :
ですよね。継承できないんだからfinalでもprivateでも違いはないですよね。

27 :
うん

28 :
>>23
普通を選ぶのが普通じゃないか

29 :
好きに選ぶのが好き

30 :
普通を選ぶのが好きになればいいでしょ

31 :
普通を選ぶのが普通なら、普通を示してほしいのですが。

32 :
自分で自由に定義した一つの通信データの形式をパケットっては言わないでしょ
せいぜいリクエストとか、コマンドって言うんじゃね
GETリクエストを、GETパケットとか言うのかなり違和感がマッハだし

33 :
つまり貴方の仰る普通とは、クラス名はPacketではなくRequestにすべきと。
それだけでしょうか。
Socketに対するPacketのつもりで書いただけだったので、
その誤解は想定外でした。
申し訳ない。

34 :
俺は電文って呼んでる。
業界用語だろうか?

35 :
電文でもパケットでも通じると思うけど

36 :
口語だと電文は紛らわしい

37 :
>>32 がエスパーしてくれるまでずっと意味不だった

38 :
arraylistで
list.remove(10);
とやっても要素が削除されないんですがなぜでしょう?

39 :
後ろの11番目のが詰まってきたんじゃね

40 :
あー
foreachで取り出してるからかー

41 :
String str = new String[]{};
この{}って何ですか?

42 :
配列の初期要素値

43 :
ArrayInitializer 配列初期化子

44 :
(´・ω・`)うん

45 :
FileReaderクラスを作成し、read()でテキストファイルを一文字ずつ読み込んだところ、
改行コードが \r\n として読み込まれてしまいます。
C言語では、\r\n は \n に自動的に置き換えられると思うのですが、
Javaで自動的に置き換えるにはどのようにすればよいのでしょうか?

46 :
Collection<Cloneable>のオブジェクトをdeep copy(格納されている要素すべてをclone()してコピー)したいと考えています。
ですが、Cloneable自体はclone()を宣言していないのでcloneableObject.clone()とは書けません。
このような場合、
cloneableObject.getClass().getMethod("clone").invoke(cloneableObject);
と書くしかないのでしょうか。
良い書き方があれば教えてください。

47 :
はあ

48 :
>>45
System.getProperty("何か忘れた")で改行文字をOS毎に識別してみては?

49 :
>>46
確かCollection<Cloneable>のオブジェクトは最初からcloneメソッドを実装していないと思います。
実装者がcloneメソッドをオーバライドしてdeepcopyするロジックを書かないといけないのかもしれません。
まちがってたらごめんなさい。

50 :
Java7で導入されるプロパティっていうようなアクセッサって
どんなメリットがあるんですかね…
ゲッタとセッタで間に合ってるような気がするんすけど。

51 :
>>50
http://journal.mycom.co.jp/articles/2007/05/16/java7/index.html
http://journal.mycom.co.jp/articles/2007/05/16/java7/001.html
便利機能ですね

52 :
ですね

53 :
直接・間接問わずに、あるクラスを継承、またはあるインタフェースを実装
しているクラスを探すにはどうしたらよいですか?
また、ロードしている全クラスの中から上記のようなクラスを探すことは
元のクラスの量的に大変でしょうか?

54 :
>>53
まず前者はどういう規模でやりたいんだ?
一つのプロジェクトで、とかならソース集めてgrepするのが速い。
全世界で、とかいうなら諦めろ。
後者については「どのクラスローダーが?」って問題があるけど、時間をかければ十分可能。

55 :
ありがとうございます
プログラム自身が自分を構成するクラス群の中から
あるクラスを継承しているクラスを探します
なので検索対象はメモリの中のクラスになります
時間をかければ可能ということは、遅いということですね
クラスローダなどから、検索対象を基本的なクラス(JRE内のクラス?)
ではなくユーザ定義のクラスのみに限定することはできるでしょうか?

56 :
>>55
プログラム自身ってのがフレームワークのコンテナみたいなものを考えているのなら、
クラスローダを自作してloadClass()をoverrideするときにロードしたクラスを記録しとけ。

57 :
>>55
やろうとしていることがいまいち分からん。
「あるプログラムを構成するクラス群」なんて、メモリ内を検索するまでもなく、
ソースコードの段階で、(基本的には)一意に決まってる物なんじゃないの?
それとも、外部からライブラリを持ってきていて、
その中であるクラスが使われているかを調査したい、みたいな事なのか。
その辺の事情も書かないと、有効な回答は出ないと思うよ。

58 :
>>49
コード例を挙げると、
List<Cloneable> cl = Arrays.asList(cloneableObjectArray);
List<Cloneable> copyOne = new ArrayList<Cloneable>();
for(Cloneable c : cl.iterator()) {
copyOne.add(/* ここにc.clone()のようなものを書きたい */);
}
引き続きよろしくお願します。

59 :
当然外部ライブラリのクラスも含みます。
プログラム自身が実行中にメモリ内から探すので
ソースコードを用意してその中から探すのではありません。
そして、クラスの利用の有無ではなく
直接・間接を問わずあるクラスを継承、またはインタフェースを実装しているクラスを探します。

60 :
>>58
List createDeepClone(List list) {
for(Object o : list) {
if(o instanceof List) {
createDeepClone(o);
} else {
// オブジェクトをクローンして値を格納。
Object newObj = o.clone();
(省略)
}
}
}
List型のみに限定するとこんな感じかな。ちょっと詰めが甘いけど。。

61 :
>>60
Object#clone()はprivateだから無理。

62 :
すまん嘘ついた。
private じゃなくて protectedだな。

63 :
>>53
むり

64 :
>>62
ああそこはcloneメソッドを実装しているクラスかインタフェースにルール決めするしかないかな^^

65 :
AbstractCloneableみたいなの作ってpublicなclone持てばいいんじゃないの?
Cloneableはただのマーカーだからcloneの成功が保証されるわけじゃないから結局実装クラスで呼び出さないとわからない。

66 :
>>64
だから>>46はList<Cloneable>ってCloneable限定してるじゃないか。
>>46
deep copyする必要があるクラスがわかっているのなら、
自分ならインタフェースを別で作る。
public interface MyCloneable extends Cloneable {
  public Object clone();
}
んで、Collection<Cloneable>の代わりにCollection<MyCloneable>を使う感じ。

67 :
>>48
C言語のコードを移植したいので、
できればread()で得られたint型が改行かどうか判定する方法を探しています。
System.getProperty()で改行文字を得る方法は、戻り値がString型になってしまうので、困っています。

68 :
>>67
>戻り値がString型
えー
Windowsなら13 → 10 の順番に来た文字コードを怪しめばいいと思うけど

69 :
JAVAの仕事がしたいので勉強しようかと思います
お勧めの書籍やサイトを教えてください。フレームワークというのも重要と聞きました
それも教えてもらえるとありがたいです

70 :
HttpClientやHttpPostクラスから、URLクラスのopenConnectionのようなメソッドの呼び方を教えて下さい。

71 :
>>69
まず書店に足を運んで初心者向けの書籍を立ち読みする。
初心者向けと銘打たれている中にも難易度の差があるから実際に読んでみて一番しっくり来たものを1冊購入する。
フレームワークは重要だけどこれからJava始めますってレベルなら無用の長物。
まずは基本をがっつり固めて勉強するべきだと思う。
あとは・・・Oracle認定Javaアソシエイツ(OCJ-A)かOracle認定Javaプログラマ(OCJ-P)の勉強をすると文法には詳しくなる。

72 :
オブジェクト指向を知らないならJavaの入門書を買って
詰まらないサンプルコードとにらめっこして
クラス定義、メソッド、プライベート、パブリックなど初歩から地道にやってくことになる
他のオブジェクト指向言語を知っているなら
Java APIドキュメントやWebに転がってるサンプルコードを見ながら簡単なものを作ってみるのもいい。
テキストエディタでゴリゴリ書いてもいいけど開発環境使うならEclipseがオススメ

73 :
>>45 >>67
ファイルを行ごとに分けたいが、行末判定は自前で書きたくない、というのであれば、
BufferedReader#readLine() がおすすめ。"\n" と "\r" と "\r\n" で勝手に区切ってくれる。

74 :
>>71
>>72
ありがとうございます。オブジェクト指向すら知らないので本屋にいって探してきます

75 :
>>70
HttpClientクラスがHTTP送受信の機能を提供してるみたいだけど何がやりたいの?

76 :
>>59
聞きたいのはそこではなく、なぜ「プログラム自身」が「実行中に」検索する羽目になるのか、という点。
一足飛びにメモリ検索まで行かなくても、他に妙案が出るかもしれないでしょ。
それはそうと、適当にググったらこんなのが見つかった。詳細は知らんけど。
interface com.sun.jdi.ClassLoaderReference#definedClasses()
このクラスローダによって定義されたすべてのロード済みクラスのリストを返します。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jpda/jdi/com/sun/jdi/ClassLoaderReference.html

77 :
>>75
えっと、HttpClientからサイトに描画している文字列をinputstream経由で取りたいんです。

78 :
ジャヴァを頑張って勉強してみても馬鹿には無理

79 :
>>77
じゃあHttpClientクラスなどに頼らず、URL、HttpURLConnection、ByteArrayOutputStreamなどを使って
一から実装したほうが近道なのでは?
ここなんかシンプルですよ
http://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html

80 :
>>73
一行ごとだと、そんな便利な機能があるんですね。
でも、今は、一文字ごとの読み込みで考えています。
一文字ずつ読み込んで、字句解析の様な事をするプログラムを作ってます。
解る方いらっしゃいましたらよろしくお願いいたします。

81 :
>>80
字句解析なら1バイト長で取得したほうがきれいに作れる気がしますが・・

82 :
>>81
一バイト長の読み込みが良いのですが、\r\nは自動的に\nに変換してほしいんです。

83 :
windows環境でC言語を始めるにはvisual studio以外にどういう無料の選択肢やコンパイラがありますか?
guiは不用でnative dll作成 (jni,jna)とdirectx,sse,avx,gpu(intel,amd)など常に最新のnative機能とライブラリにそのコンパイラ環境でアクセス出来るかどうかがメインです。
出来ればgplライセンスでなくフリーでプロジェクトの活動も活発なものを期待していますが、そんなオープンソース・コミュニティーみたいな都合がいいwindows用のC言語プロジェクトはwindows環境には存在しないですよね?

84 :
>>83
その前に、中学校の勉強をしっかりやった方がいいんじゃないかな。

85 :
そのまえにスレタイ100回読み直せ

86 :
>>82
>>68 で解決だろ

87 :
でも俺は中学のときにはプログラミングばっかりやってた。

88 :
>>82
1byte長で読み込むけどCR-LFを判別したいってことか。
標準にはそんな仕様ないから自分でCR見つけたら次の1byte読んでLFなら捨てるようなメソッド組めばいいんじゃない?
あ、LFだったとしても文字コードによってはマルチバイトで次がある可能性があるから気をつけて実装しないとダメだよ。

89 :
>>53 >>55
試しに作ってみた。使用クラスが >76 とは違うけど。
ttp://ideone.com/W8svq
それっぽくは動くんだけど、ほんとに合ってんのかな?
よく考えたら、確認の仕様がないな・・・

90 :
正規表現について質問させてください
X<B#>A<B#>というStringがあったとして
<*>で囲まれたもの以外のalphabetをreplaceAllを用いて"|"に変換するにはどうすれば良いのでしょう?
Javaでの正規表現の書き方について、参考になるホームページなどがありましたら、教えていただけると助かります。

91 :
正規表現はやめたほうがいい

92 :
俺、正規表現は全く分からねえ。
どうしてもできないのなら、俺みたいにJython使えばいいんじゃね?
でもきっと、ちゃんと正規表現が使えると便利なんだろうな・・・・

93 :
>>68
すみません。コメントしていただいたのに見逃してました。
そうですね。少し手間はかかりますが、そうすることにします。
>>88
なるほどです。そうすることにします。
ありがとうございます。

94 :
>>91
正規表現は不味いんですか?
char[]に分解して書くとかなり大変なので
正規表現で片付けようと思ったのですが。
>>92
学校の課題なので、Jythonはちょっと・・・
理屈自体はTuringMachinの講義を受けた際、勉強したはずなのですが
実際に使うとなるとさっぱりです。
ただ、正規表現が使えるといろいろ夢が広がりそうなので、
O'reillyのMastering Regular Expressionsでも読んで見ることにします。

95 :
abstruct で定義されているメソッドのうち、いくつかしか実装しないんだけど
その場合警告が出るのを避ける方法って無いかな?
abstructクラスの部分集合のクラスかインターフェイスを定義したいんだが無理ですよね?

96 :
警告じゃなくエラーじゃないのか
そのクラスも”abstruct ”って宣言しないと

97 :
実際の文字列がどんなのかわからんが
例の文字列を対象にするなら
replaceAll(".*?(<[^>]*?>).*?", "l$1")
ってのはどうだろう

98 :
昨日まで動いてたプログラムが全部
「Could not find the main class」
になって突然全く実行できなくなった。
JUnitのテストコードも、動いてたものが全部
java.lang.ClassNotFoundException:
と言われた。
どんな原因が考えられますか?

99 :
JREインストールしたときにwin7で関連付け最設定されたとか

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼