【初心者】 Java質問・相談スレ33 【大歓迎】
1 :
デフォルトの名無しさん :
03/10/09 16:20
2 :
デフォルトの名無しさん :03/10/09 16:21
3 :
デフォルトの名無しさん :03/10/09 16:35
今後テンプレはこれでいいよ。
>>1 のリンクも読まないような奴はだらだらしたテンプレも読まないし。
4 :
デフォルトの名無しさん :03/10/09 17:10
お世話になります。 いろいろ調べたものの分からないので質問させてください。 ( /* */ はインデントの代わりです。見難かったらすいません ) String stack = null; if ( obj instanceof Throwable ){ /* */ Throwable t = (Throwable)obj; /* */ ByteArrayOutputStream baos = new ByteArrayOutputStream(); /* */ PrintStream ps = new PrintStream(baos); /* */ t.printStackTrace(ps); /* */ stack = baos.toString(); } 以上のコードでスタックトレースを取得してるんですが、 なぜかスタックトレースを取得できない場合があります。 t.printStackTrace()でコンソールに出力させる分には 問題なく普通に出てくるのに、Stringとして取得することができません。 取得できないスタックはかなーり長いものですが、 こういう現象は割とあるものなんでしょうか。 回避策等あればお教えください。
>>5 ps.flush();
stack = baos.toString();
>>6 レスありがとうございます。
でも、flushしてもダメなんです。
checkError()してみたりしたんですが、falseが帰るのみでした。
StackTraceElement[] Throwable#getStackTrace()
>>7 ありゃ、そうですか。
PrintStreamの代わりにPrintWriterを使ったらどうなりますか?
>>8 レスありがとうございます。
最初に断っておくべきでしたが、
環境がjdk1.3.1なんでStackTraceElementは使えないようです。
お手数おかけしてすいませんでした。
>>9 PrintStreamをPrintWriterに変えると取得できました!
Uさんありがとうございました。
原因はよくわからないですが…
文字なんだからPrintWriter使っとけってことなのかな?
とりあえず取得できたので解決しました。
みなさんありがとうございました。
11 :
デフォルトの名無しさん :03/10/09 18:37
Object型をInt型に変換したいのですが、 色々調べたんですが、Object型を変換するっていうのが見つかりませんでした。 String型に変換してからIntへとかいろいろやってはみたんですが、 そもそもObject型の概念が全然分かっていないので、行き詰ってしまいました。 どなたか、ご教授のほどお願いします。。
12 :
デフォルトの名無しさん :03/10/09 18:48
元の型にキャストしてintに変換。 またはInteger型にキャスト。
>>12 ありがとうございました。
なんとかできました。
14 :
デフォルトの名無しさん :03/10/09 19:16
オブジェクトとインスタンスの区別がよくわからんでつ。 どなたか解説キボンヌ。
15 :
デフォルトの名無しさん :03/10/09 19:29
>>14 無理に区別しなくていい。
クラスとインスタンスの区別がついてればいい。
インスタンスはクラスからnewとかで作られるもの。 オブジェクトはJavaで扱われるもの。 オブジェクト = インスタンス + (int,double..) + 配列
17 :
デフォルトの名無しさん :03/10/09 19:31
>>16 あのー、配列も立派なインスタンスですが。
18 :
デフォルトの名無しさん :03/10/09 19:32
おっと、実体としてはね。 配列も「型」がある。クラスとはちと違うけど。でも Object のサブクラス。
20 :
デフォルトの名無しさん :03/10/09 21:22
ベッセル関数J1(x)の図形をjavaで示せって課題を 出されたのですがさっぱり分かりません;; J0(x)のプログラムはあるのですが講義2週目では 何が書いてあるかほとんど分からない状態です もし分かる方いたら教えていただけないでしょうか?
23 :
デフォルトの名無しさん :03/10/09 21:48
J0(x) のプログラムです もし分かればお願いしますm(__)m import java.awt.*; import java.awt.event.*; import java.lang.Math; public class Test1021 extends Frame { private int LPX, LPY; public Test1021() { setSize(800, 500); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void paint(Graphics g) { int[] ymin = new int[1100]; int[] ymax = new int[1100]; int i, k, px, py;
double rd = Math.PI / 180; double EPS = 1e-08; double x, y, z, ax, ay; double amp = 30; double S, a; double Sold = 1.0; ax = 30 * rd; ay = -30 * rd; for (i = 0; i < 1000; i++) { ymin[i] = 740; ymax[i] = 0; } for (z = 250; z >= -250; z = z - 5) { for (x = -250; x <= 250; x++) { S = 1; a = 1; for (k = 1; k < 1000; k++) { a = -0.25 * (x * x + z * z) / 100 / (k * k) * a; S = S + a; if (Math.abs(S - Sold) < EPS * Math.abs(Sold)) break; Sold = S; }
y = amp * S; px = (int)(400 + x * Math.cos(ay) + z * Math.sin(ay)); py = (int)(250 - (y * Math.cos(ax) - (-x * Math.sin(ay) + z * Math.cos(ay)) * Math.sin(ax))); if (py < ymin[px]) { ymin[px] = py; g.drawLine(px, py, px, py); } if (py > ymax[px]) { ymax[px] = py; g.drawLine(px, py, px, py); } } } } public static void main(String[] args) { Frame w = new Test1021(); w.show(); } } 長くてすいませんここまでです
26 :
デフォルトの名無しさん :03/10/09 22:42
>>20 >S = 1;
>a = 1;
>for (k = 1; k < 1000; k++) {
>a = -0.25 * (x * x + z * z) / 100 / (k * k) * a;
>S = S + a;
ここをJ1(x)の定義に基づいて書き換える。
その後、適当にパラメータを調節する必要があるかも知れない。
27 :
デフォルトの名無しさん :03/10/09 23:29
長文ですが質問です。ソケットを使ってオブジェクトの読み込みをしたいとします。 次のようなプログラムを書きました。 サーバー側 class Server { public static void main(String[] args) { ... ServerSocket ss = new ServerSocket(1234); Socket s = ss.acept(); ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()); File[] roots = File.listRoots(); out.writeObject(roots[0]); ...}} クライアント側 class Client { public static void main(String[] args) { ... Socket s = new Socket(.... ObjectInputStream in = new ObjectInputStream(s.getInputStream()); File file = (File)in.readObject(); ...}} このプログラムをそれぞれ異なるマシン上で実行します。 クライアント側では、サーバー側のFileオブジェクトが得られるはずだと思うのですが、 結果は、クライアント側のマシン上のFileオブジェクトが返ってきます。 勉強不足かもしれませんが、これの理由を教えてください。よろしくです。
>>27 > クライアント側では、サーバー側のFileオブジェクトが得られるはずだと思うのですが、
> 結果は、クライアント側のマシン上のFileオブジェクトが返ってきます。
APIリファレンスには java.io.File は
> > ファイルおよびディレクトリのパス名の抽象表現です。
と書かれている。パス名が転送されていれば それ以上は期待できないと思われ。
29 :
デフォルトの名無しさん :03/10/09 23:45
なるほど・・・ すばやいレスありがとうございます。 数時間悩んでいたのが恥ずかしいですw
30 :
デフォルトの名無しさん :03/10/10 01:05
質問があります。どうかよろしくおねがいします。 public class AA{ String a = "あいうえお"; String[] b = {a}; public void hoge(){ a = "かきくけこ"; System.out.println("結果:"+b[0]); } } このようなコードを書いていて、 僕の予想では、結果は「かきくけこ」になると思ってました。 b[0]にはaへの参照が入ってると思ってました。 b[0]→a→かきくけこ こんな感じで。 でも実際は「あいうえお」とでました。 つまりは、a="あいうえお"で、 aには"あいうえお"の住所が入って String[] b = {a}とした時点で b[0]には”あいうえお”の住所が直で入ったと解釈すればよろしいのでしょうか? また、僕が当初やりたかったことを実現するには どのようにすればよろしいでしょうか? jdkは1.3を使用しております。 どうかよろしくお願いします。
> b[0]には”あいうえお”の住所が直で入ったと解釈すればよろしいのでしょうか? そのとおり。 a = "かきくけこ"; ってのは単に、a が持っている参照を別なものに 上書きしてしまっている。 どう書けばよかったのか。 変数 a が持っている参照が指すものも、 変数 b が持っている参照が指す配列の最初の要素が指すものも、 どちらも同じ String オブジェクトなのだから、 そのオブジェクトの中身を書き換えてあげればよい。 public class AA{ String a = "あいうえお"; String[] b = {a}; public void hoge(){ a.replace("かきくけこ"); // a = "かきくけこ"; だったのを変更 System.out.println("結果:"+b[0]); } } でも、String クラスは不変 (immutable) なクラス設計になってる。 中身を変更できないようになってるのです。 だから、replace(String) なんていうメソッドは String クラスには無いです。 あとから変更したい/するかもしれない文字列を扱うには、 StringBuffer クラスを使う。 長くなったので、後は自分で考えて。
32 :
デフォルトの名無しさん :03/10/10 05:16
質問です。 アプレットでgetParameter()メソッドを使おうとしているのですが、 うまくいきません。ソースを以下に書きますので、どなたか問題点を指摘してください。 <<<test.htmlの中身>>> …略… <applet code="Abc.class" width="400" height="400"> <param name="speed" value="15"> アプレットを表示できません。 </applet> …略… <<<Abc.javaの中身>>> …略… class Abc extends Applet { int speed; public void init() { speed = Integer.parseInt(getParameter("speed")); } …略… } これでspeedには15が入ってると思うのですが、何がいけないのでしょうか?
33 :
32を書き込んだ者 :03/10/10 06:25
すいません、問題を履き違えました。 getParameter()は正しく作動してました。 改めて質問を書かせていただきます。 いろんな人が使えるような汎用性のあるアプレットを作っていて、 アプレットの初期化時にアプレットの大きさを取得してint型変数width,heightに 格納させて、width,heightをもとにイメージを作成したいのですが、 なぜかうまくいきません。どうすればいいのでしょうか? <<<test.htmlの中身>>> …略… <applet code="Abc.class" width="400" height="400"> </applet> …略… <<<Abc.javaの中身>>> …略… class Abc extends Applet { int width, height; Image img; public void init() { width = getWidth(); height = getHeight(); img = createImage(width, height); …略… } …略… }
前スレ読んで「RuntimeExceptionはJVMが使うもの。 アプリ使うべからず。」って誇大解釈してる人って いるんだね。誰に教わったんだろう...
>>34 アプリケーションがランタイムの例外を投げるって時点で何か変だと気付くべきだと思うけどな。
デバッグの時とかその例外が誰の責任かを探すときとか紛らわしくない?
RuntimeExceptionを「実行時の例外」ではなく 「ランタイム(DLL)の例外」と妙な解釈してるんじゃないかな。
37 :
デフォルトの名無しさん :03/10/10 09:39
>>36 せっかくマルチプラットフォームなんだからDLLとか言うのやめようよ。
VB厨のようだ。
> VB厨のようだ。 なぜわざわざVB厨を煽る? C++でもDelphiでもDLLだろ。 アンチVB厨のようだ。
>>40 C++に関しては一概には言えんと思うぞ。
まぁ、訂正してやるよ。Windows厨よ。
いちいち煽らなきゃ気がすまんのか? ガキだねぇ。
39=41を見ると、厨ってのがどういうものかよくわかるな
いや、俺は感想を述べただけだから
煽りじゃないやつを煽るから厨 煽りを煽るのは問題ない。
>>46 いいえ、荒らしを構う人もまた荒らしというのは2chの公式見解。
煽りにおいても然り。
48 :
デフォルトの名無しさん :03/10/10 11:11
どうもはじめまして。 データ保持用の空のクラス(仮にA)を外部で作っておいて、そこにアレイリストを追加。 アレイリストを保持したAをセッションに追加。 そしてAをセッションから取り出し、内部のアレイリストにADDしていきたいのですが 下記の通り、最初にAがない(NULL)場合にAと一緒にalというアレイリストを作っておきたいのです。 しかしそうすると「al.add();」の時点で作っておいたalをうまく読み込めません。 最初にAがない場合にアレイリストを作っておき、それをうまく取り出して 追記するのはどのようにするといいのでしょう? HttpSession session=request.getSession(); A kan=(A)session.getAttribute("data"); if(A == null) { A=new A(); ArrayList al=new ArrayList(); } 何かアレイリストに追加して(仮にkd) al.add(kd); session.setAttribute("data", A);
>>48 Aとalに関連がないのだからAを登録してもalが付いてくるわけがないのでは?
>>48 何でそんなことも分からないのに
Servlet なんてこーきゅーなところに手を出すのか。
51 :
デフォルトの名無しさん :03/10/10 12:47
import javax.swing.*; って書くのと import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTable; (以下省略) と書くのでは、実行速度やバグチェックなどに 差が出るものなのですか?
>>51 実行速度は関係ない。必要なクラスの情報だけが class ファイルに書き込まれる。
バグチェックもほとんど関係ない。
同名クラスは全然違うパッケージになっていることが多いし、
メソッドも全然違うから作っている間にすぐわかる。
55 :
デフォルトの名無しさん :03/10/10 15:37
Servlet&JSPで開発しています。 J2SDK・TOMCATや環境変数は設定済みです。 Propertyファイルの読み込みがどうしてもうまくいきません。 test.propertiesを$プロジェクト$/WEB-INF/classes に入れていますのでクラスパスは通っています。 ソースですが・・・ Properties prop = new Properties(); // プロパティファイルからキーと値のリストを読み込みます prop.load(new FileInputStream(strFilePath)); ここでjava.io.FileNotFoundExceptionがでてしまいます。 ググっていろんなサイトを見ましたが解決方法は見当たりませんでした。 ほかに何か設定しなければいけないことがあるのでしょうか?
>>55 strFilePathの中身がまずいんじゃないでしょうか。
何が入ってます?
すみませんでした。 strFilePathの中身は"test.properties"です。 これがいけないのでしょうか? ちなみに "WEB-INF/classes/test.properties" "/classes/test.properties" などとやってみましたがダメでした。
58 :
デフォルトの名無しさん :03/10/10 16:11
困っています。どなたかちょこっと教えてください。 Linux用のJava2SDKをサンの公式サイトからダウンロードしようと しているんだけど、私のLinuxはネットと接続されていないので、 WindowsからLinux用のJava2SDKをダウンロードしようとすると、 なぜかソースのコードをそのままダウンロードしようとしてしまいます。 前はこんなことなかった気がするんですけど。 どうすれば普通に落とせるでしょうか。
>>58 >なぜかソースのコードをそのままダウンロードしようとしてしまいます。
あり得ません。
>>57 WEB-INF/classes/prop/test.properties
に配置して、
strFilePath = "prop/test.properties";
でアクセスとかだとどうですか?
>60さん ダメです(泣) tomcat起動時にもエラーでないし他のソースはまったく大丈夫なのに どうしてもエラーが出ます。
>>61 public FileInputStream(String name) throws FileNotFoundException
ファイルシステムの実際のファイル (パス名 name により指定) に接続することにより、
FileInputStream を作成します。このファイルの接続を表すために、
新しい FileDescriptor オブジェクトが生成されます。
1.strFilePathをtest.propertiesの絶対パスにしてみる
2.System.getProperty("user.dir")を出力してみる
>>61 classes直下において、指定は test のみ(拡張子なし)でいけませんか?
>63さん ありがとうございました! 絶対パスでいけました! 何故絶対パスでないといけないのか? そこのところがわかりませんが、動いたのには感動です。 ありがとうございました!
>64さん 試してみましたがダメでした。 何故なんでしょう?
>>62 冷静に考えれば解りますが基本的にWebはリードオンリーです。
>>66 ワーキングディレクトリとは何か調べましょう。
あるいは getResource について調べましょう(でもこれはうまくいかないかも)
>>67 は人を見て法を説く、いい答え方です。
でももし
>>62 が「CGI で書き込みできるだろ!」とかキレるとなだめるのが大変です。
なだめる必要はないけど。
>>68 >でももし
>>62 が「CGI で書き込みできるだろ!」とかキレるとなだめるのが大変です。
じゃあCGIを用意してFileOutputStreamを継承しそれとのインターフェースを行う処理を追加すればいいじゃない。
と、マリーアントワネット風に返してはダメでしょうか?
でも全然基本が分かってない模様。
>68さん ワーキングディレクトリですね。 >2.System.getProperty("user.dir")を出力してみる で"C:\"が出てきました。 ワーキングディレクトリを設定しなくてはいけませんね。 調べてみます。 ありがとうございました!!
そーなんですよ〜。。。ドシロウトなので基本ができてなくて、、、 いっちょんわからんw また、調べてみます
NetBeans IDE3.5.1を使ってアプレットを作ってみたんですが、 NetBeansIDEの終了時に「IDEがタスクを終了する間、お待ちください」 というメッセージが出たままTomcat(4.0.6)プロセスが消えません。 これは自動で終了してくれないんですか?
75 :
デフォルトの名無しさん :03/10/10 18:59
基本的な質問ですがどなたか教えてください。 javaをLinuxで動くようにするには j2sdk/binまでのパスを/etc/profileに環境変数にする書式で書いて rebootするだけでいいんでしょうか。CLASSPATHの設定はいらないんですか。 あと、Linuxを最小構成でインストールしたんですが、大丈夫でしょうか。
>>75 もちろんいります。
ディストリ書けやハゲ。
77 :
デフォルトの名無しさん :03/10/10 19:03
Red Hat 9です。
>>73 Java とまったく関係ないけど、見るに見かねてアドバイス。
HTTP において、POST はともかく GET というのは、
普通に「ページを見たい」「画像を見たい」という、「バイナリよこせ」リクエストのこと。
(サイズとか mime タイプとかも返してくれるけど)
これは、決して「=ファイルよこせ」ではない。
HTTPD サーバ (Apache とか) がリクエストを受け付けて、
それがファイルシステム上の特定のファイルと対応がとれるならば、
たまたまそのファイルのバイナリデータを送り返してくれるだけ。
リクエストが *.cgi などのファイルならば、実行ファイルとみなして起動して、その出力結果を返してくれる。
このとき、GET メソッドにおいては ? 以降がこの実行ファイルにデータとして渡される。
だから今回の場合は JavaAPI で File に対して書き込むなんてことはありえず、
Stream に対して書き込むことさえも、君が実装する必要はない。
URL を指定して、"cgi-bin/forward?
http://anotherserver/hogehoge.html " というリソースを読み出すだけ。
(どの API を使うかは調べよう)
呼び出し側から見れば独立のリソースのように見えるが、実は ? より前が実行ファイル、? のあとがデータになっている、というそれだけのこと。
>>78 「ファイルよこせ」?
「バイナリよこせ」?
ところで、HTTPって解ってる?
>>78 その割にはファイル名単位でリクエストを発生させるのはなぜだろう。
初めまして.
ここには初めてカキコします。どうか宜しくお願いします。
最近自作のHPを作ったのですが、そのタグの中でJavascriptのOpenwin()を使っているのですが、
開こうとすると別ウィンドウは出るのですが中身が出てこないです・・・
HEADの中に
<Script language="JavaScript">
<!--
function OpenWin1() {
var win = window;
win = window.open("
http://****.******.***/@@@@@@@/window1.html ", "newwin", "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,width=450,height=400");
win.document.write("");
win.document.close();
}
//-->
</SCRIPT>
を書いて、bodyの中に
<a href="javascript:OpenWin1()">〜〜〜〜〜</A>
と打ち込んでいます.
その状態でクリックして開こうとすると
http://****.******.***/@@@@@@@/main.html と出てきてしまいます.
きちんとwindow1.htmlも作ってスペースにUPしているのですが、表示されません・・・
いろいろみて来たのですが、自分の力量が足りず解決できませんでした・・・
どうか解決法を教えてください。よろしくおねがいします。
あ、sageミス・・・sageます。どうもすいません・・・
そうでしたか・・・申し訳ないです。 えっと、もしよろしければどこに書きこんだらいいか教えていただけませんでしょうか?
>>86 どうもありがとうございました.
早速行って書きこんできます。
スレ汚しすいませんでした。
Windowsのアプリケーションでボタンの上へマウスを持っていくと小さな四角にそのボタンの解説の文字がでますよね。 例えば、InternetExplorerの印刷ボタンの上へマウスを持っていくと、小さな四角に印刷と言う文字がでます。 あれって、Javaでは、できないんですか?
>>88 できます。
setToolTipText
おー、できるんですね。しかも、こんなに早く答えが見つかってうれしいです。 ひとつのメソッドでできるとは、Javaも親切ですね。どうも。ありがとうございました。
>>55 プロパティファイルをクラスパスに設置して読み込むのなら、
ClassLoader#getResourceAsStreamで読み込める。たとえばこんな感じ。
prop.load(this.getClass().getClassLoader().getResourceAsStream("test.properties"));
>>82 のようなJavaとJavaScriptを間違える香具師が
またしても現れたのだが
>>1 のテンプレートに
JavaScriptについての質問はWebProg板へ
WebProg板
http://pc2.2ch.net/php/ の誘導リンクくらい張っておいたほうがよかったかね。
>>1 にはそれくらいのスペースくらいならあるだろ。
JavaScriptにしか興味が無い香具師はWikiまで見ようとしないだろう。
94 :
デフォルトの名無しさん :03/10/11 00:51
Frameのサイズを変更した時に、 配置したコンポーネントのサイズが一緒に変更されないように する方法を教えていただけないでしょうか?
95 :
デフォルトの名無しさん :03/10/11 00:53
すいません、int型の数字で13,444,444っていうふうに数字に区切りを入れたいんですが どうやればいいんでしょうか?
96 :
デフォルトの名無しさん :03/10/11 00:56
RMIについて質問です。 サーバー側でのリモートオブジェクトの生成、 クライアント側でのリモートオブジェクトの取得までは、うまくいくのですが、 リモートメソッドを呼び出し、その返り値としてあるオブジェクトを取得しようとすると、 以下のような例外が発生します。 UnmarshalException: error unmarshalling return; nested exception is: java.io.InvalidClassException: hogehoge ; local class incompatible: stream classdesc serialVersionUID = -5353880800724033550, local serialVersionUID = -7908749299918704233 この例外の意味と発生する理由が分かりません。 ちなみに、同一マシン上でサーバー、クライアント共実行すると、 エラーは起こりません。
>>96 UnmarshalExceptionのドキュメントやソースコードを読む。
java.io.InvalidClassException:のドキュメントを読む。
>>94 GridLayout,GridBagLayout or FlowLayoutクラス使用
101 :
デフォルトの七誌さん :03/10/11 04:02
すみません、教えてください。 超初心者です。 バッチ処理を作ってるんですが、例外Exceptionが発生したとき、ログに書き込むようにしてくれ、 と言われました。例外はSQLExceptionやExceptionやIllegalArgumentException等が発生します。 で、例外が発生するとバッチ処理がとまってしまいますよね。バッチじゃなくなります。もう一度手動で起動させなければいけません。 どうするのかな?となやんでいたら、continue文なるものを見つけました。 こいつを例外節のカッコの中に書き込んだら、見事にとまらなくなりました。 この方法でいいんですかね?みなさんは、バッチ処理を例外が万一発生したとき止めないように、どうしているんですか? 初心者なので、あるていどのエラーはログに出力してくれればいいと言われています。 だから、今はこの疑問にだけ答えていただければよいです。よろしくお願いします。
102 :
デフォルトの名無しさん :03/10/11 04:03
javaのメソッド内で実行中のメソッド名を調べることは不可能ですか? 自分のクラス名をthis.getClass()で取得できることは判明したのですが エラーが発生したりしたとき(Exceptonとは限らず)に メソッド名をログに出したいのですが やっぱ無理でしょうか?
>>101 例外にもよると思うのですが
SQLExceptionなどが発生した場合DBで
DB側に問題がある場合
(DBのプロセスが起動していない、テーブルが存在しないとか)
バッチを継続させるのは不可能だと思うのですが?
>。もう一度手動で起動させなければいけません。
もう一度起動されせればOKな状況の方が少ない予感
そういうのは普通どこかにエラーを通知する構造にすると思います。
シェルとかログにエラーを返してあとは運用に任せる場合が多いです。
自分の場合はSQLExceptionなんかは正しくSQLが発行でき
DBの整合性が保たれている場合に発生した場合は
復旧不可の場合が多いのでエラーを通知して終了が多いです。
エラー処理のしかたはプロジェクトの方針に依存しています。
>>102 > javaのメソッド内で実行中のメソッド名を調べることは不可能ですか?
> 自分のクラス名をthis.getClass()で取得できることは判明したのですが
リフレクションを使う。Methodというクラスがある。java.lang.reflectパッケージを参照。
> エラーが発生したりしたとき(Exceptonとは限らず)に
> メソッド名をログに出したいのですが
>
> やっぱ無理でしょうか?
これもリフレクションを使う。Java House-MLからリンクされている「Java FAQ」に載っている。
>>102 さん
どうもありがとうございました。そうですね。やはり、プロジェクトの人に聞いたほうが良さそうですね。
後々のことを考えてプロジェクトの人に聞いてみようとおもいます。
どうもありがとうございました。
106 :
デフォルトの名無しさん :03/10/11 04:40
すいません質問なんですが "\n" などと改行を表示したいのですが これはOSなどの違いによって CR+LFとかLFとかに自動的に解釈して表示するのでしょうか? それともSystem.getProperty("line.separator"); とするのが無難なのでしょうか?
>>106 "\n" は "\n" であり Win/DOS 環境の C/C++ のように実行環境によって
"\n", "\r\n", "\r" に置き換わる文字ではない。その代わりに
PrintWriter#println(), PrintStream#println() はちゃんと
"line.separator" を改行文字として使用しているので、環境ごとに
使い分けたいときはこれを使え。
>>107 >>104 はネタ。リフレクションを使っても実行位置のメソッド名を
自動的に取ることはできない。強いてやるなら JDK1.4 の例外から
スタックトレース取得するくらいか。
>>108 >"\n", "\r\n", "\r" に置き換わる文字ではない。
置き換わったっけ?ファイルのテキストモードの話?
>>109 そう、ファイルや stdout のテキストモードの話。
昔はよく b 属性忘れてファイルぶっ壊してた。
>>110 アレはOSさんのシステムコールの仕様であってC/C++とは比較的無関係です。
>>107 邪道だが、
new Exception().getStackTrace()[0].getMethodName()
とか・・・
vmのバージョンとかベンダとかに依存するだろうからお勧めしないが
過去ログで「この方法しか無いんでは?」ということだったと思う
>>113 説明足りなくない? VMのバージョンとかベンダに依存するのは
printStatckTraceを使うやり方。getStackTraceは仕様で定められているから
1.4.x以降なら保証されてるよね。
Javaプログラマ1年生です。 1年間やって、EJBとサーブレット、JSP、Struts、JDBC、XMLなどを大体理解できました。 もう、頭がパンパンです。 でも、ネットワーク(java.net)やスレッド処理などは、まったく分かりません。 現在、僕の所に来る案件はWeb中心で今まで習得した技術に幅を持たせれば、これからもやっていけるかな?と思ってます。 でも、ネットワークやスレッドを解説してある本もあり、習得しとかなければ困るかな?ともおもいます。 実際のところ、JavaプログラマはWebアプリケーション、J2EEアプリケーションだけでは、無理ですか?
>>107 、
>>102 僕のところは、独自の例外クラスを作成し、SOCExceptionといいます。
そいつの引数にエラーの起こったクラス、メソッド名、ソースコード行番号、エラーの解説をとり、
ログにwriteというメソッドで記録しています。
なんだったか、忘れたけど、err.printStackTrace()で表示される文字列をString変数に代入して、解説にしてます。
この方法は、JDK1.4からサポートされたみたいです。
>>115 スレッドくらいちょちょいのちょいだからすぐに理解スレよ。
スレッドしらないのにServletしっているとはどういうことですか。
え、スレッドしらなくて、サーブレット組んでたら、まずいですか? 1ユーザに1セッションっていうのは、わかりますけど、それにスレッドの概念があるってことですかね? スレッドしらなくても、普通にサーブレットくんでましたけど。
>>119 サーブレットはスレッドを意識しなくても組むことは可能。
だが、サーバアプリを開発するうえでスレッドは知っておいたほうがいい。
マルチでアクセスされたときはスレッドを使わないといけないからね。
121 :
デフォルトの名無しさん :03/10/11 14:57
JAVAでCDなどの外部からの音源を操作することはできるんでしょうか?
むっちゃくちゃ厨な質問ですがすいません。
実行時に
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
が、起きます。
PATHが通ってない事は分かるんです。
ユーザ環境変数には
PATH
C:\j2sdk1.4.2_01\bin
システム環境変数にも
C:\j2sdk1.4.2_01\binを追加してます。
もちろんDLしたのはj2sdk1.4.2_01です。
しかし実行出来ません。。。
>>1 を読んでその通りにしたのですが、どうしてもならないので
質問させて頂きました。
OSはWindows2000です。
誰かよろしくお願いします。。。。
あ、すいません。自力解決しました。 スレ汚しすいませんです。
処理をブロックする関数を自分で定義することは出来るのでしょうか? またその記述方法を指南して頂けると助かります。
>>124 //ブロッキング
while(true);
>>124 できるよ。
wait とか notifyAll とか使うの。
>>125 レスありがとうございます。
すぐにその方法が思いついたのですが、
サンプルを作り実行させてみるとスレッドで実行させているのにもかかわらず
CPU占拠率が100%になってしまいます。これは格好悪い。
例えばServerSocket.accept()メソッドは処理をブロックしますが
CPU占拠率を100%にすることはないですよね
>>126 レスありがとうございます。
調べるキーワードを提供してくださりありがとうございます。
早速調べてみます。
Swingなりを使ってゲームを作るとき
起動→タイトル表示(ボタンクリック待ち)→
バトル設定(Swingの部品を使って入力処理)
→バトル画面→タイトルへ戻る
などとしたいときに、部品を配置したJPanelを
切り替えて画面を遷移させようと思っていたのですが
それぞれが次の画面の関数を呼んでいてはそのうちスタックが埋まってしまいます。
なので、逐次処理を受け持つ大元の関数を用意したいのですが
そうするためには、それぞれの画面ごとに処理をブロックしてもらわないといけないので
質問させて頂いた次第です。
なぁ、PanelのVisibleをいじったらうまくいかんか?
>>128 何が言いたいのかぼやけた文章を書いてしまい申し訳ありませんでした。
ご指摘の通りPanelのVisibleをいじれば、画面の切り替えは可能であると思います。
127の文章では、
次々に関数を呼んでスタックを埋めないようにするため
画面の遷移を行う逐次処理を担当する部分を記述するとき、例えば
main_loop() {
while(true) {
タイトル画面を表示();
バトル設定画面を表示();
バトル画面を表示();
}
}
というように記述したいために、
それぞれの画面を表示する関数に処理をブロックして欲しいが
その方法がわからないということでした。
すべてが同時に走る必要はないんだからさ。 ・タイトル画面をクリック タイトルのアニメーションをストップ(ブロッキングせず戻ってくる) バトル設定画面のVisible = true ・バトル設定画面のstartボタン押下 バトル画面のVisible = true バトル開始(ブロッキングせず戻ってくる) ・バトル画面でゲームオーバー バトルを停止する(ブロッキングせず戻ってくる) タイトル画面のVisible = true じゃだめなの?
132 :
デフォルトの名無しさん :03/10/11 19:57
HashMapって何ですか分かりやすく説明して下さい。 そもそもHashってなんですか?あとthrowってなんですか?
>>130 レスありがとうございます。
なんとなく理解した気がします。
呼ぶ呼ぶ呼ぶの繰り返しではなく
PanelのVisibleで画面を遷移させるサンプルを書いてみようと思います。
ありがとうございます。 ではでは過去ログ倉庫に収まったら、 あらためてリンク張り直しておきますね。
buttonとかのコンポーネントを配列にするにはどうしたらいいのですか? 単に Button []button; button=new Button[5]; とかにするとできないのですが。。。
139 :
デフォルトの名無しさん :03/10/12 00:27
オブジェクトハイレツ
140 :
デフォルトの名無しさん :03/10/12 01:50
Javaでチャットを作ってます。 画像を送信したいのですが、シリアライズできません。 どうしたらいいでしょうか? お願いします。
>>140 できないソースを晒せ!
話はそれからだ!
>>140 Image オブジェクトシリアライズしても画像を復元できない
PixelGrabber 使ってバイト配列 (ビットマップ) 化したもの
を転送してみな。
>>140 そのままシリアライズするとネットワークの帯域もったいないから
適当な画像フォーマットに変換したら? 1.4以降のImageIOでもいいけど、
個人的にはフォーマットがいろいろ選べるJIMIが好き。
と思ったけど、もしかしてJIMIで可逆圧縮しようとするとPSD形式 にするしかないのかな。内部的に使うならそれでもいい気もするけど。
そんなに帯域逼迫してなければ GZIP 程度で良いんじゃない? 確かに 特定の画像フォーマットならそのままファイルに落とせて問題解析も 楽かもしれないけど。
フィールドの初期化ってどこでやるべきですか? class hoge{ String s; hoge(){ s = new String(); } } と class moge{ String s = new String(); } } 確か、どっちかは初期化失敗の可能性があるとか何とかどこかで聞いたような気がするんですが。
コンストラクタで初期化するがよい。
>>146 下は、オブジェクト生成のタイミングで必ず初期化される。
上は、もし別のコンストラクタがあったら?かな。
149 :
デフォルトの名無しさん :03/10/12 13:08
ストリームについてよく解っていないのでお願いします。 やりたいことはSocketのOutputStreamにファイルの内容を出力したいのですが、 --- OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(new OutputStreamWriter(os)); pw.print("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n"); pw.flush(); pw.close(); FileInputStream fis = new FileInputStream(filepath); byte buff[] = new byte[512]; int i; while((i = fis.read(buff)) != -1){ os.write(buff, 0, i); // ここで java.net.SocketException: Socket closed が発生 } os.flush(); fis.close(); --- のように書くと、 途中で例外が発生してしまいます。 pw.close()のところで OutputStream が閉じられているのか、その辺りの仕組みというか ストリームを閉じるという概念がいまいち解らないのでご教授ください。
>>146 クラスファイルを逆コンパイルしてみればわかるが
下のように書いた場合、コンストラクタに初期化コードが挿入される。
だから上のだと二重初期化になることもあるので注意。
間違えた。下のだとだった。
>>151 上の書き方だと二重初期化されるかも、でしょ?
まあ、コンストラクタで初期化しるってことで。
> pw.close(); ストリーム一回クローズしてれば当然だろー。
>>152 え?「下のだと」であってるんじゃない?
>>153 すみません、その辺がよく解っていなくて。
あるストリームから作った(?)ストリームを閉じると、元のストリームも閉じるということ
なんでしょうか。なんとなくPrintWriterはOutputStreamから新しく作られたストリーム
のようなイメージだったので。
ということはOutputStreamのほうをクローズすればPrintWriterはクローズする必要は
ないのでしょうか?
>>155 Stream関係のソースを読みましょう。
GOFデザインパターンのデコレータパターンを理解するチャンスです。
>>146 とりあえずjdk1.4.2で試してみたら、
class hoge{
String s = new String();
}
が逆コンパイルして
class hoge{
String s;
public hoge(){
s = new String();
}
}
になった。
バージョンによるかもしれないけど、結局は一緒になると考えてもいいのでわ?
初期化は初期化でまとめておきたいので、個人的には後者のスタイルが好きだけど。
158 :
デフォルトの名無しさん :03/10/12 14:30
140です。 みなさん本当ににありがとうございます。 苦し紛れに一時ファイルに保存してから送信してごまかしてました。 これからちゃんとやってみます。 携帯からなので、ソースも晒さずに失礼しました。 ありがとうございます。
159 :
デフォルトの名無しさん :03/10/12 14:55
JAVAアプリケーションではどのようなものが作れるのでしょうか? CDプレーヤーを作る事は可能でしょうか?
>>160 まだSWINGでボタンを必死こいて作っている段階ですが、
作れるとわかった以上やる気が出てきたので頑張りたいと思います。
162 :
デフォルトの名無しさん :03/10/12 15:41
Java本の定番って何?数が多すぎてよくわからん
>>157 他のみなさん、有り難うございました。
とりあえずコンストラクタでの初期化で統一でやってきまふ
>>160 JAVAのみで作るよりも、一旦C++でプレーヤーを作成して
JNIを使用して呼び出した方が簡単でしょうか?
>>164 再生、停止などの一連の基本機能を DLL 化しておくと、あとで JNI 化
するとき楽だと思うよ。
ってか WinAPI の簡単な Wrapper DLL 作るだけだと思うけど。
自分でエディタを作りたいんですが、統合環境みたいに次の入力候補がポンと出てくるようなものを 作りたいです。Javaじゃ無理でしょうかね? ほしい機能は、文脈をよむ機能(変数に、入力したマウスカーソル以前の文字を入れておく)と エディタ上にでてくるポップアップウィンドウみたいなのです。
>>167 どうやるんですかね?
TextAreaクラスとかには、そんな機能付け足せませんよね。TextAreaみたいなクラスを自分で作るっていうことですか?
何クラスを継承すればいいんだろう。。。
まさか、文字を入力するクラスから、自分で作れというのですか???
自分で作らんでどう作るのさ。。。
うぎゃー、もう無理だ。あきらめます。念のためにTextComponetクラスとTextAreaのソースコードをみてきたけど、じぇんじぇんわかりませんでした。
>>170 …ま、まあ、いまは無理でも、他のプログラムでも作りながら気長におやりよ。
一つ一つ知識を蓄えていけば、何年後かにはどうにかならないとも、限らないし。
文字を入力するクラスを自分で作りたくないけどエディタを作りたいってのは・・・
173 :
デフォルトの名無しさん :03/10/12 19:39
初めましてこんばんは。 javaでアイアプリ作ろうと思いセットアップを始めましたが いまだにうまくいきません ('・ω・`)ショボーン Java2SDKをDLしてセットアップしましたが、javac.exeが見つかりません。 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 というエラーが出るので、path確認をしようと試みましたが C:\Program Files\Java\j2re1.4.1_02\ 以下にjava.exeがあってもjavac.exeがないのです。検索しても見つかりません 再DLして再セットアップしても同じ状態です あと何を調べたらよいでしょうか?
ahaha, sonnabakana!!!
>>173 ああ、それはJava2SDKではなく、J2REをダウンロードしてしまったのだとおもう。
J2REは、Java製のソフトを実行するためのソフトで、
Javaでソフトを開発するための、J2SDKとは、別なのね。('・ω・`)
//やはりwikiのほうに、Javaを始める人のためのハウツーページ、作ったほうがいいかのう。。。
//前スレの、まとめサイトを作ると言っていた彼あたりに、どうにかしてもらえぬかのう。。。
>>173 小さいからって JRE しかインストールしなかったんだろ。ちゃんと
JDK をインストールせれ。
または C:\jdk1.4.1_02 を見落としているか
どうもありがとうございました。 まさしくご指摘のとおりにDLしたファイルのファイル名がj2re〜 になってます。。。 SDKのほうDLしなおします。('・ω・`) どうもありがとう 出直してきます('・ω・`) 助かりました
j
あぁぁ。RuntimeEditionとSDKが選べるようになってたのですね。。 わかりずらいよう('・ω・`)ショボーン こんなことでiアプリが作れるのだろうか・・・ 地道にがんばるか('・ω・`) 親切にどうもでした。
>>173 javac.exeが本当に無いのか実際に検索して確かめよ。
コマンドラインから
echo %PATH%
を実行せよ。
ファイルのパスを変えるときに、よく次のような例が示されていますけど File sfile = new File(oldpass); File dfile = new File(newpass); sfile.renameTo(dfile); File sfile = new File(oldpass); sfile = new File(newpass); ↑こんな風にしたらダメなんでしょうか?
184 :
デフォルトの名無しさん :03/10/12 22:15
JavaDoc書くときに クラスごとの説明はそこに書けばいいのですが パッケージの説明はどこに書けばいいのでしょうか 教えてください
>>183 うまくいくんじゃないかと考えたときに、試しもせずにこのスレで聞くのがおかしい
>>185 >>187 あ、すいません。根本的に間違えてたみたいです。
テストコードは書いたんですが、そのテストコード内での
挙動は同じだったので疑問に思っただけです。
すいませんでした。
189 :
デフォルトの名無しさん :03/10/12 22:58
にしても、 java.sun.comのサーバーは重すぎだよな
Cobaltかなんかなんじゃねーの。>Sunサーバ いつもタリィからドキュメントダウンロードせにゃならん。 オンラインドキュメントの意味ねー
↑アホ
192 :
デフォルトの名無しさん :03/10/12 23:47
Vectorクラスから配列に入れ替えるというコードのテストを作ってみたんですが Vector a = new Vector(); a.add("1"); a.add("2"); a.add("3"); a.add("4"); a.add("5"); a.add("6"); String[] str= (String[])a.toArray(); for(int i =0;i< str.length;i++){ System.out.println(str[i]); } String[] str= (String[])a.toArray();のところで java.lang.ClassCastException のエラーが出ます
193 :
デフォルトの名無しさん :03/10/12 23:48
どぎゃんしたらよかとですか?
>>192 ArrayList list = new ArrayList();
String[] array = (String[])list.toArray(new String[list.size()]);
ありがとうございました
1/1-1/3+1/5-1/7+1/9・・・・・・・・-1/99999 この式を、@左から順に計算する A右から順に計算する B正の項の和と負の項の和をそれぞれ左から順に計算して最後に合算する C '' 右から '' という課題が出されました。B・Cのプログラムはできそうなのですが、@・A のプログラムがどうしたらいいか分かりません。どなたかヒントをお願いします。 ちなみに 重複して書き込んでます。。
>>197 ( 1/(n-2) - 1/n ) を n = 3..99999 まで1つおきに足す
( (n / 2 % 2) ? -1 : 1 ) / n を n = 1..99999 まで1つおきに足す
( (n+2) % 4 - 2 ) / n を n = 1..99999 まで1つおきに足す
201 :
デフォルトの名無しさん :03/10/13 03:01
eclipseを使っているのですが、 args[0]を使って、引数を渡すにはどうすればいいんですか。 どなたか、知っている方はいませんか。
31 名前:ロイヤル[] 投稿日:03/10/13 00:51 1/1-1/3+1/5-1/7+1/9・・・・・・・・-1/99999 この式を、@左から順に計算する A右から順に計算する B正の項の和と負の項の和をそれぞれ左から順に計算して最後に合算する C '' 右から '' という課題が出されました。B・Cのプログラムはできそうなのですが、@・A のプログラムがどうしたらいいか分かりません。どなたかヒントをお願いします。
>>195 今まで
String[] array = (String[])list.toArray(new String[0]);
を使っていたが、SunのJDKのソースを見るとそっちの方が速そうだ。
205 :
デフォルトの名無しさん :03/10/13 04:40
>>203 ありがとうございます。
おかげで解決しました。
206 :
デフォルトの名無しさん :03/10/13 05:38
なぜみんな String array[ ] っていうふうにしないの?
>>206 型と変数名が分かれるのが嫌だから。arrayはString[]型
util のコレクションについて調べていますが、イメージがつかめません。 API リファレンスや web を見ても、何に使うかイマイチ読み取れませんでした。 仕事で実際に使用経験がある方にお伺いしたいのですが、 どんな場面でどういう使い方をしたのか、具体的に教えてもらえないでしょうか。
それはHashMapとHashTableの違いが解らないということ?
アルゴリズムとデータ構造の本を読めば
211 :
デフォルトの名無しさん :03/10/13 08:57
Exception in thread "main" java.lang.NoClassDefFoundError: AddKeta というエラーが出ます。 書籍に書いてあるとおりにタイプしてあるはずなのに(TT
>>212 javac としたらヘルプ?みたいなのは出ます。それじゃダメなのかな?
クラスパスは導入と同時に設定しましたもの。
211です。 テンプレサイトみて奮闘したらできました。ありがとござます
>199、200 成る程!そんな手がありますね。。早速やってみます。 ワザワザ教えていただいてありがとうございます
216 :
デフォルトの名無しさん :03/10/13 13:57
麻奈タソは好きですか?
だれ?
218 :
デフォルトの名無しさん :03/10/13 16:44
メールソフトを作ろうと思っているのですが難しいですか?
220 :
デフォルトの名無しさん :03/10/13 17:04
awtを使ってアプレット作りをしてます。 パネルを継承した自作クラスをScrollPaneに 登録して、それを簡単なテキストビューワに してみようと思い、その自作パネルクラスの paintメソッドでdrawStringを利用して100行 ばかり出力させてみたら、スクロールバーが 出てきません。 ちなみにそのループでdrawStringの代わりに Buttonオブジェクトを100個登録したらちゃんと スクロールバーが登場しました。 何が間違っているのでしょうか?
221 :
デフォルトの名無しさん :03/10/13 17:45
import java.util.*; class Ts{ static void hoge(){ HashMap hm = new HashMap(); //コンストラクタ化 hm.put("c","1"); hm.put("bc","12"); hm.put("a","3"); } } class T{ public static void main(String args[]){ hoge h =Ts.hoge(); System.out.println(h.get("c")); } }
上のソースコンパイルするとエラーになります教えてください G:\java>javac T.java T.java:16: シンボルを解決できません。 シンボル: クラス hoge 場所 : T の クラス hoge h =Ts.hoge(); ^
223 :
名無しさん@お腹いっぱい :03/10/13 17:54
質問させてください。 JAVAでソフトを作っているのですが、メモリリークしているようです。 どのインスタンスがGCで回収されていないのかWeakReferenceを使って 探してみたところ見つかりはしたのですが、そのインスタンスの参照は nullで切っているはずで、どこから参照されているかわかりません。 あるクラスの参照元の一覧を得る方法はないでしょうか? JProbeでは出来るかもしれませんが、持っていません。 Xrunhprofオプションをつけてプロファイルを取ってみましたが 欲しい情報は得られませんでした(中途半端なところでデータが切れて いるようです)。 環境は J2SE 1.4.2 Win2000です。よろしくおねがいします。
224 :
デフォルトの名無しさん :03/10/13 17:55
うーん、どこからつっこめばいいんだろう
225 :
名無しさん@お腹いっぱい :03/10/13 17:56
間違えました。失礼しました。 誤:あるクラスの参照元の一覧 正:あるインスタンスの参照元
>>220 何も間違っていません。
スクロールバーを出したいのであれば、その ScrollPane の上に
TextArea を貼り付けてみては如何でしょうか。
ScrollPane は、自分に add されている子コンポーネントの
大きさによってスクロールバーを出したり消したりします。
>>222 >>hoge h =Ts.hoge();
hogeクラスってどこよ?
Ts.hoge()て戻り値voidじゃないか・・・
228 :
名無しさん@お腹いっぱい :03/10/13 18:10
あまり自信はないですがレスします。
>>220 テキストの行数に応じてパネルの大きさを変えないとスクロールバーは
出ないのではないでしょうか?
>>221 エラーの原因はhogeクラスが無いので変数hを定義出来ないということですが、
そもそのTs#hogeは返値はvoidなので上記エラーを修正してもまたエラーが出ると思います。
コードの意図がよくわからないのでどうすればいいかは書けませんがご参考までに。
>>224 おかしなことを書いてしまったでしょうか?
ご指摘頂きましたら書き直します。
>>221-222 やりたいのはこういうこと?
-------------- T.java --------------
import java.util.*;
class Ts {
static HashMap hoge() {
HashMap hm = new HashMap();
hm.put("c", "1");
hm.put("bc", "12");
hm.put("a", "3");
return hm;
}
}
public class T {
public static void main(String[] args) {
HashMap h = Ts.hoge();
System.out.println((String) h.get("c"));
}
}
------------------------------------
class Suuretu1{ public static void main(String []args){ double sum=0.0; for(int n=3;n<=99999;n=n+4){ double s=1/(n-2)-(1/n); sum=sum+s; } String y="式の合計は"+sum+"です"; System.out.println(y); } } こんなプログラムを作ってみましたが実行すると1.0になってしまいます。 何故だろう・・・??
JDBCとMySQL接続のプログラムを作ったんですが、日本語が文字化けします MySQLは3.23.49です。 MySQL winmysqladmin.exeのmy.ini Setupタグで [mysqld] default-character-set=sjis [mysql] default-character-set=sjis [mysql-dump] default-character-set=sjis と変更し 再起動し、variablesタグの文字コードも変更されています。 同じことをsjisの部分をujisでも試しました。 テーブルからは、「あ」という文字が戻ってくるはずですが、コンソール画面には 「ツ?」と表示されます。 だれか、分かる方はご返事ください。よろしくお願いします。
232 :
デフォルトの名無しさん :03/10/13 20:00
人から @Javaで作ったアプリケーションは遅いといわれるのはなぜか Aなぜコンパイルするのにインタプリタ? と聞かれた時に相手に理解させるにはどう答えたらいいでしょうか?
233 :
デフォルトの名無しさん :03/10/13 20:02
>>230 >double s=1/(n-2)-(1/n);
ここの右辺をintの範囲で計算するから。
double s=1.0/(n-2)-(1.0/n);
にしる。
useUnicode=true&characterEncoding=
>>235 どうも、ありがとうございました。オラクルとか接続するとき、いつもそれを使わなかったんですが、
初心者の頃読んだMySQLとサーブレットの本の片隅に、それがのっているのに気づくことができました。
おかげさまで、見事テーブルから値を読み取ることができました。大変感謝してます。
ここに聞かなければ、いつまでも思いつくことはなく、解決できなかったとおもいます。
ありがとうございました。
>>232 >@Javaで作ったアプリケーションは遅いといわれるのはなぜか
事実遅いから
Aなぜコンパイルするのにインタプリタ?
CPUには理解できない機械語にコンパイルしてるから
>>108 >>113 遅レスで申し訳ないです
簡単にはできないんですね
ログの出力にExceptionを発生させるわけには行かないので
grepとawkを組み合わせてやることしますた。
どうもサンクス
>>237 遅いといえばC#のCLRもPerl6のVMも同じようなもんでないかと。
インタプリタといってもJIT使ってるのでは。
240 :
デフォルトの名無しさん :03/10/13 21:48
圧縮の時に?マニフェスト?って必要なんでしょうか? マニフェストの公約がないと政権が取れないのでしょうか?
241 :
デフォルトの名無しさん :03/10/13 21:52
Javaにはポインタがないですか?
243 :
デフォルトの名無しさん :03/10/13 21:57
Javaでメモリリークが起きるのですがなぜでしょう?
いまさらインタプリタでしか動かんようなナイーブなJVM使うかよ
日 本 語 の 不 自 由 な 方 が 紛 れ 込 ん で い ま す
いい加減なHTML用のDOMパーサってどっかにありますか?
248 :
デフォルトの名無しさん :03/10/13 22:04
Javaでバッファオーバーフローしますか?
>>243 馬鹿がメモリリークするようなプログラム書くから。
誰か
>>223 の質問に答えられる方はいらっしゃらないでしょうか?
>>204 ソースを見ると確かにそうなんだが、
String[] array = (String[]) list.toArray(new String[0]) の方が
String[] array = (String[]) list.toArray(new String[list.size()]) より速いという
ベンチマークをどこかで見たことがある。
>>247 そんくらい、HTMLタグ辞典片手に自作しろ
>>237 @プログラムの起動と(下手に作った)swingアプリは遅いがそれ以外はc++とそれほど速度的に差がない。
A最近のjavaはインタプリタであることはほとんどない。
>>251 ソース見直せ。
頭使いたくないなら金使ってプロファイラ買え。java -Xオプションでは上位しか出ないぞ。
SwingでButtonGroupを使いたいんですが、無理なんですかね。 getContentPane().add(buttonGroup); とやっても入れれません。
>>254 まったくその通り
初心者同士が、 C++(C) vs Java で同じものを作ったら、
Java の方が早いこともある!(まぁ起動だけはどうしようもないけど)
保守
260 :
デフォルトの名無しさん :03/10/13 23:22
>>257 ButtonGroup自身はSwingコンポじゃないよ。
addする対象はあくまでボタンのほう。
261 :
デフォルトの名無しさん :03/10/13 23:24
>>251 -Xrunhprof:help読もう。
262 :
デフォルトの名無しさん :03/10/13 23:28
世の中には、プログラムが遅いことやバグだらけなことについて、 オノレの無能を棚に上げて全部OSやミドルのせいにしたがる糞馬 鹿が沢山いるというのも事実なわけで。
263 :
デフォルトの名無しさん :03/10/13 23:34
>>252 まあ、マイクロベンチマークなんて意味ないわけで。
長さ0の配列インスタンス一個作るコストが、性能に影響するような
シビアなプログラムなんかJavaで書いている人間はほとんどいない
わけで。
少なくともEJBやServletの仕組みでは、そんなの目に見えない埃程度
の負荷なので気にする必要ないと思いまつ。
>>263 いいえ、配列生成の負荷自体は同じです。
265 :
デフォルトの名無しさん :03/10/13 23:43
皆さんのおかげで無事にプログラムを作成し結果を出すことができました。 ところで、浮動少数計算の誤差とは一体何故生じてしまうのでしょうか?? 僕自身前記の4つのプログラムを作成し実行してみたところ、結果が微妙に ずれていることに気づきました。double型の扱える桁数が決まっていて、無視 する部分があるからということは耳にしましたが、どなたか分かりやすく説明してくださいますか??
268 :
デフォルトの名無しさん :03/10/14 00:09
>>267 浮動小数点演算 丸め誤差
ググッた方が速いかと。
>>261 レスありがとうございます。
HEAP DUMPのことでしょうか?
プロファイルを吐かせても出てこないです。
HEAP DUMPはデフォルトでallなので
java -Xrunhprof Foo
で出ないなら出ないものだと思ったのですが。
もう少し調べてみます。
>>251 ソースは当然見直してますよ。
それでわからないから質問しています。
-Xオプションで何を見るのですか?
わかる質問だけに答えて上げてください。
>>267 浮動小数点数は仮数と指数で構成されている
仮数の桁が有限であることによる打ち切り誤差
3.7777.... → 3.7778
指数が大きく違うときの加減算で小さい方の数が無視される
1.0 * 10^3 + 1.0 * 10^-1 = 1000 + 0.1 = 1000.1
有効数字が4桁なら 1000.1 → 1000
非常に近い数字同士の減算による有効数字の減少
999.9 - 999.8 = 0.1
有効数字4桁 → 有効数字1桁
271 :
デフォルトの名無しさん :03/10/14 00:19
固定小数点数の演算は、java.math.BigDecimalのメソッドコールで 全部済ますと、変な誤差に苦しまないで済むので、おいしい。
java の付録みたいなプロファイラで頑張ろうという貧乏人根性には感服だ。 Sunのじゃなくて別のJVM使えば? トレース録ったりできる奴
273 :
デフォルトの名無しさん :03/10/14 00:43
企業向けアプリ開発をいまだに全部秀丸で済ます奴もいるからな。
>>272 いや、サンプルながらそこそこがんばってるよ。
cpu=timesで記録メソッドの制限ができればいいんだけどなぁ。
276 :
デフォルトの名無しさん :03/10/14 00:58
I/Oのリードブロックの滞在時間は、はずして欲しかったなあ。
>>254 最近のjavaはインタプリタであることはほとんどない。
これはどういう意味でしょうか?
.classファイルを実行するのにインタプリタでない場合があるのでしょうか??
友達にウソ教えてしまったかも・・・
自分で改めてベンチマークをとってみた (jdk1.4.2)。 ArrayList, LinkedList の場合わずかだが String[] array = (String[]) list.toArray(new String[list.size()]); の方が String[] array = (String[]) list.toArray(new String[0]); より速かった。 ただし Vector は String[] array = new String[vec.size()]; vec.copyInto(array); の方がさらに速かった。
Vector.copyInto()はSystem.arraycopy()を使っているからねぇ。 Iteratorで廻すよりは速そう。 でも、VectorやHashtableは過去の互換性のために残っているという気がするので、 意地でも使わないようにしている。
キャストの分遅いってことかね。 ヘェーヘェー
署名してないってことだろ
285 :
デフォルトの名無しさん :03/10/14 05:44
StringTokenizerについてですけど "=="をトークンとして認識する場合どうやってやればいいんでしょうか? '='を得てから次に'='を取得すると '=' '空白' '='も"=="と誤認してしまいますよね?
>>285 "=="をあらかじめ何かの一文字に置換してしまえばとりあえずできるんでない?
もっと効率のいい方法がありそうだから↓の人がきっと教えてくれる。
>>285 きっと次の人が教えてくれる!
JavaCC 使うのも手だな!
次の方どうぞ
>>285 1.4以降なら java.util.regex 使うのとかだな
でも、もっと良い方法を次の人が教えてくれるな
>>285 ・StringTokenizer のコンストラクタのうち、引数3つのやつを使い、
・3つ目の引数をtrueにし、(これで、区切り文字もトークンとして返してくれる。)
・区切り文字に"="も含める。
・"="を得た時に、直前のトークンが"="だった場合に限り、比較演算子のトークン"=="を得られたものと解釈する。
つまり、自分が作っている言語のトークンと、
自分が処理している対象文字列から抜き取る単位のトークンを分けて考える。
あるいは、次のスレにいって、前スレ・関連書籍・URLに目を通した後、聞いてみる。
「『コンパイラ・スクリプトエンジン』 相談室」
>>285 StreamTokenizerだな。使いにくいかもしれんが。
使いにくいので更にいい方法を次の人が教えてくれる
>>285 StringBufferでも使って、自作StringTokenizerを作る
最強の方法を次の人が教えてくれる
>>285 普通に、
new StringTokernizer(str, "==")
でいいじゃん
>>285 落ちが付いたようで、、、 このへんで終了!
>>186 どのタイミングでそれをやるんですか?
それは一度JavaDocコマンドで生成した後に
自分でHTMLファイルに書き加えるとしたら
ソース等更新するたびに毎回やらないといけないような気がするんですが
やり方がわかりません
javacをジャバックと読まれると激しくムカつきます。 どうすればいいですか?
力が欲しいか・・・
>>295 J2SEのドキュメントのなかにjavadocのマニュアルもあるから
パッケージコメントファイルの項目をよんでごらん。
299 :
デフォルトの名無しさん :03/10/14 14:55
Javaで、システムのプロパティ→ハードウエア→デバイスマネージャの、 イメージングデバイスにあるカメラを動かすにはどうしたらいいですか? ちなみに、そのカメラは1394で接続されています。 まったくわからなくて困っています。
>>299 そのカメラで使えるかどうかわかんないけど、
java.sun.comからJMF持ってきて試してみたら?
>>300 JMFのサンプル使ったけど、動きません。
ふーん。
Servlet から、MySQLにデータソース接続するプログラムを作りました。
java.sql.SQLException: No suitable driverと言うエラーがでます。
エラー発生箇所のサーブレットのソースは以下です。
conn = ds.getConnection();
server.xmlには、
http://www.hellohiro.com/datasource.htm に書いてある記述をそのままかきました。ユーザ名とパスワードとurlは
変更してあります。
どうしてエラーがでたか、わかりません。そもそも、No suitalble driverって
どういうエラーですか?
304 :
デフォルトの名無しさん :03/10/14 16:21
コンパイルはできるのですが、実行しようとすると Exception in thread "main" java.lang.NosuchmethoodError: main と出てしまい、実行できません。 1に書いてあるのとは少し違うようなのですが。 もう3時間これでつまずいてます。 どなたか救済してください。
305 :
デフォルトの名無しさん :03/10/14 16:25
>>304 ソースコードに間違いがあるんじゃないかな?
mainメソッドんところ、
public static void main(String[] arg)
って、ちゃんと書いてある?
307 :
デフォルトの名無しさん :03/10/14 16:33
try { } catch() { に return は入れてますか? -classpath 入ってますか?
308 :
デフォルトの名無しさん :03/10/14 16:42
>>306 参考書に書いてあったプログラミングやら、
サイトからダウンロードしたプログラムも試したのですが、全部これが出ます。
確かに、メインメソッドは、それじゃないですね。。
でも、それだけでなってるとは思えないです。
一応、それで試してみます。
310 :
デフォルトの名無しさん :03/10/14 16:47
mysql-connector....jarにclasspathを通す... apacheと連携していれば、ユーザーの設定がいります 例外にブロックを増やして、原因を洗い流すのがjavaの勉強です
311 :
デフォルトの名無しさん :03/10/14 16:49
>>309 > 確かに、メインメソッドは、それじゃないですね。。
ソースUPしる。
>>304 そのエラーは「mainメソッドが見つかりません。」
というような意味だが、
>>306 参考書やサイトからダウンロードしたプログラムはどうなっている?
そのエラーが出る一番短いコードをちょっとここに書いてみては?
313 :
デフォルトの名無しさん :03/10/14 17:04
>>285 "=="を何かの文字に置換したら本当の何かの文字が来た場合何かの文字に置換した
何かの文字と本当の何かの文字とでどっちが置換した何かの文字なのか
わからなくなりそうで怖いです
>>285 自前でやりたいのでつ。それなら全部自前でやれよとか言わないで
>>289 へーへーへー。調べてみまつ
>>290 StreamTokenizerで'='が来たら' 'を「空白」から「通常」文字として設定して'='が来たら
"=="として解釈するってのと同じでしょうか。
要するにアダプターパターンで一皮被せればいいのですね?
>>291-293 まあ自前が一番自己満足できますな・・・。
普通のハローでもなりました・・・。
>>312 public class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
>>304 ちなみにOSはWin98だったりしない?
すいません、
>>315 は通常どおり出来ました。
ちょっと待って下さい。ごめん。。
あの、アプレット用に作るタイプを、プロンプトで実行させてもダメって事ですか?? 当たり前なことや見当ハズレかもしれないけど・・・
>>304 だめ。
普通にjavaコマンドで起動する場合はmainメソッドを実行するってこと。
アプレット用ならappletviewerでテストしる。
>>319 そうですか。なるほど。
ちょっとだけモヤモヤが解けてきました。
明日に提出しようと思ってたけど、このペースじゃ無理かもw
新しく言語使うのって、やっぱ難しい・・・。
ちなみに、windows2000です
ここの人たち優しくてレスが早いので感激しました。
321 :
デフォルトの名無しさん :03/10/14 17:32
こんなオチだったとは。
>>318 うん。mainメソッド、つまり
public static void main(String[] args) {
// なにかのコード。
}
これがないと、プロンプトからは実行できないの。
プロンプトからなにかのクラスファイル、たとえばHalloWorldAppとかを実行させようとして、
java HelloWorldApp とか打ち込んだ場合、
JavaのVMは、HelloWorldAppのクラスファイルのなかから、mainメソッドを探し出す。
そして、mainメソッドが見つかったら、そのmainメソッドに書かれている命令を実行するという仕組み。
なので、mainメソッドが既述されていないクラスファイルは、プロンプトからは実行できない。
アプレットの場合はmainメソッドではなく、init()メソッドを探し出して
そこに書かれているコードを実行する。
なので、たとえアプレットでも、manメソッドが既述されているものなら、
ぷろんぷからでも実行することが可能。
>>304さん staticがかいてないと、あのエラーが出るんだよ。メインメソッドかいても staticが書いてないと駄目。外から実行かけるから、staticっていうのは、メインメソッドにstaticは必須なの
>>321 そんなオチでした。
ウチの学校の情報の先生は揃いも揃って無能ばっかりなので・・・
>>322 わかりやすい説明ありがとうございます。
後半グダグダですけどw 体には気をつけて。
>>304 mainメソッドを
public static void main(String[] args) throws Exception { //(以下略
にしてみたら?
どうも、みなしゃん、ありがとうございます。 依然、エラーがとれません。ソースは以下のとおりです public class DataSourceTest extends HttpServlet { DataSource ds; public void init() throws ServletException { try { InitialContext ic = new InitialContext(); ds = (DataSource)ic.lookup("java:comp/env/jdbc/MySQL"); } catch(Exception e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { Connection conn = null; try { conn = ds.getConnection(); } catch(Exception e) { e.printStackTrace(); } }
これ↓をserver.xmlの<host></host>の間に書き込んでます。 <Context path="/kouteikanri" docBase="kouteikanri" debug="0" reloadable="true"> <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/MySQL"> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value></value> </parameter> <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/kouteikanri?useUnicode=true&characterEncoding=Shift_JIS</value> </parameter> </ResourceParams> </Context>
328 :
デフォルトの名無しさん :03/10/14 17:48
[Tomcatディレクトリ]\common\libにmysqlドライバのjarファイルを入れてあります。
いちおう、classpathも通してあります。
>>310 さん
apacheと連携しているとユーザの設定がいる?どういうことなんでしょうか?よければ、教えてください。
私の設定は以上です。
No suitable Driverエラーがとれません。だれか、よろしくお願いします。
>>328 さん
すみません、何をコピーすればいいのですか。。
>>324 最後にいくつか補足しておくと
mainメソッドを持たないクラスアプレット以外にも、色々あって。
たとえば、他のクラスから部品として使われるクラスにも、
mainメソッドがないものがある。
しかし他のクラスから部品として使われたり、呼び出されたりするクラスでも、
エラーがないかチェックするために、簡単なmainメソッドを持たせる場合もあるが。
つまり部品ひとつひとつごとに、単体で実行させてみて、
うまく動くようなら、ほかの大きな部品に組み込む。
まあ最近は、そういうのは流行らないかもしれないが。
あと体の気遣い、かたじけなし。(苦笑
332 :
デフォルトの名無しさん :03/10/14 17:54
# java DetaSourceTest コマンド撃ってない?
ああ失礼
>>331 の三行目は、
「mainメソッドを持たないクラスは、アプレット以外にも色々あって。 」
// もう俺、そろそろ家に帰ったほうがよさそうだ……。
>>322 うってませんが。。。
Servletをブラウザから実行してます。
335 :
デフォルトの名無しさん :03/10/14 18:06
ブラウザには、何てエラーがでる? httpステータスエラー? リクエスト・・・エラー?
>>335 ブラウザにはエラーが出ません。
Tomcatのコンソールにエラーがでます↓
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:243)
at tyrex.jdbc.xa.EnabledDataSource.getConnection(EnabledDataSource.java:
233)
at tyrex.jdbc.xa.EnabledDataSource.getConnection(EnabledDataSource.java:
204)
at DataSourceTest.doGet(DataSourceTest.java:27)
以下略
337 :
デフォルトの名無しさん :03/10/14 18:19
tomcat を再起動しても無理、tomcatのversionは?
>>326 のソースにimport文はないけど
ドライバ何使ってるか知らないけど、今は com.mysql.jdbc.Driver じゃね〜の?
>>337 再起動しても駄目です。
import文は省略しましたが、ちゃんと書いてあります。
>>338 古いバージョンのorg.gjt.mm.mysql.Driverを使っています。サンプルサイトもそれを使っていたので。。
JDBCでの接続は普通にできるので、ドライバは問題ないとおもいます。
すみません。実は、そのページにあることも試しました。他のWebページでも 何個かあったんですが、全部だめでした。 明日、本屋へいって調べてこようと思います。どうもありがとうございました。
342 :
デフォルトの名無しさん :03/10/14 19:31
JAVA SOUND APIを使用してCDプレーヤーを作る事はできないのでしょうか? やはりPURE100%は無理?
>>324 > ウチの学校の情報の先生は揃いも揃って無能ばっかりなので・・・
お前が無能だからそんな学校に逝く羽目になったんだろ
344 :
デフォルトの名無しさん :03/10/14 19:43
ガイシュツだったらすみません。 自分が行いたい処理を実行するためのクラス・メソッドを調べる ための辞書のようなものってありませんでしょうか?書店をまわって いるんですが見つけられないです。お勧めのもの、教えてください。
345 :
デフォルトの名無しさん :03/10/14 19:54
346 :
素人”管理”人 :03/10/14 21:15
Tomcat関連の質問はこちらでもよろしいでしょうか? Tomcat-4.1.27をインストールして、Apache-1.3.28とmod_jkで連携させて みたのですがTomcatについているadminとmanagerが正常に動かないです。 tomcat単体で動作させた場合は正常に動いていました。 恐らくserver.xmlの書き方がへぼいか、Apacheと正常に連携できていないか だと思うのですが。 今日はもう遅いので明日またカキコにきます。 ここのスレじゃだめというのなら書いておいてください。 別のスレに逝きますので。
>>246 それで宣伝しているつもりだったらC#プログラマに
失礼なことをしていると思ったほうがいい。
C#の布教活動のつもりが、M$の工作員がなにかやっているのではないかと
疑いをかけられ反って、C#に対する印象と、さらにM$に対する印象までも下げると思ったほうがいい。
>>347 100レスも前のコピペにマジ突っ込みするなよ…
でも、東京方面では Web関連の開発に.NET系が徐々に浸透してるんでしょ? 派遣の営業の方に聞きました そろそろやろうかと思っている今日この頃・・・
ちょっと教えてください Hashtableの中身をうまくソートする方法でベストなのは? 練習としてJavaでアプリ作ってみてるんだけど GUIいらいらするねこれ
>>350 Hashtable の中身をソートするって? 何のために?
>>303 どこかでドライバを Class.forName(String) で明示的に読み込んでみろ。
それでも例外が出るならドライバ名が間違ってる。
>>350 ,351
ほんとに中身のソートだけでいいなら
map.values().sort()
中身の順にソートされたキーの並びがほしいということだと仮定して答えると
map.keySet() をいったん配列にしてやらんといかんだろうな。
Set set = map.keySet();
Object[] array = set.toArray();
Arrays.sort(array, new Comparator() {
int compare(Object o1, Object o2) {
return map.get(o1).compareTo(map.get(o2));
}
});
354 :
デフォルトの名無しさん :03/10/14 23:45
ファイルをコンパイルして、プログラムを実行した時に フレーム上のコンポーネントが表示されません。 フレームのサイズを一度最大化して元に戻すと表示されるんですが。 どうしたら実行時に表示できるんですか?
355 :
デフォルトの名無しさん :03/10/14 23:48
java sound apiでMixer.InfoクラスのgetMixerInfo()メソッドを 呼び出して情報を手に入れるやり方がわかりません。 詳しく教えてください。
356 :
デフォルトの名無しさん :03/10/14 23:51
357 :
デフォルトの名無しさん :03/10/14 23:54
>>354 フレームを表示する前に、フレーム上のコンポーネントのインスタンス
生成とadd作業を終わらせとけ。または、コンポーネントをaddした
直後にコンポーネントのsetVisible()等を呼び出して、再描画が走る
ようにせい。
>>351 フォルダ階層を取得し、Hashtableに入れたんですけど
表示させるとばらばらになるんで汚くて・・・
>>353 ありがとうございます。
1つ目の方法でいけそうですね(違ったらすみません)
助かりました〜。
>>354 pack()
ではだめでしたか?
>>353 Collectionインターフェースにはsort()はないので、
Hoge[] hoges = (Hoge[])map.values().toArray(new Hoge[0]);
Arrays.sort(hoges);
とか、
List list = new ArrayList(map.values());
Collections.sort(x);
とかかなぁ。
>>358 フォルダ名が日本語だとUCS-2でソートされる予感
361 :
デフォルトの名無しさん :03/10/15 00:11
>>358 日本語のソートにはjava.text.Collatorを使用してみよう。
UCS-2文字コード順より、ずっとマシなソートしてくれるよ。
>>357 ありがとうございます。
どうもうまくいかないんで、また調べてみます。
>>358 すいません。
pack()とは何ですか?
364 :
デフォルトの名無しさん :03/10/15 00:35
365 :
デフォルトの名無しさん :03/10/15 00:43
すみませんが、XP用のjavacとか入っているのってどこにあるんですかね? 思ったよりも探すのに時間がかかっていまして。 よろしくお願いします。
>>366 ありがとうございます。
私も何とか同じページにたどり着いていましたが、確信が持てます。
とてもありがたいです。
あとは、まちがってJREを落とさないように。 落とすのはSDK。Windows版ならオフラインインストールでも、 オンラインインストーラーでもお好きなほうを。 もしインテルの64ビット版CPU Itanium を使っているのなら、 下の方にある "J2SE Itanium v 1.4.2_01 のダウンロード" を選択。
♪用の64bit版J2SEはまだですか?
JavaCCを探しているんですが、みつかりません…… どこにあるのでしょうか?
JavaCC ググレばすぐみつかる
>>371 ググってみて引っかかることは引っかかるのですが
リンク切れやサーバが落ちていたりしてダウンロードできないです……
単に調べ方が悪いからでしょうか?
JAVAでアプレットを作る際 paintをCanvasクラスを継承したクラスで行うとき 継承していないクラスでpaintを行うのと比べてどのような利点がありますか?
>>307 try-catch statementにreturnは入れるべきでない。
catch節が実行される前にreturnされてしまう。
>>349 > でも、東京方面では
> Web関連の開発に.NET系が徐々に浸透してるんでしょ?
> 派遣の営業の方に聞きました
.NETは中小零細企業のみ。.NETを採用するほとんどの零細企業はM$と何かしら
関係を持っている企業がほとんどでM$から何らかの圧力を受けて強制的にC#を使わされている。
しかも.NETを使うからといってC#を積極的に使っているとも限らない。
採用する企業数が増えたからといって一般にJavaよりも案件が増えるとは限らない。
個人で.NETによるPCサーバが増えてきたからといって.NETがUnixに勝ったとは限らない。
VS.NETを購入したからといってC#を使っているとは限らない。いまだにVC++を使っているか、
ただのCしか使えないところが少ないとも言い切れない。
オープン系などでC#がイニシアティブをとれなければJavaやCOBOLには勝つことはできない。
377 :
素人”管理”人 :03/10/15 09:27
Web系はどう考えても選択肢の広いJavaが一番だと思いますが...
C#厨のつまらん釣りだ。
379 :
デフォルトの名無しさん :03/10/15 10:42
廚さえいないJ#、アワレ....
380 :
デフォルトの名無しさん :03/10/15 11:24
(1)よく変数で使われるidt, ddtってなんですか? (2)if(条件) breakってどういうことですか?実行部分がないのですがこれでいいの? (3)コンソール環境のコンソールって何ですか? (4)プロンプトってなんですか? よろしくお願いします。
> .NETは中小零細企業のみ。.NETを採用するほとんどの零細企業はM$と何かしら > 関係を持っている企業がほとんどでM$から何らかの圧力を受けて強制的にC#を使わされている。 つーか。どうやって調べたのか?(w
> VS.NETを購入したからといってC#を使っているとは限らない。 そうそう。.NETは複数の言語を使えるわけだから、 VC++でも.NET。COBOLでも.NET C#が無くても.NETは使われるわけだ。
すいません、あほな質問かもしれませんが、 Javaでexeファイルを作ることは可能でしょうか? そもそもVM上で動く中間コード(?)を動かす だけで、exeファイルは関係ないと思うのですが。
386 :
デフォルトの名無しさん :03/10/15 13:35
このエラーの意味を、日本語で詳しく教えて下さいませm()m Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException at MyClass.toString(MyClass.java:113) at java.lang.String.valueOf(Unknown Source) at java.io.PrintStream.print(Unknown Source) at java.io.PrintStream.println(Unknown Source) at MyClass.main(MyClass.java:127)
>>380 (1)idt = idiot = 馬鹿 ,ddt = プロレスの技
(2)条件が実行部分
(3)WindowsでいうとDOS窓
(4)DOSまで出いうとC;>
>>386 MyClass#toString() の 113行目で添字が配列の範囲を超えた。
>>384 GCJ 等の AOT コンパイラを使えば可能。
391 :
デフォルトの名無しさん :03/10/15 13:55
>>385 >>390 RESありがとうございます。
そしたら、そのexeファイルはVM上じゃなく、
Win上で動くんでしょうか?つまり、VMは必要
なくなりますか?
Javaで、パソコンに接続されている機器を検出することはできますか? 1394とかで接続しているものとか。
>>391 VJはいらない。
けど、Sunとの訴訟以降、うざいダイアログが出るよ。
>>382 アルバイトの面接を受けるときに面接官から聞いた。
> .NETは中小零細企業のみ。.NETを採用するほとんどの零細企業はM$と何かしら > 関係を持っている企業がほとんどでM$から何らかの圧力を受けて強制的にC#を使わされている。 圧力かどうかしらないけど、マイクロソフトはうちのような小さな会社にも Not For Resale のマークの付いた開発ツールをばら撒いていくね。 本来は評価用なんだろうけど、業務(実開発)に使用しても黙認ぽい。
398 :
デフォルトの名無しさん :03/10/15 16:33
>>387 お返事ありがとうございます。
ですがおっしゃっていることがまったくわかりません。
もうちょっと初心者にもわかるようにお願いできませんでしょうか?
条件が実行部分というのがわからないしDOS窓というのがわからないし・・・。
399 :
デフォルトの名無しさん :03/10/15 16:34
もう一度のっけておきます。 (1)よく変数で使われるidt, ddtってなんですか? (2)if(条件) breakってどういうことですか?実行部分がないのですがこれでいいの? (3)コンソール環境のコンソールって何ですか? (4)プロンプトってなんですか? よろしくお願いします。
>>398 お前は、OSどれだ?
知らんが、アクセサリにMS-DOSプロンプトってあるだろ?
それを起動しろ
ってかDOSも知らんのかよ。知っとけ
ここでのDOSというのはMS-DOSのことだMicrosoft Disk OSってこと。
つまりOSなんだ。つまりWindowsの前のOSということだ。
一世風靡したこのOSもすでに過去の遺産である。(一部を除いた地域で)
それをいわゆるDOS窓という。つまり窓って言うのはウィンドウの比喩だ。 つまりDOSプロンプト=DOS窓ってことだ。 プロンプトは、Dosプロンプトを起動したら、 C:\> って出てくるやしだ。 たぶん C:\WINDOWS> だろうがな これがプロンプト
403 :
デフォルトの名無しさん :03/10/15 16:56
>>400-401 お返事ありがとうございまし!!大変よくわかりました。
WINDOWSでいうウィンドウがDOSではDOS窓(DOSプロンプト)にあたるんですか?
これにGUIを搭載して進化したということですね。なるほどなるほど。
404 :
デフォルトの名無しさん :03/10/15 16:57
DOSプロンプトって今使うんですか? 使うとしたらどんなときに使うんですか?
>>403 ちゃう。
DOSには、Windowは無い。
Windowsのウィンドウの中のDOSのことをDOS窓と言うときもある。ッて感じだと分かるだろう。
その名残りが今でもあるということ。
コンソールというのは、あえて言うなら、GUIでなくCUI。
CUIはキャラクターユーザーインターフェースの略。
キャラクターとは文字。つまり、アイコンなど無いわけで、文字のみ。
DOS窓を覗いてみろ。文字だけだろ?
406 :
デフォルトの名無しさん :03/10/15 17:01
>>404 例えばjavaプログラムのコンパイル。
例えば
C:\>javac sample01.java
見たいな感じ。
実行も名。
例えば
C:\>java sample01
とか。
>>406 全然。
んじゃ後は任せた!!
あと全部で5レスはかかると思うのでよろしくです。
>>398-399 貴方様の質問は、特にJava質問スレで行うには、
ふさわしいものではないように思えます。
1.まずidt, ddtというのはどのようなソースででてきたものでしょうか。
私には最近は、あまり推奨されないような類の変数名におもえます。
プログラム技術板には総合的な質問スレがあるので、そちらか、
あるいは変数名についてのスレッドなどにポストしてみたほうが、
この問題については、詳しい方々が大勢いらっしゃるように思えます。
2.前後のソースを貴方様が示していない以上、はっきりとしたことは申し上げられませんが、
breakという以上、このif文は、forやwhileなどのループ節のなかで出てきたものてはないかと、
推測いたします。
だとするならば、「条件が成立したならば、ループから抜け出す」
という意味ではないでしょうか。
3.コンソールというのは、もともとは『入力装置』というほどの意味です。
どのような文脈で、この言葉が登場したのかは判りませんが、
コンピュータへの指示を『入力』するためのプログラムとでも解釈すれば、
よろしいのではないでしょうか。
貴方様の使用なされているOSが何かは存じませんが、
Windows系統だとするならば、いわゆるDOS窓とか、
『MS-DOSプロンプト』や『コマンドプロンプト』と呼ばれるものが、これに相当するのではないでしょうか。
4.プロンプトは、「促す』という意味です。つまり「何か命令を入力してください」と、
ユーザーに対して促している画面で表示されている『>』などの記号がそれでございます。
またそのような画面を提供するプログラムも、『プロンプト』と名付けられる例が多く、
そのようなプログラムのことも『プロンプト』と呼ばれているようであります。
たとえばWindowsにおける『MS-DOSプロンプト』や『コマンドプロンプト』等がそうです。
恐らく、あなたさまがお尋ねになっている、『プロンプト』という言葉の意味も、
上記の『MS-DOSプロンプト』や『コマンドプロンプト』などの、
コマンドラインから、命令を入力するプログラムの総称ではないかと推察申し上げます。
いずれにしても貴方様のなされた3.4.の二つの質問は、
Java質問スレやプログラム技術板よりは、より適切な板やスレッド、
たとえばPC初心者板の初心者用質問スレ等にポストなされたほうが、
ふさわしい物のように、私には思えます。
PC初心者
http://pc2.2ch.net/pcqa/
411 :
デフォルトの名無しさん :03/10/15 17:26
>>405 >Windowsのウィンドウの中のDOSのことをDOS窓と言うときもある。ッて感じだと分かるだろう。
すいません、DOS→WINDOWSになったんですよね?
それならなんでWINDOWSの中にDOSがあるんですか?うーん。
>コンソールというのは、あえて言うなら、GUIでなくCUI。
>DOS窓を覗いてみろ。文字だけだろ?
よくわかりました。ありがとうございました。
あのようなのをコンソール環境っていうんですね!!
412 :
デフォルトの名無しさん :03/10/15 17:28
>>407 すいません、javaのコンパイルってソフトが自動でやってくれるんですよね?
ソフトが自動でやってくれたことを表示するときにDOS窓が使われるということですか?
413 :
デフォルトの名無しさん :03/10/15 17:28
>>408 付き合ってくれてありがとうございました!
414 :
デフォルトの名無しさん :03/10/15 17:32
>>409 >1.まずidt, ddtというのはどのようなソースででてきたものでしょうか。
本にのってたのでこれはなにか意味があるのかなぁと思って聞いたのですが。
推奨されないとかそんなこといわれても私知りません。
別に詳しい話が聞きたいわけではないのですが。
>2.前後のソースを貴方様が示していない以上、はっきりとしたことは申し上げられませんが・・
本にこういう書き方もあるといって紹介されていたものなので前後のソースはわかりません。
すいません。。。
>だとするならば、「条件が成立したならば、ループから抜け出す」
>という意味ではないでしょうか。
なるほど!そういうことですか!!
ありがとうございます。
>>414 なんの本にでてきたの?
idtとddtだけが気になった。
俺は、それについて詳しく知りたい。
ここまで、みんなつきあってあげたんだから、
そこの箇所のコピペは、詳しい内容きぼん
それと本のタイトルも
そこの箇所のコピペか、それかどういうプログラムか詳しい内容きぼん。
417 :
デフォルトの名無しさん :03/10/15 17:38
>>410 >3.コンソールというのは、もともとは『入力装置』というほどの意味です。
>どのような文脈で、この言葉が登場したのかは判りませんが、
>コンピュータへの指示を『入力』するためのプログラムとでも解釈すれば、
>よろしいのではないでしょうか。
>>405 の説明とおっしゃってることが違うような気がするんですがどういうことですか?
頭が混乱してます。
>いずれにしても貴方様のなされた3.4.の二つの質問は、
>Java質問スレやプログラム技術板よりは、より適切な板やスレッド、
>たとえばPC初心者板の初心者用質問スレ等にポストなされたほうが、
>ふさわしい物のように、私には思えます。
どうもありがとうございます。PC初心者板ってずっと前から荒れてませんか?
初心者質問スレが正常に機能してないような気がしてこちらに書き込んだ
のですが。いずれにしてもよく考えてから書き込むようにします。
419 :
デフォルトの名無しさん :03/10/15 17:44
>>415 本のタイトルは「新Java言語入門 スーパービギナー編」です。
SOFT BANK Publishingの。
P38の数値の型変換というところに出てきます。
そのままコピペしておきます。
「double ddt; int idt;
・・・・
ddt=idt; ---double型にint型を代入するのはOK
idt=ddt; ---エラー。int型にdouble型を代入すると情報を失う。」
420 :
デフォルトの名無しさん :03/10/15 17:49
>>418 アスキー用語事典で「コンソール」で調べたらまったく違うような説明が出てきましたよ。
これだから事典は・・・。それに説明に知らない用語が5個も出てきたらよけわからなくなるし。
>>419 おお、ありがとう。
それは、おそらくハンガリアン記法という変数名の名付けかたではないかな。
たしかに最近はあまり流行らない変数名の名付け方だね。
ハンガリアン式の変数名の名付けかたは、俺も詳しくは知らないけれど、たしか
変数名の頭に、それがどういう種類の変数名であるかを表す文字をつけるというものでね。
おそらく、idtの頭にある i は、int型の変数名であることをあらわし、
ddtの頭にある d は、double型の変数名であることを表しているのではないかな。
で、たぶん、dtは、data(データ)の略だとおもうよ。
質問だって、そういうふうに、具体的に情報を出してくれたら、
もっと、すぐに解答が得られたのに。419タンのい・け・ず(はぁと
ちょっと待て!ハンガリアン
http://pc2.2ch.net/test/read.cgi/tech/1011026963/
422 :
デフォルトの名無しさん :03/10/15 17:58
>>421 どうもありがとうございました!!
なるほどそういうことだったんですね( ^▽^)
ハンガリアンですか!聞いたことないです!!
うん!!勉強になりました!!
よーしこれからハンガリアンを倒しに行ってやる!!
>>420 事典は、十も二十もとは言わないけど、複数の事典を参照するといいと思う。
知らない用語が5個も6個もでてきたのなら、それらもまた複数の事典で、
判るようになるまで引いてみるとか
それでも判らなければ、検索エンジンで、
その言葉の実際の使用例をいくつも試しに見てみるとか
同じ言葉でも使用者や文脈によって、まるで意味が違ってくることもあるし。
たとえば『プロンプト』の意味も、『>』だというのも、正しいし、
『DOS窓』のことだと言うのも、正しいし。
はい。では次の質問者どうぞ。
かなりどうでもいいが、NT系列では DOSプロンプトって言い方しないよね。 スタートメニューにあるのはコマンドプロンプト。 #中身もDOSじゃないし。 明らかにWindowsに不慣れな人相手にするときは ちょっとだけそのあたり配慮した書き方にした ほうがいいかなとおもったりして。
prompt $p$g だけじゃないよね。。。 $d$t$_$p$g が、好きかな(笑) エスケープシーケンス $e で色付けたり昔はみんなでいろいろなプロンプトにしていました。
>>424 なんだ。その程度で圧力とか言ってんのか(w
Java3Dで画面をスライドショーのように1コマずつ切り替えたいのですが、 u.getLocale().removeBranchGraph(xxx); u.addBranchGraph(yyy); もしくは、 u.getLocale().replaceBranchGraph(xxx, yyy); とすると切り替わるときに黒い画面が入ってしまい、逆に u.addBranchGraph(xxx); u.getLocale().removeBranchGraph(yyy); とすると2つの画像が一瞬重なって表示されてしまいます。 もっと良い方法があったらお願いします。
429 :
デフォルトの名無しさん :03/10/15 22:48
参考書で独習中の者です。 既出だとは思いますが、ビット演算子が何故必要 なのか、サパーリわかりません。とりあえずもう考えるのが 嫌になったので、先の章に進もうかなと思っていまつ。。 これって使用頻度高いですか?
>>429 昔ながらのビット単位でフラグ立てたり下げたりのときにはよく使う
普通の整数の計算では別に使わないなあ
ビット演算のがはやいとかはJavaの場合あるんだろうか?
大昔のCじゃあるまいし、コンパイラの最適化でどうにでもなると思う
以下で文字化けしてしまいます。。。どうしたら、いいんでしょうか。。 if(!(strPassword.equals(dbPass))) { errorMessage = "社員番号とパスワードが一致しません"; String url = "/kouteikanri/index.jsp?errorMessage=" + errorMessage; response.sendRedirect( url ); }
String url = "/kouteikanri/index.jsp?errorMessage=" + URLEncoder.encode.(errorMessage;, "<好みのCharset>")
>>430 一応、ビット演算の方が速い事が多い(コンパイラや実行環境による)。
自分で書く際にはあまり使わんかも知れんが、他人のソース読む際は必須。
>>432 さん、ありがとうございます。
できませんでした。。。しかし、先ほどまでは表示されていた文字が???????????
みたいな感じだったのですが、こんどは、???P????]??みたいな感じになりました。
だれか分かる人がいたらおしえてください。よろしくお願いします。
なんとか、????から違う状態に抜け出しました。 今は↓が画面に表示されています。 %8E%D0%88%F5%94%D4%8D%86%82%C6%83%70%83%58%83%8F%81%5B%83%68%82%AA%88%EA%92%76%82%B5%82%DC%82%B9%82%F1
対症療法を繰り返すより いっぺん文字コードについてちゃんと調べた方がいい。 そんでjavaの場合の文字コードの扱い方も。
ぐはっ、時間がない。。。
438 :
デフォルトの名無しさん :03/10/16 00:22
Visual J++とSUNのとの主な違いを教えてください
>>430 ,433さん、有り難うございます。
フラグに使用するのであれば理解できそうです。
必須との事ですので、頑張ってみますです。
440 :
デフォルトの名無しさん :03/10/16 00:33
初心者スレでレスがなかったのでこっちで聞かせてください
マルチって言わないでね。
JSPで正規表現検索をやっているんですが
Pattern ptn=Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",Pattern.CASE_INSENSITIVE);
Matcher mtch=ptn.matcher(strMsg);
while(mtch.find()){out.println(mtch.group() + "<br />");
の部分がまったく理解できません。出来るだけくわしいかいせつをおねがいします。
以下コード
<%@ page contentType="text/html;charset=Shift_JIS" import="java.util.regex.*" %>
<html>
<head>
<title>正規表現で文字列を検索する</title>
</head>
<%
String strMsg="メールアドレスは、
[email protected] です。";
strMsg+="
[email protected] もあります。";
Pattern ptn=Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",Pattern.CASE_INSENSITIVE);
Matcher mtch=ptn.matcher(strMsg);
while(mtch.find()){out.println(mtch.group() + "<br />");
}
%>
</body>
</html>
>>431 文字まわり以前にエラーメッセージの文字列自体をURL使って受け渡す
設計自体を...
>>441 なんてこった。。。分かりました。方法を変えてできるものを採用することにします。
みなさん、どうもありがとうございました。
444 :
デフォルトの名無しさん :03/10/16 00:47
>正規表現自体なら専用スレがあるよ。 サンクスです。
445 :
デフォルトの名無しさん :03/10/16 01:11
フレームワークとワークフレームって違うものなんですか?
servletで、Example.javaとExample1.javaを作って classの名前のところ以外まったく同じにしてるのに、 Example.classは使えて、Example1.classは使えません。 すごく初歩的なところでつまずき自分でも何してるんだかと思うのですが。。。 なんでなのか理解できずただただ、同じこと繰り返しています。 なんでかわかる人居ませんか。。。 ちなみに、tomcatに初めからサンプルとして付いてきたソースの名前を↑のようにかえただけです。 なんでなんでしょうか。。
おまいに限らず質問するならもっと情報をよこせ。 最低限ログやエラーメッセージを書け。
>>446 >Example.classは使えて、Example1.classは使えません。
エラー内容とか、具体的に書けよ。
あと、ファイル名とクラス名一緒にしてるかい?
やっぱ、質問の方法とかFAQをテンプレにしたほうがいいな。 こんな質問ばっかりじゃ、答えるほうが萎えてくるよ。
450 :
デフォルトの名無しさん :03/10/16 01:50
スルーでええやん♪
お言葉に甘えて /* $Id: HelloWorldExample.java,v 1.2 2002/10/29 17:42:57 remm Exp $ * */ import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; /** * The simplest possible servlet. * * @author James Duncan Davidson */ public class HelloWorldExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ResourceBundle rb = ResourceBundle.getBundle("LocalStrings",request.getLocale()); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>");
String title = rb.getString("helloworld.title"); out.println("<title>" + title + "</title>"); out.println("</head>"); out.println("<body bgcolor=\"white\">"); // note that all links are created to be relative. this // ensures that we can move the web application that this // servlet belongs to to a different place in the url // tree and not have any harmful side effects. // XXX // making these absolute till we work out the // addition of a PathInfo issue out.println("<a href=\"../helloworld.html\">"); out.println("<img src=\"../images/code.gif\" height=24 " + "width=24 align=right border=0 alt=\"view code\"></a>"); out.println("<a href=\"../index.html\">"); out.println("<img src=\"../images/return.gif\" height=24 " + "width=24 align=right border=0 alt=\"return\"></a>"); out.println("<h1>" + title + "</h1>"); out.println("</body>"); out.println("</html>"); } }
とりあえず LocalStrings.properties については国際化のため。 各言語ごとにプロパティファイルを作っておくといちいちソースを書き換えずに 同じプログラムでも各言語ごとのメッセージに変えることができる。
455 :
デフォルトの名無しさん :03/10/16 02:29
デプロイメントディスクリプタを修正していませんでしたという オチでしょう。
見えてたら 503 になるだろうから 404 ってことはクラスファイル自体が見えてないっぽい。 HelloWorldExample1.class がちゃんとあるのに見えてないのだったら web.xml の設定の問題か?
玄人ぶってないでweb.xmlって一言教えてやれよ。カコワルイ
web.xml。。。まだ手も着けてないところでした。
そこの、HelloWorldExampleをHelloWorldExample1に代えたら同じものが出来ました。
ありがとうございます。
web.xmlは汎用効くのですかね?
これからいじっていってみたいと思います。
ありがとうございました。
>>454 そういうことだったのですか、ありがとうございます。
いくつかアプリを作ったのでCD-Rに保存してみまして、 その保存したプログラムを試しに実行してみようとしたんですが、実行出来なくて困ってます。 CDの入っているEドライブから適当な場所(c:\MyProgram等)に移動して、 DOSプロンプトから c:\MyProgram\java hoge と普通にやっているのですが。。 NoClassDefFoundErrorらしいのですが、これは何でクラスが見つからないんですかね? .classファイルはそこに有るじゃないかって思うんですけど。
>>459 1) クラスパスが通ってない。
2) c:\MyProgram\ に hoge.class が無い。
3) 無いのは hoge じゃない。
>>460 >>461 >3) 無いのは hoge じゃない。 これみて「あ」て思いました。
内部クラスをCDに焼いてなかったです。
もう6時間くらいずっとPCの前でやってたんで頭ぼけてるみたいです。
こんな時間にわざわざ答えてくれてありがトン
ハードディスクに保存されている画像ファイルの大きさ(縦と横)を 取得するにはどないすればいいんでしょう? 画像を描画するのではなく,単に大きさが知りたいのです。 OSはWindowsを使ってますが,画像ファイルのプロパティを見れば 大きさを知ることができますよね。これと同じようなことをJavaで やって,まずはその値をコンソールに表示したいんですけど・・・。 知恵をお貸し下さい。
464 :
デフォルトの名無しさん :03/10/16 13:02
すいません、吊りたくなるくらい初心者な質問ですが教えて下さい。 会社の入社前研修の課題で、住所録ソフトを作れとの課題が出たのですが 当方プログラミグ経験あまり無し。 GUI環境整えるのに慣れたJavaアプレットで、 とりあえず画面設計だけやっちゃったんですが アプレットだとクライアントのファイルに、書きこんだりできないんですよね? テストする時に、どこかの鯖借りて、鯖にデータ置いた方がいいんでしょうか? 納期まで余裕無いんで、今から他の言語勉強する自信ないし…… ちゅうか技術で入ったワケでもないのにこの課題はツライです_| ̄|○ 知恵をお貸し下さい、お願いします。
>>463 画像ファイルの種類によって、やり方が異なる。
やり方が異ならない部分について言うと、
そのファイルを読んで、ファイルの中身から、
縦と横のピクセル数が書いてある部分を探し出す。
それぞれの画像ファイル形式(BMP,.GIF,JPG,PNG等)で、
どこを見ればいいか、が違ってくるのだと思う。
>>464 サーバーかりても、サーバ側でサーブレットなりネットワーク通信するなりしなきゃなんないんだから、
AWTやSWINGでやったほうが、よっぽど楽だろ。。
それとも、GUI覚えるよりもネットワークやサーブレット覚えたほうがいいというなら、話は別だが。。
アプレットつくってもサーバ側でデータファイルを取り出すサーバプログラムがいるんだから。。
GUIの画面で作りな。フレームかJフレームクラスを使えばいいんだから、GUIプログラミングのなるだけ詳しい本を1冊
買うなり、借りるなりしてつくれば、1週間もあればできるはず。
言っておくが、住所録程度つくれないんじゃ、現場じゃ役に立たんよ。マジで。
ちなみに、住所録程度なら、なれたひとは1〜2時間でつくっちゃう。
Javaでスキャナを操作できますか?
470 :
デフォルトの名無しさん :03/10/16 14:39
>>469 標準API にはないと思うけど
Java TWAIN で探してみて
471 :
デフォルトの名無しさん :03/10/16 15:01
>>464 >今から他の言語勉強する自信ないし……
つーことは、Javaでなくていいんでしょ?
他スレで聞いた方がいい。
>>466 >そのファイルを読んで、ファイルの中身から、
>縦と横のピクセル数が書いてある部分を探し出す。
そうかー,そういう情報がファイルのどこかにあるのかー。
どこにあるんだろ?試しにテキストエディタで画像ファイルを
読み込んでみたもののそれらしきものは発見できず。
画像ファイルはバイナリですよね。テキストエディタでは
無理か。
うーん,どうやって取得するのだ?誰か教えて下さい。
って,スレ違い?
(画像ファイルはJPGです)
interface i {} public class a implements i { public static void main (String[] args) { Object obj = new a(); i io = (i)obj; // (1) Object[] arr = {new a(), new a()}; i[] ia = (i[])arr; // (2) } } 単にオブジェクトをキャストする(1)のはうまくいくのに、 配列で同じことをしようとする(2)のはうまくいきません。 ClassCastExceptionが投げられますが、どうしてだか解る方 教えて下さいm(_ _)m ちなみにarrは、実際のプログラムではJList#getSelectedValues 等からの返値なので、Object[]は使わないわけにはいきません・・・。
imege.ioでスキャナから、画像取れますか?
477 :
デフォルトの名無しさん :03/10/16 16:16
javaのクラスってインスタンス化前に使おうとすると 例外が発生したりするんでしょうか? その場合、インスタンス化されてるかされてないか見分けるにはどうしたらいいんでしょうか?
exeを出す開発環境って本当に無いアルか?
Appletを使用せずにApplicationで時計を表示させるプログラムを作成しているのですが 時計を表示させることはできるのですが時刻が更新されません。 どこが悪いか分かりません。誰か御力を貸していただけないでしょうか? import java.util.*; import java.applet.Applet; import java.awt.Graphics; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Clock111 { public static void main(String args[]) { JFrame frame = new Clock111Frame(); frame.show(); } }
479の続きです。 class Clock111Frame extends JFrame { public Clock111Frame() { setTitle("Clock"); setSize(300, 300); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = getContentPane(); contentPane.add(new Clock111Panel()); } }
480の続きです。 class Clock111Panel extends JPanel implements Runnable { Thread thread=null; public void start(){ Thread thread = new Thread(this); thread.start(); } public void run(){ Thread thisThread=Thread.currentThread(); while(thread==thisThread){ try{ thread.sleep(1000); }catch(InterruptedException e){ } repaint(); } } public void paint(Graphics g){ Date today=new Date(); String nowtime=today.toString(); g.drawString(nowtime,0,30); } public void stop(){ thread=null; } }
482 :
デフォルトの名無しさん :03/10/16 17:14
>>482 初めて知ったアル
ちょっと感動アルね でもタダじゃないアルね 残念アル
ありがとうアル
Javaでデジカメって動かせる?
485 :
デフォルトの名無しさん :03/10/16 17:22
>>485 いくつか有るアルね
漏れは今までどういう探し方をしてたn(ry
恥ずかしくなってきたアル
487 :
デフォルトの名無しさん :03/10/16 17:44
初心者でもなんとか作れて需要がありそうなソフトって何ですか?
>>477 例外がどうとか言う前に、もう一回「クラス」と「インスタンス」の意味について勉強しなおせ。
>>479 >時計を表示させることはできるのですが時刻が更新されません。
この意味がよく分からないが、
>>481 の Clock111Panel#start() メソッドが呼ばれてなさげ。
>>484 上の方でも聞かれてたけど、JMF でなら OK。
って、聞きたいことがいくつもあるなら、何をしたいか具体的に書いちゃったら?
多分「Java でやるな」って言われるけど。
>>487 初心者でも作れるなら、使いたい人は、
わざわざ君が作ったものを使わず、頑張って自分で作ると思う。
練習のために、ってだけでいいなら、
自分の欲しいソフトのうち簡単そうなのを作ればいいじゃん。
>>488 JMFを使っても、キャプチャ装置として認識してくれないんですけど。
ちなみにソースは以下のもの。
import javax.media.*;
public class Capture {
public static void main(String[] args) {
CaptureDeviceManager capturedevicemanager = new CaptureDeviceManager();
Format format = new Format(null);
System.out.println(capturedevicemanager.getDeviceList(format));
}
}
これやっても、使いたい装置が出てこない。
>>488 ただいま勉強中なんですが
要約しますと
ClassA a;
a.method();
↑のようにnewする前にいきなり関数使用した場合について
javaの仕様でどう規定されているか知りたいんですが
この解説がみあたらないので・・・
あと、こんな感じであるクラスの変数が
newされて参照を保持しているか、していないかは
どうやって見分ければいいのかを知りたいんですが…どうでしょうか?
(nullで初期化されたりするんでしょうか?)
やりたいことは、その装置から画像をある時間間隔でキャプチャして、 そのデータを保存する(とりあえずは表示だけでもいいですけど)。
>>490 = 493
JMF をインストールすると入る、JMF Registry あたりで、
Capture の登録か何かをすると、初めて使えるようになるときがある。
ほんとにそれだけでいいかとか、詳しくどうやるかは忘れちゃった。
それと、俺は Format は new VideoFormat(VideoFormat.RGB) を使った。
getDeviceList は static だから、CaptureDeviceManager のインスタンスは用意しなくていい。
返ってくるのは Vector だから、そっから CaptureDeviceInfo インスタンスを取り出して、
info.getLocator() して、使っていく。
>>493 に書いてあることは俺も経験があるから、続きで詰まったらまた聞いてくれてもいい。
でもちゃんと動いた頃から PC が (つまりインストールしているデバイスが) 代わっちゃって、
それから試してないから、俺もまごつくかも。
レスしてくださった皆さん、ご親切にありがとうございます。 AWTとかSWINGでもできるんですね? それがわかれば、まぁどうにか頑張ってみようと思います。 >>言っておくが、住所録程度つくれないんじゃ、現場じゃ役に立たんよ。マジで。 耳に痛いです_| ̄|○ 当方営業で採用されたのですが「技術の苦労も知っとけ」とのお達しで 課題もらったんです。 納期が来月の20日なんで、ソレまでに頑張りますわ。
>>494 JMF RegistryでCapture Devicesを見ると、Detest Capture Devicesというボタンがあります。
で、これを押すと、字の通りデバイスを見つけます。
しかし、私の使いたい装置は引っかかってくれません。
VideoFormat videoformat = new VideoFormat(VideoFormat.RGB);
System.out.println(CaptureDeviceManager.getDeviceList(videoformat));
をやってみたんですけど、これでも見つけてくれませんでした。
たぶん使ってる装置がしょぼいんで検出してくれないんだと思います。
なんか他に方法はありますか?
>>496 JMF RegistryでCapture Devicesを見ると、Detest Capture Devicesというボタンがあります。
Detectの間違い。
>>490 うちはそのコードでUSBカメラがサポートできるフォーマット全部
表示されるけどね。つーか、デジカメってとこに不安を覚えるが、機種名
とか接続形態くらい書いたら?単なるUSB接続のマスストレージデバイスっ
てオチはないよね? 494もjmfregstryに触れているけど、まずjmfregistry
のCapture Device detailsが正しく表示されているかのほうを先に確認
すること。
すまん、496読んでなかった。
Javaアプレットでアップローダを作りたいんですがなにをどうすればいいのか まったく分かりません。 なにかヒントください、おながいします。
アプレットはクライアント側でしか動かないから、 これだけじゃアップローダ作れないよ。サーバー側 で何を使えるか調べてから全体の構成考えたら?
今ServletでXalanを利用して[XML+XSL]->HTMLを出力しています。 TransformerFactory factory = TransformerFactory.newInstance() ; Transformer transformer = factory.newTransformer( xsl ) ; transformer.transform( xml, new StreamResult( printwriter ) ) ; で、実現できています。 でも、[ XML*2 + XSL ] ->HTMLのやり方がわかりません。 IE6.0ではxmlを実行すると二つのxmlからの結果が出力されるのですが、 上記ロジックだと実行していないxmlの内容が表示結果に反映されません。 XML・XSLのxml指定の仕方、Javaのロジック等なにかありましたらお願いします。
>>498 接続は1394。
機種名は?(プロパティ見るとモデルはPGR Dragonflyとなってる)です。
詳しくいうとデジカメでは、ないです。
デバイスマネージャでイメージングデバイスにあるものです。
コントロールパネル→プリンタとその他のハードウェア→スキャナとカメラのとこにもあります。
ここでのアイコンは、カメラになってます。
おそらくビデオフォーマットで検出されるのは、アイコンがビデオのものだけだと思います。
>>501 無理ですか(´・ω・`)
サーバ側はJavaしか動かないっぽいです(つд⊂)
>>502 僕ちんには経験も無く高度なことっぽいけど
>xmlを実行すると
君の程度の低さもこれで知れる
>>504 サーバ側でJavaってservletのことですか?
それならappletからファイルを受け取ってディスクに
保管するservletを書く。
>>505 では、「xmlを実行」の部分を「IEのMS XML3.0により表示」に
置き換えて読んでください。
windows環境でダブルクリックで関連付けされているIEが
デフォルトで起動されるので実行と表記しました。
>>503 うん。何かだめっぽいな。それはビデオデバイスじゃないだろう。
WMV Encoder とか Netmeeting とか Yahooメッセンジャーとか RealProducer とかで動くなら、
見込みあるんだけど。
>>504 >>506 applet でローカルファイル読み込み、というのはまともな者の選択ではない。
「アップローダ」が「お絵かきデータのアップロード」なんかを指すならともかく。
>>508 Windowsムービーメーカーで動かないので、
上に書いてあるものでも、きっと無理と思われます。
昨日、サーブレットのエラーメッセージが文字化けするということで質問させてもらったもの ですが、あれから、本を片手にいろいろ試したのですが、一向に直りませんでした。 それで、整理しなおそうと、URLEncodeやらnew String(error.getBytes("ISO-8859-1"),"Shift_JIS")やら書いてあったものを 全部消して、コンパイルしたら、なぜかできました。 結局、なにもしなければできると言う結論でした。みなさん、どうもありがとうございました。
511 :
デフォルトの名無しさん :03/10/16 21:31
512 :
デフォルトの名無しさん :03/10/16 21:49
オセロゲームは難しいのでそれより簡単なゲームって何がありますか? 一応、ネット対戦できるようなものにしたいのですが。
479-481さんへ 暇つぶしで直したものですが、これで動くはず・・・ import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.event.*; public class Clock111 extends Clock111Panel{ public static void main(String args[]){ JFrame frame = new Clock111Frame(); frame.show(); } } class Clock111Frame extends JFrame{ public Clock111Frame(){ setTitle("Clock"); setSize(300, 300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); Container contentPane = getContentPane(); contentPane.add(new Clock111Panel()); } }
class Clock111Panel extends Canvas implements Runnable{ Clock111Panel(){ try{ Thread th = new Thread(this); th.start(); }catch(Exception t){} } String nowtime; Date today; public void run(){ while(true){ try{ Thread.sleep(500); repaint(); }catch(Exception e){} } } public void paint(Graphics g){ repaint(); } public void update(Graphics g){ today=new Date(); nowtime=today.toString(); g.clearRect(0,0,300,300); g.drawString(nowtime,60,30); } }
改行が多いと出てくるので削るとこは削りましたが、前はもっと長いソースが 載せれたと思ったけど、システムが変わったのかな?
>>512 オセロゲームが組めるようになってからネット対戦に手を出しても全然遅くない
むしろ通信のことよりオセロのロジックを考える方が勉強になるかも
卑近な例だが
俺がオセロを組んだのは中学生のとき、ネット対戦は社会人になる直前だ
時代が時代だからだけど
>>512 そんな事ここで聞くな。馬鹿か?
自動車買った後で整備工場に行って
「あのー、どこに走ったらいいと思いますか?」
って聞いてるみたいだYo!
>>517 repaint()メソッド自体は、単に再描画してねというお願いを、
イベントディスパッチスレッドのキューに入れて置くだけだから、
別段、直接呼び出しても、問題がないのではないかな。
>>517 そこ見て思ったんだけど
SwingWorker使うのとRunnableのサブクラスをstartさせるのとは
どう違うの?
522 :
デフォルトの名無しさん :03/10/17 02:05
>>521 SwingWorkerってなに?
SwingUtilities#invokeLater()では、引数で渡したRunnableインスタンスの
run()メソッドは、「イベントディスパッチスレッド」によって、あとで実行さ
れる。
チョット詳しく書くと、「イベントキュー」というFIFOキューが一個作成されて
いて、そこに引数で渡したRunnableインスタンスが積まれるわけさ。
この「イベントキュー」には、画面のイベントとかが発生する度に「イベント」
が積まれるキューなのさ。
「イベントディスパッチスレッド(AWTのフレームワークにより内部で作成される
イベント処理専用のスレッド)」は、キューから一個取り出してRunnable#run()
コール、を延々とループ、という仕組みになってるわけさ。
自作ユーザThreadで実行した場合、run()メソッドそれはまさしく自作した
スレッドによって実行されるわけさ。
で、描画をイベントディスパッチスレッド以外のスレッドから行うと、描画
が正しく行われる保証は無い、というSwingの仕様があるのさ。描画処理は
スレッドセーフティではない、というわけなのさ。
>描画処理はスレッドセーフティではない、というわけなのさ。 自作したスレッドに描画をやらせてしまうと、自作したスレッド と「イベントディスパッチスレッド」で描画要求が競合するわけ ね。で、同期制御処理がされていないのさ。 なんでしないのかって?そりゃ、性能優先なんでしょう。 Swingの描画はタダでさえ遅いと文句が多い処理ですから〜。 ホントの理由はナンデスカ?
すごく初歩的な質問で申し訳ないのですが、パスが全然通りません。 >>1は熟読したのですが意味がサパーリです(大涙 C:\j2sdk1.4.1_01\bin\javacだとちゃんと認識されるのでjava自体は問題なくインストロールされてるみたいです。 誰か助けて下さい。。。
525 :
デフォルトの名無しさん :03/10/17 03:18
>>524 そのあなたの質問では、こちらも意味がサパーリです(大涙
とりあえず、もうすこし情報を整理して、詳しく書き込んでごらんよ。
どこで、つまづいているのかがわからないと、助けたくても助けられないよ。
Sunが倒産したりしたらJavaはどうなるんでしょうか CみたいにオープンソースのコンパイラとかVMとか あるんでしょうか。心配で眠れません。
質問なんですが バインドって何ですか? "オブジェクトへバインドされた変数" っていう文の意味がわからないのですが...
>>529 フリーのならKaffeやGCJがあるし、Javaの権利がどの会社にいくかによっては逆にSunの時よりもマシになる可能性はなきにしもあらず
>>531 「関連付け」とか「対応付け」とかそういう意味。
文脈によって微妙に意味合いが変わるから、具体的な言葉にするのは難しいかも。
どうしても解説がいるなら前後の文をまるごとコピペしる。
>>531 大体意味わかりました
ありがとうございました
>>529 基本的にオープンソースだから問題ない。
オープンソース関連にはGNUもJakartaもある。
Sunの倒産など気にする必要は無い。
今ではシェアトップのC/C++だが
C/C++を作ったベル研究所/AT&Tの株価が下がったからといって
C/C++に悪影響を及ぼしたといえるか?
>>530 プログラミング言語にはアプリケーションと同等の競争原理は
働かない。M$がC#を作ったからといってC/C++のシェアを
奪えるとは限らないようにだ。
C++のコードをJavaに書き直すことはできますか?
>>537 書き直す程度と C++ のコードによる。
とりあえずソースのせます。のせていいのかわからんけど。 もしかしたらVCかもしれません。 長いんで分割します。 //PGRFlyCaptureTest.cpp //============================================================================= // System Includes //============================================================================= #include <assert.h> #include <stdio.h> #include <sys/timeb.h> //============================================================================= // Project Includes //============================================================================= #include "pgrflycapture.h" int main( int /* argc */, char* /* argv[] */ ) { FlyCaptureErrorerror; FlyCaptureContextcontext; struct _timeb timeStart; struct _timeb timeFinish;
541の続き // image returned by flycaptureGrabImage2(). FlyCaptureImage image; // // Initialize the image structure to sane values // image.iCols = 0; image.iRows = 0; // create the flycapture context. error = flycaptureCreateContext( &context ); if( error != FLYCAPTURE_OK ) { printf( "flycaptureCreateContext(): %s\n", flycaptureErrorToString( error ) ); getchar(); } // enumerate the cameras on the bus FlyCaptureInfo arInfo[ 32 ]; int iSize; error = flycaptureBusEnumerateCameras( arInfo, &iSize ); if( error != FLYCAPTURE_OK ) { printf( "flycaptureBusEnumerateCameras(): %s\n", flycaptureErrorToString( error ) ); getchar(); }
542の続き // initialize the first camera on the bus. error = flycaptureInitialize( context, 0 ); if( error != FLYCAPTURE_OK ) { printf( "flycaptureInitialize(): %s\n", flycaptureErrorToString( error ) ); getchar(); } // start grabbing images in 8-bit greyscale 640x480 mode with a frame rate of 15 // fps. error = flycaptureStart( context, FLYCAPTURE_VIDEOMODE_640x480Y8, FLYCAPTURE_FRAMERATE_15 ); if( error != FLYCAPTURE_OK ) { printf( "flycaptureStart(): %s\n", flycaptureErrorToString( error ) ); getchar(); }
543の続き // time the grabbing of 30 images. _ftime( &timeStart ); for ( int i = 0; i < 30; i++ ) { if( flycaptureGrabImage2( context, &image ) != FLYCAPTURE_OK ) { printf( "Failed to grab image.\n" ); return false; } } _ftime( &timeFinish ); printf( "It took %dms to grab %d images.\n", ( timeFinish.time * 1000 + timeFinish.millitm ) - ( timeStart.time * 1000 + timeStart.millitm ), i );
544の続き // // Save last image to a .ppm. // // // Convert the image to BGR24 for flycaptureWritePPM(). // unsigned char* pimageBGR24 = new unsigned char[ image.iCols * image.iRows * 3 ]; if( ::flycaptureConvertToBGR24( &image, pimageBGR24 ) == FLYCAPTURE_OK ) { // // Write out the image. // ::flycaptureWritePPM( pimageBGR24, image.iRows, image.iCols, "image.ppm" ); } delete [] pimageBGR24;
544の続き // // destroy the context // error = flycaptureDestroyContext( context ); if( error != FLYCAPTURE_OK ) { printf( "flycaptureDestroyContext: %s\n", flycaptureErrorToString( error ) ); } printf( "Done! (hit enter)" ); getchar(); return 0; }
>>541-546 メモリやデバイスを確保/解放する部分に気をつけて
flycaptureXxx みたいな名前の関数をJNI経由にすれば移植できそうだけど…
できれば純正Javaでいきたいんです。
>>549 You shall not disclose such Confidential Information
とか書いてあるけど晒して大丈夫なモンなのか?
>>537 おいおい、デバイスメーカーがカメラに添付して、かつ
Webサイト上ではパスワードで縛って登録した顧客向けにしか
配布してないサンプルソースを晒すかなあ。あと、Javaで
規定していないIOをしようというのだから、547のいう通り
JNI使うしかないでしょ。
Image I/Oとかでなんとかならないかなって思ってたんだけど。 上のはデリっときます。
どうしようもないです。
FrameとJFrameクラス使うとしたら、 どっちがよいですか? 理由もつけて、答えてください。
あと、JFrameにJなしのButtonとかPanelは使えますか? 逆にFrameにJ付きのButtonとかPanelは使えますか?
>>555-556 JFrame と Frame だけとって見ればそもそもそんなに差は無い。
JFrame は Frame のサブクラスだし、JComponent は Container 、つまり元を正せば Component なので、
ある程度までなら、何でもかんでも好きに add できる。
が、そうやって混在させると、描画がうまくいかない、マウスイベントがうまくハンドルできない、
とかなりややこしい。
Swing は Table などの便利なクラスがあり、
これを使いこなせれば、コントロールの自作などを極力しないで済む=あとからの設計変更が若干楽なので、
結論: JFrame と Swing を使えばよろしい。
>>537 541-546 削除依頼出しとけよ。
あと、全部人任せにするのはよくないぞ。
559 :
デフォルトの名無しさん :03/10/17 23:40
JButtonクラスの境界線をなくしたいのですが、どうしたらいいですか? イメージアイコンの画像のみを表示させてボタンにしたいのですが。 どなたかお願いします。
今日SEにSQLのConnectionクラスを返すユーティリティーメソッドを作ってくれ と言われましたが、そんな関数できるんですか? 大体、Connectionクラスくらい自分で取得しろと思いますが、皆さんは作ったことありますか? なんか、一応作ったんですが、Stringやら、intしか返すメソッドしか作ったことないんで、うまく動作するのか非常に不安なのですが、 言語仕様的には問題ないのでしょうか? だれか、詳しい方よろしくおねがいします
>>560 Connection管理クラスでも作れってことかな。
まあ、要するにJDBC勉強しろってことだな。
>>560 >大体、Connectionクラスくらい自分で取得しろと思いますが、
いや、そう思うなら、Connectionなインスタンスを返すメソッドくらい作ってくれ。
普通にConnectionなインスタンスを取得して返すメソッドを作ればいい。
問題はどこからorどうやってgetConnection()するべきか。
あとはスレッド周りが気になるかも。
import java.sql.*; public class DBUtil { public static Connection getConnection() throws SICException{ Connection conn; try { Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql://localhost:3306/kouteikanri?useUnicode=true&characterEncoding=Shift_JIS"; String user = "root"; String password = ""; conn = DriverManager.getConnection(url,user,password); } catch(SQLException err) { throw new SICException("11:22","aaa","bbb","ccc","ddd"); } catch(Exception err) { throw new SICException("11:22","aaa","bbb","ccc","ddd"); } return conn; } public static void closeConnection(Connection conn) throws SICException { try { conn.close(); } catch(SQLException err) { throw new SICException("11:22","aaa","bbb","ccc","ddd"); } } }
↑こんな感じでいいんですかね?SEには、ただ単にConnectionクラスを返してくれればいい と言われています。
>>563 で?
こびぺすれば答えてくれるとでも思ってるの?
なんかコメントくらい書けよ。
すいません、自己解決しました。
>>563 これって、ただ単なるサンプルじゃないか?
JavaでMP3プレーヤーできますか?
>>567 ただ単にConnectionクラスを返せばいいだけらしいです。ただし、DBに接続した状態で。
そのほかの機能はいらないと言ってました。
スレッドとか関係あるんですかね?
>>569 たぶん、JDBCのドライバ次第。
一つのスレッドでgetConnection()〜close()までするなら問題ないだろう。
>>571 そうですか。どうも、ありがとうございます。
安心しました。SEは、なんか、いとも楽そうに言ってきたので、これで
いいような気がするんですが。。
スレッドとか、あまり良く知らないので、あんしんしました。どうもありがとうございました。
574 :
デフォルトの名無しさん :03/10/18 00:18
>>562 今時そんなコードをPGにかかせるなんて、ろくな設計者じゃないな
そのSE。
575 :
デフォルトの名無しさん :03/10/18 00:19
>>569 はっきりいって汎用性が無い。
なんだそのstaticメソッドは
だらしないぞ。
URIの変更もできないのか。
自分のマシンをDBサーバにしてオナニーでもしてるのか?
>>563 その調子じゃ、しゃーないやつだ
お前なんかに書かせるなら俺がやってやる
と思われるのがオチだな
>>574 私は現場に入ってまだ1ヶ月なのですが、これは僕のソースコードに対しての発言ですか?
あの、よければ、こんな設計をしてるSEは駄目かどうかを教えてください。多分、僕はこのコードでも
SEは良いと言うと思います。規模が小規模のプロジェクトなので。
Connectionクラスをユーティリティーで取得すると言うのは疑問で、僕も
このSEには、なにかと変な問題を突きつけられ、困る場合があるのです。やはり、厄介なSEなんでしょうか?
>>575 もちろんURLとか、ユーザー名はプロパティファイルから取得してきます。ただ、今はここに乗せるためにごく簡単なサンプルを作っただけです。
ここで、staticメソッドを使っちゃいけないんでしょうか?
くどいようですが、SEからはただ単にConnectionクラスを返してくれればいいと言われています。
578 :
デフォルトの名無しさん :03/10/18 00:28
JFrameクラスに対して、ウィンドウを閉じる際に JOptionPaneクラスのConfirmDialogを使って、YES_OPTIONの場合に System.exit(0)の処理を行なうようにしています。 終了はできるんですが、 "不正な処理を行なったので強制終了されます。"というダイアログと コンソール上に # # An EXCEPTION_ACCESS_VIOLATION exception has been detected in native code outsi de the VM. # Program counter=0xbfe1200b # というのが表示されます。これはどういう意味なんでしょうか? 分かる方お願いします。
嵐は放置ってかいてあるけど。。。一応。。 どうも、ここの人たちは自分の力を棚に上げているようにしか思えないけど、 本当に力があるんかな〜?疑問だ。。この世界、大して力がないので、えらそうなことを言う人が多いからな〜
>>578 「EXCEPTION_ACCESS_VIOLATIONという例外が、
VMの外部のネイティブコードの中で検出された。
プログラムカウンタは0xbfe1200b」
という意味。ちゃんとデバッガで追いかけない限り何が悪いかは不明。
j2sdkを新しいのに変えてみたら?
>>579 荒してるのはあなたのほうでしょう。
それとも釣りですか?
582 :
デフォルトの名無しさん :03/10/18 00:48
>>580 わかりましたー。ありがとうございます。
ちなみにMS-DOSでコンパイルしてるんでデバッガがないんです。
未だにj2sdk1.3を使っていたので、この際変えときます。
>>582 Eclipse + JUnitにすれば?
>>582 デバッガというのはJavaのデバッガではなく、
機械語が分かるデバッガのことね。まあ、普通はそこまで追求しないと思うが。
ついに「Hello world」が出せた(感涙
>>585 おめでとう。
これであなた立派な・・・
アホアンチ
インナークラスをprotectedで宣言した場合、どのようなアクセス制御になるのでしょうか? また、どのような場合にprotectedにするのでしょうか? どなたかご教授下さい。
protected で static なインナークラスは同パッケージとサブクラスから protected で非 static なインナークラスは同パッケージと外側のクラスのサブクラスからアクセスできるであろう。
Tomcatって、サーブレットのクラスをコンパイルして修正するたびに Tomcatの再起動が必要なんですか。。。? 俺、しらなんだ。。誰か、真相を語ってくらはい。
Context で reloadable を指定すると幸せになれるであろう。
592 :
デフォルトの名無しさん :03/10/18 04:17
>>588 同じアウタークラス内部のインナークラスからアクセスできる、じゃないかな?
やってみりゃ直ぐ分かるだろから試してくれい。いまうちにJDKないや。
593 :
デフォルトの名無しさん :03/10/18 04:22
>>577 Connectionは貴重なリソースです。また、作成には非常に時間が掛かるオブジ
ェクトです。
だれでも自由にアクセスできるような場所に、自由にConnectionが作成できる
メソッドを公開させてOKだすようなSEは、低能確定ですよ。
普通の人ならプーリングします。または、プーリングを自動でやってくれる
ようなライブラリに任せるとか。
「コネクションプーリング」でググってみなされ。ベンキョになるっすよ。
594 :
デフォルトの名無しさん :03/10/18 06:09
>>577 煽りでもなんでもないけど
プロになって何年目かわからないですが
Javaに最近変わったのですか?
こういうプロの人っているのですか?
素人見たいなんだが・・
>>577 Java以外の言語(COBOLやVBなど)でいくつか適当に案件をこなして
経験をつんだつもりになっているSEが結構いて、そういう連中が
何も知らずに頭の悪い設計をすることはよくあります。
ちなみにコネクションプーリングですが、Jakartaプロジェクトで
商用利用可能な実装(※)が公開されており、件のSEにそれを
提案して通れば、あなたが頼まれた仕事は終わります。
ツールの使い方を調べる必要がありますが、真っ当なコネクション
プーリングを実装するコストに比べたら小さいでしょう。
いつぞやのJavaPressやJakartaプロジェクト徹底攻略あたりで
取り上げられたこともあるので、それを読むと日本語の情報が
得られて楽かもしれません。
(※)Jakarta commons-dbcp
ttp://jakarta.apache.org/commons/dbcp/
596 :
デフルとの初心者さん :03/10/18 09:53
今日javaを勉強し始めました。 JAVAはじめの一歩っていう教本みてるんですが、 Cpadのとこから全然わかんなくなりました。 んで、なんかオレよくわかんないんでこれからも間違えると思うんです。 そこで、パソコンを初期設定にしてはじめからやるっていうことをやって作業をしたいんですが、何かいい案はないですか?いちいち初期設定に戻してたら莫大な時間がかかるので、 インストールしたやつをはじめからやり直すいい方法を教えてください。
597 :
デフォルトの名無しさん :03/10/18 10:10
public class JCsouu{ public static void main(String args[]) { int i, n; ・・・・・・・・・・・・・・・・・・・・・ 2行目のプログラムのところが左端から4マス空いてるのですが、 こういう場合スペースキーを5回打つしかないんですか? そうすると3行目は10回打つんですか? Tabキーだと8マスいっちゃいますよね? よろしくお願いします。
598 :
デフォルトの名無しさん :03/10/18 10:23
public class JCsouu{ public static void main(String args[]) { int i, n; for (n=2; n<=100; n++) { for (i=2; i<=n/2; i++) { if (n%i == 0) break; } if (i > n/2) System.out.print(n + " "); } } 素数を求めるプログラムなのですが、本には「素数の判定はnを2〜n/2までの 整数で割り切れるかどうかを見ればよい。」と書いてあったのですが、 for (n=2; n<=100; n++) { for (i=2; i<=n/2; i++) { のところを見るとn=2のときi=2, n=3のときi=3, n=4のときi=4・・・・というふうに なっていきませんか?ここはどういうふうにプログラムを見ればいいのですか?
599 :
デフォルトの名無しさん :03/10/18 10:38
メソッドの定義をあとで記述するというのがわかりません。 はじめに定義するのが普通じゃないんですか? 順番おかしくないですか? public class JcMet1 { // JcMet1.java [java] public static void main(String args[]) { int nn, d1 = 3, d2 = 4; nn = beki(2, 4); // 2の4乗を計算して System.out.println(nn); // 結果を出力 nn = beki(d1, d2); // d1のd2乗を計算して System.out.println(nn); // 結果を出力 } public static int beki(int a, int b) { // bekiメソッドの定義 int i, wk = 1; // メソッド内で一時的に使用する変数 for (i=1; i<=b; i++) wk = wk * a; // aのb乗を計算 return wk; // wkの値を戻り値にする } }
600 :
デフォルトの名無しさん :03/10/18 10:51
むかしJava1.1でアプレットでゲーム作ってたんですが、 今3Dが使えると聞いてまたなんかやろうと思ったんですけど、 お聞きしたいのですが、 前はAppletViewerで実行すると早いけど、 ブラウザに載せると遅いというのが気になってました。 ブラウザ上でのアプレットの実行速度って改善されたor改善する方法があるのでしょうか?
>>596 Cpad使ったことないけど、
新しく、プロジェクト作ればいいんでないの?
何でパソコン自体を初期設定にしなきゃならないのか
小1時間問い詰めたい。
>>598 単なる2重ループでしょ。
細かい動きしたいなら、デバックしてステップごとの
動作を確認すればよし。
訂正 細かい動きを知りたいなら、・・・
>>559 EmptyBorder を使いましょう。 Insets を調整したり。
余裕があれば paintBorder メソッドで花柄をつけてみましょう。
>>598 どう勘違いしたらそう思うのかわかりませんが、なっていきません。
for の前後に System.out.println("n : " + n + " i : " + i"); やらなにやら、
どうなってるか分かるコードを足してみましょう。
その際は流れていってしまうので n の最大は 5 くらいにでもしてください。
>>599 何が言いたいかよくわからん。
1.メインメソッドの後に面罵メソッドを書くのを言いたいのか、
2.設計上、メソッドの定義をしておいて、実装を後にすることを言いたいのか。
>>599 おかしくありません。
文章中に脚注があったとして、それがページの下ではなく上になければいけないでしょうか?
「*1」なんて出てきたら、ページ中を捜せばそれですむでしょう。
java のコンパイラは頭がいいので、宣言がどこにあろうとも、それを探し出します。
beki に初めてぶち当たったときは、保留して、あとから現れるのを期待して順次コンパイルしていきます。
コンパイルが完了すれば、メソッドがソース中のどこにあったかに意味はなくなります。
>>600 例えば Win での話だが、
最近の IE や NN は VM を Sun製のものに置き換えることができる。
セキュリティ機構やらなにやらで、平均的に遅くなる可能性も無いとはいえんが、
違いは無視していいぐらいのレベルになってると思われる。
ちょっとした質問なんですがJavaでオブジェクトをつくるとき Omanko omeko = new Omanko(); みたいに書くじゃないですか。 ここで、なんでnew演算子を使わないといけないんですかね? クラス名と同じ名前のメソッドはコンストラクタと決まって いるのだから、newなんて使わなくてもオブジェクトをつくり たいのは分かるはずですよね。 Omanko omeko = Omanko(); これでオブジェクトがつくれてもいいんじゃないかと思うん ですが。どう思いますか?
610 :
デフルとの初心者さん :03/10/18 12:07
>>602 すでにつくってしまったまちがったファイルはどーしましょう?
>>609 newを使わないとインスタンスは作れないぜ。フ
staticじゃあるまいし。
>>610 オイオイ、そんなことあなたが決めないさいよ〜
煮るなり焼くなりお好きにどうぞ。
じゃぁそうやってコンパイルしてごらん。 理由が分かる形で怒られるから。 insert Omanko; class Tinko { public void Omanko() { Omanko(); } } ↑これ、どうなる? この場合はそもそもメソッド名を大文字で始めるのにも責任があるが、 こう書くことはとくに禁止されない。
>>611 言語仕様としてなぜそうなっているか、という質問です。
>>613 正常にコンパイルできました。
615 :
デフルとの初心者さん :03/10/18 12:22
あ。んで、あの、コマンドプロントの意味がなんかわかんないんでオシエテクダサイ。困っています。 C:\jcpad231\javaの\javaがつくファイルなんてどこにもないのに意味わかんないんですけど。
>>614 あ、Omanko()をしたらエラーになりました。
617 :
デフルとの初心者さん :03/10/18 12:24
一番わかんないのはコマンドプロンとの最初にでてくる文字なんですけど何ですかあの文字
ソースファイルのこと? それとも、java.exe or javac.exeのことかい? もうちょっと詳しく書いておくれ
>>609 オブジェクトを作るには、コンストラクタを呼ぶのも必要だが、メモリの取得も必要。
だから、単なるメソッド呼び出しとは別の形になっているんだと思う。
perlとかだとオブジェクトの生成もメソッド呼び出しと同じ。
まあ、これは後付けだからだけど。
詳しくはC++の言語仕様を決めた人にでも聞いてくれ。
>>617 コマンドプロンプトは普通、カレントディレクトリをを示している。
621 :
デフォルトの名無しさん :03/10/18 12:28
>>601 タブだと8マスぐらいいっちゃいますが?
622 :
デフォルトの名無しさん :03/10/18 12:28
>>603 2重ループというのがわかりません。
デバックってどうするんですか?
初めて聞きましたけど・・・。
>>619 つまりjavaはC++の文法を踏襲しているということですか?
>>621 設定による。普通は4マスまたは8マス分
>>614 > 言語仕様としてなぜそうなっているか、という質問です。
簡単に思いつくのが、メソッド呼び出しと区別がつかないから。
ちゃんとした理由が知りたきゃ Sun に問い合わせて James Gosling に直接聞け。
> insert Omanko;
でエラー出さないなら、それはJava の言語仕様にしたがったコンパイラじゃない。
Java でない話題は別のスレ行ってやれ。コマンドプロン(プ)トの話もJavaとは何の関係も無い。
>>623 そーいうことだね。
JavaはC++から派生してできた言語だからね。
>>622 JDK標準のデバッカは使いにくいから
JUnitをお勧めする。
Eclipseを使うのが一番楽かな。
627 :
デフォルトの名無しさん :03/10/18 12:32
>>605 >どう勘違いしたらそう思うのかわかりませんが、なっていきません。
>for の前後に System.out.println("n : " + n + " i : " + i"); やらなにやら、
>どうなってるか分かるコードを足してみましょう。
どういうことですか?すいません、System.out.println("n : " + n + " i : " + i"); って
なんですか?ちょっとわからないのですが・・・。
>>625 もちろんinsertはimportに変換してますよ。
バカじゃないんだから。
あと、コマンドプロンプトの話は私じゃないです。
629 :
デフォルトの名無しさん :03/10/18 12:34
>>606 >面罵メソッド
これってなんて読むんですか?
>何が言いたいかよくわからん。
はじめに定義しとかないとコンピューターが困らないですか?
ボクは困るんですけど・・・。
どういう仕組みになってるんですか?
630 :
デフルとの初心者さん :03/10/18 12:34
>620なんか同じ構文みたいなのが二行に渡ってでてくるんですけどなんでですか?
>>627 System.out.printlnくらいドキュメント読みなさい。
>>630 PC初心者版でお聞きください。
プログラムと関係ない話は板違いです。
633 :
デフォルトの名無しさん :03/10/18 12:37
>>607 なるほど、とてもわかりやすい説明ありがとうございます!!
頭いいんですねjavaのコンパイラって!!
それで人間が読むときはどう読めばいいんですか?
bekiに初めてぶちあたったらbekiメソッドの定義を探せばいいんですか?
>>614 つじつまさえ合えばいいってもんじゃないから。
意図を明確にさせるよう仕向けることで
結果として扱いやすくする配慮を
仕様を考える立場がすることはよくある。
>>629 メンバメソッド。
困るなら自分で置きかえれ。
文法的に間違ってないんだから文句言うなよ。
636 :
デフルとの初心者さん :03/10/18 12:37
は〜い・・・
637 :
デフォルトの名無しさん :03/10/18 12:38
>>624 どうやったら設定を変更できるんですか?
4マスにしたいんですが!!!
638 :
デフォルトの名無しさん :03/10/18 12:39
>>626 デバッカってなんですか?
まだダウンロードしてないのですが・・・。
>>628 > もちろんinsertはimportに変換してますよ。
いや、実は import Omanko; でも言語仕様にしたがったコンパイラはエラーだすらしいが。
(JDK 1.4 以降でコンパイルしてみな)
>>634 世の中のjavaソースの中にどれだけnew演算子が使われてるか。
ある意味、newだらけなわけですよ。
しかしですよ、もしnew演算子が不要になったとしたら・・・
これはすごいことじゃないですか?
>>608 レスありがとうございます。
MSのVMが遅かったんですね。
644 :
デフォルトの名無しさん :03/10/18 12:41
>>631 意味はわかるんですがfor の前後に System.out.println("n : " + n + " i : " + i"); やらなにやら、
どうなってるか分かるコードを足してみる理由がわからないんです。
>>639 失礼しました。importに変換してだめだったんで削除してたです。
646 :
デフォルトの名無しさん :03/10/18 12:43
>>635 メンバメソッドってはじめて聞きました。
初心者用の本の索引には載ってなかったので上級者用ですね。
あとで勉強することにします。
>困るなら自分で置きかえれ。
>文法的に間違ってないんだから文句言うなよ。
なるほど、自分でわかりやすいように定義の部分を初めにもってきたらいいんですね!!
そうしてみます!!
647 :
デフォルトの名無しさん :03/10/18 12:43
tomcat 4.1.27を使用してRealmを設定して認証を行おうとしてるんですが tomcat起動時にエラーがでるのですが、原因がいまいちわかりません。 org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414) のようにエラーがでます。原因はどこにあるのでしょうか!?
>>644 つまり、中で変数がどうなってるかを出力して確認するためさ。
デバッカを使えば、わざわざ出力しなくてもプログラムを中断して
状況が把握できるってことよ。
>>642 > しかしですよ、もしnew演算子が不要になったとしたら・・・
そのかわり、クラス名と同名のメソッドを認めないとか、
更なる言語仕様が必要になり、コンパイル時間がより多くなる、と。
あ、ちなみに Java では new は演算子じゃない。
ちなみにservler.xmlは <Realm className="org.apache.catalina.realm.MemoryRealm" pathname="conf/bssys-users.xml" /> としています。
651 :
デフォルトの名無しさん :03/10/18 12:46
>>641 検索しても出てきませんでした。
なんかの略でしょうか?
652 :
デフォルトの名無しさん :03/10/18 12:47
>自分でわかりやすいように定義の部分を初めにもってきたらいいんですね!! こんなことってできるんですか?プログラムの順番を変えるなんて。
654 :
デフォルトの名無しさん :03/10/18 12:48
>>648 なるほどそうですか!!
ありがとうございます!!
>>652 あくまで、書き方の問題。
処理の順番のことではないよ。
Try & Errorでいきまっしょい
657 :
デフォルトの名無しさん :03/10/18 12:49
658 :
デフォルトの名無しさん :03/10/18 12:51
>>655 ちょっとおっしゃってる意味がよくわからないんですが処理の順番って上から
順にしていくんですよね?なら順番も問題になるんじゃ・・・。
>>657 ほか試してみたかい?
アスキーはだめぽ。
>>658 もちろん各メソッドのロジックは基本的に上から順に処理される。
しかし、クラス内で、メソッドの定義をどの順番に書いてもOKってこと。
662 :
デフォルトの名無しさん :03/10/18 12:58
但し順番に書いたほうが 1/1000秒単位で速くなる
>>659 デバッカではなくデバッガなら出てくる。
664 :
デフォルトの名無しさん :03/10/18 13:00
>>660 お返事ありがとうございます。そうだったんですね。
いやぁ本に書いてないことたくさんありますね。
こんなこと全く知りませんでしたよ。ありがとうございます。
>>661 処理じゃないってどういうことですか?
よくわからないんですが・・・。
>>663 それだ。
口語ではデバッカって言うよ、俺は。
ちなみにデバッカでもほかならヒットするけどね。
666 :
デフォルトの名無しさん :03/10/18 13:04
>>664 つまりメソッドを定義するということと、
定義されたメソッドを実行するということは、
違うってこと。
668 :
デフォルトの名無しさん :03/10/18 13:05
669 :
デフォルトの名無しさん :03/10/18 13:09
>>667 なるほどそういうことでしたか。
どうもフォローありがとうございました。
670 :
デフォルトの名無しさん :03/10/18 13:10
>>649 クラス名と同名のメソッドって認められてるんですか?
(あなたの発言を読んで、もう一回Javaを勉強しなおさなければいけない、
と、青くなってしまった。)
勉強してその程度か、
>>673 > クラス名と同名のメソッドって認められてるんですか?
言語仕様としては認められている。
慣習としては、コンストラクタと区別しにくいので使わない事が推奨されている。
676 :
デフォルトの名無しさん :03/10/18 14:01
ここのみなさんは、すごい知識をもってますね。 実際の現場ではこれが普通なんですか?みなさん、こんなに知識を持っているのですか? 私は、これから職場に入ろうとする人間なんですが、みなさんくらいになるまで 何年かかるか分かりません。。。 で、ちょっと不安になってしまいました。 どうなんでしょうね?
ちなみに、詳しい回答をしていらっしゃる方の年齢ってどれくらいなんですかね?
ちょっと待て。これぐらい入門書レベルじゃないか?
>>677 どの発言を詳しい回答と言っているのか分からないので答えられません。
>>676 上司とか同僚とかカウンセラーとかに相談すれば?
でも人間的には最低ですね
レス後の議論では質問者本人は一切発言していないというのは禁句ですか
Javaで面白いゲームはつくれますか?
>>684 作る人間次第。
質問が具体性を欠いているので具体的な回答は不可能。
真面目な話、面白いかどうかは絵や音よりアイディアの方が重要 テトリス最強
リンク切れました。 GraphicsのdrawRectメソッドです。
>>642 >
>>634 > 世の中のjavaソースの中にどれだけnew演算子が使われてるか。
> ある意味、newだらけなわけですよ。
> しかしですよ、もしnew演算子が不要になったとしたら・・・
> これはすごいことじゃないですか?
new演が不要になるようにラッピングしてクラス設計すればいいじゃないか。
おすすめはしないが.
>Rectangleの幅(width)や高さ(height)って、左上のx,yも含めてですか? 当たり前の話だが、そんなものはプログラマの裁量次第。 ■■ ←これを、「横幅2」と見るか、「基点から右に1歩」と見るかという解釈の違いだ。 drawRect と fillRect は、振る舞いが多少違う。確認してみよ(記憶違いだったらごめん) 画面上、つまり VRAM に対する描画は、たまたま「ピクセル」が単位になっているから こういう不都合・誤解が生じうるのであって、 印刷体(線幅をほぼ0とみなせる場合)であればまた違った問題を生むことになりうる。
>>686 『テトリス』と言う言葉の、「テ」は「手」であり、「トリス」はおそらく「クリトリス」。
つまり、『テトリス』は女性の自慰行為を表しています。
また、テトリスの生みの親、アレクセイ・パジトノフ氏の名前は、おそらく偽名で、
「アレクセイ」=「アレが臭い」という一種の冗談でつけた名前だと考えられます。
「■■■
さらに、ゲーム中使用されるブロックも、■ 」は男性器を横から見た図であり、
「■
「 □□ ■■
□□ 」は、四つんばいの女性、 ■ 」は、性器を露出させている男性。
と、それぞれ性的な意味合いを持っています。
「■
■■□□
それらのブロックが、■□□ 」 このように結合する様子は、性行為そのもので
あると言えるでしょう。
「ブロックが隙間に挿入され、一列に並ぶと消える」、というルールも、オーガズムを
表現したものと考えることが出来ます。
ゲームに使用されるブロックは常に、「マワされ(= 輪姦)ながら、堕ちて」いき、無数
のブロックが積み重なり、オーガズムをむかえ、消えていく。まさに「乱交」と呼ぶにふ
さわしい状態です。
ただ快楽のために生きる様は、本来人間のあるべき姿とは思えません。しかし、この
ように、人間の三大欲求のひとつである「性欲」を、擬似的に満たしてくれるゲームで
あった事が、『テトリス』のヒットに繋がったことは疑いようのない事実と言えます。
テトリスはかなりの女性ユーザーを取り込んだはずだかなぁ
ゲームの面白さは言語でどうかっていう問題じゃなかろうて、ってことで。 ネットワーク対応を意識するならJavaってのもありだとは思うが。
女性だってそりゃ好きだろう
なんかプロ市民の狂気を垣間見たような気がするよ。
697 :
デフォルトの名無しさん :03/10/18 16:46
WindowsでJavaを勉強しています。 既存の、C言語で作成したDLLを使用したいのですが、何か方法はあるのでしょうか? Webで検索するとJNIという仕組みが紹介されていました。 しかし、DLLを作成するときにjavahコマンドで作成したヘッダファイルが必要な方法しかみつからず、 既存のDLLを使用することはできないのかな?と思っているのですが…
698 :
デフォルトの名無しさん :03/10/18 17:10
ラッパーを作るとか
>>698 を翻訳。
その DLL を呼び出す DLL を作るとか。
>>697 そんな使い方、Javaやっている意味が無い。
小さい数しか使わない場合は intよりbyteを使った方が良いのですか?
>>701 intでいいよ。
どうせパディングされるから。
>>701 まぁ確かにメモリの節約になりますね。
そうしてるプログラムも結構見たことありますし。
可読性の問題もあるので積極的に推奨はしませんが。
704 :
デフォルトの名無しさん :03/10/18 17:56
>>701 気にする必要はない。小さい数しか「使ってはならない」時以外はintでいいと思う。
どうせbyteもintも1ワード使うだろ。
JavaVMの仕様を読んだことないので適当な事言ってる可能性大だが。
>>704 byte 1バイト
char 2バイト
>>701 その変数が
ローカル変数だと仮定して
確実にbyte型範囲内に収まることが保障されているような
アルゴリズムならbyteでもO.K.
保障されていないならばif文でbyte範囲外をとび出しそうなときは
例外などをthrow汁
>>701 小さいからbyteを使うのには賛成したくない。
「ネットワークからバイト列を読んだときの最初の1バイト」を
格納するようなときに、byte 型の変数を使うのは普通だとおもう。
でも、1〜13 (例えばトランプのカードの数字部分。A〜K)を表すのに、
「int の大きさは必要ない。」という理由で byte を使うのはやめて欲しい。
以上、個人的な意見でした。
javaのソフトはwinnyで落とそう。
711 :
デフォルトの名無しさん :03/10/18 20:20
Javaプログラマーの給料おいくらでつか?
>>711 マ板いけ、マ板。まあ、日経なんちゃら読んでもいいけど。
713 :
デフォルトの名無しさん :03/10/18 21:06
インスタンス変数とクラス変数のちがいってなんでしょうか? Staticつけたらどうメリットがあるのでしょうか?
クラスは複数のインスタンスをもてる インスタンス変数は各インスタンスの状態を表すもので クラス変数は全てのインスタンスで共有するデータをもつ
>>714 良い回答だとおもた。本の受け売りですか
716 :
デフォルトの名無しさん :03/10/18 22:50
RedHat9.0へのjavaのインストールについて
>>1 のリンクを見ても解決できないので、どなたかちょこっとみてください。
javaをインストールして、/binまでのパスを/etc/profileに記述しました。
しかし、javacと打ってみると、
[root@localhost root]# javac
Error: failed /usr/local/j2sdk1.4.0/jre/lib/i386/client/libjvm.so,
because libstdc++-libc6.1-1.so.2:
cannot open shared object file: No such file or directory
というエラーが出てしまいます。関係あるかわからないですが、
RedHat9.0は最低構成でインストールしました。
このエラーは何なのかと解決方法をどなたか教えてください。
717 :
デフォルトの名無しさん :03/10/18 23:00
swingのJFrameのサイズを変更できないようにするにはどうすれば良いですか?
718 :
デフォルトの名無しさん :03/10/18 23:10
>>717 JFrame fr=new JFrame("hoge");
fr.setResizable(false);
>>713-715 static 変数はクラスに所属する変数である。
インスタンスからも「たまたま」アクセスできるから
すべてのインスタンスで共有されているように見えるにすぎない。
>>718 さんくす。Frameのメソッドに有ったとは。
Javaわかんないんですがどうすればいいのでしょうか
>>721 どうもありがとうございます。
ということは、Redhat9.0対応のjavaを入れればいいんでしょうか。
アプリケーションのアプレット化に苦戦しているのですが、なんとかなりませんか(ぉ)。 アプリケーションとアプレットではだいぶ勝手が違うようで…… よくわからんのです。 これ↓です import java.io.*; public class Kazuategame3 { public static void main(String[] args)throws IOException { int count = 1; int answer = (int)(Math.random() * 10); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("□□□□□□□□□□□□数当てゲーム□□□□□□□□□□□□\n"); System.out.println("システムが0〜9の値の中から1つだけ選んだ整数を当ててみましょう。\nあなたの予想した数を入力してください"); while (true) { String a = bf.readLine(); int x; try { x = Integer.parseInt(a); } catch(NumberFormatException e) { System.out.println("整数を入力してください\n"); continue; }
if (x == answer) { if(count == 1) { System.out.println("おめでとうございます。\n見事に1回目で正解しました\n"); System.out.println("もう一度遊びますか?\n続ける場合は[1]を、やめる場合はそれ以外を入力してください"); } else { System.out.println("正解です。\n" + count + "回目で正解しました\n"); System.out.println("もう一度遊びますか?\n続ける場合は[1]を、やめる場合はそれ以外を入力してください"); } if (bf.readLine().equals("1")) { System.out.println("もう一度ゲームを始めます。\nあなたの予想した数を入力してください"); answer = (int)(Math.random() * 10); count = 1; continue; } else { System.out.println("ゲームを終了します"); System.exit(0); } }
else { System.out.println("不正解です。"); count++; if (x < answer ) { System.out.println("それよりも大きな値です\n"); } else { System.out.println("それよりも小さな値です\n"); } } } } }
これをそっくりそのままアプレット化してください(ぉ)m(__)m
>>728 ここは「質問」や「相談」するところであって「丸投げ」するとこじゃない
>>429 変数を数値ではなくビットパターンで扱う必要が有るときに使う。
ペイント型グラフィックツールや。
圧縮ルーチンとかではわりと必須。
他言語環境と通信したりファイルをやり取りするようなときは
フォーマットがビットパターンですでに定義されているような
データを扱わなければならない場合も多い。
Listインターフェースっていつ使うんでしょうか? 周りのやつの書いてるコードを見るとみんなArrayListなんですが。
>>733 method(ArrayList l) より method(List l) のが汎用性が高い。
ライブラリの汎用性を高めたい時とかに使用する。
735 :
デフォルトの名無しさん :03/10/19 06:15
>>707 vm内の話。
jbyte = char = 8bit
洩れのラップトップではRedHat9とj2sdk1.4.1_05で問題なく動いてるけど? はて? OSインストール条件変えてみたら、苦労せんでですむんとちがう?
おいおまえら、Javaある程度できるようになって余裕こいてる暇あったら .NETも勉強しておけよ
>>736 707 ではないが jni.h でも見とけ。
(707 の意訳) java の byte = c の jbyte = c の char = 8bit
cのcharはCHAR_BIT bit
>>733 List l = new ArrayList();
メソッド定義とかで使う void set(List list); こうしておけばArrayListでもLinkedListでもAbstractListでも行ける
Vector
Listでないと困る場面
List list = Collections.unmodifialbeList(originalList);
>>744 氏ね
JDK1.4のログ出力を制御するためのlogging.propertiesについてですが、 ファイル名を月単位で出力するように設定することってできるのでしょうか? 例) 200310.log 200311.log 200312.log 現在の設定はこうなっています。 java.util.logging.FileHandler.pattern = %h/java%u.log
>>745 Vector も Collection フレームワークでは List インターフェースを実装しているはずだが
まあ。Javaには符号無しの1byte型はない訳だが。
アプレットに関してなのですが、Tabキーを押すとオブジェクトを移動できるようにできませんか?
javaAppletでEval(?)のような式の再評価関数はないのでしょうか?
まだJavaを始めたばかりなんで、とりあえず練習として 簡単なブラウザでもつくってみようとおもっているのですが ブラウザ用のコンポーネントとかってあるのですか? ぐぐってもブラウザのJavaの設定とかばっかりでてきて よくわかりません。
>>751 あるが、教えられない。
まじめに入門書から始めなさい
753 :
デフォルトの名無しさん :03/10/19 12:57
>>752 独習Javaを読んでるんですが、どれを使えばいいのか良くわからないんです。
名前だけでいいので教えていただけませんか
独習JavaじゃなくてAPIの方がいいと思うけど? たとえばJEditKitだったっけ? あれとかHTML表示できるのなかったっけ? あとは HotJava とかいうJavaで出来たブラウザがSunから落とせたような気がする ソース付いてんのかわかんないけど・・・参考にすればいいんでないの?
>>750 ない。
Javaアプリケーションならjavacしてクラスファイルをロードとか、
BCELが使うとか。
Javaで作る表計算ソフトのサンプルってないですか?
>>750 標準じゃないけどbeanshell使えば?
>>751 >とりあえず練習として簡単なブラウザでも
752 が教えられないといったのは
いきなりブラウザなんかからはじめるのは無理だ
という親切心からだろう。
俺も
>>751 を読んで思わず吹き出しちまったぜ。
>>754 ありがとうございます。探してみます。
>>758 ほんとに簡単なやつです。HTMLを表示する方法があったら
HTMLファイルを開いて表示するぐらいのやつを作ろうと思って
るのですが。
>>757 ,759
ありがとうございました.試してみます.
763 :
デフォルトの名無しさん :03/10/19 13:55
JSPで WEB-INF/lib に .jar を入れて <%@ page import〜ってしても「パッケージ〜は存在しません。」っていわれちゃう。 WEB-INF/lib の中の .jar には 勝手に CLASSPATH を通してコンパイルしてくれるんだと思ったんだけど違うの? あと気にする必要があることってなんでしょうか。 ちなみに <%@ page importしない .jsp はちゃんとコンパイル&実行できる。
>>761 import javax.swing.*;
import javax.swing.text.html.*;
import java.io.*;
import java.net.*;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
JScrollPane sp;
JEditorPane ep;
f.getContentPane().add(sp = new JScrollPane());
sp.setViewportView(ep = new JEditorPane());
try {
ep.setEditorKit(new HTMLEditorKit());
ep.setPage(new URL(args[0]));
ep.setEditable(false);
} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
f.setSize(640, 480);
f.setVisible(true);
}
}
ほんとに簡単な状態でこれなわけだが(今組んだ)。
これ見て君が「ほんほんなるほどね」と思えるならいいが、
それくらいの知識があればこんなとこにいちいち聞きに来る理由が分からんし、
そうでなければ君のプログラミングに対する認識はあまりにも甘い。
すまん、インデントミスった。
766 :
デフォルトの七誌さん :03/10/19 15:07
すみません、TOMCAT4.1.24起動時にエラーがでます。web.xmlの記述に問題があるらしいです。 データソースの記述を増やしたんですが、それからエラーがでます。<servlet>と<servlet-mapping>を削ると出なくなります エラーは以下のとおりです。 2003/10/19 14:58:23 org.apache.commons.digester.Digester error 致命的: Parse Error at line 21 column 11: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filt er*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-map ping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,sec urity-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref *)". org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter- mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welco me-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-const raint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)". at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
ちなみに、web.xmlは以下のとおりです
<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "
http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app>
<servlet>
<servlet-name>testservlet</servlet-name>
<servlet-class>testservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testservlet</servlet-name>
<url-pattern>/testservlet</url-pattern>
</servlet-mapping>
<!-- JDBC DataSource -->
<description>MySQL Test App</description>
<resource-ref>
<description>MySQL DB Connection (using DBCP)</description>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
</servlet>がない
>>768 どういうことですか?</servlet>なら、5行目に書いてあるんですが。。。
それとも、ここじゃいけないんでしょうか?
<description>MySQL Test App</description> を消せ
>>749 KeyEventの定数VK_TAB 使え
772 :
デフォルトの名無しさん :03/10/19 18:42
ブラウザからenctype="multipart/form-data"でファイルをアップロード した場合、サーバ側でInputStreamでread()しても最後が-1になりません。 (ストリームの終端が検出できません)どうしてでしょうか?仕様でしょうか?
>>772 まぁ仕様ちゃ仕様だろう。サーブレットコンテナは Multipart なデータを
boundary で分割して最終 Part を検知しなければならないという責任は
無い。
>>774 アフォ?
これは RFC じゃなくてサーブレットコンテナの仕様と実装の問題。
RFCと言ってみたかったに一票
777 :
デフォルトの名無しさん :03/10/19 20:06
javaで、ファイルなどから書かれたクラスの文字(java.lang.String等) からインスタンスを生成する場合普通どおしたらいいんでしょう? 普通インスタンスを生成する場合 String str = new String() ←new String()をpropertyファイル等で読み込んだ 文字でやりたい。 具体的にはfactoryクラスに読ませてコンパイルなしでインスタンスを生成したい。 FooVar fv = Factory.getInstance("foovar");
778 :
デフォルトの名無しさん :03/10/19 20:09
779 :
デフォルトの名無しさん :03/10/19 20:19
2重ループがわかりません。 解説お願いします。 public class JcSosuu { // JcSosuu.java [java] public static void main(String args[]) { int i, n; for (n=2; n<=100; n++) { // 2〜100までループ for (i=2; i<=n/2; i++) { // 2〜n/2までループ if (n%i == 0) break; // 割り切れたら素数でない } if (i > n/2) // 割りきれなかったら System.out.print(n + " "); // 素数である } System.out.println(); // 最後に改行する } }
>>779 過去ログにあるじゃねぇか・・・
デバッグしろって書いてあるし。
それに丸投げはやめろって
781 :
デフォルトの名無しさん :03/10/19 20:31
>>779 また君か。
例えばオセロの盤面の集計(※0から始めたいところだが分かりやすく1〜8にしてある)
int[][] p = ... //駒のデータが入った配列
for (int y=1; y<=8; y++) {
for (int x=1; x<=8; x++) {
if (p[x][y] == 黒) { 黒カウント++; }
if (p[x][y] == 白) { 白カウント++; }
}
}
これはわかるよな?真四角に攻めるから、x は y に関わらず 1〜8 の間を繰り返すが、
盤面のうちもし凾フ部分だけ集計したかったら、
for (int y=1; y<=8; y++) {
for (int x=1+(8-y); x<=8; x++) {
if (p[x][y] == 黒) { 黒カウント++; }
if (p[x][y] == 白) { 白カウント++; }
}
}
みたいなことになる。x の終了は必ず 8 だが、開始は y によって代わる。
これで分かんないようじゃ小中学校もっかい行った方がいいよ。
自分でどこまで調べたとか書かずに 質問するのだけはカンベン。
783 :
デフォルトの名無しさん :03/10/19 20:38
>>780 デバッカやらJavaソフトやらをダウンロードしてないのでできないんですそういうことが。
だからみなさまに教えていただきたいと思って書き込んだのですが。
今は座学中ですので、すみません。
ざいがくちゅうって 在学中じゃなかったヶ? 大体デバッガなんてJDKについてるし EclipseでもDLすれば無料だよん
785 :
デフォルトの名無しさん :03/10/19 20:41
>>782 ループについては調べました。要は条件に照らし合わせて繰り返していくってことですよね!
ループはいいのですがそれが重なったときにどういう「動き」をするのかわからなくて・・・。
今詰まってて先に進めない状態なんです。
>>785 だからその動きを自分で確かめるために
デバッガがあるんだろーが・・・
>>783 あほですか。紙の上だけで勉強できるようなら誰も苦労しません。
口使わずに英会話やろうとしてるようなもんです。
在学中なら学校の設備つかって、演習なりダウンロードなりすればいいでしょう。
本に載ってること以外も交えて試行錯誤しなきゃ絶対無理。
788 :
デフォルトの名無しさん :03/10/19 20:44
>>781 こんにちはおひさしぶりです( ^▽^)
その節はどうも。
すみません配列については初歩しかやってないのでよくわからないです・・・。
話自体も難しくてついていけません・・・。ごめんなさい。
あのぉ、
>>779 のプログラムで解説してもらえませんか?
789 :
デフォルトの名無しさん :03/10/19 20:47
>>784 「座学=本だけで勉強してる段階」という意味で使いました。
まぎらわしくてごめんなさい。
JDKもEclipseもDLしてないんです。
今はとりあえず基礎を完成させることを目標にしててそれから
実戦に行こうと考えてます。一歩づつ一歩づつ。
多分DLしてもわからないことだらけになっちゃうと思うから。
だめだこりゃ。
791 :
デフォルトの名無しさん :03/10/19 20:48
abcと進むループの中に 012と進むループがあったら a0, a1, a2, b0, b1 b3, c0, c1, c3 という動きだね
あのさぁ ちょっとプログラミングできる人だって ちょっとしたループ部分で勘違いでハマルんだからお前みたいな素人が 目でソース追ってすぐにわかるわけないだろ? デバッガつかえよ、なんで使おうとしない? ちょっと弄れば使い方なんてわかる
793 :
デフォルトの名無しさん :03/10/19 20:49
>>786 >>787 デバッカなんてDLしてもてんてこまいになっちゃうんです!!
操作に四苦八苦して肝心のことが進まなくなっちゃう!!
>>789 だからよぉ。例えば本があったら本のとおりやれよ。
入門書はダウンロード・インストール・HelloWorld と進んでくんだよ。
最初の重要なとこすっとばすなよ。
この人、自分でHello World も書いてないのか・・・ 終わってるな。
796 :
デフォルトの名無しさん :03/10/19 20:51
あぁ? JDKも無いってどういうことよ おまえどうやってJavaやってんのよ?
798 :
デフォルトの名無しさん :03/10/19 20:52
>>791 ありがとうございました!!なるほどそういうことだったんですね!!
わかりやすい説明どうも感謝です!!
>>793 要するに君はプログラミングを始めるにはまだ早いんだ。
だから既に覚えることが多くて、てんてこまいなんだよ。
パソコンをもっとまともに使えるようになりなさい。
そしたらダウンロードやらインストールやらも余裕。
プログラミングのプの字もできない馬鹿でも、そのくらいはできる。
先に進まないって・・・ デバッガって基本的なことだよ それを無視するなんて考えられない それが無駄な行為だって思うなよ かなり楽になるのに・・・
801 :
デフォルトの名無しさん :03/10/19 20:54
>>792 アドバイスありがとうございます。
みなさんが口を揃えておっしゃるんだからデバッカってすごい有効なんですね。
決心がつきました。デバッガというものに挑戦してみたいと思います。
ありがとうございました。
802 :
デフォルトの名無しさん :03/10/19 20:56
>>794 >>795 そういえば本にもそのようなこと書いてあったような・・・。
Hello Worldも知らなかったです・・・。
終わってるなって・・・そこまで言わなくても・・・。
>>801 ほんとに分かってんのか。
先に JDK 入れなきゃ意味ねーぞ。
804 :
デフォルトの名無しさん :03/10/19 20:58
>>797 本で勉強しています。
今やってる本はわかりやすくて実力がめきめきとついているのを実感しています。
>>799 ボクは今MXにはまっています。
でもまだパソコンの設定やらに関してはおとうさんに全部任せてる状態です。
恥ずかしい・・・。
805 :
デフォルトの名無しさん :03/10/19 20:59
>>800 デバッカというものは基本的なことだったんですね。
穴があったら入りたい・・・。うぅ
806 :
デフォルトの名無しさん :03/10/19 21:00
なんだかねぇ、普通に教えてやりゃぁいいじゃん。 たいした知識でもないのにもったいぶってさ。
808 :
デフォルトの名無しさん :03/10/19 21:01
本に書いてあったと思うので大丈夫です。 JDKですね。覚えておきます。 とりあえずJavaのHPにいってみます!!
810 :
デフォルトの名無しさん :03/10/19 21:03
だからどこかのスレだったかここだったか忘れたが デバッカではないデバッガだ!
ナイコンって言葉を思い出した。関係ないんでsage。
いや、『デバッカ』で検索かけたら見つからなかったって言う話があって 延々と悩んだ挙句 だれかが 「デバッガじゃない?」見たいなこといったので また個々でも同じ状況になったら それだけで100スレ行ってしまうような恐怖感があったからです
一度別れた彼女と今またすごく仲良くなってて、 彼女は今もフリーらしいんですが、また結婚前提に付き合おうとか改めて切り出すと、 かえって意識されて、また疎遠になってしまう気がします どうしたらいいでしょうか? 言語は Java を考えています。
>>816 「僕と君の遺伝子を多重継承させてみないか?」でどうだろう。
「君が僕の子供のFactoryクラスになってくれないか?」
割り込んで悪いがおまいら楽しすぎますよっと。 …楽しいので是非続けてくれ。
以下のソース内のStringTokenizerでぬr…NullPointerExceptionが返されてしまいます。 try { FileInputStream fin = new FileInputStream("datafile.txt"); InputStreamReader ins = new InputStreamReader(fin, "SJIS"); BufferedReader bufr = new BufferedReader(ins); bufr.readLine(); for( i=0; i<2445; i++ ){ String msg = bufr.readLine(); StringTokenizer aSt = new StringTokenizer(msg,","); aSt.nextToken(); data[i] = Float.parseFloat( aSt.nextToken() ); } bufr.close(); ins.close(); fin.close(); } catch (Exception e) { e.printStackTrace(); }
御教授願えませんでしょうか?
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>823
>>823 引数が null である。msg が null である。
readLine() の返り値が null である。bufr が終端まで達している。
datafile.txt の行数は 2446 よりも少ない。以上。
>>823 e.printStackTrace();
の出力結果はどうなってんの?
830 :
デフォルトの名無しさん :03/10/19 21:55
こんな感じでやりたいんじゃないの? try { FileInputStream fin = new FileInputStream("datafile.txt"); InputStreamReader ins = new InputStreamReader(fin, "SJIS"); BufferedReader bufr = new BufferedReader(ins); bufr.readLine(); String oneLine = null; while ((oneLine = bufr.readLine()) != null) { StringTokenizer aSt = new StringTokenizer(oneLine,","); while (aSt.hasMoreTokens()) { System.out.print(aSt.nextToken()); } } bufr.close(); ins.close(); fin.close(); } catch (Exception e) { e.printStackTrace(); }
>>827 一応2446行在るんですが…>datafile.txt
あと
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>827
つーか823のループ前のbufr.readLine(); は何してんの?
StringTokenizerの次の要素がないのに無理やりnextToken() 呼んでいるせいだと思うんだけどな。
>>829 java.lang.NullPointerException
at java.util.StringTokenizer.<init>(StringTokenizer.java:146)
at java.util.StringTokenizer.<init>(StringTokenizer.java:162)
at readdata.main(readdata.java:26)
こんなんです。
>>833 そのときでるのは NoSuchElementException だ。
>>831 やるきないんなら帰れよ
827って別に煽ってないよ 正当な答えだよ
せっかく、
>>816 から楽しい雰囲気だったのに興ざめだ!
プログラムについて説明しますと、 datafile.txtの2行目以降に在る(一行目はヘッダ) ,,,89/12/29(Fri),38915.87 ,2849.63 ,30.000000 ,1.000000 こんな文字列の「38915.87」という数字だけを抽出したいんです。
void strtok4SJIS(unsigned char* str,char* dest,char separator,int index){ unsigned char* string; string=str; while(index>0){ if(((0x81<=(*string)&&(*string)<=0x9f)||(0xe0<=(*string)&&(*string)<=0xfc))){ string++; string++; } else if(*string==separator){ index--;}string++;} char c[50];//一時的な文字保存場所 int size=0;//一時的な文字保存場所の現在のサイズ while(*string!='\0'){ if((0x81<=(*string)&&(*string)<=0x9f)||(0xe0<=(*string)&&(*string)<=0xfc)){c[size++]=*(string++);c[size++]=*(string++); }else{if(*string==separator){ if(size==0){ strcpy(dest,""); string++; return;}else{ c[size]='\0';strcpy(dest,c);string++;return;}}else{c[size]=*string;size++;}string++;}} c[size]='\0';strcpy(dest,c); return;}
↑これなに?
漏れではないでつ。
へー、すごいねこりゃ
結局コンストラクタの引数が悪いって事で終了?
>>843 上のソースは他のファイルから引っ張ってきたんですけど、そっちは正常に動いてるんですよ
ちなみに処理内容は同じ、「ファイル読込」です。
String msg = bufr.readLine(); System.out.println("" + i + " : " + msg); StringTokenizer aSt = new StringTokenizer(msg,","); こうして、出力とファイルの中身とを対応とって確認してくれ。 繰り返すけど、StringTokizer は根本的に関係ないから。
正常に動いていても 830のやり方がベストだと思うよ 絶対msgがnullになってるんだって 何回目でエラーになるか確認表示入れてみればいいじゃん ソース眺めてたってわからないよ
m(__)m 確認したらiの定義域が悪かった事が判明しますた(1多い) 皆様大変御迷惑をお掛けしました 有難う御座いました。
JAVAするのに英語って必要なんですか?SEは英語ができるべきなんでしょうか?
>>850 しらないと恥かくよ。
厚顔無恥な人多いけど。
852 :
デフォルトの名無しさん :03/10/19 23:14
読み、書き、話す全部できないとSEにはなれないのでしょうか?
とりあえず、「読み」は必須だと思う。Webなんかの参考ページで日本語に限定しちゃうと 手に入る情報がかなり制限されるからね。そういう意味で英語は読めたほうがいい。 「書く」ができると、英語のコミュニティにもっとコミットしていける。 (質問やバグレポート出せるとかね。) 「話す(聞きとる)」はどうなのかな? そんなに必要ということはないと思うけど。
>>850 ただ変数の名前がキモくなるだけやで
int suuzi;
じゃ駄目駄目
int number,num;
の方がええんや。
そりゃ英語の情報の方が腐るほどあると言う考えで、英語が必要やってことやろ。
できない野郎のほうが多そうだが
855 :
デフォルトの名無しさん :03/10/20 00:24
コンストラクタって 例えば Rectangle r1 = new Rectangle() でインスタンス化したときに メソッドはr1.〜みたいに指定しなければ使えませんが コンストラクタはインスタンス化した時点でコンストラクタに書かれている 処理をインスタンス化の引数で自動的に実行されると考えていいのでしょうか?
856 :
デフォルトの名無しさん :03/10/20 00:25
コンストラクタって 例えば Rectangle r1 = new Rectangle() でインスタンス化したときに メソッドはr1.〜みたいに指定しなければ使えませんが コンストラクタはインスタンス化した時点でコンストラクタに書かれている 処理をインスタンス化の引数で自動的に実行されると考えていいのでしょうか?
859 :
デフォルトの名無しさん :03/10/20 00:40
>>858 ありがとうございます
なんか大きなもやもやが取れた気がする
860 :
デフォルトの名無しさん :03/10/20 00:49
コンパイルとデバッグの違いって何でしょうか? 両方ともソースのエラーチェックが目的じゃないのでしょうか?
おいおい コンパイルってのは課題をやるためのものじゃない
コンパイル: ソースコードをクラスファイルに変換する作業 デバッグ: 正しく動かない部分を特定し修正する作業
>>862 事実上コンパイルにはソースエラーチェックも含まれている
>>863 構文解析しながら変換すんだから当たり前だろ馬鹿
というかSyntaxErrorの修正って、デバッグとは言わないでそれ以前の問題な気が…。
866 :
デフォルトの名無しさん :03/10/20 02:01
後でデバッグしなくて良い様、Syntaxでエラーが発覚するように するのは美徳だと思うんだけどね。
コンパイル通る != バグ無し
誰もそんな話してなくてさ… コンパイル時の Syntax Error はバグでは「ない」 コンパイル通す作業はデバッグでは「ない」 オケ?
>>778 さんくす^^
Class.forNameを使うんですね。ありがとございました
ソースコードをいじらずにオブジェクトを復元することは可能ですか? ソースがあればシリアライゼーション,デシリアライゼーションでオブジェクトの 復元が可能だと思うのですが。
>ソースがあれば なんでそう思ったんだ?
>>871 それはコンパイルエラーじゃなくてただの警告だろう。クラスファイルは
できてるはずだ。
>>872 意味不明。何がやりたいか表現できるようになってからツラ出せ
あ、そ、そこは、だめ、、、 もっとやさしくして、、、 あ、あ〜!!!
876 :
デフォルトの名無しさん :03/10/20 09:07
>>868 866は流れで別の話題してるだけでは?
唐突でわかりにくいが。
ようするにあれだろ。
List list = new ArrayList();
list.add("1");
Integer n = (Integer)list.get(0);
はSyntaxErrorがでないからデバッグしないといけなかったけど
List<String> list = new ArrayList<String>();
list.add("1");
Integer n = (Integer)list.get(0);
ならgetでSyntaxErrorになるし
List<Integer> list = new ArrayList<Integer>();
list.add("1");
int n = list.get(0);
としておけばaddでSyntaxErrorになってウマーってなるのが美徳ってことだろ。
構文エラーと論理エラーの違いも分からないのか…
お前らJavaってどうやって勉強しましたか
あ、わかった。 (が足りないとか;がぬけてるとかがSyntaxErrorでシンボルが解釈できないとかはSyntaxErrorじゃないってことね。
>>878 本半分読んでゲーム作った。
そのあとは必要に応じて APIドキュメント読んだ。
だから個々の VM の振る舞いとかそーゆーことは知らない
>> 876 > List<String> list = new ArrayList<String>(); > list.add("1"); > Integer n = (Integer)list.get(0); > ならgetでSyntaxErrorになるし オマエにはコンパイル時のエラーは全部 SyntaxError に見えるのかも知れんが、 普通は String から Integer に変換できないのは SyntaxError とは言わん。
Image I/Oでスキャナとかデジカメを操作するような、 いいサンプルプログラムはないですか? あったら教えてください。
>>884 Image I/Oでどうやってデジカメとかスキャナとか動かすの?
あれは画像データそのもの扱う奴じゃないの?
そういうことやりたいんだったら
Printerを扱うクラス見ればヒントがありそうだ
java.awt.printパッケージ
つまり、外部のインターフェースを操作したいって事だろ?
でも、絶対Javaの範疇では終わらない気がする
>>888 「デジタルカメラ」とか「スキャナ」とか書いてあるだけじゃなくて?
> 大部分のプラグインは、ImageInputStream ソースからだけ読み込めれば十分です。
> その他の種類の入力はほとんど、適切な ImageInputStream で「ラップする」ことが
> 可能だからです。 しかし、プラグインが他の Object (たとえば、デジタルカメラ
> またはスキャナへのインタフェースを提供する Object) を直接に処理することも
> できます。 このインタフェースは、デバイスの「ストリーム」ビューを提供する必要は
> まったくありません。そうではなく、このインタフェースを認識しているプラグインは、
> 対象のデバイスを直接に駆動するためにそのインタフェースを使用できます。
よーするに、読み込みプラグインを作る際、
たいていは ImageInputStream から画像を読めればおっけーだけど、
デジタルカメラとかスキャナの入出力を直接提供するクラスが
ImageInputStream の interface を使ってない場合は、
プラグインは、それらのクラスから直接データを読み取って、
画像を読み込めなければならない、って書いてあるよーにみえるぞ。
>>884 っつか、そんなのデジカメだかスキャナだかのメーカーに直接聞け。
もしくは JMF やらで使えるデジカメだかスキャナだかを買え。
Eclipseでmainメソッドを実行するときに渡す引数ってどうやって指定するの?
>>891 実行Menu→実行... MenuItem→引数タブ
894 :
デフォルトの名無しさん :03/10/20 16:38
C/C++での構造体のstaticなデータの初期化って javaでは普通どうやってやるんでしょうか? 例えばC/C++で struct A { int a; char* str; } DataA[] = { { 1, "aaa" }. { 2, "bbb"} }; のようなのをjavaでやるとしたら やっぱり、あるクラスでAの配列変数定義してから コンストラクタとかで普通に各変数に値を 代入していくしかないんでしょうか?
>>894 そうだね。
ちと汚いけど、こう書ける。
A[] DataA = {
new A(1, "aaa"), new A(2, "bbb")
};
こういうこともできる。
return new A[] {
new A(1, "aaa"), new A(2, "bbb")
};
896 :
デフォルトの名無しさん :03/10/20 17:32
returnの後ってもう命令は書けないんでしょうか?
>>896 書ける。しかし処理が行われるかはロジック次第.
>>896 できるわけない。
ひょっとしてこうしたいのか?
return this.a;
↓
Object tmp = this.a;
this.a = null;
return tmp;
>>898 何が言いたい?
GCあるのにわざわざする必要があるのか。
>>899 保持している内容を返すと同時に null を参照させたい。
キューみたいな用法。
>>895 なるほど、なるほど。
レスありがとうございます
finallye 節に書けるだろうがクワッパめら try{ ... return "冷やしちんこ"; } finally { log("終わり"); }
finallyというのを書けばまだ命令できるのでしょうか(ぉ)?
>>896 あるブロックで、return 文の後の、いかなる文も(言語規定により)エラーになる
という意味では return 文の後には命令は書けない。
switch〜case文の 必要性がわかりません。
>>906 じゃあ switch 〜 case 文を使うな。
もしくは switch 〜 case 文の無いコンパイラを自作しろ。
>>906 まぁ if/else if/else で代用できるからな。テーブルジャンプの分
多少速いくらいか。あとはコード上の見易さ。
>>906 そんなこと言ったら if も for も while でまかなえるから要らないわけだが。
910 :
エクリプス :03/10/20 19:30
eclipse の ウィンドウ(W) → 設定(P) → Lomboz → ServerDefinitions とやって、Server TypesのところでJBOSS3.2.1を選択し 適用または、OKを押すんですが、デフォルトで設定してあるJBOSS v2.4.4に戻ってしまいます。 なんででしょうか?バグですかね。。。
911 :
エクリプス :03/10/20 19:31
ちなみにエクリプスのバージョンは2.1.1 Lombozのバージョンは、211デス。
>>910 それは戻ってるんではなくて、
おのおののサーバ名称に対して設定を行えるというだけ。
どのサーバを使うかはプロジェクトごとに指定でき、
プロジェクト内要素(フォルダとか)の右クリック→Lomboz J2EE → change dfault server とかする。
どうしてもreturnのあとに命令したいのですが…(ぉ) どうすればいいのでしょうか? 設計変えろとかいわれると割と困ります
914 :
エクリプス :03/10/20 20:22
>>912 え、そうなんですか。。。あれで、30分近くも悩んでいたってのに。。
>>913 return した後に処理をしたいのなら、return する前にスレッドでも
起動しとけ。
JavaのGUIを勉強はじめたんですけど、WindowAdapterっていうクラスは 使いどころあるんですかね? ウインドウの本体がFrameを継承する場合、WindowAdapterは使えない ですよね?結局、面倒だけどWindowListnerを実装しなきゃならない。 あと、addWindowListener(this)とかするじゃないですか、なんだか すごくマヌケなコードに見えませんか? thisは自分なんだからaddしなくてもイベントぐらい拾えよ、みたいな。
>>913 簡単じゃん、メソッド呼び出しの後に処理を入れればいいんだよ。
>>916 > WindowAdapterっていうクラスは
> 使いどころあるんですかね?
無名クラスと一緒に使ったりします。
>>916 > JavaのGUIを勉強はじめたんですけど、WindowAdapterっていうクラスは
> 使いどころあるんですかね?
無名クラスとか。
> あと、addWindowListener(this)とかするじゃないですか、なんだか
> すごくマヌケなコードに見えませんか?
勝手に addWindowListener(this) とかされるほうが嫌だと思われ。
Component#enableEvents(long) すれば
Component#processEvent(AWTEvent) とかで処理できる。
手間は似たようなもんだけど。
920 :
デフォルトの名無しさん :03/10/20 21:38
クラス名と同じメソッドなら中身は関係なくコンストラクタ それ以外は全てメソッド これであってますか?
なるほど〜、ところで、無名クラスってなんですか?
922 :
デフォルトの名無しさん :03/10/20 21:39
ファイルチューザの事でわからないことがあるので質問させてください。 ファイルを指定してテキストフィールドに値を返すプログラムはわかるのですが 指定したディレクトリのパスをテキストフィールドに返すという事が どうもうまくいきません。 JFileChooser fc1 = new JFileChooser(); int ret = fc1.showOpenDialog(null); File obj = fc1.getSelectedFile(); if(ret == JFileChooser.APPROVE_OPTION){ TestFrame.jtf1.setText(obj.getPath()); //jtf1はテキストフィールド } } 3行目のgetSelectedFileは選択されたファイルを返すという事なので これをgetFileSelectionMode(fc1.DIRECTORIES_ONLY)とすればいいのかと 実行してみてもどうにもこうにも・・・
>>920 何が言いたいのか良くわからんが、クラス名と同名のメソッドも定義できる。
class A { void A(){} } //メソッド
class B { B(){} } //コンストラクタ
>>920 addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent e){
...
}
});
みたいなやつ。
失礼。これに関してEclipseは設定可能だね。 デフォルトが警告になってるだけで、エラーにしたり無視にも出来る。
DatabaseMetaDataクラスのgetMaxConnections()で コネクションの最大接続数を取ろうとすると常に0が返されます。 connectionは普通に取得できているので0であるはずは無いのですが どうすれば最大接続数が取れるのか分かる方おられましたら お答えください。 それと、ルータの設定情報をjavaのプログラムで取得する方法って あるんでしょうか?
アプレットの話になってしまうんですが ある条件のときに文字列を出力させたいときにその文字列のメソッドを作ってreturnで返してやる以外の方法ってなんかあります? 文章ややこしーですけど
929 :
デフォルトの名無しさん :03/10/20 21:54
>>923 確かにできるが、推奨されてないんだろ?
基本的には920の内容で100%ではないが
あってるんじゃないの?
>>928 アプレットの勉強する前にまず日本語の勉強したら?
>>922 良くわからんが、ディレクトリだけを選択したいなら、
JFileChooser fc1 = new JFileChooser();
fc1.getFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int ret = fc1.showOpenDialog(null);
で出来ないか?
getじゃなくて setFileSelectionModeでしょ
>>927 API ドキュメント嫁。ルータの設計者に聞け。
934 :
デフォルトの名無しさん :03/10/20 23:15
一から勉強してネットワーク対戦型の簡単なゲームを作ろうと思っているのですが、他のコンピュータと同期をとる方法がわかりません。 どのようなAPIを使えば比較的容易にできるでしょうか?
おっと RMI も載ってるじゃねーか。1版にもあったっけかな・・・ ネットワークに関係なく、 アプリケーションのロジックはきちんと勉強しなきゃいけないよ。 俺は他の言語もやってたからこれ一冊で入門できたけれども。
>>934 Jxta使えば?
情報は少ないけどな。
ねー。GUIつくるのめんどくさいんだけどさー。 フリーのFORTEとかJBUILDERとかあるじゃん。 あーいうのってさー、MYSQLのドライバをライブラリの追加みたいにすれば つかえるんかなー。XMLとかも。
>>931 ,932
ありがとうございます。解決しました。
940 :
デフォルトの名無しさん :03/10/21 02:06
ここって不親切な人が多いよね。 初心者が嫌いな人はこなくていいよ。 マジデ。
初心者大歓迎、バカお断り。
っていうか、ここのやつらも馬鹿ジャン。Javaはできるかもしれないけど、 知能レベル低すぎるよ。まじで。初心者だからわかんないんだよ。それを馬鹿呼ばわりするんだもん。 みんな馬鹿だよ。
でさー、誰か、俺の
>>938 の質問に答えてくんない?
煽れば答えてもらえると思ってるやつが一番いたいな。
いいから、こたえろよ。
口の利き方も知らない高卒はスルーがデフォルト
Java厨と高卒。なに低レベルな争いしているんだよ(藁
Perl 厨は WebProg 板にお帰りください
951 :
デフォルトの名無しさん :03/10/21 03:46
>>938 JDBCどらいばが入ってるjarでもいれなさい。
>>950 どこにPerl厨が?
ノイローゼですか?
つまらん 次 ↓
>>954 こんな時間に顔真っ赤にして F5 キー連打してんなよ…
>>956 暇そうだな。
死滅スレも落ちたし、最近マ板へ移動したみたいだが元気でやってるか?
>>957 お前誰だよ?(藁
ずっと誰かを粘着しているのか?(藁
アンチJava厨だけど、みんな暇そうだね。相手してほしい?
返答無しですかそうですか、ぐすん
フフ
4:44 だしもう寝ましょう。
えーと、手元に mdb ファイル (Access のファイル) があります。 Linux 上の Tomcat からこのデータベースの内容を検索/更新したいんだけど Linux でできるのかな??? ちなみに Linux 上で JDBC-ODBC ブリッジドライバって使えます?
>>933 そうおっしゃらずにそこをなんとかお願いします。
せめてヒントを・・・。
>>964 あんたの質問答えられるわけないじゃん。
ルータの設定→LDAP?あーでもそれだと限界があるかも。もしくは Telnet or sshでリモート操作くらいか。
あとは独自プロトコルでそうさでしょ。
*************************************糞スレ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>964 お前馬鹿だろ。馬鹿はそんな難しいことしなくていいよ。
968 :
デフォルトの名無しさん :03/10/21 11:46
>>944 つか、Java厨はバカだからJava厨なんだよw
利口なら、とっくに他の言語やってるさWWW
なんだ、オナニープログラマーの集いか?ここは。
972 :
デフォルトの名無しさん :03/10/21 13:41
話題を切ってすみませんが、質問します。 Ant中で、あるexeファイル、あるいはbatファイルを実行したいのですが、可能でしょうか? 可能だとしたら、なんというタグを使えばいいのでしょうか。 ユーザーズマニュアルは見たのですが、わかりませんでした。 (execタグなどが、ひょっとしたら……と思いましたが、 使い方がよくわかりませんでした) ネットで調べても乗っていなかったので、おわかりの方がいましたら教えてください。
Javaアプリケーション用にバッチファイルを下のように作ったんですが、 ----------------------------- @echo off java 実行クラス名 ----------------------------- これでは文字は消えても、ウインドウが表示されてしまいます。 ここに何を書き加えれば、ウインドウを表示しなくなりますか?
JAVAのプログラミングをするために、何かソフトをインストールしなければならないのでしょうか? やっぱりJAVAコンパイラとか必要なんですか?
>>974 Winだよね?バッチファイルじゃむりじゃない?
起動プログラム用の実行ファイル作ってそんなかでCreateProcess でConsoleを表示しないフラグを立ててjava.exe呼ぶとかそんな感じ?
そんな要求でたことないから、自分はこれしか思いつかん。
>>976 コンパイラが何のことだか分かってますか。
分かってればそんな質問出てこないと思うんですけど。
>>977 >>979 すいません。本当によく分からないんです。
とりあえず、JAVAで何かやりたいって時にまず必要なソフトって何ですか?
>>978 早いレスありがとう。
ちなみにPCはwinXPです。
98とかだと、プロパティで「ウインドウを最小化する」みたいなオプションがあって、
それをチェックしておくと、表示されないってことは書いてあったんですけど。
XPだと、そういったオプションがないんで困ってました。
たぶん、そういうことはできないんでしょうね。
>>982 Win2kでもそのオプションはあるしXPでもあると思うけど、最小化してもアイコンになるだけだからクリックすれば
コンソールは出てくると思われ。
>>981 ありがとうございます。
ウェブブラウザはIEでいいのですか?
あと、さっきsunのサイトに行ってみたのですが、何をダウンロードすればいいのか分かりません。
自分の環境はWinXPなのですが、どうすればよいのでしょうか?
>>983 そこを見てみたのですが、トップページのFAQがいきなり「javac コマンドを〜」と書いてあったので、
自分の質問はそれ以前の問題だと思い、質問したのです。すみません。
それが終わったら、
>>1 を参照しろ
GOOGLEでサーチかければ、いくらでも、インストールの方法くらいでてくるぞ。
>>980 人に聞く前に本買って黙々と読め。
「これで全部分かる」とかいうのはだめだぞ。はしょってあるから。
入門書、初級の奴を探せ。
>>986 過去ログを「必要なソフト」で検索すればいつかひっかかるだろ。
それくらい試してこいよ。
10日で覚えるJAVA入門教室って本がイイ! タイトル通りに10日でやるにはかなり疲れたけどな 意地になっちまった 仕事帰ってから徹夜、きつかった でも他の本とはだんちの分かり易さ 今から始めたいやつはこれで基礎を学ぶべきだな
>>974 javaコマンドじゃなくてjavawコマンドを使えばいいよ。
DOSプロンプトは一瞬で消える。
あと、jarファイルを作ってMANIFESTファイルで起動クラス指定すれば、
Wクリックでjavaw使って起動できる。
詳しくは上記のキーワードでググってみて。
うめまつ。
java
ruby!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。