いままで実効環境のみで Java(TM)6update22ってのがインスコされてるんですけど JavaやるにはJDKをいれないといけないみたいなんです jdkいれた場合ってもともとのjava(TM)は消したほうがいいんですか?
>>4 消さなくてもいいよ
おれなんかふるーいのも合わせて8つ入ってるよ
下記のように書いていますが、ココ1の、list.set(i, inArray7);を、書いても書かなくても、ココ2で、ココ3のwkセットが反映されています。 list.set(i, inArray7);を書いてないのに、どうして反映されるんでしょうか?たぶん私が、何か大きな間違いをしていると思うのですけど。 String inStr; list = new ArrayList<String[]>(); Reader in = new BufferedReader(new FileReader("c:\\wk01.txt")); while ((inStr = in.readLine()) != null) { String[] inArray = inStr.split("\\s+"); String[] outArray = new String[15]; for (int i = 0; i < inArray.length; i++) { ループでinArrayからoutArrayへ編集してセット } list.add(outArray); } setInfo1(list); for (String[] chk : list){ for (int i = 0; i < chk.length; i++){ System.out.print("[" + chk[i] + "]" + " "); // ココ2 } System.out.println(""); }} private void setInfo1(List<String[]> list) { String[] inArray7 = null; int wk = 0; inArray7 = list.get(0); ... for (int i = 0; i < list.size(); i++) { inArray7 = list.get(i); if (inArray7[8].equals("m")) { inArray7[11] = Integer.toString(wk); //ココ3 //list.set(i, inArray7); // ココ1 }}}}
setInfo1 を呼び出した時点で新たな配列がつくられるわけではないし、 lisr#get しても新たな配列は作られない。 String[] array = new String[1]; set(array); System.out.println(array[0]); //くそ と表示される public void set(String[] a) { a[0] = "くそ"; //指定された配列につっこむ //a は呼び出し元の array とまったく同じ存在を指す。 //同じ存在、というのは、同じ値を持つ、という意味ではない。 //メソッドの中と外で、同じものに対する呼び名が変わっているだけに過ぎない。 //この時点における a[0] = "くそ" は、 //呼び出し元で array[0] = "くそ" としたのとおなじこと。 a = new String[1]; //上記以降は、この a は array とはまったく別の存在を指す。 a[0] = "みそ"; //これは呼び出し元の array が指しているものとは違うものを指す。 //なお、この a が指す新たな配列は、このメソッドが終わり次第、 //プログラム上からは一切アクセス不能になる→そのうちメモリからも消える }
>private void setInfo1(List<String[]> list) { listは参照渡しのつもりだったのですが、その要素のString[]も 参照渡しになるのですね? そうして、 >inArray7[11] = Integer.toString(wk); //ココ3 >//list.set(i, inArray7); // ココ1 これはinArray7[11]に新たにオブジェクトをセットしているけど、 listと紐ついているのは、String[]の参照なので、set不要ということですか?
そう。 「配列もインスタンスなので、new しない限りはけっして新たに作られない」 といえばわかるかな。 何らかのメソッドの引数で渡しても return で返しても、 ArrayList に突っ込んでから渡したとしても、作られないったら作られない。
>>7 >>9 6と8です。よくわかりました。どうもありがとうございました。
byte配列に入っているテキストを byte配列の検索文字と比較しながら検索したいのですがどのような仕方があるでしょうか
>>5 jdkとjreも入れないといけないんですね
これいれて元のも消さなくていいんでしょうか?
と思ったら最新の奴はjdkとjre別々になってるんですね
jdkのパッケージにはjreも付属する。 実行環境だけでいいときにはjreのパッケージを入れる。 jdkに付属するjreには2種類あって、 一つは公開jreでこれを入れることはjreのパッケージをインストールするのと同じ。 もう一つはjdk自身が使う実行環境でjdkをインストールしたところに入ってる。 公開jreはインストールするかしないかを選択できるがもう一つの方はjdkを入れれば必ず入ってる。 特に理由が無ければ公開jreもインストールしておいた方がよい。 jdkのインストーラもデフォルトで公開jreを入れるようになっている。 jre update22はたぶん最新のものなので上書きインストールでも問題ないと思われ
>>11 そんなapiはない。
ダイソーに行って画用紙を買ってアルゴリズムをカンガエルとその答えが見える
100行もいらないよ
>>11 1, どっちも完全に String になおして indexOf
2. 非検索側が大量でなおす時間を節約したいなら ByteArrayInputStream や BufferedReader
3. ちょっとずつ String にして比較
3. はさすがにばかばかしい ソース示せるとは思うけどめんどくせぇ
やってみたけどバイトで検索するほうがはやっかったよ string で直すより
javaのstringって結合すると遅くなるのがダメだよな st::stringみたいに遅くならなければいいのに
そうだね
if (strlen(s)==0) return;
21 :
デフォルトの名無しさん :2010/11/21(日) 10:20:54
JFrame →JDesktopPane ⇒@JInternalFrame add(Canvas3D) ←最大化して最奥に表示 ⇒AJInternalFrame add(Swingコンポーネント) ←透過させたい のような感じでAのJInternalFrameを透過させて、その奥にある @のJava3Dで描画した物体を透けて表示させようとしてます 奥にあるJInternalFrameがSwingコンポーネントで構成された JInternalFrameであれば正常に透過されるのですが、Java3Dで 描画していた場合なぜか透過されません AのJInternalFrameは↓の方法で透過させてます JInternalFrame jif = new JInternalFrame(); JPanel pnl = new JPanel(); pnl.setOpaque(false); jif.setContentPane(pnl); jif.setOpaque(false); どうにか正常に透過できないでしょうか?
きないのでしょうかね
きないでしょうね 素直にオフスクリーンにしたら?
24 :
デフォルトの名無しさん :2010/11/21(日) 21:43:56
com.sun.awt.AWTUtilities#setComponentMixingCutoutShape()というのがあってだな
AWTとSwing混ぜるな危険ってやつだな・・・いつのまにか実装されてたのか
windowsのjavacコマンドにより生成された.classファイルをlinuxやmacで実行することは出来ますか?
26 : [―{}@{}@{}-] デフォルトの名無しさん になるのって2chのなんかのバグだったよ? なんだったけ?
焼き鳥食べたくなってきた
30 :
デフォルトの名無しさん :2010/11/23(火) 02:54:18
boolean型の変数をint型の値に変換したいのですが(trueを1に/falseを0に)、何か都合の良いメソッドなどありますか? ほんの数行のメソッド定義すればいいことですがあればそっちを使おうと思っています。
x?1:0 じゃだめなの?
32 :
デフォルトの名無しさん :2010/11/23(火) 03:20:18
>>31 ダメではありませんがもっとスマートに書く方法があるのではないかと思って・・・
今回、コード中でboolean→int変換が2箇所で必要となります
同じコードを書きたくないので『int func(boolean b){return b ? 1 : 0;}』とメソッド化して
使おうと思ったのですが、他にメソッドがあればそっちを使ったほうがスマートだと
思い聞きました
どうやら簡単すぎて無いみたいですね
false、trueに対して0、非0の値を返すというのなら 非0値が具体的に何になるかは実装次第で
>>32 スマートかどうかは主観的なので何とも言えないが、
用意されているメソッドで何とかしろということなら、
Boolean.valueOf(b).hashCode()ならbがtrueで1231、falseで1237。
Boolean.TRUE.compareTo(b)ならbがtrueで0、falseで非零(正数)。
Boolean.FALSE.compareTo(b)ならbがtrueで非零(負数)、falseで0。
質問です。 int numberValue; ・ ・ ・ public void setStat(int number) setValue(number); このようなソースコードがあるんですが、最後の行のsetValue(number)の部分を →「numberValue=number」にすると実行結果が違ってくるのですが、 setValue(number)とnumberValue=number この違いがわかりません。どうかお願いします
>>36 >この違いがわかりません。
私にはまったく違うものにしか見えませんが・・・
違う内容に書き換えたら違う結果になるほうが自然でしょう。
そもそも、setValue と numberValue は何の関係があるの?
関係があると思ったその根拠はなに?
public void setValue(number) {
System.out.println(number);
}
かもしれないし、
public void setValue(number) {
System.exit(0);
}
かもしれない。
関係があるとしても
public void setValue(number) {
numberValue = number * 2;
}
でも実行結果は変わる。
すいません。 自己解決しました。
39 :
デフォルトの名無しさん :2010/11/23(火) 18:33:43
tomcat 7 です。 ディレクトリ参照したくて conf の web.xml で <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> //● </init-param> <load-on-startup>1</load-on-startup> </servlet> にしましたが、 参照できません。かなり以前は既存で参照するヴァージョンでつかってましたが、 久しぶりにさわりましたが、うまくいきません。
すぐに 答えくるかとおもってたらこないなぁ・・・
で、どんなコードを書いてるんだい? debugの方は取れてるの? ・・・というような39を見れば誰でも思うようなことが、書かれていないからレスがないのでは。
俺は tomcat あんまり知らんけどね。 うまくいってないことを自分がどのように確認したのかも書かないと。 ここにはド初心者もたくさん来るからね。 さわったことあるようだけど、それだけじゃどうもね。 ちゃんとした経験者は、 設定一個うまくいかないぐらいで、こんなとこにその程度の情報だけ持って聞きに来ないから。 web.xmlの全体はこうで、ファイル構成はこうで、起動手順はこうで、とか。 わざと XML 間違えたりすれば、 再起動してない、読み込まれてない、といった原因を否定できるだろう。 あるいは別の項目において設定が上手く反映されるなら、 listings まわりの動作だけに問題が絞られる。 その辺の確認はやったの? あと welcome-file が存在するとそっちが優先されるようだけど、その確認はしてるの?
ん?コード関係あるのか? Tomcat 自体の設定と挙動というプログラミングに全く関係ない話(板違い)に見えるんだが
画像Aが画像Bの中に含まれていたら画像B上にある画像Aの左上の(x,y)座標を返すようなメソッドで、 // imageAはファイルから読み込み済みBufferedImage型 PixelGrabber pgA = new PixelGrabber(imageA, 0, 0, -1, -1, true); pgA.grabPixels(); int bufA[] = (int[])pgA.getPixels(); //imageBはimageAよりも大きい画像を想定。BufferedImage型 ここではデスクトップのスクショ PixelGrabber pgB = new PixelGrabber(imageB, 0, 0, -1, -1, true); pgB.grabPixels(); int bufB[] = (int[])pgB.getPixels(); のようにしたあと、bufAがbufBの中に含まれているかどうかの比較を行いたいんですが、 bufB[0]にはimageBの(0,0)のピクセルデータが、 bufB[x + y * imageB.getWidth()]にはimageBの(x,y)のピクセルデータが格納されているという解釈で合ってますでしょうか?
すいません。 自己解決しました。
Strutsの1じゃなくて2の方で、本とか勉強サイトとかブログとか参考になるのない?
jdbcのステートメント使用してstmt.executeQuery(sql)を実行しています。 1万件取得できずにoutofmemoryになります。 Listに溜め込んでいるフレームワークを使用しいるならわかるのですが、jdbcの中で落ちてます。 jdbcのResultSet作成で溜め込んでいる模様・・・なぜ? ResultSetって内部でカーソルを持っていて、nextしたときにバッファが空ならネットワーク越しに取りにいくと思っていたのですが違うのでしょうか? Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390) at java.lang.StringBuilder.append(StringBuilder.java:119) at sun.jkernel.DownloadManager.getBootClassPathEntryForClass(DownloadManager.java:928) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:293) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1270) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
>>47 >ResultSet作成で溜め込んでいる模様
どこ見てそれを思ったの?
JDBC の中じゃない。ClassLoaderの中で落ちてるじゃん。
デバッガ使って ClassLoader.java:320 で何が起きてるか見れないかい。
(ソースが無くても変数の値は分かるからね。でも、標準APIのソースくらいは入手しておくこと)
データがあふれてるようにはみえないな。
データがパンパンに膨れ上がった段階で、ClassLoader がとどめさしたのかもしれないけど、
起動時のヒープサイズ設定を変えても起こるようなら JDBC関係ないと思う。
ドライバ内のクラスをロードする作業?
あるいは例えばDB側の列定義からJava側の型に変換する作業?
そういうところで失敗してるように見える。
>>48 メモリエラーの場合は落ちている場所とか関係ないです。
実行毎に落ちるところが違うから。
明らかにprocessResultsの問題でしょ。
一目瞭然。
すいません。 自己解決しました。
>落ちている場所とか関係ないです じゃぁprocessResultsも関係ないじゃん
52 :
デフォルトの名無しさん :2010/11/24(水) 22:16:19
>>47 >ResultSet作成で溜め込んでいる模様
どこ見てそれを思ったの?
JDBC の中じゃない。ClassLoaderの中で落ちてるじゃん。
デバッガ使って ClassLoader.java:320 で何が起きてるか見れないかい。
(ソースが無くても変数の値は分かるからね。でも、標準APIのソースくらいは入手しておくこと)
データがあふれてるようにはみえないな。
データがパンパンに膨れ上がった段階で、ClassLoader がとどめさしたのかもしれないけど、
起動時のヒープサイズ設定を変えても起こるようなら JDBC関係ないと思う。
ドライバ内のクラスをロードする作業?
あるいは例えばDB側の列定義からJava側の型に変換する作業?
そういうところで失敗してるように見える。
XMLを読み込んでJavaオブジェクトにマッピングしたいのですが、どう作っていったらいいのかわかりません。 <A> <B /> <B /> <B /> <C> <D> <E>XXX< /E> <E>XXX< /E> <E>XXX< /E> < /D> <D> <E> YYY < /E> <E>YYY< /E> <E>YYY< /E> < /D> のようになっているXMLのうち、Dタグを1オブジェクトとしてマッピングしたいと思っています。 DocumentクラスからNodeを取得して、ノードをたどる形で実装しようと思ったのですが、ホワイトテキストノードの関係でゴチャゴチャになってしまいます。 テキストノードをスルーしようとすると、<E>タグの改行がうまく処理できないのですが、なにか手はありますでしょうか?
あります。あなたのソースのまずいところを直せばいいのです。
55 :
53 :2010/11/25(木) 00:12:06
いけると思って突き進んだ結果行き詰ったのでそもそも間違っている気がするのですが… 以下ソース抜粋です。 Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(XMLファイル); Node A = doc.getFirstChild(); //Aノード取得 while(A != null || A.getNodeType() == Node.TEXT_NODE){ A = A.getgetNextSibling(); } if(A == null || "A".equals(A.getNodeName())){ // エラー処理 } Node B = A.getFirstChild(); //Bノード取得 while(B != null || B.getNodeType() == Node.TEXT_NODE){ B = B.getgetNextSibling(); } if(B == null || "B".equals(B.getNodeName())){ // エラー処理 } //Cノードを探索 while(B != null || B.getNodeType() == Node.TEXT_NODE && "C".equals(B.getNodeName())){ B = B.getgetNextSibling(); } Node C = B Node D = C.getFirstChild(); //Dノード取得 while(D != null || D.getNodeType() == Node.TEXT_NODE){ D = D.getgetNextSibling(); } if(D == null || "D".equals(D.getNodeName())){ // エラー処理 } ---以下続く---
56 :
53 :2010/11/25(木) 00:16:07
---続き--- XMLElement item = new XMLElement() Node E = D.getFirstChild(); //Eノード取得 while(E != null || E.getNodeType() == Node.TEXT_NODE){ E = E.getgetNextSibling(); } if(D == null || "D".equals(D.getNodeName())){ // エラー処理 } item.e1 = E..getFirstChild(); 以下同様にe2,e3を取得してマッピングするつもりで作成していましたが、YYYの一番上の部分がうまく取れないなぁと思って悩んでいます。 何か根本的に間違っている気がします。
↓みたいにファイルを新規作成したいんですけど、実行はできるのにファイルができません。 ファイルの読み取りもできませんでした。何が原因なのでしょうか?? ちなみにエクリプスでやってます package shoshinsha; import java.io.*; class WriteText { public static void main(String[] args){ try{ FileWriter out=new FileWriter("math.txt"); int a=10,b=5; out.write("kaho:"); out.write(a + " + " + b + "=" +(a+b)); out.close(); }catch(Exception e){ System.out.println(e); } } }
>>53 XMLからやりなおせ。それと1JAXBつかえ。
>>57 ファイルが作成できないときはコンストラクタかflushがIOException投げるから握りつぶしてるんじゃないの?
59 :
57 :2010/11/25(木) 08:08:58
>>58 ありがとうございます。
えと、初心者であんまりよくわからないのですが、コンストラクタがIOException投げる
ってことはファイルの入出力でなんらかのエラーがあるってことでいいんですか?
一応
catch(IOException ie){
System.out.println("no File");
っていう文を足しても何もならず、
out.close();
の前にprintlnで文字を表示してみたらそれはできました。
もしかしてエクリプスの設定とかに問題あったりしますか?
>>52 ここで質問した俺が馬鹿だった。
クエリの結果でメモリエラーだけでよくここまで脱線するは・・・
結果セットで貯めすぎて落ちる以外に何があるってんだい?
問題解決能力0
メモリの使い方、メモリで落ちる意味を良く考えるべき。
クラスローダーってあんた、結果のBeanをnewするためのところで限界が発生ってことでしょ。
いやー久しぶりに笑った
windowsのタスクバー上のアイコンを右クリックしたときにメニューが出なくするのってどうやるんですか?
63 :
57 :2010/11/25(木) 11:00:50
>>59 何度もすいません、それはどうすればいいんですか?
>>57 やってみたら math.txt 出来たよ
探すディレクトリ間違ってるんじゃね?
>>61 それなら「マイクロソフト・ウインドーズ」しかないですよね?!
>>57 Eclipse のパッケージエクスプローラで、
プロジェクトを右クリックして「更新」してみてください
68 :
57 :2010/11/25(木) 15:53:50
>>65 >>67 でました!F5したらシステムライブラリーとかいうとこに出来てました!
ありがとうございます!やったー!
69 :
デフォルトの名無しさん :2010/11/25(木) 20:20:18
70 :
57 :2010/11/25(木) 21:57:38
ついでに、やっほい!
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) これ dx2 とかが幅じゃなくて第二の座標となってるけど 実際幅16のものを dx1+15 でなく dx1+16 としないとちゃんと表示されなかった 例えばdx1を0、dx2を0とすると1ドットは描かれるはずなのに dx2を1にしないとそうならなかった どうしてだろう?
72 :
デフォルトの名無しさん :2010/11/25(木) 23:22:30
>>71 >例えばdx1を0、dx2を0とすると1ドットは描かれるはずなのに
なぜそう思うの?
> dx2 とかが幅じゃなくて第二の座標となってる
自分で答え書いてるじゃん
幅 なら dx2が16で16ドット 座標なら(0-15)で16ドット分 じゃないの?
質問スレの性質こんなんかなあ 誰か分かる人いらっしゃいませんかぁ
>>74 >>71 その x,y はドット数ではなく、2次元平面上の座標だから。
ドット数だと考えるのはPCの液晶画面などをイメージしてるからこそなんだろうけど、
Java の API等においては、あくまで座標としては平面上の点を指定し、
デバイスがドットに置き換える。
(ちなみに、プリンタに draw する場合は座標幅なんかよりももっと緻密に描かれる)
つまり x方向0ドット目,y方向0ドット目の、ドットを表す四角形の、
左端上端が平面座標上の (0,0)、右端下端が平面座標上の (1,1) に相当する。
平面座標上の(16,16) に相当するのは dx+16ドット目の左端上端。
dx+15ドット目の左端では幅が足らん。
方眼紙の線のところに平面座標、線と線のちょうど真中にドット座標を書いて数えてごらん。
あなたに答える人はいません
液晶とプリンタで見た目変わるってのもあり得るのか。 真円描いたのに楕円に成ってたりとか。
既存のライブラリから、必要最小限な部分だけを抜粋したいんだけど、 実行時に、使用されたクラスやメソッドのみを抽出する方法はないですか?
-verbose:class とか
独習Javaサーバサイド編ってどうですか? Servlet関連でいい本ありませんか?
勉強でJava+MySQLのDBアプリを作成しているのですが、 実際の業務でJava+MySQLの組み合わせで開発することは あるのでしょうか? Java+OracleやPHP+MySQLは多いと思っていますが。
多いと思っていますね
mysqlで運用しちゃう様な所は金がないからねえ。 vb.net+mdbとかvb.net+sqlserverで済ませちゃうかも。
JavaってTomcatのひと通りのこと学んだ後はなに勉強すりゃいいの?
Java(TM)6update 変な消し方したらインストールエラーが出てインストール 出来ない
87 :
デフォルトの名無しさん :2010/11/29(月) 12:35:39
JPAのPersistence.creatEntityManager(name)で詰まった WEB-INF/classes/META-INF/persistence.xmlがどうしても見つからない なにか直接指定するような方法ない?
「クリックした座標のRGB値を読み込む」 というプログラムを作成しています なにか良い方法はありますでしょうか?
89 :
デフォルトの名無しさん :2010/11/29(月) 17:11:34
new Runnable() { public void run() { foo; } } インスタンス生成式にくっついているブロックは何ですか? 初期化でしょか? だするとこれはランタイムでメソッドをオーバーライドということなのでしょうか?
せめてコンパイルエラーにならないサンプルコード持って来い
>>88 「クリックした座標」が自分のウィンドウ内かそうでないかによって答えが異なる
>>89 匿名内部クラス
>>91 >>88 です
自分のウインドウ内のスクリーン座標を取得し
その座標のRGB値を読み込むというものです
例えば、bmp画像を画面に表示させて、その画像をクリックするとRGB値が得られる
というものです
言葉足らずですみません
93 :
デフォルトの名無しさん :2010/11/29(月) 21:12:08
「クリックした座標のRGB値を読み込む」なんて簡単だけど、 全部ここに書けるほど簡単ではない
>>92 public class MyComponent extends JComponent implements MouseListener {
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame("test");
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new MyComponent(), BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private BufferedImage img;
public MyComponent() throws IOException {
img = ImageIO.read(getClass().getResource("unagi.bmp"));
setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
addMouseListener(this);
}
public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
public void mousePressed(MouseEvent ev) {
int argb = img.getRGB(ev.getX(), ev.getY());
System.out.println(Integer.toHexString(argb));
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
うなぎ画像でテスト済み
>>94 ありがとうございます。
非常に参考になりました。
ただ、コンパイルをした際に
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1362)
at MyComponent.<init>(MyComponent.java:38)
at MyComponent.main(MyComponent.java:28)
とのエラーが出ました。
読み取りたい画像がないという内容だとは思うのですが
これはどのようなエラーなのでしょうか?
38行目は
img = ImageIO.read(getClass().getResource("test..bmp"));を行っております
ファイルの名前は自分が表示させたい「test.bmp」に変え
test.bmp自体は、MyComponent.javaがあるファイルと同じ所
さらにMyComponent.javaがあるフォルダの1つ上にも置いてあります
>>95 ただしくは
img = ImageIO.read(getClass().getResource("test.bmp"));
です
ドットが2つになってました
すみません
>>96 class ファイルと同じところに入れて下さい
Eclipse 使ってる場合は java ファイルと同じ場所でいいです
にも関わらずちゃんと動かないときは設定が悪いのかも
>>97 ありがとうございます
無事表示できました
r,g,b成分をそれぞれ表示させる方法はありますでしょうか?
r = 255
g = 255
b = 255
などです
糞の分際で調子に乗るな
>>98 >r,g,b成分をそれぞれ表示させる方法はありますでしょうか?
あるよ
適当に国旗ででも試してみりゃ分かるでしょうに
C/S型ではなく1:1で通信するテキストチャットを作りたいと考えています ルータに繋がれている3台のPCでそれぞれ起動しているクライアントA・B・CのうちAにだけメッセージを送りたい場合は どのような処理手順・通信手順を行う必要があるのでしょうか? NAT越えというものを実装しなければいけないのですか?
ルータに繋がれている3台って、どういう構成? クライアント間の通信がルータを経由するかしないかが問題なんだが ルータにケーブル指して3台繋いでますってんなら単なるHub
>>102 Aにサーバを立ててメッセージを受け取る
マウスの座標取得で public void mouseMoved() のような割り込み以外の取得方法ないですか? 割り込みだと負担が大きくなるので。 それかこの割り込みを一時的に無効にする方法ありますか?
>>102 A・B・Cがそれぞれサーバを立て同時にクライアントでもある構成
メッセージの中にあて先情報も組み込んで UDP でばらまくのもよし
>>105 前者
public void mouseMoved(MouseEvent ev) {
log.setLastPoint(ev.getPoint());
}
private class Log implements Runnable {
private Point lastPoint;
public void setLastPoint(Point p) {
lastPoint = p;
}
public void run() {
while (true) {
//1秒間に最大10回しか処理しないったらしない
//もしくは Timer 使う
Thread.sleep(100);
}
}
}
後者
public void mouseMoved(MouseEvent ev) {
if (disabled) return;
}
>>105 リスナーを remove すればもう飛んでこなくなるよ
Servlet本でオススメ教えろ
サーブレットだけか、おまけも込みか
だけでもJSPやらTomcatが付いててもどっちでもいい
もうちょっとしぼれハゲ
Tomcatに対応している以下のデータベースのシェアってどうなってますか? * Apache Derby * Oracle * Sybase * DB2 * SQLServer * Postgresql * MySQL * Axion * HSQL
不明です。
116 :
デフォルトの名無しさん :2010/11/30(火) 23:52:45
>>114 何を持ってシェアとするの?
Android流行ればSQL系じゃね?
117 :
デフォルトの名無しさん :2010/12/02(木) 16:00:06
public class ゲーセン{ public static void main(String[] args){ int i; for(i=1; i<11; i++){ System.out.println(i+"コイン"); } if(i % 3 ==0){ System.out.println(i+"コイン"+" "+"クリア!"); } System.out.println("終了!"); } } どこが間違ってますか? 思うような結果にならないのです。。
public class game です。申し訳ない
訂正の訂正・・・ public class Game です
専門学校ってJAVAやるとこがほとんどだと思うけど、2年次って具体的に何やってんの?
>どこが間違ってますか? 質問の仕方
専門ってC#はやんないの?
>>117 for文 の { 〜 } の範囲を見直してみるといいかもね
>>122 わざわざやんなくても、JavaやってC#できないんだったら
それはJavaもできてないってこと
127 :
デフォルトの名無しさん :2010/12/02(木) 20:42:35
具体的にJavaで何を開発しているか教えてくれ Webアプリですか? アンドロイドアプリ? その他?(何々をか書いてくれ) 集計したい
128 :
デフォルトの名無しさん :2010/12/02(木) 21:33:48
javaでブラウザの閲覧履歴を取得するにはどうすればいいですか? osはlinuxでブラウザはfirefoxを使用してます。 具体的なサンプルソースなどがあればありがたいんですが。。。
おまんこ
Javaアプレットには履歴を取得するようなAPIはないぜ
131 :
デフォルトの名無しさん :2010/12/03(金) 02:02:09
Java5以降を使うとJava1.4にはもう戻る気になれない。 ジェネリクス、Enum、ボクシングなしでコーディングとか、もはやマゾいとかいうレベルを超えてる。 「入門レベル」が「プログラミング自体の初心者」と言う意味ならそれほど意識しなくてもいいかもしれんが。 それとJava2 ってバージョン1.2からだろ。
>>132 Java2って、Java1.5以降のことを言うのだと思っていました。
入門レベルというのは、プログラミング未経験者という意味です。
だからどうした? 死ねよ糞ゴミ
1.5以降って1.5もはいるだろ?
java 1.0 と1.1 があって、
java1.2以降をjava2と言うんだけど、
>>131 の本ではjava 1.5 のことを Java2 Standard Edition 5.0 と呼んでいる。
ところが、1.5で大きく文法が変わったため、ここからは普通はJava5と呼ぶ。
で、java5でのさまざまな不具合を取ったのがJava6なので、常識で考えたらJava6を勉強すべき。
ただ、Java5とJava6の違いは入門書レベルだとあまり変わらないので、Java5以降の入門書を遣うべし。
JAVAのコードに対応してる多機能メモ帳みたいなエディタを教えてくれ フリーので頼む
俺はTeraPadが大好き
サクラエディタでええがな
あっそ
>>136 わかりました。いろいろ誤解していたようです。
どうもありがとうございました。
カレンダーが作りたいんですが msflexgridみたいなコントロールってあったりしますか? Javaだと、GridLayoutとかで頑張るのでしょうか
143 :
デフォルトの名無しさん :2010/12/04(土) 17:20:05
JTable良さそうですね、調べてみます、ありがとう
T arにたいしてar.lengthやar[i][j]みたいに出来ると嬉しいのですが 二次元配列の型制約を与えることって出来ますか?
147 :
146 :2010/12/04(土) 20:31:51
継承が無意味で配列でもないけど自己解決 class C<U,T extends ArrayList<ArrayList<U> > >
148 :
デフォルトの名無しさん :2010/12/04(土) 21:29:28
今日からjavaを勉強しようと思い、独習を買い、さっそく取り組もうとしたのですが プログラムをコンパイルしたら「Example1の書き込み中にエラーが発生しました。Example1.class(アクセスが拒否されました。)」 というエラーが出ました。 これはどうしたら解決できるのでしょうか?おねがいします
単に書き込み禁止でコンパイル結果を出力できないだけなんじゃないか CD-ROMの上で実行してるとか
実行してるとかですね
まあ実行してるとかですね
やはり実行してるとかですか
お前ら楽しそうだな
Sample.java public class Sample<E> { E i; Sample(E i){ this.i=i; } @Override public String toString() { return i; } } SampleTester.java public class SampleTester { public static void main(String[] args) { int i=5; Sample t=new Sample(i); System.out.println(t); String s="2ch"; Sample t2=new Sample(s); System.out.println(t2); } } 上記のプログラムのようにSampleの方でtoStringをオーバーライドして出力しようとしているのですが エラーが出ます。どうすればいいのでしょうか
E が String かどうかはわからないから、わからない i をそのまま String として返すことはできないので、 return i.toString(); または return String.valueOf(i); もしくはダサイけど return "" + i;
javaで以下のライセンスのライブラリを使用しています。
GNU LESSER GENERAL PUBLIC LICENSE Version 2.1
↓で調べてみました。
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License その義務は以下の通りと読み取ったのですが、曖昧な表現が多く合っているかわかりませんでした。
・配布時にライセンスの本文を含める
・ソースコードがLGPL下であればソースコードを含めて配布する
・該当部分(ソースコードまたはバイナリ)がLGPL下にあることを明示する
・著作権表示機能を持つ場合、LGPLのライブラリの著作権表示を含める
・バイナリのリバースエンジニアリングと改変を許可する
・スタティックリンクの場合、再リンクに必要なファイルを添付する
このLGPLライセンスを商用製品で使用する場合、商用製品のソースをオープンにしなければいけないのでしょうか?
マニュアルにLGPLライセンスのライブラリを使用してますと明記するくらいでは駄目なのでしょうか?
ライセンスを理解できないならgpl,lgplは使ってはいけない。 どうしても必要なら怠けないで自分で再実装するしかない。
>>155 ありがとうございました。
""+iとする方法はおもいついていたのですが、
さすがにスマートじゃなく別な方法ないかなーと思い聞いた次第です。
ありがとうございました
いえいえ
jdkアップデートしようと思ったら javacが存在しないコマンドうんたらでコンパイルできなくなった \(^o^)/
161 :
デフォルトの名無しさん :2010/12/06(月) 19:50:07
URLをgetContentTypeするとtext/html; charset=utf-8のように取れるとおもうのですが、 サイトによってはtext/htmlまでしかとれないのですが、どうすれば全部取れますか?
それで全部です サイト側の好みで charset を付けたり付けなかったりできますので、そのサイト管理者が charset を付けないのが好みだったら、付きません
Stackとvectorの違いって何?
Stack は push とか pop とかできる Vector はできない
add/removeじゃなくてpush/popと書きたいから継承して別名のメソッドを追加してるだけ 実質的な違いはない
Dateクラスではタイムゾーンの情報がないのでカレンダーを使えということらしいのですが Date/Timeに相当するクラスを自作するならば それぞれが内部にカレンダーを持つ必要があるわけですよね なんかメモリが勿体ないように思うんですが他にやりようはありますか
何を言っているのかわからん。 暦の変換が必要でないなら、好きに作れるだろ。
Jakarta Commons NETを使用して、 FTPサーバからファイルを受信してストリームに 書き出しているんですが、ダウンロードせずに 直接ファイルを開くことはできますか?
初歩的な質問なんですがpanelを貼ってマウスの座標を取得しようとしたのですが タイトルバーや周りの枠の部分だけずれてるようでグラフィックの座標を直接取れませんでした。 上左からどれだけずれているか取得したいのですがどのような関数を使えばいいですか?
HashMapとHashSetの違いってなに?
MapとSetのちがい。 宣言見ればすぐ気づくだろ。
MapとSetってputかaddの違い以外に何かあるの? ArrayListとLinkedListの違いみたいに内部構造からくる各処理速度の問題?
Set 重複要素のないコレクションです。 Map キーを値にマッピングするオブジェクトです。
ひどい勘違いをしてた
じゃあvectorとSetの違いは?
俺MapとHashMapの違いもわかってないやw
>>175 VectorとLinkedListとかArrayListじゃなくて???
順序無いのがSetとでも答えれば満足?
List系 ArrayList 配列を扱います。 LinkedList 配列を扱います。挿入・削除が高速です。 Vector 配列を扱います。パフォーマンスが悪いため現在ではあまり推奨されない古いクラスです。 Set系 HashSet 値の重複を許さない順不同の要素集合を扱います。 TreeSet 値の重複を許さないソートされたの要素集合を扱います。 Map系 HashMap キーと値の組からなる要素の集合を扱います。 TreeMap キーと値の組からなる要素の集合を扱います。キーでソートされています。
Eclipseでプラグインをインストールする時って ウィルス入ったりします?
世の中には絶対ありませんなんてことは絶対ありません
そか、じゃあプラグインインストールしない方がいいかな やっぱテキストエディタ使ったほうがいいな Eclipseアンインストールするか・・・
そのテキストエディタにもウィルスが入ってるか入ってないかわからんぞ
ソースも眺めてコンパイルしてやったから大丈夫そう
LinuxでJVMを常駐させるような仕組みを簡単に作れるライブラリとかありませんか? Tomcatみたいにクライアントからの問い合わせを受け付けるようなデーモンを作りたいのですが Webコンテナ(というかサーバ)を建てるよりもっとコンパクトな方法はないのん・・?と思いまして。 もちろん、いちいちJVMを立ち上げるような作りなら実装は簡単なのですが。
186 :
デフォルトの名無しさん :2010/12/08(水) 17:48:15
javaでリストボックスに、一度設定したデータを保存して呼び出せるように したいのですがどうやればいいのでしょうか。
そのデータを FileOutputStream 等を使ってファイルに保存してください
うんこしたい
Javaでメモリリークしているところを探す方法って どういうものがあるでしょうか? 自分で考えたのは 関数の最初と最後で System.gc()をして空きメモリをログファイルに出力する っていうのを全関数に埋め込んで ログをチェックするっていうのなんですが どうでしょうか?
visualvm を使ってみるとか
p = Runtime.exec(cmd); でpから標準出力のストリーム取得してるんだけど、 どうもコマンドのプロセスが途中で止まってる。 バッファがいっぱいになるとバッファ空くまで待っちゃうから 別プロセスで取得するってのはわかるんだけど、 ほんとにそこまでしなきゃ駄目なの? コマンド渡せば終了コードも標準出力も簡単に返してくれるような お手軽ライブラリは公開されてないですかね?
その標準出力を読み出せばいいだけではないのですかね? 数行で済むようなコードだと思いますが 「ほんとにそこまでしなきゃ」っていうほどのことではないかと
ヲレは困らないから好きにしたらいい。
queueってプッシュとポップじゃなくてputとpollだったっけ?
画像を表示し画像クリックで次の画像を表示する様にしたいです。 Javascriptは正直初めてですが、ググりながら以下の様にしたのですが Firefox ですと最初の画像が表示されたまま次へ移動しません。またIE8 だと最初の画像すら表示しません。どなたか回答をお願い申し上げます。 表示したい画像はhtmlと同じフォルダにあるimg01.gif〜img16.gifです。 <html> <head> <script language="JavaScript"><!-- num = 0; function change() { num++; num %= 16; document.MyIMG.src = "img0"+num+".gif; } // --></script> </head> <body> <a href="javaScript:change()"> <img src="img01.gif" name="img" border="0"><br> </a> </body> </html>
ぐは!誤爆しました。失礼します。
>>195 num++;
num %= 16;
document.MyIMGsrc="img0"+num+".gif";
}
最後にダブルクォーテーションが抜けてる
FFは勝手に補正読みする
スレ違い死ね
>>191 pの標準エラー出力がパンクしてるんじゃないか?
ProcessBuilder使えば標準出力と標準エラー出力をひとつにまとめられたはず。
>>191 pの標準エラー出力がパンクしてるんじゃないか?
pの標準エラー出力パンクでしょうね?
import java.io.*; public class ProcessRunner { public static String execute(String cmd) throws IOException, InterruptedException { Process proc = Runtime.getRuntime().exec(cmd); InputStream stdout = proc.getInputStream(); InputStream stderr = proc.getErrorStream(); byte[] iobuf = new byte[1024]; ByteArrayOutputStream bout = new ByteArrayOutputStream(8192); while ( isAlive(proc) ) { if ( stdout.available() != 0 ) { int len = stdout.read(iobuf); if ( len == -1 ) break; bout.write(iobuf, 0, len); }else if ( stderr.available() > 0 ) { stderr.read(iobuf); }else { Thread.sleep(15L); } } return new String(bout.toByteArray()); } private static boolean isAlive(Process proc) { try { proc.exitValue(); }catch ( IllegalThreadStateException e ) { return true; } return false; } }
>>201 2010年抱かれたい男GP優勝!!!アッーーー!
>>198 エラーは全く出てないはず...
仮に出ててもちょろのはず...
はずではどうともいえないからProcessBuilderを使ったコードを試すべきでは。
いやです
「出ててもちょろのはず」ってなんのことですか?
アホばっか
>>204 呼ぶコマンド自体は"dir"だけみたいなものなので、
仮にエラー出ても数文字...とりあえず試しはします。
あざす!
WebアプリをJSPだけで作るのってまずいでしょうか? なんかデプロイがファイルコピーだけで済むのって 魅力的なんですが。
>>209 趣味でやる個人サイトなら好きにすればいいんじゃね。
俺が客なら納品物がそれだったら二度と連絡よこすなって言うけど。
弱小で一括請負なら、 画面文言を1文字直すだけでも全ロジックの試験エビデンス要求して虐めてみるのも面白いかもなw
弱小請負がそんな契約しないよw
215 :
191 :2010/12/10(金) 13:01:15
>>201 while ( isAlive(proc) ) {
だとタイミング悪いと最後が切れちゃうようなので、
while ( isAlive(proc) || stdout.available() != 0 ) {
にして使わせていただくお。
本当にありがd(癶∀癶✿)
216 :
191 :2010/12/10(金) 14:31:45
いや、やっぱ駄目だ。 eclipseからTomcat起動だとイケるんだけどな。 サービス起動してるTomcatにデプロイした場合は駄目。 同様にバッファ空き待ちで待ち続けてる。 そういえば最初もそうだったな...。 Tomcat側のconfの違いだろうけど本番用confイジるわけにはいかない環境だから、 やっぱThread継承するなりして別プロセスから吸い出してあげないと駄目。 標準出力抜くだけなのにめんどいなぁ。
217 :
デフォルトの名無しさん :2010/12/10(金) 16:54:53
java初心者です。他の言語は結構触ってます。 javaではポインタ渡しがないので、ある関数に渡した引数を 関数側で変更する方法として参照渡しがありますよね これは自前のクラスや配列なら、ポインタと同様に使えるのですが どうやらIntegerなどのプリミティブのラッパー系はimmutableのため 使えないようです。(ちょっとここもあいまい) でも実際に boolean func1(Integer a){ a = 0; } boolean func2(Integer a,Integer b){ a = 1; b = 10; } のように戻り値としてbooleanで統一、引数側でなんとかしたい 場合があると思います。 このような場合、javaではどのように書けばよいのでしょうか? Integerを自作のMyIntegerクラスなどに変えて呼び出し先変更用の クラスを引数として渡す、ということは考えたのですが、 演算子のオーバーロードもできないし、いろいろ不都合もあるので どうしようか悩んでます。
outを使う
219 :
デフォルトの名無しさん :2010/12/10(金) 17:04:18
javaに引数に指定する out はあるのでしょうか? C#ならありますが、、、
つまりJavaは糞ってことだ
Integerじゃなくてintを使えばいい。
222 :
デフォルトの名無しさん :2010/12/10(金) 17:16:33
intは完璧な値渡しだから呼び出し先の関数では いじっても、呼び出し元の変数は変わりませんよね コーディング構想をそもそも代えないとダメなのかな?
まあMyIntegerしかないだろうね
224 :
デフォルトの名無しさん :2010/12/10(金) 17:37:53
やっぱりMyIntegerですかね、、、
Javaには参照渡しはない。全部値渡し
わざわざMyIntegerなんて作らんでもListにでも詰めて返せば済むだろ...
参照渡しっつってもオブジェクトの場合、 一部の特殊なクラス(Integerとか)を除いては、 内部的にはポインタ渡しと同様だが。
>>217 Javaではプリミティブ型は値渡し、それ以外(何かのクラスのインスタンス)
はポインタの値渡し。引数で受け取ったオブジェクトが持っている、
内部状態を更新するメソッドを呼ぶと、呼び出し元から見えるオブジェクトの
内容が変わるが、「引数 = new なんとか();」のように変数が参照している。
ちなみにJavaでは配列は全部クラスと一種とみなされる。だからbyte[]もchar[]も
オブジェクトであり、メソッドの引数に渡した瞬間に、配列のコピーが作られる
わけではない。
オブジェクトを摩り替えても呼び出し元に作用しない。
というか参照渡しとポインタ自体を理解してないようだ。
「参照渡し」と「参照の値渡し」は区別するべき
>>229 訂正。
「引数 = new なんとか();」のように変数が参照しているオブジェクトを別のインスタンス
に向けても、呼び出し元が参照しているオブジェクトのインスタンスは昔のまま。
したがって、
public static void main(String[] args) {
java.lang.Integer ival = new Integer(1);
sub1(ival);
System.out.println(ival.toString());
}
private static void sub1(Integer anValue) {
anValue = new Integer(2);
}
上のコードを実行すると、コンソールに「1」が表示される。引数で受け取った
anValueが参照していたIntegerのインスタンスは、sub1メソッド内では新しい「2」オブジェクトを
参照するように摩り替わっているが、だからといって呼び出し元が参照していた「1」が「2」を
参照するように書き換わるわけではない。
>>239 ,231
javalangならそれで依存はないけど、c99的にはツッコミどころが多分にある
>>229 ,231
javalangならそれで異論はないけど、c99的にはツッコミどころが多分にある。
>>233 続き
次に、更新可能なオブジェクトのメンバーを変更するケース。
public static void main(String[] args) {
java.util.ArrayList<Integer> list = new java.util.ArrayList<Integer>();
list.add(Integer.valueOf(1));
list.add(Integer.valueOf(2));
sub2(list);
for ( int i = 0; i < list.size(); i++ ) { System.out.println(list.get(i)); }
}
private static void sub2(java.util.ArrayList<Integer> list) {
list.add(Integer.valueOf(3));
}
上のコードを実行すると、「1\n2\n3\n」が表示される。引数で受け取った
listの参照に対して「3」という値を持つIntegerを追加したのでこのようになる。
さらにおまけで、sub2を次のように書き換えると、「1\n2\n」と表示される。
private static void sub2(java.util.ArrayList<Integer> list) {
list = new java.util.ArrayList<Integer>(); // <=この行追加。
list.add(Integer.valueOf(3));
}
長文乙w
MyClass { int a,b } かint[]で良いだろ
すごく初歩的な事で申し訳ないのですが 先ほどpleiadesを導入したんですがホバーが英語のままで日本語化できません googleで解決法を検索し、試して見たのですが解決できず未だにホバーは英語のままです 日本語化する方法があったら教えてください
240 :
デフォルトの名無しさん :2010/12/11(土) 08:44:58
みなさんやっぱりそれなりに対処してるんですね 結局、 MyInteger { public int value; } にしました。 他のオブジェクト同様にIntegerとかに更新メソッドつけてくれれば良い話なんですが、 なんでimmutableなクラス仕様があるのかな?
死ねよ雑魚
C言語はポインタが鬼門といわれてるけどこれをちゃんと理解しておかないとやっぱりダメだな。 理解が浅いと何をやってみても今回のように何も出来ない。
>なんでimmutableなクラス仕様があるのかな? お前みたいに返り値boolean固定するアホが出ないようにだろうw
野糞みたいな奴だなおまえはw
動けばいいんだよ
246 :
デフォルトの名無しさん :2010/12/11(土) 11:34:31
戻り値booleanにしない方法も考えたけどね 似たような関数群だからなるべく似たような使い方に 統一したかったんだよね >242さん よかったらどんな対処があるか教えてください
調子に乗るなクズ
>>246 はそもそものシステム設計がクソすぎるんだろうな。
MyInteger持ってこられたらレビューでフルボッコにするよねwww
249 :
デフォルトの名無しさん :2010/12/11(土) 12:19:50
>>248 でどんな改善案になるの?
戻り値毎にクラス作るのもめんどくさいし
関数10個あって、それぞれの関数で戻したい値が1個〜10個、
んな場合の設計ってどうします?
戻り値用クラス10個作って、null or クラスで返す?
>>249 248ではないが、ケースによるが配列やコレクションをつかうんじゃね?
というかstaticメソッドとも限らないわけで設計がまずいんじゃね?
設計もまずくないならメソッド毎の戻り値のクラス作ればいいんじゃね?
調子に乗るなクズ
おまいの設計がエスパーできるやつを待て
>関数10個あって、それぞれの関数で戻したい値が1個〜10個、 (つд⊂)ゴシゴシ 引数10個のメソッドを作るように読めるぞw
真の漢ならC++を極めろ
本物のプ
俺はMyInteger派だな
もう秋田
童貞はすぐ偉そうにするからなぁ
>>239 Mergedoc使え
Mergedoc でjava 付属のsrc.zipを日本語化して
それを使うようにする
小数点第4位の切り捨ての問題なんですが BigDecimal bi = new BigDecimal("0.00392156862745098"); System.out.println(bi); System.out.println("切り捨て:" + bi.setScale(3, RoundingMode.FLOOR)); double result = bi.setScale(3, RoundingMode.FLOOR).doubleValue(); System.out.println(result); としたところ 0.00392156862745098 切り捨て:0.003 0.0030 となってしまいます 望みの結果としてはresultが小数第3位までの「0.003」となって欲しいのですが、 少数第4位の「0」が余計です 改善方法または原因はなんでしょうか?
なんとなく Double.toString のバグくさいけど・・・それはおいといて doubleValue で double 値に変換する場合、その BigDecimal の値が double として正確に表現できなければ、最も近い double の値になる つまり近似値でしかない (しょせん double は誤差を含む型だから、小数を正確に表現できるとは思わない方がいい) 正確に第4位切り捨ての値で扱いたければ最初から最後まで BigDecimal のまま扱う double にした時点で誤差が生じる可能性があるのだから、いったん double にしてから文字列にしたって当然誤差を含むので、 誤差のない文字列を得たいなら BigDecimal から直接 String に変換する
>254さん 例が悪いですね、すみません さすがに10個は厳しいですね どんな理由でも6個くらいが許容限界かな
>>249 答えは自明。
暇だからヒントをあげるとね「戻り値には意味があり、型はそれを使うべくして使う」ということ。
じゃあ、MyIntegerの意味はなんだろう、そしてその型を使う理由はなんだろう。
それはシステムのコンポーネントとして存在すべくして存在するのではなく、
「よくわかんないから作ってみた自作Integer」というだけのシステムとして無意味なものだね。
> 関数10個あって、それぞれの関数で戻したい値が1個〜10個、
> んな場合の設計ってどうします?
> 戻り値用クラス10個作って、null or クラスで返す?
オブジェクトにできないほど関連性の薄いまとまってないデータを10個も受け渡すという事が、
そもそもメソッド分けすらまともにできてない何よりの証拠だね。
上記のケースを例に出してくるあたり、どんなレベルかは察しがついちゃう。
一律booleanで返したいってきっと正常/異常を結果で返したいんだろうけど、
だとしたら、そうする必然性(設計思想)はなんだろう?
適切な例外を投げるでは何故だめなのか?
そういうそもそもの部分を考えもしないで「でどんな改善案になるの?」とか言っちゃうからまともに相手にされないの。
といわれても考えようとしない教えて君なら、凡庸な1年目の新人さん未満だな。
以上、もうレスはいらないよ。
「戻り値には は 「パラメータには に読み替えてくれwww 飲み過ぎワロタww
>>266 引数が16個以上必要なメソッドとか平気で作るけど、君はクラス設計をしたこともないしそういう世界も知らないでしょう?
>>265 Graphics.drawImageなんか要求している引数個数は多いけどまったくに適切な設計のメソッドだなあと思うよ。
やば 引数9個のメソッド作っちまった あやうく10個に達するところだった あぶねーあぶねー なんか、配列渡すのに開始位置と長さもセットにしなきゃいけないのがここ最近の俺の引数増を招く主な原因だな・・・ これは言語仕様が悪いよな そうだ俺は悪くない
>>269 あなたのつくるメソッドは、intやStringの引数がとても多そう
この辺りよくわかってない人ってさ、JVMのコアな話よりも先んじて、シー・シープラプラのポインタが超絶難しくて結局ジャバに逃げて来たってことなんだろうね。
引数が10個にもなるなら、クラス作れよ
オブジェクト指向的にはint型ではなくIntegerクラスを使うのが正しいと思うのですが、 なぜいまだに世の中のJavaで書かれたソフトウェアの多くがint型を使っているのでしょうか? intとIntegerで性能差も無視できるレベルだと思いますが。
できませんよ
引数10個くらい普通。100個になったら悩むれべる。
boolean hoge(int x, int y){} を class hogeclass { public int x; public int y; public boolean hoge() { return true; } } ってすればいいんだよね?
>>267 ろくな設計ができないカスしかいない世界のことですね、わかりますww
日本語でおk
>>273 Intergerで加算をすると、intと比べるとものすごーく遅い
for(Integer i; i < 1000; i++) ;
文字コードUTF8で 改行コード(\r\n)込みで一行が一定バイトを超えている場合 複数行に分けるという処理を書こうとしてるんですが こういう場合どういう処理を行うのが効率的でしょうか 「あ」は3バイトありますし substringしてgetBytes("UTF8").lengthを地道にループだと 重そうですし
282 :
281 :2010/12/12(日) 20:23:39
自己解決。地道にループで対応しました
283 :
デフォルトの名無しさん :2010/12/12(日) 21:19:02
ページを開いた時点で、その日の0時から何秒経過したか表示するページを作るにはどうしたらいいのか教えてください。
Calenderで現在時刻とその日の0時を作って引き算、結果を表示する。
現在時刻を取得して 時*3600+分*60+秒を表示
DBに繋ぐ時にJNDIとやらを使えとの指令受けたんだけど ググってもTomcatとかWebサーバ関連ばっかり。 スタンドアローンで単発起動のJavaオブジェでもJNDIって使用出来るんですか?
できないよ
290 :
デフォルトの名無しさん :2010/12/13(月) 04:42:40
できるよ
できるとしても
>>286 の場合は指令出した側が
よくわかってないんだと思う
Javaで開発するときによく見てたサイトで おおおぉぉぉ! とか出てきてたサイトが見当たらないんですが 閉鎖しちゃったんでしょうか?
>>265 ありがとう、レスいらないようだけど
オブジェクト指向はやりすぎると無駄な階層化、get/setの嵐で
細かいクラスたくさんできて難読化もしてしまうので
自分ではある一線で旧来のスタイルも混ぜてます
その辺すでに設計おかしいのかな
例外はありだと思うけど、頻繁に発生しうる状況なので
今回は使いにくいです(センサーの連続データ処理なので)
いろいろな考えあって勉強になりました
>>295 MyInteger使うか迷うレベルの人間が設計云々言ってる時点で炎上確定しとらんか?
設計というより人員配置の方に欠陥があるような。
>>293 「Java で Hello, world!」なら閉鎖したと思う。
>>298 へーお世話になったのにもったいない。
でも脱初心者した辺りから全然行かなくなったからな、ああいうサイトって割りに合わないんだろうな。
「おおお。動きましたね!」 ときて 「うっせぇな、だからなんだよ糞」 と思うようになったら初心者卒業だな。
303 :
デフォルトの名無しさん :2010/12/13(月) 19:32:44
23016003610
304 :
デフォルトの名無しさん :2010/12/13(月) 19:34:54
みなさん、StrutsやTomcat等Apacheプロジェクトの ライブラリ等をつかっているとライセンス違反になります。作り直しです。 また、これから、ApacheプロジェクトのものをJavaで使ってはいけなくなるそうです。 (≧▽≦)< 頑張ってください!
305 :
デフォルトの名無しさん :2010/12/13(月) 20:34:05
クラス図で○の中に十字があるものって何ですか?
プリミティブ型を隠蔽するために、 プリミティブな処理をまとめたクラスを用意するのは、 Facadeパターンだと言って良いと思う?
307 :
デフォルトの名無しさん :2010/12/13(月) 22:47:16
すみません。 親父がPC買ってインターネットしたいといいだしたんで、 自分でブラウザを作ってあげようとおもっているんですが、 自分はGUIを作ったことがあるのが、Javaだけです。 Javaのブラウザを調べたんですが、いまいち、MS製の言語よりも 遅れているみたいです。それは、やはり本当なんでしょうか? C#でも覚えてC#で作ったほうがよろしいでしょうか?
なぜ作るw
309 :
デフォルトの名無しさん :2010/12/13(月) 23:06:33
え?だって、親父がジャパネットで17万も出してパソコン買ったから、 なんにもできないじゃ、かわいそうだし。。 IEはむずかしすぎるっていってたんで・・
>>309 そんなあなたにw3m
これ以上見た目が簡単なブラウザは存在しないと思う
311 :
デフォルトの名無しさん :2010/12/13(月) 23:21:34
>>310 ありがとうございます。一応、そう難しくないページとかなら見れそうなので、
ためしに作ってみます。アドレスバーとお気に入りしか機能をつけようとおもっていないんです。
なれてきたころに、グーグルの検索ボックスだけ追加しようとおもいます。
w3mというのも、あとでググッてみますね。ありがとう。
>>310 それはIEよりも難しいのではないだろうか
見た目シンプルなChromeや最近のバージョンのOperaとかで
ホームをYahooに設定して渡せばそれで解決しない?
作るとしたらjavaじゃないがIEコンポーネントとか。
検索したら最低限のブラウザ機能ぐらいならサンプル落ちてるし
おやじのこと考えてるようで考えてないように見える
自分で作ったら IE より使いやすいものが出来るという自信はどこから来るのか
よく音の特徴量抽出とか聞くけど、具体的にプログラミングでどうやってやれば いいかわかんない・・・ たとえばwavファイル読み込み→パワースペクトルなど抽出?みたいなことはできるんですか?
>>304 JavaはダメでC#ならいいわけ?アパッチなのに?
あまり情報が無く困ってるんですが タイムゾーンの扱いについて詳しい人いたら教えてください TimeZone.getAvailableIDs()では自分の環境では608個とれますが olson DBのzone.tabでは400個ほどです これはおそらく前者がPSTみたいな省略記法のIDを返すからだと思いますが そもそもこれは同じIDを参照しているのでしょうか (同じっぽくは見えますが・・IDは何らかの標準化がなされてるんでしょうか?) APIDOCにはその辺「サポートされているタイムゾーンID」程度にしか記述がありません
>>315 ググったらそれらしいサイトあったよ
wavからサンプリング情報+サンプリングデータをテキストで取り出すフリーソフトがあるらしいんで
javaではそれを読み込んでフーリエ変換して対数に直す処理をすれば出来る
319 :
デフォルトの名無しさん :2010/12/14(火) 03:25:11
例外処理のサンプルを見ると下記のような変数eをみかけます。 なぜ、これが必要なのか分かりません。 教えてください宜しくお願いします。 try{ }catch(IOException e){ }
省略不可の仕様なので
EJBからXMLファイルを解析するのに便利なAPIないでしょうか?
322 :
デフォルトの名無しさん :2010/12/14(火) 04:29:45
>>320 319です。
ありがとうございました。
List list1 = new ArrayList<String>(); List list2 = new ArrayList<String>(); Hashtable<String, String> ht = new Hashtable<String, String>(); ht.put("111", "11111"); ht.put("222", "22222"); list1.add(ht); list2.add(ht.clone()); ht.clear(); System.out.println(list1.toString()); System.out.println(list2.toString()); ---- 上記を実行したら、lits1だけクリアされました。 cloneはシャローコピーですが、list2はクリアされないのでしょうか? [{}] [{222=22222, 111=11111}]
リストのサイズを0にしてるだけだからな。
すみません。323です。 参照のコピーだから、同じオブジェクト(Hashtable)をListは持っていると思います。 なぜ同じオブジェクトを見ているのに、cloneしたらクリアされないのかわからなかったのです。
public Object clone() ハッシュテーブルのコピーを作成します。ハッシュテーブルの構造自体はすべてコピーされますが、キーおよび値は複製されません。これは、比較的負担の大きい操作です。 とあるんだけど。
327 :
デフォルトの名無しさん :2010/12/14(火) 08:11:24
リストのサイズを0にしてるだけだからな。
>>318 >>315 ですが、ありがとうございます
ちゃんと調べてみます、すいません
あと音処理においてのjavaのおススメの書籍があったら、お願いします
ならそれもググれよ雑魚
ゲームの数値計算をjavaで作ろうと考えて色々試しているんだけど 基本ステータスを入力して成長後の基準値を出すところまではできたが その成長後の基準値に倍率を掛ける方法がわからない 今日初めてjava触っているのでどこを調べるべきか A,B、C、D、Eを入力 ↓ F,G,H,I,J・・・10種類程度の基準値表示 ↓ パターン選択ボタンまでは完成 ↓ パターンα選択時 倍率F*105%、J*104% β選択時 倍率F*110% G*105% ・ ・ ・ ↓ 最終的には基準値を出さずに 選択したパターンに応じて修正値だけを表示したい
例えば変数 f の値を 105% したいなら f *= 1.05; とすればいいけど、そういうことじゃなくてか? もうちょっと詳しく
function bp() { frm1.hp.value = (frm1.tai.value * 5 + frm1.atk.value * 4 + frm1.w2k.value * 2.5 + frm1.agl.value * 5.1 + frm1.min.value * 6.5); frm1.mp.value = (frm1.tai.value * 4.9 + frm1.atk.value * 6.5 + frm1.w2k.value * 7 + frm1.agl.value * 5.6 + frm1.min.value * 6); こんな感じで出した数値にAパターンを選んだらHP*105%だけ BパターンでHP*110% 攻撃力*120%のような修正を加えたい frm2.hp.value = (frm1.hp.value * 1.05) とかやってるんだけど反応しないので詰まった
行列のtxtファイルを読み込みたいのですが、 このプログラムではうまく読み込めていないようです。 どこが問題でしょうか? また文字列が混在しているファイルの場合、 どうしたらいいでしょうか、ご教示願います。 import java.io.*; public class Readfile { public static void main(String arg[]){ try{ BufferedReader f = new BufferedReader(new FileReader("test.txt")); int c=0; int a[][]; a = new int [2][3]; int i=0; while((c=f.read()) != -1){ System.out.print((char)c); for(i=0;i<a.length;i++) a[0][i] = (char)c; } f.close(); }catch(IOException e){ System.out.println(e); } } }
>>332 それはひょっとしてJavaじゃなくてJavascriptじゃね
>>334 JavaとJavaスクリプトは別なの?
>>333 具体例としてどういう内容のテキストファイルを
どういう結果になるように読み込みたいのか (配列のどこにどの値を入れたいのか)
を説明してください
337 :
330 :2010/12/14(火) 19:48:57
調べてみたら別だった Javaスクリプトであることも知らなかった 反省している お騒がせしました
338 :
デフォルトの名無しさん :2010/12/14(火) 19:51:35
>>337 Javaスクリプトじゃなくて「Javascript」な
念のため伝えておくとあなたの行先はWeb制作板
>>334 Javascriptじゃなくて「JavaScript」な
>>336 最終的には
1 2
1 3
1 4
のようなファイルと
1 a s
2 d f
3 g h
4 h j
5 k l
のようなファイルがあったとしたら、
1個目のファイルの2列目にない要素で2個目のファイルにある要素(この場合は5)
の行を削除した3個目のファイル
1 a s
2 d f
3 g h
4 h j
を作成したいです。
>>340 2 d f
3 g h
4 h j
を作成したいです。
の間違いでは?
質問です
http://www.dotup.org/uploda/www.dotup.org1299507.java これは大学のjavaの授業で作ったプログラムですが、これはどのような形態(main()のJavaアプリケーション、Applet、Servlet)などでいうとどれに当たりますか?
それともどれにもあてはまらずその他の分類になりますか?もしそうでしたら詳しく教えてください。
あとawtとあるのでGUIだと思いますがあっていますか?
javaは大学でまだ一ヶ月と少し程度しかやっていないのでよくわからないのです。
初歩的なことかもしれませんがどうか教えてください。
どうやら下から5行目に書いてある main っていう文字が読めないらしいな
GUIを使用したJavaアプリケーション
>>650 答えていただいたプログラムをコンパイルして実行しようとしたら、
exception in thread main java.lang.nosuchmethoderror main
とエラーが出てきました。
どうやら
public static void main(String[] args)
これをいれれば直るらしいのですがどこにいれればいいですか?
書き込み欄を右クリック→短文の挿入で出てくる短文リスト全25個の内、上から10個の短文がプレビューされません 皆さんは全てちゃんとプレビューされますか?
349 :
348 :2010/12/15(水) 00:10:06
誤爆
サーバを介さずに1対1の通信を行う音声通話アプリケーションを作っています。 通話自体はJavaSoundAPIとRTPを用いて実装できました これに通話内容を録音する機能を追加したいです どのような手法を用いればよいでしょうか?よろしくおねがいします。
音声データをファイルに保存する
>>342 ありがとうございます、
これを元にがんばってみます。
現在、Javaを勉強中です 最近JavaでWebアプリケーションが作れると聞いたのですが、普通にプログラムを組むだけではだめだと思うのですが、一体どうすればHTMLとして吐き出す?PHPとかPerlみたいなことが 出来るのでしょうか? 全くわかってなくて見当違いだったらごめんなさい
jspでググれ
356 :
デフォルトの名無しさん :2010/12/16(木) 17:53:37
JAVAでチャットソフトを作ったんですけど、これをそのままアプレットにできますか?
できねーよ(wラ
.NETのP/Invokeに相当するものはJavaにありますか?
JNA
360 :
デフォルトの名無しさん :2010/12/16(木) 22:43:27
サイトからファイルを取得しながら逐次的に処理をする動作を行いたいと考えています。
下記方法にて処理を行った場合、ネットワークへの接続開始と切断はどのどのタイミングで行われますでしょうか。
// 接続
URLConnection uc = new URL("
http://www.google.com/ ").openConnection();//・・・@
// HTMLを読み込む
BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());//・・・A
BufferedReader br = new BufferedReader(new InputStreamReader(bis, "Shift_JIS"));//・・・B
String line;
while ((line = br.readLine()) != null) {//・・・C
/* lineを処理 */
}
//・・・D
初回のCの時点で接続が開始され、Dに到達直前にて終了するという認識はあっていますでしょうか?
参考したサンプル:
http://d.hatena.ne.jp/n_euler666/20070919/1190189499 よろしくおねがいします。
質問 マルチプラットフォームと言いながら、 OS同じでもバージョン変わっただけで動かなくなるのは何故でしょうか?
>>360 getInputStream で接続開始
keep-alive が切れたら切断
364 :
デフォルトの名無しさん :2010/12/16(木) 23:59:41
>>361 ありがとうございます。
そちらを参考にして検証した結果
・Aの時点で通信は開始され、bisのバッファサイズまで取得を行う。
・4で読み込まれ、バッファに空きが出来次第bisのバッファサイズまで取得する。
・・と理解しました。
lineの処理が重く、取得するデータが巨大な場合で
本格的に効率的な逐次処理を行う場合は
マルチスレッド化が必要そうですね
ありがとうございました。
567
〜 }catch (IOException e){ e.printStackTrace(); }finally{ try { in.close(); out.close(); }catch (IOException e){ e.printStackTrace(); } } return isOK; } フィルコピーの部品を作って、それを読んだときにリターンで成功したか失敗したかを 判断したいのですけど、成功の場合はtrueが戻りますが失敗のときに finallyでファイルのクローズをしたいために、リターンfalseをどこに記述したらいいのか わかりません。catchに書くと無視されるし、finallyに書くとfinally句が完結してないと 警告メッセージが出ます。失敗の場合はfalseは戻らないけど、呼び元でtrueじゃない、 という聞き方をすればいいのでしょうか。こういう場合、どのような対処をしていますか。
void hoge() { bool isOK = true; try { } catch { isOK = false; } finally { } return isOK; }
>>367 それやってみたんですけど、falseが戻ってこないんですよ。
マジで?
っていうかcatchにreturn false; かいてもfinallyは実行されると思うけど。
>>367 それだったら
void hoge() {
bool isOK = false;
try {
//入出力処理
isOK = true;
} catch {
} finally {
}
return isOK;
}
の方がよくね?
>>370 fainallyに書いたら、うまく行くのですが、fainally句が完結してないと
警告メッセージが出るんです。いきなりリターンするので最後のカッコを
閉じてないから警告が出ると思うのですけど、なんだか気持ちが悪いです。
呼ぶほうが間違ってね?
これが部品のプログラムです。falseを戻したいです。 public static boolean TextFileCopy(String inFile, String outFile){ BufferedReader in = null; PrintWriter out = null; String inStr = null; boolean isOK = false; try { //入力ファイル in = new BufferedReader(new FileReader(inFile)); //一時出力ファイル out = new PrintWriter (new BufferedWriter( new OutputStreamWriter(new FileOutputStream(outFile)))); //入力データを読んで出力ファイルへ出力する while ((inStr = in.readLine()) != null) { out.println(inStr); } isOK = true; }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); }finally{ try { in.close(); out.close(); }catch (IOException e){ e.printStackTrace(); } } return isOK; } }
これが呼び元です。 boolean b = Convertor.TextFileCopy(inFile, outFile);
なんか{}の数が合わないんだけど気のせいか
あー 最後の}はクラスのか
すみません。最後のカッコはクラスのカッコです
これだとfinally内のtryで例外発生したらfalse返らないような気がする。
現状では、falseは全く戻らないんですよ。infileに存在しないもので 実行してみたらコンソールでみたら例外が出ています。 でもfalseは戻りません。どうすればfalseを戻せるか教えて下さい
fainallyの最後にリターンを入れて警告メッセージをサプレス するしかないのでしょうか。
うちの同じような関数はこうなってた。 public boolean hoge() { try { return true; } catch (Exception e) { return false; } finally { try { } catch (Exception e) { } } }
>>374 in.close() out.close() でぬるぽ
ぬるぽキャッチしてないから false 返らず例外が返る
inとoutのnullチェックするべし
>>383 nullチェックしたらfalseが返るようになりました。
気が付きませんでした。どうもありがとうございました。
eclipseでsysoと書いたあとCtrl+SpaceするとSystem.out.printlnが補完されて感動しました。 他にもこういう便利機能はありますか? どこかに一覧が書いてあるか、どうやって調べればいいですか?
ほんとだ、すげー!
>>383 「falseが戻ってこない」は、そうエスパーするのか
なるほど
ってことはうちの関数まずいんじゃ・・・
>>385 メニューバー > Window > Preferences > Java > Editor > Templates
さすがjava
アプレット側とサーバーのやりとりのレスポンスを調べたいんですけど、 Javaコンソールのログに一行ごとに処理時刻表示する方法ありませんか?
JAVAの勉強を始めて半年になりやっとSWINGアプリケーションを 作っています。でも例外処理が難しいなと感じています。 例えば、複数の部品を作りましたが、チェック例外のものは try-catchして、非チャック例外のものは、そのまま無チェックし してる箇所もあります。コンソールで見ながらメインを起動するときは 例外が発生するとコンソールに表示されるので分かるのですが、 SWINGの画面上では、何も無かったかのように静寂です。 いまのままではSWINGアプリをjarで起動したときには例外が発生しても 処理がおかしくなるだけで使う側はどこでエラーが起きたのか判断が できません。やっぱりSWING画面上にエラーが起きた事を知らせる必要が あると思うのですが、そういう場合、部品は全て、例外が発生したら、 スローをして、一番上位のSWING画面側で、catchしないといけないのかなと 思っているのですが、こういう例外処理はどういうのが良いのでしょうか。 教えて下さい。
Thread.setDefaultUncaughtExceptionHandler を設定しとけばそこへ飛ぶみたいなのでログファイルに出力するなり終了するなり
入出力関係はチェック例外が多いみたいですけど、try-catchするか、 スローしないとコンパイルが通らないですよね。でも部品はコンソール付き でも使用したいし、SWINGでも使用したいし、その部品のリターンが 特定の値の時は、truefalseを返せないですよね、そうなると、 同じ仕様で、try-catchしたものと、しないものを2つ作らないと、 いけなくなり変だと思うのです。他の方たちは、こういう問題を どのように切り抜けているのでしょうか。
日本語でおk 部品は例外中立で作っとけ エラー時の処遇は部品を呼び出す側に決めさせろ
つまり基本はthrows IOExceptionでおけ。
日本ではSpringってStrutsの次に使われてたりする?
398 :
デフォルトの名無しさん :2010/12/18(土) 12:44:35
なんで日本に来たの?
oracleに買収されたJavaなんてもうやめようよ
HashMap<K,V>のtoArrayの使い方がよくわかりません class A<T>{ private final Map<T, MYTYPE<T>> tbl = new HashMap<T, MYTYPE<T>>(); //略 public T[] get(){ return tbl.toArray(new T[0]);} } このget()の定義だとcannot create generic array of Tと怒られるのですが どうすれば良いのでしょうか
Generic な T 型の配列は new できないので、それは HashMap とか toArray の問題じゃなくて new T[0] の問題 Object の配列にしておくか、どこかから Class<T> を手に入れて Array.newInstance するか・・・ 一番無難なのは toArray と同じように T[] を外から受け取ることだ public T[] get(T[] a){ return tbl.keySet().toArray(a); } これで何の問題もない
配列や toArray にこだわらないなら、List<T> とか Set<T> を返すって手もある
基本的なことをお聞きしたいのですが、A.javaがコンパイルできません。 どうすればコンパイルエラーを防げますでしょうか?よろしくお願いします。 c:\test>javac -d . B.java c:\test>javac -cp ./bbb A.java A.java:1: パッケージ bbbは存在しません。 A.java:7: Bにアクセスできません。 クラスファイル .\bbb\B.classは不正です。 クラスファイル bbb.Bに不正なクラスがあります。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 ディレクトリの構成構造 c:\test(カレントディレクトリ) LA.java LB.java Lbbb LB.class (A.java) import bbb.*; public class A { public static void main(String[] args){ B b=new B(); b.methodB(); } } (B.java) package bbb; public class B { public void methodB(){ System.out.println("class B"); } }
>>406 Bはパッケージ名と同じbbbというディレクトリにないとダメ
409 :
406 :2010/12/19(日) 17:05:34
>>408 説明が足らずというかわかりにくくて申し訳ありません。
-dオプションでB.classはbbbというディレクトリに移動してあります
c:\testにあるもの
・A.java ・B.java ・bbb
c:\test\bbbにあるもの
・B.class
くだらんことで詰まってないでeclipseつかえ
Java知らない人にJavaを教えるときに、 まずはjavacとかjarコマンドを叩く所からやらせるか、 いきなりEclipse使わせるかどっちが良いかな… 結局はどっちもできないと駄目なんだけどね。
javaの質問というよりはネットワークの質問かもしれませんが、 サーバ側で1MB程度のテキストファイルがあり、 それを手元のPCで受信して適当に読みたいです。 最も手軽にプログラムできて、高速な方法は何ですか? できればサーバ側に送信プログラムは置きたくなくて、 クライアント側で処理したいです。
プログラム書いたりしないで Windowsならファイル共有かリモートデスクトップ Unix系のOSならtelnetやSSHとかでログインして読めばいいと思う
414 :
412 :2010/12/19(日) 19:33:47
(人間が)読むというよりは、テキストの解析をしたかったりするのですが、 その発想はなかったです。ありがとうございます。 ファイル共有すればローカルのファイルと同じ扱いになるんですかね。 環境依存が面倒なんで、できればUDPとかで同じ方法で引っ張ってこれたらいいかなぁ と思ってるので、引き続き案を募集します。
415 :
412 :2010/12/19(日) 19:35:59
そういえば、ウェブサイトのリンク解析とかに近いのかもしれないですが、 サーバ側でhttpデーモンとかは動いてないのです。
わかってるのかわかってないのかわからん質問者だな… わからない用語はつかわないほうがいいよ。
サーバ側に受信を受け付けるプログラムが動いてなければ無理でしょ UDPでやりたいならUDPで特定のポートで待ち受けるプログラムをサーバに起動しておき そこと通信するクライアントのコードを書く
if (***){ 処理1 else{ 処理2 } で、処理1で50行、処理2で50行あったとして、そのうち30行のかたまりが 処理1と処理2で同一だったときに、その部分について、 メソッドにしたりしますか?それともそのまま書いたほうがいいですか? どちらが正しい方法なんでしょうか
if (elm[i]!=null && !elm[i].equals("")){ というのを見たのですけど、nullと""の違いがわかりません。教えて下さい。
>>418 個人的には、速度が重要でない限り、別メソッドにするのが常に正しいと思う
バグがあったときに、同じコードがある箇所を探して全部修正しないといけなくなるよ
>>419 nullはnewしてない。""はnewしてるが空
422 :
412 :2010/12/19(日) 19:48:30
ありがとうございます。
>>416 プログラミングはできるけど、ネットワークプログラミングは(やるとしたら)初めてです。
基本的にわかってません。
>>417 サーバ側はhttpはダメですが、sshdは動いてるしポートによっては開いています。
ftpとかscpとかは遅い印象があって、もっと原始的なのでいいよなぁ、と。
UDPもよく分かってないですが、やっぱサーバ側も必要なんですね。
クライアント側でやりたいことはかなり単純で、
for (file in server:/dir) {
open(file)
read(file)
close(file)
}
的なことです。(javaコードにもなってないが・・・)
ファイル共有するのはたしかに的を得ている。
早くJavaにもlambdaほしいよな。
424 :
412 :2010/12/19(日) 19:51:22
すいません。
>>417 読み違えてました。
たぶん何らかのdeamonは動いています。
それから受信するプログラム書けばOKということですよね。
何が動いてるかチェックすればいいのですか?
>>422 サーバでsshdしか動いてないのならscpでしかファイルをとってくる手段は無いよ。
シェルスクリプトでscpを叩いてデータを取得後にデータを処理するのが正解じゃないかな。
それかJavaでscpクライアントかきますか?
boolean boolArg = (boolean)34132; "aiueo" + boolArg; とやったとき、34132がちゃんと文字列のアドレスになってたら、 2行目ちゃんとうまく動きますか? そういうようなコードを見たのですが。
428 :
427 :2010/12/19(日) 20:12:58
勘違いでした
429 :
412 :2010/12/19(日) 20:17:31
うーむ、なんかNFSファイル共有でよさそうですね・・・。 いろいろありがとうございました。
publicの記載は必要なんですか?
他のパッケージから使いたい場合とか 元々publicなメソッドをオーバーライドする場合とか インタフェイスのメソッドを実装する場合は 必要
jtableで一次元配列を元に表示してるんですが 連続した範囲を範囲選択したいです 例えばこれで3を選択した状態で下にドラッグすると 1 2 3 4 5 6 7 8 9 10 3 4 5 6 7 8が選択されて欲しいです こういうのはデフォルトで提供されてる方法で可能ですか? それとも自分で何かオーバーライドして作らないとダメでしょうか
BufferedReaderとBufferedInputStreamの違いを教えて
>>432 JTableの選択モデルでは無理ですので自分で実装する必要があるでしょう
それか JList の HORIZONTAL_WRAP オプションを検討してみては
>>433 InputStream はバイト列 (byte) を読み込むクラス
Reader は文字列 (char) を読み込むクラス
>>434 ありがとうございます
JListはよさそうなので調べてみます
438 :
デフォルトの名無しさん :2010/12/20(月) 23:52:44
shortの上限以上の値のintをshortにキャストすると、当然値を保持できないと思います。 その場合、shortの16ビット以上の値が切り捨てられるような気がしますが、それについて 正式な情報はありますでしょうか? Javaの公式なドキュメントはどこを見ればいいのでしょうか?
目次見ただけだが、Javaの仕様書3.0の5.1.3 narrowing conversionあたりじゃない? 仕様書はWebでどっかから落とせた気がする
ありがとうございます。 探してみます。
Linuxのデスクトップで、SWINGアプリケーションのテキストボックスに日本語入力が出来ません。 サイトで調べるとjavaのバグとかって書いてあるのですが、いまだに対応されていないのでしょうか? そもそもjavaのバグ?kannnaのバグ?
transientがようわからん serializeの解説も頼む
>>442 変換候補ウィンドウがアプリのウィンドウの外に表示される以外は不自由ないけどな。
それ以外ならそっちの環境がおかしい。
変換候補ウィンドウはJava側が対応してないのが直接的な原因だが、
LinuxでIM関連フレームワークが乱立しまくってるのが解消されないと難しいだろうね。
serialize はJavaのひどい失敗作の一つ なんとかしようとして追加したはいいが、 結局攻撃が防ぎ切れないことが分かってゴミとなったものとか (writeUnsharedとか)あるし ぱっと見、標準ライブラリに含まれるHashSetとかも readObjectNoDataとかちゃんと書ききれてないので壊すことが可能
System.currentTimeMillis() ってUNIX時間というかGMTですよね? 素朴な疑問なんですが、 物理的に異なる地域にあるAというサーバとBというサーバがあるとして これは必ず同じ時間を表しますか? 電波時計でもないのに時刻がなぜズレないのかわかりません
?
電波の代わりにネットワークで時刻を合わせてる
電波時計が無い時代は時刻がズレズレだったのかw まあntp動いてないならズレズレだが。
450 :
446 :2010/12/22(水) 02:19:51
いやそうじゃなくて(電波とか余計なこと言わなきゃよかった) System.currentTimeMillis()ってオフラインでも使えるじゃないですか なのになぜ別々のPCでそれぞれ実行しても同じ時間を示すんですか? それともOSの設定次第でズレるものですか?
>>450 それって、家の時計と学校の時計がなぜ合っているかとかいうのと同じ質問?
普通、パソコンの時計はNTPサーバと同期させて合わせてるのは知ってるよ そうじゃなくて、System.currentTimemillis()で取得するUNIX時間は、 ネットで同期しなくても一致するものなの? (1)一致するとしたらどういう仕組みでそうなるの? なんで一致するの? (2)一致しないのだとしたら、その時間はどこを基準で取得しているの? OSの設定?マザーボードの電池で動いてる時計? ついでにこの場合、複数のAPサーバでJavaアプリケーションを運用するとして、 DBに保存する更新日時とかをJavaのプログラムで取得するなら、 必ず基準とするサーバに同期して使わないと齟齬が発生するからダメってこと?
>>442 俺もそれなったけど結局対応できなくて部署ごと死んだ。
頭悪そうだな・・これが電波世代か・・
一致しねーよw
>>452 一致しない
システム時間やシステム時刻でググれ
一般的にシステム時刻はOS依存だ
よく覚えておきな
>>452 ついでに言っておくわ
JAVAだろうがDBだろうがそいつがあるのはサーバなんだからデータの日時も全てサーバのシステム時刻になる
サーバアプリでローカルのデータと同期を取るような処理があってもサーバアプリは
前のデータの時刻をサーバのシステム時刻で判断するからクライアントのシステム時刻を意識する必要はない
>>457 はすばらしいエスパーぶりだと思ったが
質問者が理解できるかどうかは怪しいな
複数のAPサーバーっていってるから
>>457 はちょっとおかしいと思うけど
460 :
458 :2010/12/22(水) 15:53:49
すいません。自演してました
>>452 普通に考えて別のコンピュータのローカルクロックが見えるわけがないって分からない?
JVMに人知を超えたテレパシーをやり取りする機能がついてない限り、サーバーと端末で時
刻が勝手に同期されたりするわけないし、セキュリティ上の事情でそんな内部データが
リモートコンピュータから見えなくされているくらい分からないか?
おまいら心を落ち着かせるんだ。 質問者はプログラミング初めて間もないかわいい女子高生だと仮定して回答すること。
女子高生でも馬鹿は嫌いだ
464 :
452 :2010/12/22(水) 23:09:00
普通に考えるとそうなんだけど
「UNIX時間」の計算とはなんか特殊なやり方でPC問わず必ず一致するようなものなのかと
勘ぐってたんだよ
ちなみに
>>457 の話は常識として知っている
>>464 >「UNIX時間」の計算とはなんか特殊なやり方でPC問わず必ず一致するようなものなのかと
>勘ぐってたんだよ
普通に考えろよ
ふつうを知らないのに普通にかんがえろとかお前アホだろ
GUIからの起動とプロンプトからの起動を プログラム内で判別する何かいい方法はないでしょうか? OSを問わない一般的な方法があるといいのですが、ないなら せめてWindows Exprolerからのダブルクリックからの 起動か、それ以外かだけでも判別できればいいのですが・・・。
一般的な方法もしくはそんなAPIがあるのかは知らんが、 俺はGUI用のmainとCUI用のmainを分けている。
>>434 JList調べてみたところ
setVisibleRowCountはあるのに
setVisibleColumnCountはないため
希望の動作は実現できませんでした
やはり自力で実装するしか無いみたいですね
>特殊なやり方でPC問わず必ず一致するようなものなのかと 魔法の世界じゃねえかwww 時間ってどういうものか知ってるのか?って突っ込まざるを得ない
もう時計の話はいいよ。
>>468 どうやって振り分けてるのでしょうか?
CUI向けとGUI向けにmainだけ変えてjarを作るという意味でしょうか?
mainを持つクラスが2つ以上あれば好きな方を選んで起動できるってことじゃない
日付を選ぶコンボボックスで ▼で月のカレンダーが出るような感じのコントロールって もしかして自作しないと無いのでしょうか?
おはようさんです Javaアプレットじゃなく、スタンドアロンのアプリですけど アプレットかどうかで違うんですか? .NetだとDateTimePickerみたいなやつです
javaってDateTimePickerもないのか。 やっぱC#マンセーだな
Javaのスタンドアロンアプリなんて死滅してる ユーザーにも嫌われるし
スレッド絡みの質問ですが、synchronized ブロックの中は実行中スレッドは1本 と保証されているのでしょうか? というのもよくある producer-consumer の例で次のお約束文がありますが、 while(buf.size() <= 0) { lock.wait(); } このwaitで複数スレッドが停まっている状態においてlock.notifyAllすると停まっ ていたスレッドが一斉に走り出してwhileバリアを抜ける場合もあるのでは?と疑 問に思う次第です。 実際にはキチンと動作するので、複数一斉に実行状態になるのではなく、1本に制 約される仕組みが入っているのだと思うのですが、これは言語規約などで保証され てる動作なのでしょうか?
m
あまり深く考えないほうがいい
482 :
479 :2010/12/24(金) 15:55:20
でもはっきりしてないと
>>479 みたいなパターンが不安で使えなくないですか?
gotoとかconstってどういうときに使うんです?
485 :
479 :2010/12/24(金) 17:10:46
>>484 ポインタありがとうございます。
どうやらwait抜けた後でスレッド間でロックの争奪戦があって、それに勝ち抜いた
スレッドだけが実際に動く=synchronized の中は1スレッドのみ実行状態。になる
ようですね。
したがって、
>>479 は安全と。
datetimepickerないのかー 自分で実装するとなると、方針としてはどうすれば良いんでしょうか comboboxにこんな感じのセルレンダラつけてみたもののダメそうでした public Component getListCellRendererComponent(JList arg0, Object arg1,int arg2, boolean arg3, boolean arg4) { if(arg3){ setText("hogefuga"); return this; } else{ setText("mogemoge"); return this; } }
補足:486ですが、モデルは1つのデータのみでテストしました データ一つだとisSelectedなデータと▼をクリックして出てくるデータは 同じ方法でレンダリングされるのでダメだったってことです
>>486 SwingXにJXDatePickerってのがあったような。
自前で実装したくなければググって好きなの使えば良いんじゃね?
他にも作ってる人居るだろうし。
>>486 ありがとう、swingxって初めて知りました
準公式ぐらいの位置づけのライブラリっぽいですね
悪羅苦留もっとちゃんと保護してやれよって感じ
とりあえず自分で実装出来そうか
これのソースコードを眺めてみます
パディングは BorderFactory.createEmptyBorder を付ければいいんじゃないか
パディング、その方法でうまく行きました。助かります
匿名クラス使ってリスナー登録する際、 親クラスの参照をとる方法ってないんでしょうか closebutton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { this.setVisible(false); //これだとActionListenerのthisになる }});
何も付けずに単に setVisible(false); と書けばよいが 親のクラス名.this.setVisible(false); と書いてもよい
thisだけが欲しい場合には クラス名.thisなんて出来るんですね、これはイイ
eclipseで後からmain関数を追加するとエラーになるのですが クラス追加するウィザードでmainメソッドを付けなかった場合 何を設定すれば良いのでしょうか
なりませんよ 特に何も設定はいりません
思いやりの気持ち。
優しい気持ちでコンパイルしてみたら解決しました
ちなみにmainメソッドを作りたいところに main と打ってCtrl+Spaceで幸せな気分になれる
よけいなお世話です
それはどういう事でしょうか
java.util.UUIDってなんでversion 1のUUIDを生成できないんでしょうか。 UUIDといえば普通version 1でしょう? 何を考えてこうなってるんでしょう? 代わりに別のライブラリを使いましたけど。
macアドレスが存在しない環境でも動作する必要があったんじゃない。知らんけど
横幅は親ペインいっぱい 縦は固定幅 というレイアウトがしたいのですがうまくいきません 今のところ一番近いのはBoxLayoutにY_AXISを指定するというものですが これだと横幅が親ボックスの幅になってくれません 何か良い方法ってありますでしょうか?
シンボリックリンクとハードリンクの違いについて教えてくれ
antをインストールしようと思ってもpathが通らない システム変数 ANT_HOME C:\Program Files\Apache Software Foundation\apache-ant-1.8.1; システム変数 Path %ANT_HOME%\bin; コマンドプロンプト上でpathと打てば反映されているようなんですが、分かりません vistaです
セミコロンで囲って再起動したらできました ファイル名にスペースが入っている場合は””が必須なんでしたっけ?
セミコロン????
ダブルクオーテーションだな
JTableのセルはコンポーネントじゃないんだな これまで作った奴全部捨てて作り直しだわ
駄目だpathは通ったけど実行すると C:\Users\admin\Desktop\Javacode\ant>ant Files\Apache の使い方が誤っています。 って出る 調べた感じだと””が2重になっててうまくいってない云々・・・なのか知らんがよう分からん
>Files\Apache まああからさまにスペースが理由だわな
今度こそうまくいきました pathいじるたびに半角スペースの扱いに困る・・・ お騒がせしました
JAVAのコード書くのに手頃なフリーのエディタがあったら教えてちょ
迷ってるならEclipse使えばいいんじゃないかな
idleくらい手軽なエディタがありゃいいのに・・・
JAVAの登竜門的な本はないだろうか むろん、経験・WIN=WIN・実績がものを言うのはわかっているのですが、あえて・・・ と、いうのも、これからSEになるのですが、理工系ではあるものの情報系は疎くこまっていまして なにか、よい本がございましたら、ご紹介ください
入門書→Effective Java
>>520 ありがとうございます。
まずは、デザインパターン入門からはいったのですが、なかなか難儀しておりまして
本屋さんにいってみます
文法の知識なしでデザインパターンから入門っておかしいだろw
523 :
521 :2010/12/27(月) 20:57:22
かなり苦戦しています アダプター、テンプレートなどなど、がんばってみればわかるものの、応用できる気がまったくしないです・・・
特定の問題に対してあるパターンを使えるかって考え方をするべきで パターンありきで応用を考えるってのは典型的やっちゃダメなこと パターンは一つの方法でしかない
そりゃそうだ。 デザパタってのはPGの工夫がワンパタ化してきたものに世界共通の名前を付けただけだからな。 応用が先で名前が後だ。
しったか乙
528 :
521 :2010/12/27(月) 21:17:56
>>524 ありがとうございます
それを心がけます
529 :
521 :2010/12/27(月) 21:21:08
>>525 面白そうな本ですね
正月休みに読んでみます
>>526 ちょっと背伸びして、抽象的な世界から入ってみようなどとおもったのが誤算だったようです・汗
何が「抽象的な世界」って(笑) ミジンコ程度の脳味噌じゃ何やっても無理無理(笑)
531 :
521 :2010/12/27(月) 21:50:05
>>530 そうなんですけどね
ミジンコがサルになるかもしれないじゃないですかw
俺も初心者程度のレベルだけどさすがに最初がデザパタってのは無いってわかるわ
>>519 がなぜデザパタ入門から始めたのか激しく気になる
ミジンコだからだろw
534 :
521 :2010/12/27(月) 21:59:27
>>532 アルゴリズムやきれいなプログラムを目指したい気持ちが先走りすぎました
535 :
532 :2010/12/27(月) 22:08:13
>>534 それはなんか共感できるわ
俺の場合は「いや、無茶だろ」っていう自戒が先に出たけど
ミジンコ乙
>>519 「プログラミング言語Java」
これの第一章だけでも完全に理解すれば基礎は大丈夫なはず。
その場面に出くわさないとありがたみはわからんてよ>デザパタ
デザパタってのは、知らなくても良く考えて設計してると自然に行き着くような、そういうもので、それを文書にまとめたものなのだ。 ざっと読んでみて「まぁ普通はそうなるわな」という感覚で読めないと身についていないし、使うことすらできない。 「デザパタを勉強してデザパタを使ってプログラムを書こう!」という発想は順番が逆で、 そういう人はデザパタを今あえて勉強するような技術レベルではないことが多い。
ミジンコは黙ってろよw
ほかには、設計を簡単に説明するとき非常に有用かな。 「ここはObserverパターンで作ってますんで」 「なるほどね」 それだけで意思疎通できる。
PGのミサワ オライリー本の洋書買ったわー 俺、オライリー本の洋書買ったわー Effective Javaくらい読んでおけよー お前、Effective Javaくらい読んでおけよー
えーっ!? お前のEffective Java、まだ電子化してないの? かーっ!やっぱりHappy Hacking Keyboardは使いやすいわー めっちゃ押しやすいわー!(スコスコ)
VB経験はあります 文法もそれとなくわかります ただ、オブジェクト思考やらインスタンスがよく分からないっす やらしいJAVAは読んだんですがパッとしないです 何か良い本ないですかね
本に頼るな あたって砕けろ 最近マニュアル人間が多すぎる
本は読め ウンコみたいなコードが多すぎる
ウンコみたいなコードってたとえば?
まずはウンコみたいなコードを量産してから本を読むならまだしも
>>453 なんと…
現状、LinuxデスクトップでSwingアプリケーションは日本語入力できない可能性が強い
を意識しながら構成を考えなければならない、ということですか。
ん〜プラットフォームに依存しないからで作ったが、えらいことになった…
ただし本読む前の量産は 配布したり会社で使ったりしないこと
“インスタンスがよく分からないっす”という人には、 「メモリには、スタックとヒープと静的領域があって、、、」 という絵を書いて説明するといいと思うのだが、 そういうものを自習できる本ってあるのかな。 どんな本があるか全然知らずに言っているんだが。
スタックやヒープなんか知ってる必要ないだろ
常に意識しなくても良いと言うだけで、 知らなくていいというわけではない。
すいません、System.nanoTime()をスレッドの中と外で使ってるんですが、 たまに返ってくる値がマイナスになってしまいます。 考えられる理由としてどういうものがありますか? よろしくおねがいします。
別々のスレッドで取得した値を引き算した結果がマイナスというオチはないよね?
あるいはintに入れてオーバーフローとか
>>556 メソッドの開始〜終了の経過時間を計算したら負の数になったってことですか?
System.nanoTime()はlongですがオーバーフロー時に値がゼロリセットされたり
することがありますよ。
561 :
556 :2010/12/28(火) 21:57:32
みなさん、ありがとうございます。 値の確認の時だけintにキャストしたものをさらにstringにして確認してます。 Integer.toString((int) System.nanoTime())+" systemNS"; みたいな。 ただしこれは値を確認する時だけです。 それ以外の時は long hoge; みたいにグローバル変数として最初に定義したものを、 メインの関数内で hoge = System.nanoTime(); としてまず値を取得。 それをスレッドのrun()内で long threadHoge; while(true){ threadHoge = System.nanoTime()-hoge; //処理 } みたいにして使ってます。 これがオーバーフローというやつにつながるんでしょうか…。
あ、ちなみにメインの関数内のhoge = System.nanoTime();は
何度も呼ばれてhogeの中身が再設定されるので、
>>557 さんが言われたことに近いのかな。
そのメインの中で取得したhogeの中身を、スレッド内から
Integer.toString((int) System.nanoTime())+" systemNS";
という風にstringにして確認すると中身が-2065724334とかになっちゃう時がある、という話です。
(常にそうなるというわけではない)
って、わかりやすく追記しようとして余計にわかりづらくなってしまったかも知れません。
Integer#MAX_VALUE = 2147483647ナノ秒 = 2.147483647秒。 2.14...秒以上経過してからthreadHogeが更新される可能性があるにもかかわらず、 intの精度で出力してんなら当然負の値も出てくるわな。
>>563 なるほど、大変よくわかりました。
String.valueOf(System.nanoTime();
って形でstringにキャストするとマイナスの値が出ることはなくなりました。
ありがとうございます。
このスレのエスパー度の高さに驚嘆した
>>566 public byte[] readFile(File f) throws IOException {
byte[] data = new byte[(int)f.length()];
new FileInputStream(f).read(data);
return data;
}
ストリーム閉じてない。サイズ不明なファイルの全体をサイズ
チェックしないで全部読み出すので、たとえば4GBのファイルを
読むにはヒープが4GB以上の64bitVMが必要。
それにAPIドキュメントの記載を読んだ限りでは、上のコードでは
ファイル全体を読み出さない可能性がある(実際は全体を読んで
くれるみたいだ)
>>567 訂正
ていうか2GB以上のバイト配列って作れないですね。
>>567 確かにこれはうんこだな。
性能が低いだけでなく、バグ有りで、コードも芋臭い。
その場で辞表かかせるレベル。
<fileset dir="${client}" defaultexcludes="no" > antです コードのclientをproject/clientのように指定したい場合どうすればいいですか?
今ごろウンコ臭い顔をして2GB以上の配列を作ってるんだろうな(笑)
byte[]に読み込んで返すメソッドと決まってるなら閉じてない以外は問題ないだろ
>>567 は常に対象のファイルが数GBのサイズであることを想定してコード書いてるの?
バイナリファイル読むときにread(buffer, 0, 4)で実際には3バイト以下しか読み込まれないかもしれないと考えるの?
プログラムなんて、動いてるように見えればウンコでもOKだよな
だなw
うんこがうごいた!
Unko unko = UnkoFactory.getUnko(); unko.move();
ubuntuにeclipseをインストールしてみたんだけど、ctrl + spaceにコードアシストを変更しました でも、コードアシストが表示されません なぜでしょう?
IMEに奪われてるとか?
581 :
578 :2010/12/30(木) 00:44:30
適当にやっていたらば、動くようになりました ibusのご機嫌が悪かったみたいで、うまく動かなかったのかも
repaint()を呼び出すボタンを押すと背景がグレーになってしまいます しかし、画面を最大化するとちゃんと描画されるのですが repaint()が動かない原因として考えられそうな原因ってありますか 該当部分はこんな感じです removeAll(); //全部コントロールを削除 add(panel); //panelは新しくコンポーネントを追加したパネル repaint();
revalidate
>>582 JComponent#repaint(Rectangle) とか使ってもダメ?
bashでtabを押すと、コマンド/パスがとかが補完されると思います それを、eclipseでやりたいのですがどうすればいいのですか? 1.ctrl + spaceでコードアシストを表示 2.矢印キーの代わりにtabキーでリストを移動
>>582 JComponent#repaint(Rectangle) とか使ってもダメ?
>>587 そちらは動きませんでした(指定矩形のみグレーになる)
>>585 多くのLinuxではCtrl+SpaceがIMEのON/OFF切り替えキーになってるのでIME側のショートカットキーを
無効化するのがいい。
中級者から上級者へランクアップしたいが、何をすれば良い? 本でも何でもいいがオススメ頼む 早く働きたいぜ・・・
まずは初級者から中級者へランクアップすることだ
public static void main(String[] args) { System.out.println("1:10秒 2:20秒 3:30秒"); Scanner scanner = new Scanner(System.in); int len = 10*scanner.nextInt(); long start = System.currentTimeMillis(); scanner.nextLine(); scanner.nextLine(); long end = System.currentTimeMillis(); int result = (int)((end - start)/1000); System.out.print(result + "秒 : " + (result == len ? "あたり!" : "はずれ!")); scanner.close(); } } 質問は、これでコンパイルができずに、「NewClass java15';'がありません。 long start = syste.current Timemills();] ⌒ になってしまうことです。「;」は入力されているはずなのに… どうしたらよいでしょうか
最後の}が余計だがとりあえずコンパイルは通るようだが。
>>594 じゃあ自分のjavaがおかしいのか…
まったくコンパイル通らないorz
ソースもエラーメッセージも一字一句違えず正確に書かなくちゃ原因はわからない エラーメッセージの syste. とか Timemills とかは上のソースにはないようだが、ソースにないものが出るはずはない どちらかが正しく書き写されていない
mv = new MyClass(); と MyClass mc = new MyClass(); の違いって何ですか?
599 :
デフォルトの名無しさん :2011/01/01(土) 22:34:55
docomoの絵文字とバイナリ出力について質問です。 例えば晴れの絵文字はバイナリでF89Fですから、次のようにコードを書きました。 FileOutputStream o = new FileOutputStream("test.html"); o.write("<html><meta http-equiv=\"Content-Type\" content=\"text/html;charset=Shift_JIS\" /><body><p>".getBytes("MS932")); o.write((byte) 0xF8); o.write((byte) 0x9F); o.write("</p></body></html>".getBytes("MS932")); o.close(); ですが、正しく絵文字が表示されません。 なにか勘違いしているでしょうか?
headタグが無いからそもそもコンテンツが出ないんじゃないですか?
>>599 Java の文字列の内部コードって UTF-16 じゃなかったっけ?
>>599 ファイル自体はShift_JIS表示で
0000 3C68746D 6C3E3C6D 65746120 68747470 <html><meta http
0010 2D657175 69763D22 436F6E74 656E742D -equiv="Content-
0020 54797065 2220636F 6E74656E 743D2274 Type" content="t
0030 6578742F 68746D6C 3B636861 72736574 ext/html;charset
0040 3D536869 66745F4A 49532220 2F3E3C62 =Shift_JIS" /><b
0050 6F64793E 3C703EF8 9F3C2F70 3E3C2F62 ody><p></p></b
0060 6F64793E 3C2F6874 6D6C3E ody></html>
と出力されてました(バイナリエディタで確認)
>>600 さんの言うとおり、タグの問題では?
>>601 getByteで文字コード指定すれば、
通常の文字であればString型の文字列が
UTF-16→指定した文字コード
で変換されます
>>599 後、勿論ブラウザがその文字コードに対応していないと表示はされません
605 :
599 :2011/01/02(日) 01:24:46
606 :
599 :2011/01/02(日) 01:29:01
というか、このスレをモバイルシミュレータで開いていたらちゃんと絵文字変換されているし・・・orz
607 :
デフォルトの名無しさん :2011/01/02(日) 04:48:16
']'がない とか <identifier>がない とか ';'がない とか言われます。 かれこれ4時間ぐらいここで躓いてるので、誰か助けて下さい>< Image [] image = new Image[6]; image[0]=Toolkit.getDefaultToolkit().getImage("image/migi_true.gif")); image[1]=Toolkit.getDefaultToolkit().getImage("migi_false.gif"); image[2]=Toolkit.getDefaultToolkit().getImage("migi_double.gif"); image[3]=Toolkit.getDefaultToolkit().getImage("hidari_true.gif"); image[4]=Toolkit.getDefaultToolkit().getImage("hidari_false.gif"); image[5]=Toolkit.getDefaultToolkit().getImage("hidari_double.gif");
607です。 2行目の("image/migi_true.gif")) は ("migi_true.gif") です。 申し訳ありません。
コンパイル通るまでコメントアウトして確定しろ
610 :
607 :2011/01/02(日) 05:57:28
[ ]を取って配列じゃなくせば上手くいくのですが… とりあえず、他の部分さえ正しければ、607のようなプログラムで動くんでしょうか? それが分かるだけでも大分ありがたいのですが…
>611 ありがとうございます。 また色々とやってみます。
>>607 は2行目閉じ括弧以外におかしい部分はない。
でもこんな書き方のほうがオススメだ。
Toolkit tk = Toolkit.getDefaultToolkit();
Image [] image = {
tk.getImage("image/migi_true.gif"),
tk.getImage("migi_false.gif"),
tk.getImage("migi_double.gif"),
tk.getImage("hidari_true.gif"),
tk.getImage("hidari_false.gif"),
tk.getImage("hidari_double.gif")
};
Image [] image→Image[] image
EclipseやNetBeans使わずにJavaを書くな、と言っても良い時代になったのかな?
616 :
デフォルトの名無しさん :2011/01/03(月) 08:46:24
ダブルクリックを検出したいのですが e.getClickCount() == 2 で行った場合、 どれぐらいの間隔までならダブルクリックとみなすのでしょうか? 検索しても、それらしき記述は見あたりませんでした
OSのダブルクリックの速度の設定
メソッド内にある変数のアノテーションとりたいんだけど方法ないのかな 継承すればクラスのアノテーションとして取得できる? void test(){ ..@Name(name="Hello") ..Hoge value = new Hoge(){ ....void aaa(){} ..}; .. ..Class<?> clazz = value.getClass(); ..Annotation[] clazz.getAnnotations(); }
匿名クラスのクラスにアノテーションつける場合はどうなるんだろ こうだとしたらキモいな Hoge hoge = new @Name(name="Hello") Hoge implements IHoge(){ void hello(){} };
javascriptのArray.prototype.forEachっぽいのを実装しようとしてるんだが、 下記で「未チェックまたは安全ではありません。」警告を回避することは可能? ※ArrayWrapperはプリミティブ方も扱いたいので、ジェネリクスを付けるのは無しで class ArrayWrapper { private Object arr; private int arrLength; public ArrayWrapper(Object arr){ this.arr = arr; arrLength = Array.getLength(arr); } public void forEach(VoidFunc func){ for( int i=0; i<arrLength; i++ ) func.exec(Array.get(arr, i)); } } interface VoidFunc<T> { public void exec(T elem); }
VoidFuncもObjectにすればいい どうせarrがObjectなら無意味なんだから
622 :
デフォルトの名無しさん :2011/01/03(月) 22:41:48
>>620 ジェネリクスでもオートボクシングされるからプリミティブも扱えるだろ
eclipseで実行を押すと違うプロジェクトが動き出しちゃうんだけど どうすればいいんですか?
625 :
620 :2011/01/04(火) 09:15:19
メソッドのジェネリクス使ったら解決した
interface VoidFunc {
public <T> void exec(T elem, int i);
}
>>621 何とかしてキャストを省略したかったんだ
>>622 やってみたけど警告出たままだった…
Debug.print(ID,"hogefuga") こんな感じでprintさせて、IDによって設定出来るかどうかを決められるような Debugクラスを作りたい ただ、 public static final boolean debug = true; if(debug){ System.out.println(...);} こういう感じにするとコンパイル後デバッグコードが消えるらしいので これと組み合わせたい こういうことは可能ですか?
何がやりたいかよく分からんが、 java.util.logging.Logger じゃ不満?
不満です
いえ、不満じゃありません
質問よろしいでしょうか。 Android 開発を行ってますが、Android には関係ないと思うのでここで質問させて頂きたいです。 画像ファイルが複数入っている zip ファイルから、 指定のファイル(ファイル名で指定)のみを取り出して表示させようと思ってます。 FileInputStream fis = new FileInputStream(〜); ZipInputStream zis = new ZipInputStream(fis); for (ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) { // もし指定のファイルなら表示して break } これで動作はするのですが、zip ファイルには3万を超えるファイルが入っており、 たまたま後ろの方にあるファイルを指定した場合、非常に時間がかかってしまいました。 そこで、C言語で言う ftell および fseek を使えば、 起動時に ftell でファイル名⇔ファイル位置のハッシュを作っておき(時間がかかりますが起動時に1回だけなので許容範囲としてます)、 表示時は fseek で一発で取り出せるのでは?と考えました。 ただ、ZipInputStream に fseek の代わりになりそうな skip というメソッドは見つかったのですが、 現在のポインタ位置を取得する ftell に当たるメソッドが見つかりません。 RandomAccessFile というクラスも見つけましたが、zip に使う方法が分からず…。 何かいい方法はないでしょうか。 長文で申し訳ありませんが、よろしくお願いします。
>>630 ZipFileクラスでファイルを開いて、getEntry(String)でファイルを見つけ、
getInputStream(ZipEntry)でファイルを取り出す。
>>631 おおお、あっさり行けました!!
ありがとうございます!!見つけれなかった自分が恥ずかしいです…精進します!
JarファイルにMETA-INF/INDEX.LISTってファイルを配置してもあんまり効果が無い気がするんですけど… Jarファイル内からclassファイルを探すにしてもFQCNからclassファイルの場所は解るんだからインデックスなんていらないですよね? META-INF/INDEX.LISTって本当に意味有るんですか? これに関する性能調査とかの記事とかありますか?
//5万未満3以上の素数を求める class HogeClass implements Runnable { public static final int N = 50000; public static boolean[] f = new boolean[50000]; private int p; public HogeClass(int p){ this.p = p; } public void run(){ for(int i=3;i*p<N;i+=2){ f[i*p]=true; } } public static void main(String[] arg){ for(int i=3;i<N;i+=2){ if (f[i]==false){ (new Thread(new HogeClass(i))).start(); } } int k=0; for(int i=3;i<N;i+=2){ if (f[i]==false){ k++; System.out.print(i+","); } } System.out.println("\n素数="+k+"個"); } } スレッドの使い方を勉強してるんですが、素数を求めるプログラムをスレッド使って作ってみたんですけど 私初心者なんでこれで問題のある部分あったら教えていただけないでしょうか
>>633 INDEX.LISTは複数のjarから構成されたアプリケーションであるclassをロードするときにどのjarから探せばいいかを示すためのもののはず
jarが1個なら意味ない
>>634 startしたスレッドが結果表示時に完了している保証がない
> public static void main(String[] arg){ > for(int i=3;i<N;i+=2){ ↓ > public static void main(String[] arg){ > for(int i=3;i*i<=N;i+=2){
javaでsql使ったサンプルコード探すと mysqlばかりでsqliteがないのは何か理由があるのでしょうか JDBCがsqliteに対応してないとか?
JDBC使うならターゲットデータベースがOracleだろうがPostgreSQLだろうがSQLiteだろうが関係ないだろw そりゃSQLの文法の違いとかあるけどさ。
sqliteってなんだっけ?DBなんだっけ?
JDBCのドライバがsqlite3しか対応してなくて sqlite2以下が切り捨てられてるから?
俺はHSQLDBがお気に入り
643 :
デフォルトの名無しさん :2011/01/06(木) 19:11:01
Javaでの文字コードの判別方法について教えてください。 Strutsで構成したWebシステムで、 ユーザーにテキストファイルをアップロードさせて、 サーバー側の処理で、その内容が ・UTF-8または半角ASCIIのみの文字列→OK ・それ以外の文字コードやバイナリファイル→エラー というロジックを作りたいです。 byte[]型を自動判別してUnicodeに変換しString型に格納するといった系の処理は出てくるのですが、 あるファイルのバイト配列から、『この文字コードは「」である』といった結果を取得する方法が見つかりません。 何かいい方法はありませぬか?
UTF-8 だけでいいのなら、 CharsetDecoder で実際にデコードしてみればいい onMalformedInput と onUnmappableCharacter で例外を投げるように設定すればエラーを検出できるんじゃない
class pathは外部のライブラリを参照する時に、 外部のライブラリがどこにあるのかを指し示すパスなのでしょうか? IDE以外で開発をしたことがないのですが、特にそのへんを気にしなくても外部ライブラリを使うことができました これは、IDEが勝手にクラスパスを設定してくれたというで間違えていませんか? 長文スマソ
そうですが、外部のライブラリだけではなくアプリケーション自身のコードもクラスパスに含まれていなければ参照できません 間違えていません ただしJRE自身と jre/lib/ext にインストールしたライブラリはクラスパスで指定しなくても参照してくれます
647 :
645 :2011/01/06(木) 20:54:50
>>646 レスありがとうございます
クラスパスを設定した時どのようなメリットがあるのか理解できないので、クラスパスがいまいちわかりません
java jp/google/www/hellow とすれば実行できるのに、
なぜクラスパスを設定する必要があるのですか?
めんどくさいからだ!!!!
649 :
645 :2011/01/06(木) 21:02:37
>>648 結局、IDEを使えばクラスパスは自動で設定してくれるので、
特に気にする必要はないってことでおkなのでか
class pathを使うと*.classに全然関係ないディレクトリにいてもらくらく実行できるってことで間違いないですか?
$pwd → /opt/virtualbox
$java Main →"Hellow world"
ってことかな...
unix文化だから
>>649 IDEで、このプロジェクトではその外部ライブラリを参照するよ、ってな設定をしたんなら
そこにクラスパスが通った状態で実行してくれる
>class pathを使うと*.classに全然関係ないディレクトリにいてもらくらく実行できるってことで間違いないですか?
おk
PATH と同じよ
あんまいい加減なこと書くなよ…。
2chだからok
javaアソシエイツとjavaプログラマーを読んでアルゴリズムは大体理解したんだけど 全然プログラム組めるようになってない cmdで動くjavaファイルしか作れるようになってないし、アプレットの作り方なんて全然分からん 上の二つの参考書読んだくらいのレベルで消化できるアプリ開発とかの本があったら教えて
655 :
645 :2011/01/06(木) 22:48:04
>>651 クラス jp.co.google.www.hellow.Main.class を実行する時は
cd /home/user/;java jp/co/google/www/hellow/Mainとやらないと
*.classを実行することができない(IDEでやってたので知らなかった..)
でも、それじゃ面倒なので
java jp.co.google.www.hellow.Mainで実行すると、↑と同じことをやってくれるってことですね
jp.co.google.www.hellowって入力するの、ちょっと面倒ですね
これで、クラスパスはOKでしょうか
>>654 もしかして、javaからプログラミングやり始めた人間?
.netの方がスラスラとプログラムを作っていくことができるよ
できるよ
パッケージとクラスパスがごっちゃになってないか?
servlet/jspはHTMLを吐き出すという点では同じですが、 結局何が違うわけですか? どっちもtomcatは必須ですか
>>656 そうなのか
じゃあ.Netもやってみるよ
ただwebのサイトを作りたいと思ってるからjavaも勉強した方がいいよね?
アプリケーションでもアプリでもいいから初歩から始められる本があればいいんだけど・・・
しかしjavaの本は皆高いな
図書館にも置いてないし
webサイトってもしかしてそれでアプレット? とっくに終わった技術だよ
Listのfilterとかmapみたいなのはまだ実装されてないんだよね?
>>660 書き方。
書き換えが必要なところだけを効率よくかけるようにしたのがjsp
PHPでもHTMLをはき出すのは同じなんだけどな。
tomcatが必須なわけじゃない、サーブレットコンテナとよばれるものがあれば。
ほかにもJettyやらResinとかがある。
666 :
デフォルトの名無しさん :2011/01/07(金) 02:05:53
>>660 jspは初回アクセス時にコンパイルされて
servletに変換されてるぞ
workを覗いてみれ
phpが遅すぎるのでjspにした この選択は間違ってないのだろうか
どうだろうね PHPのほうがハードルが低いのは確かだろうけど
Tomcat入れてる時点でリソースをより喰うのはJavaのほうだろうな。 とはいえ、それに見合った速度は出るはずだが。 昔はサーブレット動かそうとすると、専用サーバぐらいしか選択肢がなかったが、 GAE/JとかVPSとかで安く出来るようになったから嬉しい限りだ。
>>663 時代遅れ
webと言えばJavaなのはサーバー側の話。アプレットはクライアント側。
アプレットなんてJREが入ってないと動かないから嫌われるよ
いまなら、FlexかSilverlightでつくるかなぁ。 FlexのほうがFlashプラグインだけで済むから楽だな。 HTML5で行くっていうてもあるな。iphoneでもできると宣伝できる。
HTML5もあまり使いたくないな マークアップ言語とそれようのスクリプト言語、ブラウザを自作したいぜ
01|public abstract class ManyMethods 02|{ 03| // final が付いていないメソッド宣言たくさん、抽象メソッドたくさん 04|} 05| 06|public class Concrete extends ManyMethods 07|{ 08| public int get(){} // オーバーライドしたくないメソッド 09|} このような場合に Concrete#get() のメソッド名が衝突していると 警告やエラーを発してくれる キーワードやアノテーションってありますか? ManyMethods の方はライブラリになってて final を付けたりできず またオーバーライドされる事を想定したメソッドもあったりして ManyMethods を変更せずに何とかしたいです 御教授よろしくお願いします
>>673 間にもうひとつクラスを挟む
public abstract class ManyMethods {
...
}
public abstract class ManyFinalMethods extends ManyMethods {
public final int get() { return super.get(); } // オーバーライドしたくないメソッド
}
public class Concrete extends ManyFinalMethods {
...
}
Eclipseだとオーバーライドしてるのに@Overrideが無いと「@Overrideつけくされや」って警告がでるな。デフォルトの設定だと。
javadocはどうやってコメントを抜き出してるの?
javacとコンポーネント共有して、真面目に構文解析でやってるはず。
そういえばjavadocが未だにただのhtmlなのは残念だな。 eclipseのメソッド補完中に出てくるコメントとか、しょうがなくhtmlのjavadoc読んで、 その結果遅いわけだろ? IDEとの連動性とかその他の再利用性を考えるとXML+XSLTとか、いっそjson+html の方が断然有意義なはずなのに。
TimerTaskを内部クラスのように使うさいに(aはmainメソッド中で宣言、代入したオブジェクトです) 異なるメソッドで定義されたインナー・クラス内で非 final 変数 a を参照できません となるのですがfinalだと参照できるというのがよくわかりません。 どういうことなんでしょうか?
別のスタックフレーム上にあるローカル変数を参照するためのバイトコードはJVMに存在しないので、そのようなローカル変数は参照できない その変数の値を内部クラスの中にコピーして保持おけば、そのコピ−の方は参照できるが、代入とかして変更しても当然コピー元は変更されない 非finalな変数をこのように暗黙のうちにコピーして保持すると代入したときにこのような見ため矛盾が生じるのでそのようなことは出来なくした finalな変数なら代入できないから矛盾は発生しないのでそのようなことを出来るようにした
メソッド名で悩んでいるんですけど以下の2つだとどっちがおすすめですか? (1) List<String> getNames(); (2) List<String> getNameList(); メソッド名に返り値の型名まで入れるのは野暮な気がするので、(1)かなぁと思 いつつも、もしString[]を返すメソッドも欲しくなった場合を考えると区別す るために(2)かなぁとも思うんですが。 (2) List<String> getNameList(); (2') String[] getNameArray();
(1)だな 受け側でたまたま配列が欲しいからってクラスの方に追加するのはよくないと思う List<String>で受け取った後で自分で変換するべき
俺はどっちも使う 気分で決める だけど > もしString[]を返すメソッドも欲しくなった場合を考えると そんな無駄なことまで考える必要はない 実際にそのメソッドが欲しくなってから考えればいいことだ
>>684 受け取った側がList<String>からString[]に変換するとコピーが1回ふえること
になりますよね?性能面でのデメリットが有るように思います.
>>685 String[]を返すメソッドが欲しくなってから追加した場合は、
List<String> getNames();
String[] getNameArray();
な感じで統一感が失われてなんか格好良く無い気がします.
つまり野暮だけど,メソッド名に型名を付けるのがベター気がしてきました.
(2) List<String> getNameList();
(2') String[] getNameArray();
そもそもJavaのシグニチャには返り値の型は含まれないので,メソッド名の命
名規則に統一感を出す為にはメソッド名に型名を書くのが良いのではないでしょ
うか?
getter/setterの場合を考えてみます. String getName(); は違和感を感じませんが,本当は違和感を感じなければならないメソッドでは ないかという気がしてきました.よく考えてみるとこれはNameという概念は Stringであるという設計上の了解が前提にあります. もし,Nameという型があるならば, Name getName(); も違和感を感じません.これはきっと正しいです. そう考えれば今となっては String getNameString(); は冗長には見えないのではないでしょうか? つまり,メソッド名には返り値の型名を付けるのが設計上妥当だと言えるので は?と思うのですがどうでしょうか.
eclipseが一発で名前変更してくれるので後から名前を変えたくなっても何も困らない
ライブラリならそもそも個性出しちゃダメ
明らかに冗長… String getName(); Name getName(); を混在させたければ、"Name"のところを工夫しろ
673です すいません説明が足りなかったので少し加えさせてください 01|public abstract class ManyMethods 02|{ 03| // final が付いていないメソッド宣言たくさん、抽象メソッドたくさん 04|} 05| 06|public class Concrete extends ManyMethods 07|{ 08| // ManyMethods の public protected メソッドを組み合わせて使って 09| // 新しい機能を提供するメソッド get() を加えたいんだけど 10| // もしかしたら ManyMethods#get() という名前が 非 final で 宣言されてるかも 11| // オーバーライドしたら挙動が変わってめちゃくちゃ 12| // ManyMethods はメソッド多くて調べるの大変 12| // ライブラリのVerUPで ManyMethods#get() が加えられるかもしれないし 13| // 名前が重複したらチェックできたらいいな 14| public int get(){} // オーバーライドしたくないメソッド 15|} という意味です ”オーバーライドしていること保障してくれる”アノテーションがあるのなら 逆の”オーバーライドしていないことを保障してくれる”アノテーションも あるのかなと思って質問しました 正直ライブラリの構造があまり良くないというのもあるのですが;; 命名規約を変えるか、継承ではなく集約で実装したほうがよさそうですね・・ どうもでした
>>692 名前をtypoってオーバライドしそこなうのは
親クラスを確認しないで継承してオーバライドしてしまうアホよりも
救済する価値が高い
設計ミスを認めたくなかったんじゃね
共変と上限境界(? extends T) 反変と下限境界(? super T) この2つの組み合わせは別物ですか?
>>686 ワンポイントで使うためで手抜きをするなら配列で
そこそこちゃんと作るつもりならListにする。
性能面の効率をなんとかかすめ取ることまで考えるなら、
引数にindexを渡して個々の値を所得するメソッドとサイズを返すメソッドを用意する。
配列は言語的にどうあがいても可変なので
フィールドから取り出したり格納するときに防御的コピーしなければならないのが確定
また、言語的に配列はジェネリクスと相性が悪い。
JUnitってどのくらい強力なのですか? 継承関係にないクラスが大量にある場合は、あまりメリットがないような気がするのですが
継承関係があると何故メリットがあるんだ?そこはJUnitと関係ないような
699 :
697 :2011/01/08(土) 22:29:07
>>698 そうだったんだ
業務ではvisual studioを使っているんだけど、単体テストツールを使ったことがないんだ
だから、ちょっとjunitを使うとどんなメリットがあるか、わかってないんだわwww
どういうテストコードを書くかは自由 まず、自分が作ったクラスや関数のそれぞれについてテストコードを書いとく 特に、内部的に大きな変更を加えたようなケースで、過去のコードが全部期待通りに動くかを まとめてテスト出来るのは便利
701 :
697 :2011/01/08(土) 22:37:11
>>700 Test Firstって考え方ですか
うちの会社でERPのカスタマイズしてるんだけど、
単体テストツール使っていなから普通の会社では使っているのかなって疑問があるわ
参考になりました。ありがとうございます
VSって単体テストツールないのか。 だから.NETのアプリってクソばっかなんだな。
Test Fisrt って言ってみたかっただけなんだ(うふ MSの癖にJavaをサポートしてるのか? エセJavaについてはシラネー
>>702 うちの会社は田舎にある会社だから、社員がダメダメな他人ばっかりなんだよ
C#使っているのに、NUnitの存在すら誰も知らないし
そして、俺なんか未だにVB6/SQL Server200で開発してるしさ
>>701 既存のプロジェクト+JUnit用の後付けテストコードって方法もあるから
テストファーストとはちょっと違うような。
どっちかっつーと自動テストか
eclipseのコードアシストをctrl + n/ctrl + pで選択する方法ありませんか? vimユーザなのでemacsキーバインドにはしたくないです
708 :
デフォルトの名無しさん :2011/01/09(日) 05:52:20
javaアンインストール中止と出た 新規でもインストール出来ない 個別にファイル消したのが悪いのかな
>>708 その前にやったことが原因かもしれない。
jdkのsrcには含まれていないソースコードもありますか? たとえばcom.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificatesです。
log4jを使ってて、bashに色付きでログを表示したいんですけど、やりかたが有ったら教えてほしいです。
jspをマウスでドラッグドロップしてVisualStudioのMFCみたいに編集する方法ないですか?
java Frame awtの質問なのですが、 プログラムの最初に import java.awt.Color; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.ImageObserver; とあったのですが、これらってどういう意味ですか? 普段なら import java.awt.*; import java.awt.event.*; と、これだけなのでこの二つの意味はわかるのですけど・・・
* なんてモノグサな表記を使わずに必要なものを個別にimportしてるだけ * の意味がわかってないとか?
>>714 それじゃ
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.ImageObserver;
これを
import java.awt.*;
import java.awt.event.*;
と置き換えることはできますか?
import java.awt.image.ImageObserver; が java.awt.* でも java.event.* でもないから無理だな java.awt.image.* も付けないと
>>716 import java.awt.*;
import java.awt.event.*;
java.awt.image.*
にしたら
class,interface,またはenumがないっていうエラーが出た・・・
javaって本当にいい言語だよな C#/C++は自由度が高すぎて、いろいろと考えるから疲れる
>>717 × java.awt.image.*
○ import java.awt.image.*;
たぶん吊りなんだろうなー
>>719 なんとかエラーが消えました。
ありがとうございます、でも今度はきちんと動作しなくなったけど・・・
Booleanを返すフィールドはisFirstみたいに isを付けると思いますが、これのアクセサメソッド名はget(set)IsFirstになるのでしょうか?
自分は setFirst(boolean)か setFirst() resetFirst() のどちらかにすることが多い
getはそのままisFirstがgetterね
フィールドをfirstXxにするかな
eclipseの使い方検索すると 以前のバージョンとメニューが違う項目に移動してたりして使えないんだけど その辺はメニューかたっぱしから開いて探すしかないの?
そんなんで困ったこと無いけど。
パースペクティブがJavaになってないとかそんなんじゃね。
>>725 普通はblankプロジェクトから作る
まあ今更Struts1も無いと思うけどな
JavaVMの仕組みについて学べる本屋やサイトがあれば教えてください。 お願いします。
最近の本屋はサービスいいんだな
>>728 池袋のジュンク堂とか、椅子が置いてあって、JavaVMの本を座って読めるよ。
洋書も豊富にあるし。
梅田のジュンク堂も忘れないであげて
売り物を店が椅子を用意して進んで読ませるってどうよ。
>>733 アメリカ辺りでは普通らしい。日本と流通のしくみが違うかららしいが。
javaプログラミングってなんて面白いんだろう
定期的に投入されるキモい釣り糸
え?
リフレクションはインスタンスの生成やprivateなフィールドにアクセスすることができます 普段はprivateなフィールドなんかにアクセスする訳なんてありえないと思います 結局、リフレクションは何に使われているんですか?
741 :
デフォルトの名無しさん :2011/01/10(月) 14:36:46
ぬ
そう思ううちは必要ないものだから気にするなというのは時々言われた
>>740 プライベートフィールドにアクセスするだけの目的じゃないからな。
XMLに記述されたクラスのインスタンスの生成とか。
jspファイルに記述されたメソッドの
呼び出しとか。
プライベートフィールドをいじったのは、
.Netだけど、DBのコネクションが隠蔽されたがゆえに、
トランザクションを貼ることごできなくて、
それを回避するために使ったこと位かな。
744 :
740 :2011/01/10(月) 15:24:57
745 :
デフォルトの名無しさん :2011/01/10(月) 16:43:19
>>740 前にdao層の切り替え(ベンダごと)に使ったよ。
ベンダごとでsqlなりロジックなり捌き方をかえる必要があったから。
>>740 beanからbeanとかmapに丸ごとコピーする関数を作る時とか
>>732 別に池袋、梅田に限った話じゃないんじゃ
Javaでコマンドプロンプトのプログラム用に、他の言語よりも おいしそうな標準ライブラリありますか。
プリン虎板とか?
commons-cli だろうなんといってもw
すみません、jpa-hibernateを勉強しようと思っているのですが、 jbossやglassfishのようなコンテナは必須なのでしょうか? 例えばswingアプリケーションでhibernateを使いたい場合は jbossも含めて配布する必要があるのでしょうか。
752 :
751 :2011/01/12(水) 00:14:05
すみません、必須ではないですね。失礼しました。
commons-cliはいつも使ってるが、OptionBuilderだっけ?このクラスの使い方だけは気にくわねぇわ。
気にくわねぇわね
hadoopのmapreduceプログラムを作ろうとしてます。 簡単な四則演算プログラムを作りたい場合どういった手段を取ればよいのでしょうか。 理想として 入力となるテキストファイルは 1 + 2 出力されるテキストファイルは 3 となるようにしたいのですが・・。 そもそもmapreduceでやろうとしてるのが間違いなんでしょうか・・ どなたかご教示願います。
せいぜい10個程度しかクラスが無いのに、JUnit使う意味ってあると思いますか?
そもそもテストすることを前提に考えて作ってないとテストするのは難しいよ
>>755 とりあえず簡単なコンパイラ製作の本を読んで構文解析
構文解析できたら数式の評価はinterpreterパターンでも使えば簡単
>>756 クラス1個あたりメソッド5〜10個と仮定すると、メソッド50〜100個ぐらいの規模でしょ。
JUnit使ってテスト書く練習するにはちょうどいい規模じゃね?
>>758 レスどうもありがとうございます。
interpreterパターンググってみたら希望が見えてきました。ほんとに助かりました!頑張ります
761 :
756 :2011/01/12(水) 21:09:30
ネームスペースってどう決めたらいいんですか? orgとかnetとかありますが、自分のパッケージをどうすればいいのか分かりません。 今作っているのは個人製作のアプリです。
.netプロジェクトではバージョン管理にvssを使うことが多いと思うのですが、 javaの場合はリポジトリに何を使っているのでしょうか?
>>763 普通どっちもsubversion。vssは残念なプロジェクト。
>>763 CVSでもSubversionでもgitでもmercurialでも好きなものをどうぞ
バージョン管理はGITでFA 少数開発ならSVNでもいい
768 :
デフォルトの名無しさん :2011/01/12(水) 23:43:01
>>765 その残念なvss好きが多くて
とても困ってる。。
>>768 好きなんじゃなくて老害がそれしか知らないとかそんなんじゃないの。
他を知った上で、あれが好きってのは信じられないわ。
770 :
デフォルトの名無しさん :2011/01/13(木) 00:31:28
>>769 svnとかも触ってみてもらったり
説明したりもしたけど、vssに慣れてるから。って
言われるんだ。
まぁ、確かに結構古い人達(20年ランナーもいる)だけどね。
でもBTS使いたいからsvnに慣れてもらうけど。。。
そんな連中にまともにBTSなんて運用できないと思う
772 :
デフォルトの名無しさん :2011/01/13(木) 07:57:11
確かに。
木構造のMYCLASSがあったときに、素直にこうするのと List<T> f(MYCLASS c){ List<T> result = new ArrayList<T>(); //cを使ってに追加する処理は省略 //nullチェックは省略 result.addAll(f(c.left)); result.addAll(f(c.right)); } 別メソッドを作って List<T> g(MYCLASS c){ List<T> result = new ArrayList<T>(); return gimpl(c,result); } List<T> gimpl(MYCLASS c,List<T> result){ //cを使ってに追加する処理は省略 //nullチェックは省略 result.addAll(f(c.left)); result.addAll(f(c.right)); } こうするのとでは速度的にはどちらが良いのでしょうか?
後半の再帰呼び出しが間違ってました List<T> gimpl(MYCLASS c,List<T> result){ //cを使ってresultに追加する処理は省略 //nullチェックは省略 result.addAll(gimpl(c.left)); result.addAll(gimpl(c.right)); }
それも間違ってるでしょう 正しいのはこうじゃないですか List<T> g(MYCLASS c){ List<T> result = new ArrayList<T>(); gimpl(c, result); return result; } void gimpl(MYCLASS c, List<T> result){ //cを使ってに追加する処理は省略 //nullチェックは省略 gimpl(c.left, result); gimpl(c.right, result); }
ああう、その通りです・・ 言いたいことを把握して頂いてありがとうございます。 質問したいことを別の形で言うと、 ArrayListを何度もnewすることのコスト増と 関数引数が増えてしまうことのコスト増では どちらが大きくなるのかなというところです
ウェブブラウザのJavaについての質問もここで良いのでしょうか?
XP SP3、Firefox 3.6.13って環境で
http://www.dreamvisor.com/ このサイトにアクセスすると、通常表示されるはずの右側にある、銘柄名、現在値、前日比って部分が表示されません。
Javaのコンソールを開くと
java.io.EOFException
at java.util.zip.GZIPInputStream.readUByte(Unknown Source)
at java.util.zip.GZIPInputStream.readUShort(Unknown Source)
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at com.dreamvisor.Chart.ChartData.loadData(Chart.java)
at com.dreamvisor.Chart.Chart.loadData(Chart.java)
at com.dreamvisor.Chart.Chart.run(Chart.java)
at java.lang.Thread.run(Unknown Source)
ってエラーみたいな物があるのですが、これの解決方法を教えてほしいです。
IEだと正常に表示されます。Firefoxをセーフモードで起動して観覧しても表示されませんのでアドオンなどのせいでは無いと思います。
他にはセキュリティソフトのON、OFFなども試しました。
>>776 一般論でいってArrayListの生成とコンストラクタ呼び出しのコストに比べれば
メソッド引数が1個増えるのにかかる処理時間増加分の方がコスト安いと思うが。
>>755 >そもそもmapreduceでやろうとしてるのが間違いなんでしょうか・・
そこじゃない。
hadoopってどんなところで使われているかわかってる?
大量のデータを分散して効率よく処理するためのツールで、
あなたの例を利用すると、
1+2+…って感じで、+で区切られた数字が収められた1TByteのテキストを、
10台のマシンで処理しようとするときに、各ノードにデータを分散させて処理させて、
その結果を集めてくるまでをやってくるしくみ。
構文解析とかそういうのは全くhadoopとmapreduceには関係ない。
>>777 サイトの管理者に問題を報告して解決を依頼してください
どーもこーもならん。 java.io.EOFException End Of File例外ってのがでてる。 データ送る側のデータがおかしいんじゃないかな。 素直にIEつかってなさい。
>>780 >>781 最初Firefoxのスレで質問したんですが
他の人は正常に表示されてるみたいです。
ですので自分の環境がおかしいと思うんでが・・・。
おまえの環境なんてしるか。ここを何板だと思ってんだ。 Windowsの再インストールから始めろ。
>>782 (777)
ここは開発者のためのスレッドであり板なので
PC初心者板あたりで聞いたほうがいいよ
PC初心者板はいつも荒れてるから PCサロン板のほうがいい
てす
public boolean equals(HOGE o) public boolean equals(Object o) この両方定義したら後者が使われたんだけど equalsのジェネリック版ってないのかな?
>>787 メソッドは名前と引数型が組になってメソッドなので、名前が同じだけじゃ単に名前が同じだけの別々のメソッドだから、
新しく equals(HOGE) を定義しても、それは equals(Object) をオーバーライドしたことにはならないし、
新しく変な (ジェネリック版の?) equals を定義しても、それは equals(Object) をオーバーライドしたことにはならない
equals(Object) をオーバーライドしたいなら、 equals(Object) を使わなければならない
ああ、これが動くためには ObjectクラスがObject<T>に変わって public boolean equals(T o) になる必要があるわけで、これは無理か compareToとか色々ジェネリック版があるのに equalsとかは非ジェネリックなままなのね
>>789 equalsっ同じ型同士を比較する場合だけじゃないような
継承関係のない型も比較できないと困る
792 :
789 :2011/01/13(木) 22:15:44
現実はそうなってないわけだが、 それなら public boolean equals(? super T o) で定義すればいいと思う
793 :
789 :2011/01/13(木) 22:17:41
あ、継承関係のない型か、それはオーバーライドとは関係ないのでは?
794 :
デフォルトの名無しさん :2011/01/14(金) 13:15:24
人からもらったプログラム群を動かしたいんですけど、 web-infってフォルダにjspとsrcフォルダがあって、 .jspのファイルが50個くらい、.javaのファイルが50個くらいあります。 自分なりに調べてtomcatいれてindex.jsp開いてみたらプログラムの一部分しか開けていないよう。 .javaのほうも一つコンパイルして.classにしてtomcat通して開いてみたけど違うみたい。 これらはどうやって使える状態にするんですか?全部classにコンパイルすればいいんですか?
>>794 使えるようになるには、ドキュメントとか場合によってはソースとか全部読んで理解する必要があるんじゃないだろうか?
796 :
794 :2011/01/14(金) 14:29:55
>>795 これら計100個くらいのプログラムで一つの大きなプログラムじゃないんですか?
上でも書いたように、今どれか一つを開いても形になっていないようなので。
798 :
デフォルトの名無しさん :2011/01/14(金) 14:33:20
JAVAの実行画面をワードに貼り付ける方法を教えてください!
検索しましたけど、見つからなかったので、Java Web Startの質問はここで良いですか?
良いですよ
>>798 キーボードのPrintScreenキーを押してからワードの貼り付けを実行してください
>>796 形になってないことが分かっているんだったら、そのままでは絶対使えないよね。
大量にある形になっていないものを調べながら形にしていくよりは
自分なりに調べて一から作り直した方が早いよ。
803 :
デフォルトの名無しさん :2011/01/14(金) 16:23:39
XXX.classのファイルを開くにはどうしたらいいですか?文字化けでもいいので見たいです。 完全に見れない状態で、WEBで作成元のプログラムを表示してくださいとでます
javap -c XXX
>>803 java decompilerとかどう?
>>800 ありがとうございます。では、
既に作成してwebサーバにアップロードしたjnlpファイルを編集してheap sizeを増やしたりすると、
アプリケーションが起動しなくなるのですが、これは仕様でしょうか?
>>806 増やすっていうのがどのくらいのことなのかわかりませんが、
例えば32ビットCPUではアドレス空間を4GBまでしか扱えませんので、そこまで増やすことはできません
(その4GBもOSやらなんやらがだいぶ持っていってしまうので、Javaヒープのために使える空間はもっとかなりだいぶ減ります)
もし64ビットCPUと64ビット版のOSを使ってるなら、JavaVMも64ビット版にすればもっと増やせるようになるでしょう
で、2chでそういうと「○○に決まってるだろ」という回答がもらえると
同じインターフェースで実装が異なるライブラリがあるんだけど、 EclipseとApacheの実装だとどっち使ったほうがいいのかな? 機能的にはどっちでも良いんだけどね。
お前が好きな方に決まってるだろ
24時間稼動してるシステムがあって、配列とかリストとかを定期的に データベースへ保存するスレッドが走ってるんですが これを、負荷の低いときだけ保存する、または負荷の高いときは保存しない みたいにしたいと思います。 負荷が高いとか、低い、とかの判断方法があったら教えてください。
スレッドの優先度を下げておけばいいんじゃない
スレッドの優先度を下げておけば 負荷が高いとか、低い、とかの判断ができるんですか???
>>812 OperatingSystemMXBean#getSystemLoadAverage()
ただしWindowsだとサポートしてなかったような記憶が……
できます
オープンソースのコードとかjavadocのコメントがちゃんと書いてありますが ああいうのは普通にエディタで1個1個書いてるんですか? javadocのコメントを書く際に便利なツールとかってありますか?
例えばEclipseだとショートカットキー一発で「デン」と雛形が挿入されるけど。
tomcatのweb.xmlで cvc-complex-type というエラーが出ていたんですが無駄な改行を消していたらいつの間にか消えました。 あれはなんですか?
struts2のゼロコンフィギュレーションでページが404になるときとかどうやってデバッグしたらいいですか?
JDBCで、SQLの問い合わせ結果(ResultSet)に対してSQLを発行するなんてことできる? どうやったらいいかサパーり見当がつかない。
viewは作ってないんだけどなぁ。 ResultSet resultSet = statement.executeQuery (sql_1); ってかんじで帰ってきたresultSetに対して、sql_2を発行するって感じなんだけど。
ResultSetをデータソースとするRDBを作りこめば可能かもね
サブクエリ?
827 :
デフォルトの名無しさん :2011/01/16(日) 00:41:03
以下のページについて、ZeroAction.classということは
プロジェクトのプロパティから.classファイルの出力先をWEB-INF/classesにするということですか?
http://codezine.jp/article/detail/3837?p=2 <ContextRoot>
├ /WEB-INF
│ ├ /classes
│ │ ├ /zero.action
│ │ │ └ ZeroAction.class
OSGiのスレが無いんですが立てていいかな?
829 :
デフォルトの名無しさん :2011/01/16(日) 03:23:30
うん
>>824 本当にやりたいことは、結果に対するSQL発行?
一回目のクエリ結果をさらに絞り込みたいだけだったりしない?
もしそうなら、google-guavaのPredicate<T>かcommons.collectionsのPredicate
あたりをつかって絞り込むことをおすすめする。
eclipseでおすすめのUMLプラグインを教えてください
Limy
GET
834 :
831 :2011/01/16(日) 20:00:40
WEBサイトを作るに当たってstruts2だけでなくspringも使う事には何かメリットはありますか?
ぶっちゃけ流行ってる理由を明確に説明出来るほどのメリットはない。
837 :
デフォルトの名無しさん :2011/01/17(月) 14:18:31
初心者です。javaでたぬき言葉を作りたいのですが、「た」、「タ」、「田」を混ぜて作りたいのですが作り方がわかりません。 よければ、ソースを貼っていただけると嬉しいのですが、やり方だけでも教えていただけませんか。 開くのはJCpadです。 よろしくおねがいします。
JCpadでググったら 近畿大学って出た
StringBuilder sb = new StringBuilder("初心者ですって言うな"); Random r = new Random(); for (int i = 0; i < 10; i++) { sb.insert(r.nextInt(sb.length()+1), "た"); sb.insert(r.nextInt(sb.length()+1), "タ"); sb.insert(r.nextInt(sb.length()+1), "田"); } System.out.println(sb);
StringBuilderはたぶん講義で扱ってないだろうから反則だろ
じゃぁ、StringBufferで。
importがいらないのってMathとSystemだけなんでしょうか?
Langとか。 一体何のために知りたいのかがわからん。
>>812 以下のメソッドを使うのも検討してみては?
int java.lang.management.OperatingSystemMXBean.getAvailableProcessors()
1.6なんだけど
32環境でコンパイルしたものと
64環境でコンパイルしたものは同一のバイトコードができると思っていいの?
64のマシン持ってないからわからん・・
>>812 以下のメソッドを使うのも検討してみては?
int java.lang.management.OperatingSystemMXBean.getAvailableProcessors()
優先度下げると、いつまでも動かない事例が発生しかねない(ガクブル
ここからしつもん
1.6なんだけど
32環境でコンパイルしたものと
64環境でコンパイルしたものは同一のバイトコードができると思っていいの?
64のマシン持ってないからわからん・・
64でもバイトコードは同じ
実装案としては ループで閾値が書いてあるファイルを見に行って超えてなかったら 保存メソッドを叩く感じが運営的にいいのかもね
847さんくす ゲーム用サーバ買って公開しようとおもってて 稼動させながらコンパイルするのはどうかと思ってたんだ
850 :
デフォルトの名無しさん :2011/01/17(月) 20:02:21
eclipseでビジュアルクラス(Swing-アプリケーション)のプログラムを作成したのですが このプログラムに別に作成したプログラム(awt、applet)を組み込むことは可能でしょうか?
可能でなんでしょうかね
実装案2としては シェルとかでTOPの値見て同じことをやることもできる getAvailableProcessors()で取得できるCPU使用率と、TOPで取得できるCPU使用率は合一じゃない それか直接javaプロセスからexecするとかも考えられる
>>850 組み込むというのは同一プロセスで動作させる意かな?
もうすこしだけ具体的に書かないとわけわかめ
>>853 そういうことです。
ペイント機能をswingで作成し、絵を動かすプログラムをawtで作成しました。それを同一プロセスで動かしたいです。
USB関連はおざなりになってしまっているわけだけど ゲームコントローラの入力を個別に取得できないですかね? JoypadListener的な物がなぜないんだろうと思う、今日この頃
Graphics2DとRunnableあたりでぐぐってみたらどうだろう
>>856 ぐぐってみたらいけそうなこと書いてありました。
ありがとうございます
<!DOCTYPE properties SYSTEM "
http://java.sun.com/dtd/properties.dtd ">を宣言した
xml形式のプロパティファイルで、xml:space="preserve"を記述してホワイトスペースを
認識させようとしているのですが、以下のエラーが発生します。
何かうまい対処方法は無いものでしょうか?
InvalidPropertiesFormatException: org.xml.sax.SAXParseException:
Attribute "xml:space" must be declared for element type "entry".
スペースとか改行を「
進文字コード;」形式でエンコードするのはだめですか? SPACE: %#32; CR:
LF:
TAB: またはentry要素の下にCDATAセクションって入らなかったっけ? <properties> <entry key="hoge"><![CDATA[ほ げ っ]]></entry> </properties>
>>859 訂正。
「&#文字コード;」の記号を半角で。あとスペースのエスケープは「&#32;」でした「%」が間違っています。
SQL接続についての質問です。よろしくお願いします。 開発環境 Windows7 64bit Pro java -version java version "1.6.0_23" Java(TM) SE Runtime Environment (build 1.6.0_23-b05) Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode) 本番環境 Debian java -version java version "1.6.0_23" Java(TM) SE Runtime Environment (build 1.6.0_23-b05) Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode) javaは同じものを入れています。 jarファイルに格納されたSample.java(main含む)のコンストラクタに「Class.forName("org.sqlite.JDBC");」を記述したところ、 Windows/Debian共に「sqlitejdbc-v056.jar」を正常に読み込めていました。 package net.example.demo;にあるDBConnect.java のコンストラクタに同じものを記述すると、Windowsでは成功し、データベースにはアクセスできますが、 全く同じディレクトリ構造、プログラムにもかかわらず、Debianでは失敗してしまいます。 >> java.lang.ClassNotFoundException: org.sqlite.JDBC java -cp ".:sqlitejdbc-v056.jar" -jar main.jar のようにしても同じでした。 全く解決のアイデアが浮かばず困っています。解決策 or アイデアいただけませんでしょうか。よろしくお願いします。
>>861 「-jar」つけて起動すると-cpおよび-classpathパラメータ、それからCLASSPATHが無視
され、-jarの次に指定したjarファイルだけがCLASSPATHに設定された状態でランタイ
ムが起動します。
対策として、main.jar内のマニフェストに依存jarファイルの名前を書いておくか、または
java -cp main.jar:sqlitejdbc-v056.jar Sample
で動くはず。逆にWindowsで動くのが不思議・・・
あとパッケージ名の無いクラスの扱いは微妙。変に動いたり動かなかったりします。
txtファイルの改行コード確認するコードってどんなの書けばいいの?
>>862 返信ありがとうございます。たとえばアプリのプラグインのようなものを作っていてツリーはこのような感じです
-main.jar
-sqlitejdbc-v056.jar
+plugins
-Sample.jar
Sample.jar
-DBLoader.class
-Sample.class
他の人のDBを扱う物(位置はSample.jar列)はDebianでもWindowsでも正常に読み込めていて、
私が作ったものは何故かWindowsでは動き、Debianでは動かない状況が発生してしまっております。
教えて頂いたコードですが、動かす先がjar固定なので適応できません。すいません。
pluginsに任意のjarファイルを追加できるということなら、plugins以下のjarが実装できている であろうインターフェースや抽象クラスがmain.jarにありますよね? その条件なら自分でURLClassLoaderを作って起動後に子クラスローダを使ってjarをリンク する方法があります。詳しくは「階層化クラスローダー」をぐぐる。
866 :
864 :2011/01/18(火) 00:51:35
状況が変わりました 開発環境 Windows 動作成功 テスト環境 Debian4 動作成功 本番環境 Debian5 動作失敗 この手の質問は、Javaの質問なのでしょうか。 Linux関係の設定の質問でしょうか。申し訳ありません。 ちょっと状況が変わったので自己解決目指します。
>>865 これは使えそうです。知りませんでした、ありがとうございます。
868 :
864 :2011/01/18(火) 01:46:47
意外な腑に落ちない解決策です。 たとえばプラグイン名が AClass.classとします。 sqlitejdbc-v056.jar が先に読み込みたいクラスなので、という理屈で XClass.classにリファクタしました。 動きました。
>>869 Ant によ限らず、Java のソースは、
他のソースに依存している部分があると
依存元を道連れにコンパイルする。
871 :
デフォルトの名無しさん :2011/01/18(火) 18:39:33
JavaアプレットのMouseListenerで、手前側にあるコンポーネントがMouseListenerを持っていると その下側にあるコンポーネントにイベントが伝わりません。 手前側のコンポーネントがMouseListenerを持たなければ下側にも伝わります。 このイベントを、手前のも下側のも受け取れるようにするにはどうすればいいですか?
依存元じゃなくて依存先を
>>869 antのjavacタスクは増分ビルドです。でもソースフォルダとclass出力先が同じだったりすると
タイムスタンプが変わったかも。またはクラスAを継承したA'があるとき、Aを変えると
A'も変わるとかはあるかも。あとはeclipseで開発していてantのclasss出力先とeclipseの
class出力先が一緒だったらeclipseがファイル上書き時に勝手にビルドするのでそのせい。
874 :
869 :2011/01/18(火) 19:30:33
869です。どうもありがとうございます。 compileタスクに依存するjarタスクが定義されているんですが、ant jar する と、必ずcompileタスクも実行されます。ソースを全く触ってなく、ソースの タイムスタンプが未来になっているようなこともないのですが、ant jar する たびに .class ファイルも .jar もタイムスタンプが新しくなります。謎です…。 たぶん僕が何かミスをしているんだと思うんですけど、まだ判りませんorz ちなみに、src/Main.java と src/test.java というファイルがあり、Mainが testクラスを使っています。javacのdestdirは class/ です。importは多数 ありますが、更新されるようなものではありません。 あと、このソースに関してはIDEは使っていません。(NetBeansが入っているけど ちょっと使っただけで放置してます…) そんな感じです。だんだんチラ裏がふさわしい感じになってきた…すみません。
C言語やりたいから大学院行かせろとか姉が勝手にビルドするのでそのせい。
>>860 ありがとうございました。
以下のようなCDATAでできました。
<properties>
<entry key="hoge"><![CDATA[ほ げっ]]></entry>
</properties>
" " はホワイトスペースとして削除されだめでした。
if( cellx.status == 0 ){ cellx.status = 1; cellx.setBackground( XXXXXXXXXXXXXXX ); // 青緑色 RGB[85.136.136] } else { cellx.status = 0; cellx.setBackground( XXXXXXXXXXXXXXX ); // 水色 RGB[185.236.236] XXXXXXXXXの部分にコメントアウトで示している色を入れたいんですがどうすればいいのでしょうか?
>>876 の訂正
"&#32;" はホワイトスペースとして削除されだめでした。
cellxの型が解からんと答えようが無い。
>>879 http://www.ie.reitaku-u.ac.jp/~tak/sinfB/sinfB05.txt このURLの
//+++++++++++++++++++++++++++++++++++
// クリックしたときの動作 |
//+++++++++++++++++++++++++++++++++++
class Clickcell implements ActionListener{
public void actionPerformed( ActionEvent evt ){ // イベントリスナー
//... イベントソースのセルを取得
Cell cellx = (Cell)evt.getSource();
//... 消滅しているならば
if( cellx.status == 0 ){
cellx.status = 1; // 生成する
cellx.setBackground( XXXXXXXXXXXXXXX ); // 青緑色にする
//... 生成しているならば
} else {
cellx.status = 0; // 消滅する
cellx.setBackground( XXXXXXXXXXXXXXX ); // 水色にする
}
}
}
の部分です
new Color(185.236.236)とか多分そんなん Color.redとかでも
>>880 cellx.setBackground(new Color(85, 136, 136));
waitとnotifyってどういう時に使うんでしょうか? ランダム過ぎて使い道が分かりません ゲームくらい?
>>884 guarded suspensionパターンとかで。
886 :
デフォルトの名無しさん :2011/01/18(火) 23:16:07
>>885 複数の別処理をするスレッドの場合はどうしたら良いでしょうか?
>>886 addButtonもclearButtonもどっちもJButtonだからクラスじゃ判別できんだろう
こういうエラーがでるのですが、ググったり色々と調査しても 原因がわかりません。ヒントでも良いので何か頂けないでしょうか。 Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 at java.util.Vector.elementAt at javax.swing.table.DefaultTableModel.getValueAt at javax.swing.table.JTable.getValueAt ・ ・ ・ ・
開発環境の話ですみません。 Eclipseのpackage Explorerビューの設定がおかしくなってしまいました。 Eclpse起動時に、Project以下のツリーが表示されていたのですが ある日を境に、パッケージの奥深くのフォルダが1つ表示されるだけになってしまいました。 フォルダ移動してプロジェクトのルートに移動しても、 Eclipse再起動すると必ず奥深くのパッケージに戻ってしまいます… 設定を元に戻す方法を教えてください。
JSPで書かれた掲示板やブログってないのでしょうか
JSPWikiはどう
>>891 新しいワークスペースに切り替えてそっちにプロジェクト全部引っ越すといいんじゃない
>>807 もっと簡単に言えば、jnlpファイルを編集するとアプリケーションが起動しなくなるのですが、これは仕様でしょうか?
簡単に言いすぎて詳しいことがわからないが、編集する内容によるんじゃない 編集してメチャクチャな内容にしてしまったら起動しないだろう、それは仕様だと思うよ
>>888 wait/notify(notifyAll) は数少ない資源の獲得合戦に使うようなものだから、
各スレッドが違う資源を使うのなら、そう作れば良い。
>>890 どんなプログラムを実行して
どんな表示になって
どんな操作をしたら
そうなったのか。
>>896 内容が悪い訳ではありません。
新しく書き換えたjnlpファイルから新規インストールすると、普通に動くのですが、
そのjnlpを書き換える前から参照していたクライアントでは例外エラーが出て動かなくなるのです。
これは仕様なのでしょうか?という話です。
質問しようと思ったのですが 質問文書いてある間に自己解決しました
o-o、 ('A`) メガネメガネ ノ ノ)_
DBUnitの質問があります(Unitテスト関係のスレが見当たらなかったので、ここで質問させてもらいます) JDBC を使用して、ant + DBUnit でOracleへのデータへ追加や削除などをしようと考えています。 現在、ant + DBUnit(Flat XML) を使用して、Import処理(operation INSERT)までできています。 antにおいて、SQLでのUPDATEやDELETE処理などができることは確認しているのですが、 ant + DBUnit にて operation UPDATE や operation DELETE をXMLを使用して行いたいのですが、 XMLファイルに記載する内容がどこまで必要なのかがわかりません。 たとえば、VARCHAR2型のカラムA01〜A10の10個を持つTable-A が存在し、A01,A02,A03がプライマリキーとします。 UPDATEの場合、A01="A001" A02="A002" に一致するデータの A04の値を更新したい場合、XMLへどのように記載すればいいのかわかりません。 DELETEの場合、A01="A001" A02="A002" に一致するデータを削除したい場合、XMLへどのように記載すればいいのかわかりません。 いろいろなサイトを見てみたのですが、UPDATEやDELETEの場合、Antの記述の仕方が書かれたHPはいくつも見るのですが、 実際に指定されたXMLの内容が載っているHPが見つかりません。 またUPDATEやDELETEに関しては、JavaのソースからDBUnitを呼び出して処理を行うサンプルに関しても、いくつもHPがあるのですが、 Antに関する記述がありません。(できれば、都合によりJavaでの開発はしたくないので。) ant + DBUnit にて operation UPDATE や operation DELETE を行う場合の、XMLの記述の仕方を教えていただけますか。 もしくは、参考になるHPがあるのであれば、教えてください。 よろしくお願いいたします。
eclipseでデバッグする時に「クラス・ファイル・エディター ソースが見つかりませんでした」とエラーが出るのです。 ソースを見ても意味ないのでソースを見ないように設定したいのでが、設定方法を教えてください
2DMMO作っててJavaWebStart使おうと思ってるんだけど セキュア面で気をつけないといけないところを教えて下しあ クライアント:ほにゃほにゃ サーバー:むにゃむにゃ
DefaultHttpClientを使用してhttpsのサイトにアクセスしようとしてるのですが とりあえずloginとlogoutの処理を書いてみて試したところ loginはできるのですがlogoutしようとすると Caused by: java.security.cert.CertPathValidatorException: TrustAnchor for CertPath not found. at org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:149) at java.security.cert.CertPathValidator.validate(CertPathValidator.java:202) at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:164) というエラーになります。 SSLがよくわかっていないので試行錯誤中なのですが login時に確立したSSLセッションを保持しておいてlogout時にも使用すればいいのかなと考えたのですが DefaultHttpClient?からSSLSessionを取得する方法がよくわかりません。 SSLのセッションを取得するにはどうしたらいいのでしょうか?
>>907 ありがとうございます。
logout時にハンドシェイクに失敗していること、証明書パス検証に失敗してることまでは
デバッグ情報からわかったのですがそれが何を意味してるのよくわかってないので
そこらへんから勉強し直さないとやっぱ駄目ですね。
駄目ですね。
>>905 ローカルのホームフォルダにファイルをつくろうとするとなぜかデスクトップにファイルが作られることがある
911 :
デフォルトの名無しさん :2011/01/20(木) 23:19:27
Java並行処理プログラミング って本は役に立ちますか?
私の役には立ちました あなたの役に立つかはわかりません
買います
>>910 さんくる
今のところローカルマシンのファイルをいじいじする予定は無いので
ひとまず安心
ちょっとかいつまんで
コンカレントとシンクロの意味の違いさえわかれば、JAVA関連の書籍は買う必要ないと思ってる
916 :
デフォルトの名無しさん :2011/01/21(金) 20:02:59
継承よりinterfaceを使っていると 同じ内容のメソッドをコピペする事が増えませんか? そもそもinterfaceで定義されたメソッドが実装クラス毎に逐一異なるかというと 全く同じものになってしまうことも多いと思うのですが そういう場合どうやってコードを共通化していますか?
abstractってものがあってだな。
委譲でもいいし。
JAVAでお勧めのソフトってあります? みなさんお勧めのを教えて下さい。
ぱっとすぐにEclipseしか思い浮かばない俺は 「ものを作ってる」んじゃなくて「ものを作るのが便利になるためのものを作ってる」だけで 「ものは作ってない」んだなとなんだか悲しい気持ちになる これが不必要な抽象化というやつか
>>919 SUN(Oracle)の Java コンパイラ
922 :
デフォルトの名無しさん :2011/01/21(金) 20:30:02
java.utilのListから ユニークな要素一覧を取り出したり、ある要素の重複回数を調べたりする ListUtilityクラスみたいなのをつくろうかと思ったんですが 標準のもの、あるいはネット上のコードで同じ様な事が出来るものってありますか?
そういう操作をするならそういうデータ構造を使いなよ 前者はSetにaddallしてsize 後者はHashMapに<要素、回数>をaddする等
>>920-921 ありがとうございます。
一通りソフトは使ってみる事にしますね。
それから自分なりに使いやすいのを選んでいこうと思います。
925 :
922 :2011/01/21(金) 20:42:03
>>923 Set > List
の変換は標準的な方法で出来ますか?
>>925 マニュアルにはなんて書いてあることを予想しているんだろうか?
javafxでjavaにおけるtopフレーム(javafxでいうStage?)を取得する方法ってわかりますか(泣
今正式なJavaFXってあるんだっけ? FXScriptは消えてスクリプト廃止版は未リリースじゃなかったっけ
JavaFX、Adobe Flex、Microsoft Silverlightって鳴かず飛ばずだよな。 Silverlightは金でごり押ししてるけどやっぱり流行らんw
その中でもJavaFXはずば抜けてるけどなw 一度世に出したjavafx scriptをあっさり廃止 実質未リリースの上に信用も完全に失った
>>929 残念ながらFlexは思ったより使われてる。イントラ中心だけどな。
JavaFXのほうが流行ると思ったんだが、WebStartとかわらんかったなぁ。
Silverlightは聞いたことない。
Javaの仕事ばかりやってるからだろうけど。
Silverlight聞いたことがないとか・・・
>>927 はもしかしてJavaFX Scriptなのかな
だとしたら可哀想だけど今すぐやめろとしか言えないw
リッチクライアントはSilverlightだろうな。 あれってServletからjsonとかXML吐いたりして 連携できるんだろうか? ASP.NETは期待してたが正直がっかりだったからサーバーはJava、端末.NET っていう組み合わせがイイんじゃないかと思ってる。
なんだかJavafxはオワコンっぽいですね
情報少なすぎだよー
>>933 そうです><
Javadocで同じコメントを複数のフィールドに書きたい場合、 別個に書くしかありませんか?
JavaFXつくるからって資金打ち切られたSwing Labsがとばっちりすぎる。
>>938 JNI経由でVMにあるファイル操作系メソッド呼んでなかったっけか?
>>940 そうです。private native void openがJNIの宣言です。
探しているのはその先の実装コードです。
FileInputStreamの場合は、上記ソースの中にFileInputStream.cがあるのに、
FileOutputStream.cは無いんですよね。
942 :
デフォルトの名無しさん :2011/01/22(土) 02:00:45
パソコン初心者です。質問します。 Javaのアップデートを催促するお知らせがよく画面に出るので困っています。 画面に出なくする方法を検索して調べたら、WINDOWS 7の場合、コントロール パネルからJavaのアイコンをダブルクリックしてタブが表示される画面から 設定をするように出ていましたが、ダブルクリックしてもタブのある画面が開 きません。どうしたら良いでしょうか?アンインストールしても平気ですか? アップデートすると変に変わってしまいそうで不安で… アイコンにはJava(TM)6 Update21とあります。最新版はUpdate23のようです。
>>845 仮想マシンに32ビットも64ビットもない
httpリクエストのフォームで指定されたファイルをgzip掛けながらDLするServletを作っています。 物自体はできたのですが、効率の良いPGなのかわかりません。 具体的には以下を悩んでいます。他指摘事項があれば指摘お願いします。 1.BufferedInputStream、BufferedOutputStream、GZIPOutputStream のバッファサイズはどれぐらいがよいのか? 2.out側を Buff→GZIP→Buffと3重にする必要があるのか? 3.read/writeで使用するbyte[]のサイズはどのくらいがよいのか? public class Hoge extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { File dlFile = new File(request.getParameter("path")); if(!dlFile.exists()){ response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } FileInputStream in = new FileInputStream(dlFile); BufferedInputStream bufIn = new BufferedInputStream(in,1024); ServletOutputStream out = response.getOutputStream(); BufferedOutputStream bufOut = new BufferedOutputStream(out,1024); GZIPOutputStream gzipBufOut = new GZIPOutputStream(bufOut,1024); BufferedOutputStream bufGzipBufOut = new BufferedOutputStream(gzipBufOut,1024); byte buf[] = new byte[1024]; int len; while ((len = bufIn.read(buf)) != -1) { bufGzipBufOut.write(buf, 0, len); } bufGzipBufOut.close(); } }
Bufferedはもっと細かい単位(1バイト〜十数バイト)で小刻みに読み書きするときには使った方がよいけれど、 byte[]で(キロバイト以上の単位で)読み書きするときには要らない そのぶんbyte[]のサイズを増やす方がよい
>>941 そう、VMにあるってのはその先の話。
VM起動時にもファイル読み込み必要でしょ。
>>944 GZipOutputStreamは親クラスのDeflateOutputStreamがバッファリングしとるから
bufOutはなくていい。バッファの容量大きくしたければコンストラクタで指定できるし。
>>945 が言うように、byte[] bufの容量が十分ならbufGzipBufOutとbufInも必要ない。
>>941 あ、
>>940 や
>>947 で言ってるVMにあるってのは、
ライブラリのバイトコード側<-JNI->ライブラリのネイティブコード側<->VM側
っちゅー分け方したときのVM側にあったような気がするって意味です。
>>938 jlong
winFileHandleOpen(JNIEnv *env, jstring path, int flags)
{
const DWORD access =
(flags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
(flags & O_WRONLY) ? GENERIC_WRITE :
GENERIC_READ;
const DWORD sharing =
FILE_SHARE_READ | FILE_SHARE_WRITE;
const DWORD disposition =
/* Note: O_TRUNC overrides O_CREAT */
(flags & O_TRUNC) ? CREATE_ALWAYS :
(flags & O_CREAT) ? OPEN_ALWAYS :
OPEN_EXISTING;
const DWORD maybeWriteThrough =
(flags & (O_SYNC | O_DSYNC)) ?
FILE_FLAG_WRITE_THROUGH :
FILE_ATTRIBUTE_NORMAL;
const DWORD maybeDeleteOnClose =
(flags & O_TEMPORARY) ?
FILE_FLAG_DELETE_ON_CLOSE :
FILE_ATTRIBUTE_NORMAL;
const DWORD flagsAndAttributes = maybeWriteThrough | maybeDeleteOnClose;
HANDLE h = NULL;
つづく
if (onNT) { WCHAR *pathbuf = pathToNTPath(env, path, JNI_TRUE); if (pathbuf == NULL) { /* Exception already pending */ return -1; } h = CreateFileW( pathbuf, /* Wide char path name */ access, /* Read and/or write permission */ sharing, /* File sharing flags */ NULL, /* Security attributes */ disposition, /* creation disposition */ flagsAndAttributes, /* flags and attributes */ NULL); free(pathbuf);
} else { WITH_PLATFORM_STRING(env, path, _ps) { h = CreateFile(_ps, access, sharing, NULL, disposition, flagsAndAttributes, NULL); } END_PLATFORM_STRING(env, _ps); } if (h == INVALID_HANDLE_VALUE) { int error = GetLastError(); if (error == ERROR_TOO_MANY_OPEN_FILES) { JNU_ThrowByName(env, JNU_JAVAIOPKG "IOException", "Too many open files"); return -1; } throwFileNotFoundException(env, path); return -1; } return (jlong) h; }
>>944 バッファサイズ1024は小さすぎると思う。
【ファイル入力バッファ】
昔バッファサイズを変えてまったく同じファイルを繰り返しコピーする
プログラムを作って、処理時間をグラフにしてみたことがあるんだが、
そのときはバッファサイズが小さいと極端に遅くなり、大きすぎても
それほど効果が無いという結果だった。4096〜8192くらいが理想っ
ぽかった。(ただ再起動してないのでファイルキャッシュが効いている状態のテスト)
【Servlet出力バッファ】
Servletの場合出力先はTCP/IPソケットなので、ファイルI/Oとは
ちょっと違うはず。ちゃんと調べたことは無いが、俺は64KB(65536)
位のデカいバッファを使ってる。
TomcatのHTTPコネクタを使って大きなファイルをダウンロードす
るときの通信をwiresharkでキャプチャしてみた経験では、バッファ
が小さいと無駄に小さいTCPデータパケットが頻繁に出て行く現象
が見えたため。
以上から、(間違ってるかもしれないが)俺のお勧めはこんなかんじ
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(xxxxx);
byte[] iobuf = new byte[8192];
out = response.getOutputStream();
out = new GZipOutputStream(out, 65536);
int len;
while ( (len = in.read(iobuf)) != -1 ) {
out.write(iobuf, 0, len);
}
out.flush();
}finally {・・・ストリームclose();}
あんまりAPIの詳細はしらないが適当にカンで答えてみる Windowsの仮想ページサイズは4096Byteなので読みこみではそのサイズを使い ネットワーク通信はMSS依存の値 例えば一般的なイーサネット(1500)-IPとTCPのヘッダ(20+20)=1460にして RWINを65536/MSS*MSSに設定すればいいんじゃなかろうか GZipOutputStream(out, RWIN)
HttpServletRequest#getContextPathの値を HttpServletRequestを使用せずに取得する方法は無いでしょうか? 何がしたいかというと、HttpServlet#initで別スレッドを立ち上げて そこでコンテキストパスを取得して使用したいのです どなたかよろしくお願いします。
>>949 うーん、いまいちネイティブコード側とVM側の違いがピンと来てません。
>>950 ありがとうございます。
io_util_md.c にありました。おかげ様で無事見つかりました。
>>955 ServletConfigのgetServletContext()。
ひょっとするとJ2EEの古いバージョンには無かったかも。
ファイル書込で1回しかwriteしない場合って、Buffered〜でラップする必要なし?
以下のコードでなぜかresultの出力はマルチバイト文字だけ文字化けして、 "あいうえお"は正常に出力されます。 ソースコードは全てUTF-8で統一しています。 どのような可能性が考えられますか? sourceにはShift_JISで半角数字・英字とマルチバイト文字まで含んだものが入ります。 ByteArrayOutputStream source = new ByteArrayOutputStream(); //urlからsourceをセット String result = ""; try { result = source.toString("UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println(result); System.out.println("あいうえお");
960 :
959 :2011/01/22(土) 21:16:19
自己解決しました result = source.toString("UTF-8"); これsourceの文字コードを指定するんですね result = source.toString("Shift_JIS"); でうまくいきました
>>961 「applet 画像の表示」とかでぐぐればいんじゃね。
まあランダムとか選択肢とかは置いといて、「画像1→正解!→画像2→正解!→画像2→正解!→・・」と表示する画像ビューワを先に作って、
最悪それを提出すれば点は貰えるんじゃないか。
hsqldbを使ったアプリケーション作ろうとしたのですが、 hsqldbをServerモードで起動しても、Eclipseから繋げません。 逆にEclipseから繋いでいると、hsqldbを起動できません。 Eclipseがlockしてしまうようなのですが、どうすればいいでしょうか。 別サーバーのpostgresqlには多重に接続できるのですが。
すみません、hsqldbはローカルで起動しています。 java -cp hsqldb.jar org.hsqldb.Server -database testで動かしてます。
japplet上にjpanelを置き、その上に絵を出力させる方法がわかりません。お願いします
いつも思うんだが「わかりません。お願いします」って日本語として問題ありだよな
丁寧な雰囲気を出すために、文章の最後にお願いしますを書いとけばいいという風潮。 お願いします。
package main; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Image; import java.awt.Label; import java.awt.Panel; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; を import java.awt.*; import java.awt.event.*; と書き換えることはできますか?
無理
俺初心者だからよく分かんないけど import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; はどこ行ったの?
>>971 出てくる箇所全部限定名で書くんじゃね?
いっそもう import java.*; で
いっそもう import *; で
名前空間なんてなかったんや
javaにnamespaceってないだろ
用法としてほぼ同じという認識だったんだけど、 差異としてはどんなものがあるの?
ほとんど同じかと あえて挙げればパッケージプライベートという可視制御が存在する
>>977 ディレクトリ構造を強要される/されない
あえていうなら package…アクセス制御の単位として機能する namespace…名前だけ
C#だと両方あったりする namespaceは名前の飾りとしての意味しかなくて 名前空間とは無関係にパッケージスコープ相当のinternalアクセスレベルが別にある
そういやそうか。用語は正しく使わなきゃな。スマンカッタ
import java.*;じゃ孫階層はダメじゃね
C#からJavaに来たのですが、フィールドの扱いについて質問です。 メソッド A内でしか使われないような変数は、フィールドではなく、 メソッド内で定義していいですよね? 今度の案件のソース見てたら、メソッド内のローカル変数でいいようなものでも、フィールドで String something = null; のように初期化していたのでJavaではもしやそういう流儀なのかと思ってしまいましたが、 そんな訳ないですよね。
>>984 まず意味ないと思うが。
DIが流行って以降勘違いしてる人が増えたせいじゃね。
nullとかでなく初期化がされてる場合は、JUnitでその変数をある指定値で動作させたい時とかにありえる。
986 :
984 :2011/01/24(月) 01:45:15
>>985 ああ、間違いなくDIの影響ですね。
今回はDIを使ってないとの事ですので、
書いた人は何でもかんでもフィールドで初期化すればいいと思ってそうです。
ありがとうございます。
987 :
えーきち :2011/01/24(月) 02:38:19
助けてください。 以下のような実行できるのですがエラー?が出てきます。意味がわかりません exception in thread "awt-eventqueue-0" java.lang.unsupportedoperationexception java.awt.image.BufferedImage offset_img = new BufferedImage( width, height, java.awt.image.BufferedImage.TYPE_INT_ARGB); offset_img.setRGB( 0,0, width, height, pixel, 0, width); graphics = image.getGraphics(); graphics.drawImage(offset_img,0,0,width,height,this);
989 :
えーきち :2011/01/24(月) 03:21:27
import java.awt.*; import java.awt.event.*; import java.awt.Image.*; import java.awt.image.PixelGrabber; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.awt.Font;
990 :
えーきち :2011/01/24(月) 03:25:11
class gframe extends Frame implements ActionListener { TextField infilename; //ファイル名を入力するフィールド Button gazou; Button hist; Image image; //オフスクリーンで使うためのimageクラス Graphics graphics; //オフスクリーンに描画するためのgraphicsクラス String filename; //テキストフィールドからの文字列の取得 boolean buttonpush1 = false; //ボタンが押されたかどうかの判定 boolean buttonpush2 = false; BufferedImage readImage = null; int width,height; int w=0,b=0,j=0,z=0; int pixel[]; gframe() { setLayout(new FlowLayout(FlowLayout.LEFT)); //レイアウトの設定 infilename = new TextField(20); add(infilename); gazou = new Button("画像決定"); add(gazou); gazou.addActionListener(this); hist = new Button("ヒストグラム"); add(hist); hist.addActionListener(this); }
991 :
えーきち :2011/01/24(月) 03:27:34
public void paint(Graphics g) { if(image == null) image = createImage(1200,1000); if(graphics == null) graphics = image.getGraphics(); g.drawImage(image,20,80,1000,700,this); } public void actionPerformed(ActionEvent e){ if(e.getSource() == gazou){ readImage(); System.out.println("@1"); }else if(e.getSource() == hist){ cahanger(); System.out.println("@2"); } repaint(); }
ho
なんだこの芋臭いコードは。 スレに臭いがうつるだろ、シッシッ。
ほ
設定の扱いってみなさんどうされてますか? 50〜60個位の設定が必要なんですが。 最初、Digesterを使ってxmlからBeanにマップしてMapに詰めたんですが、 結局keyがStringとかになる訳で、そうするとkeyはハードコーディングせざるを得ないですよね。 理想はkeyがenumみたいに候補が出る形です。 propertiesでは1対1の対応しか出来ないので、2つ3つ関係させたい時は ダメそうです。
設定食わせてコードを自動生成
Javaでxmlの解析したかったらxercesというのを使っておけばいいですか?
標準のJAXPが不満ならxercesでもなんでも要件にあったものを。 突っ込んだことしなければ十分なはずだけど。
誰かこれをjpanelにつっこめるようswingで書いて下さい void offPaint() { int i,j; gOff.setColor(Color.white); gOff.fillRect(0,0,dim.width,dim.height); if (dispMode==0) { gOff.setColor(Color.black); for(j=0; j<NNy; j += 4) { for (i=0; i<NNx; i += 4) { gOff.setColor(Color.getHSBColor( (float)cr[i][j], (float)(0.3+0.6/(30.0*sg[i][j]+1.0)),(float)(0.5+0.25*Ez[i][j]))); gOff.fillRect(i+50,j+50,4,4); } } } }
1000 :
デフォルトの名無しさん :2011/01/25(火) 01:06:19
V V (´・ω・`) うさちゃんピース
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。