1 名前:デフォルトの名無しさん [2008/01/13(日) 00:25:22 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド110【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1197710566/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
281 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:41:22 ] >>280 inputString.getBytes("JIS_X0201"); これだけ。 ファイルに書きたいだけだったら、 OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream(fileName), "JIS_X0201"); writer.write(inputString); という感じにOutputStreamWriterを使ってもいいね。
282 名前:デフォルトの名無しさん [2008/01/22(火) 19:06:11 ] >>279 こいつアホ?
283 名前:デフォルトの名無しさん [2008/01/22(火) 19:23:15 ] byte[] b = new byte[10]; byte[] temp_hoge = new byte[10]; これらふたつを比較して等しければtemp_Ahogeを返すようにしたいのですがどうすればいいのでしょうか? if(ここに等しい条件を入れる){ return temp_Ahoge; } だと思うのですがアドバイスをお願いします。
284 名前:デフォルトの名無しさん [2008/01/22(火) 19:24:29 ] >> 281 試してみましたが、 ファイルに何も書き出されませんでしたが、どうしてでしょうか?? 実装は String fileName = "C:\\tmp2\\sample.txt"; String inputString = "0"; OutputStreamWriter writer; try { writer = new OutputStreamWriter(new FileOutputStream(fileName), "JIS_X0201"); writer.write(inputString); System.out.println(inputString); です。
285 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:34:43 ] >>280 JavaのStringで保持してるbyteの文字セットはUnicode。 他の文字セットで保持する場合は、変換してbyte配列まま。 >>283 static boolean java.util.Arrays.equals(byte[], byte[]) 但し、引数がnull同士の場合もtrueを返す。
286 名前:デフォルトの名無しさん [2008/01/22(火) 19:45:19 ] >>285 レスありがとうございます。 早速使用させていただきます。
287 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:51:28 ] >>284 さいごにwriter.close()してる?
288 名前:デフォルトの名無しさん [2008/01/22(火) 20:44:24 ] >>287 書き忘れてました。 >>285 すいません。その変換することがよくわからんです。
289 名前:デフォルトの名無しさん [2008/01/22(火) 21:48:10 ] A.javaというファイルとB.javaというファイルがあるとします。 このとき A.javaからあるものをB.java に渡したあとB.javaで処理をしてA.javaに返すプログラムを構築したいのですが どのようなコードを書けばいいですか?
290 名前:デフォルトの名無しさん [2008/01/22(火) 21:51:40 ] 質問です。 JavaプログラムでCygwinに対して「javap -c 任意の.class」を行い、その結果を取り込みたいのですがどう行えばいいでしょうか。 ProcessBuilderを使えばいいようなのですが、そこから先が分かりません。 申し訳ありませんがよろしくお願いします。
291 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:52:11 ] 表現があいまい。 プロセス間通信みたいな事したいのならTCP/IPなり叩いてシリアライズされたオブジェクト渡すとか。 クラス間で単に見えれば良いだけならアクセス修飾子つけるとか
292 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:54:50 ] >>290 ProcessBuilder から Process → InputStream の順に取得すればそこから javap コマンドの出力内容が取れる。
293 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:57:30 ] cygwin は関係あるんだろーか?
294 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:59:48 ] そんな質問者トラップに惑わされているうちはまだまだひよっこ。
295 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:01:33 ] >>289 ファイルを処理するプログラムが希望なのか? 落ち着いて、用語を正しく使って質問しよう
296 名前:291 mailto:sage [2008/01/22(火) 22:03:46 ] ややこしいな>>289 宛
297 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:05:02 ] >>289 public class A{ public static void main(String[] args){ B b = new B(); Object nanika = /* 何か */; Object kekka = b.shori(nanika) } } public class B{ public Object shori(Object nanika){ /* 処理 */ return kekka; } }
298 名前:デフォルトの名無しさん [2008/01/22(火) 22:05:49 ] 早速のご解答ありがとうございます。 やりたいことは、.classファイルの情報をjavap -cコマンドで取得し、それらの情報を プログラムで使用したいのです。 本当に初歩的ですいません。。。
299 名前:デフォルトの名無しさん [2008/01/22(火) 22:19:00 ] 大変失礼いたしました。 >>295 を >>290 に対する返答と勘違いしました、申し訳ありません。 試しに書いたプログラムです。 ProcessBuilder pb = new ProcessBuilder("C://cygwin/Cygwin.bat","ls"); try { Process p = pb.start(); InputStream stdIn = p.getInputStream(); InputStream errIn = p.getErrorStream(); int c; while ((c = stdIn.read()) != -1) { System.out.print((char)c); } stdIn.close(); while ((c = errIn.read()) != -1) { System.out.print((char)c); } errIn.close(); int ret = p.waitFor(); System.out.println("process exited with value : " + ret); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } 出力は一切ありませんでした。
300 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:24:05 ] >>299 new ProcessBuilder("bash", "--login", "-c", "\"ls -laF\"")
301 名前:デフォルトの名無しさん [2008/01/22(火) 22:42:03 ] >>296 あいまいすぎてすみません。 A( ttp://www.uploda.org/uporg1213982.zip.html ) というファイルがあってAのなかには public static void main(String[] args) { HelloWorldJNI hello = new HelloWorldJNI(); byte[] card_idm = new byte[16]; String temp; String sid = "0404040404040404"; というコードがあるのですが、0404〜という特定のものではなく Bが受け取る値をそのままAの上の部分に返したいんです。
302 名前:デフォルトの名無しさん [2008/01/22(火) 22:42:27 ] >>300 回答ありがとうございます。 早速試したのですがエラーが、 java.io.IOException: CreateProcess: bash --login -c "ls -laF" error=2 試しに"bash"のみでやったところ同じエラーが返ってきました。 java.io.IOException: CreateProcess: bash error=2 パスか何かの影響なのでしょうか。。 また、Cygwinを無視して "cmd","cd ../"とやったところ Microsoft Windows XP [Version x.x.xxxx] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\workspace\test> という結果になり、cd ../については反映されていないようなのですが。。
303 名前:デフォルトの名無しさん [2008/01/22(火) 22:43:47 ] >>302 続き という結果になり、cd ../については反映されていないようなのですが。。
304 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:45:50 ] Eclipse3.3でtomcat6.0+JSPによるウェブアプリケーションを開発しています。 あるクラス(hoge)の作成には成功するのですが、そのクラスをJSPファイルから参照しようとすると 「NoClassDefFoundError: foo/bar」という例外が投げられてしまいます。 見つからないクラス(bar)というのはEclipseの機能である「ユーザー・ライブラリーの追加」で追加したJARファイルの中のクラスです。 ・JSPファイルからこのクラスファイルを呼ばないようにする ・JSPやtocatなどを使用せず、かわりにmainメソッドを持つクラスを新たに作成し同様の処理を行う などとすると、上記例外は生じません。 「ユーザー・ライブラリーの追加」によって追加されたクラスを含むクラスをJSPファイルで利用することはできないのでしょうか? 少々ややこしいですが、よろしくお願いします。
305 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:52:27 ] >>302 フルパスで書け。"C:\\cygwin\\bin\\bash.exe"
306 名前:デフォルトの名無しさん [2008/01/22(火) 23:02:48 ] >>305 解決いたしました、本当にありがとうございます。
307 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:06:23 ] >>304 ユーザライブラリで追加した JAR ファイルを WEB-INF/lib の下に置け。
308 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:13:42 ] >>301 java bean使うとかプロパティファイルに追い出すとか単にpublic void setSID()なメソッドをAに定義するとか。 設計の問題なんだけどjavaの仕様自体は理解してるの? してないならお勉強。
309 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:28:41 ] >>308 レスありがとうございます。 卒業研究でJavaを使っているのですが全然わからなくて・・・。
310 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:29:39 ] >>308 public void setSID()なメソッドをAに定義するというのは A.javaのプログラム中に public void setSID(){ というのを作って中で呼び出せばいいのでしょうか?
311 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:34:40 ] 初めっから勉強し直せ
312 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:51:35 ] >>309 朝まで一夜漬けだ 浅煎り珈琲 - Java アプリケーション入門 ttp://www.nextindex.net/java/
313 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:26:07 ] >>312 またそれかよ 宣伝乙
314 名前:login:Penguin [2008/01/23(水) 00:46:36 ] String fileName = "C:\\tmp2\\sample.txt"; String inputString = "0"; OutputStreamWriter writer; try { writer = new OutputStreamWriter(new FileOutputStream(fileName), "JIS_X0201"); writer.write(inputString); と実装してみましたが、ファイルにはinputStringの値"0"が書き出された だけでした。 やりたいこととしては、"0"を入力したときにJIS_X0201の値の"30"を 出力したいのですが、どうすればよろしいでしょうか??
315 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:54:27 ] >>314 もしかして, '3' と '0' という文字を書き出したいの?
316 名前:login:Penguin [2008/01/23(水) 01:04:10 ] "0"をJIS_X0201で読み込むと"30"という値になると思います。 自分の認識が間違っているかもしれませんので、"3","0"と分割して 書き出すやりかたがあれば教えてください。
317 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:23:58 ] >>314 ,316 ある文字をJIS X 0201にエンコードしたときのバイト列を16進数の文字 列にしたい、ということなのね。 であれば、OutputStreamWriterは忘れて、 inputString.getBytes("JIS_X0201") で得たバイト列を1バイトずつ String.format("%02x", ... で加工していくので良さそう。
318 名前:login:Penguin [2008/01/23(水) 01:31:48 ] >>317 ご理解ありがとうございます。 実際の実装方法を聞いてもよいですか?? ファイルに書き込む処理まで行いたいです。
319 名前:デフォルトの名無しさん [2008/01/23(水) 01:37:47 ] さすがに自分でやれよw
320 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:40:15 ] >>318 317でここまで具体的にヒントが書いてあるんだから、あとは自分で書き なさいな。
321 名前:login:Penguin [2008/01/23(水) 01:42:42 ] ありがとうございます。 やってみるです。
322 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 04:12:01 ] BigDecimalクラスで平方根の計算をしたいんですが、 これって用意されてないんでしょうか? ググって見つかって喜んだらRubyでした orz
323 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 08:05:16 ] 用意されてないから自分で書くしかない。
324 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 08:18:10 ] >>322 やはりそうですか。ありがとうございました。
325 名前:304 mailto:sage [2008/01/23(水) 08:31:13 ] >>307 レスが遅くなってしまいすみません。 先ほど試してみたところ、上手くいきました。 ありがとうございました。
326 名前:デフォルトの名無しさん [2008/01/23(水) 11:22:00 ] すみません。初心者の質問です。 System.out.printf("税金: $%.2f x 5.0% = $%.2f. \n", calcp, calctax); で 5.0% と % を表示したいのですが、どうすればよろしいでしょうか? よろしくお願いします。
327 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 11:24:38 ] >>326 %%
328 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 11:30:06 ] >>327 ありがとうございます! やっとできた・・・(´∀`)
329 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:32:38 ] オブジェクトをシリアライズ化してセーブしたファイルをロードし、 再びセーブしようとすると、こんなエラーが発生します Exception in thread "AWT-EventQueue-0" java.lang.InternalError: Unable to bind [ファイル名] to parent at sun.awt.shell.Win32ShellFolder2$4.call(Unknown Source) at sun.awt.shell.Win32ShellFolder2$4.call(Unknown Source) at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Unknown Source) at sun.awt.shell.Win32ShellFolder2.getIShellFolder(Unknown Source) at sun.awt.shell.Win32ShellFolder2$18.call(Unknown Source) at sun.awt.shell.Win32ShellFolder2$18.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 対処方法は無いでしょうか
330 名前:デフォルトの名無しさん [2008/01/23(水) 18:38:57 ] 現在htmlから受け取ったデータをサーブレットで処理し、JSPで表示させるということをしています。 受け取ったデータをサーブレット内でDBの中にあるデータと照合し、 照合結果を出すということをしたいのですが、 サーブレット内の処理がうまくいきません。 ソースは public class Servlet extends HttpServlet{ public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{ req.setCharacterEncoding("Shift_JIS"); res.setContentType("text/html;carset = Shift_JIS"); //パラメータを取得 String id = req.getParameter("id"); String pas = req.getParameter("pas"); String result = ""; try{ // ドライバクラスをロード Class.forName("org.gjt.mm.mysql.Driver"); // DBへ接続 String url = "jdbc:mysql:///testdb?user=root&password=admin&useUnicode=true&characterEncoding=sjis"; Connection con = DriverManager.getConnection(url); // プレペアードステートメントオブジェクトを生成 PreparedStatement stmt = con.prepareStatement("SELECT * FROM Login WHERE ID = ? AND PASS = ? ");
331 名前:330 [2008/01/23(水) 18:40:21 ] >>330 の続き //IN パラメータ値を設定する stmt.setString(1,id); stmt.setString(2,pas); // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(); //指定した条件と一致しているかどうか。 if(rs.next() == true){ result = "ログインに成功しました。"; }else{ result = "ログインに失敗しました。"; }
332 名前:330 [2008/01/23(水) 18:40:52 ] >>331 の続き // データベースから切断 stmt.close(); con.close(); }catch(Exception e){ e.printStackTrace(); } //セッションスコープで値を渡す HttpSession session = req.getSession(); session.setAttribute("result", result); RequestDispatcher rd = req.getRequestDispatcher("./loginResult.jsp"); rd.forward(req, res); } } です。 コンパイルはできるのですが、処理を行っているときにtry{}の中を通らないみたいです。 resultの値をJSPで表示させたときnullと出てしまいます。 どのような処理をしたらresultに値を渡せるのかが分かりません。 よろしければ、ご教授お願いします。
333 名前:デフォルトの名無しさん [2008/01/23(水) 19:46:18 ] 例外は? HTMLの方のソースは? そもそもdoPostにたどり着いてんの? System.outなりデバッカなりで処理をおった?
334 名前:RoundTrip [2008/01/23(水) 20:49:01 ] 質問: 同じinterfaceを持つクラスのインスタンスが、配列になっています。 これらのインスタンスにおいて、変数やインスタンスを共有したい場合 どのような方法があるでしょうか。 よろしくお願いします。
335 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:58:30 ] >>334 クラス変数
336 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:59:13 ] 配列を所有している側のオブジェクトに所有させて、 そこに問い合わせたら?
337 名前:デフォルトの名無しさん [2008/01/23(水) 21:42:31 ] 前回はご回答ありがとうございました。 無事RS232Cのプログラムを作る事ができましたが エラーが起こって困っています。 どうか、知恵を貸してください。 :作りたいもの: Rs232Cを用いたシリアル通信を行なうプログラム :参考サイト: www.ais-com.co.jp/jikken/java232c.html www.02.246.ne.jp/~torutk/javahow2/javaxcomm.html
338 名前:デフォルトの名無しさん [2008/01/23(水) 21:43:13 ] :プログラム: //rs232c.java import java.io.*; import java.util.*; import java.text.*; import javax.comm.*; import gnu.io.UnsupportedCommOperationException; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; class rs232c1{ public static void main(String args[]){ byte rs232c[]; rs232c = new byte[10]; try{ CommPortIdentifier ports = CommPortIdentifier.getPortIdentifier( "COM1" ); SerialPort port = ( SerialPort )ports.open( "RS232C", 1000 ); port.setSerialPortParams( 9600,SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE ); port.setFlowControlMode( SerialPort.FLOWCONTROL_NONE ); InputStream in232c = port.getInputStream(); //読み込み in232c.read(rs232c); System.out.println("read="+rs232c); in232c.close(); port.close(); } catch( Exception e ) { System.out.println( "Error:" + e.getMessage() ); } } }
339 名前:デフォルトの名無しさん [2008/01/23(水) 21:47:43 ] :実行後のエラーログ: {\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fprq1\fcharset128 \'82\'6c\'82\'72 \'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;}} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\lang1041\f0\fs20 #\par # An unexpected error has been detected by HotSpot Virtual Machine:\par #\par # SIGSEGV (0xb) at pc=0xb7f6bedf, pid=2701, tid=16384\par #\par # Java VM: Java HotSpot(TM) Client VM (1.4.2_16-b05 mixed mode)\par # Problematic frame:\par # C [ld-linux.so.2+0x8edf]\par ::: 中略 ::: PATH=/usr/java/j2sdk1.4.2_16/bin:/usr/java/j2sdk1.4.2_16/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/mysql/bin:/usr/local/jdk1.2.2/bin:/usr/local/mysql/bin:/usr/local/jdk1.2.2/bin\par USERNAME=root\par LD_LIBRARY_PATH=/usr/java/j2sdk1.4.2_16/jre/lib/i386/client:/usr/java/j2sdk1.4.2_16/jre/lib/i386:/usr/java/j2sdk1.4.2_16/jre/../lib/i386\par SHELL=/bin/bash\par --------------- S Y S T E M ---------------\par \par OS:Linux\par rlimit: STACK 8192k, CORE 0k, NPROC 4031, NOFILE 1024, AS infinity\par load average:-0.01 0.00 -0.01\par \par CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2\par
340 名前:デフォルトの名無しさん [2008/01/23(水) 21:48:38 ] >>337 >>338 >>339 長文失礼しました。
341 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:58:34 ] 分割して書きこむ暇があったら適当なうpろだに上げろ。
342 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:06:26 ] >>341 別に分割はしてないんじゃね?
343 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:15:08 ] ネイティブライブラリがクラッシュしてる。それ以上は知らん。
344 名前:デフォルトの名無しさん [2008/01/23(水) 22:41:12 ] >>341 データをアップしました。 (age3.tubo.80.kg/age02/view/7287.zip )
345 名前:RoundTrip [2008/01/24(木) 00:40:07 ] >>335 クラス変数って、どのクラスのでしょうか。 良ければご指導お願いします。 >>336 配列を所有している側のインスタンスに問い合わせる方法って どんなものがありますか? 被せたinterfaceの関係で、あんまり引数使いたくないのです。 やっぱり、引数で渡すしか無いでしょうか…。
346 名前:デフォルトの名無しさん [2008/01/24(木) 11:13:10 ] 誤爆してしまいましたので、何卒、こちらでご指導お願い申し上げます。 次の選択肢より正しい記述をすべて選びなさい。 1:java.io.FileReaderはテキストファイルから文字を行単位で読み込むクラスである。 2:new File("bbs.txt")と記述すると、新しいファイルが作成される。 3:ファイルの操作を行う前には、Fileクラスのopenメソッドを必ず使用する。 4:BufferedReaderクラスのreadLineメソッドは、ファイルの終端までを読み込む。 5:FileクラスのisFileメソッドの戻り値がfalseだった場合は、そのファイルが無いか、またはその名がディレクトリである事を示している。
347 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:16:48 ] >>346 javadocみれば一発!正解が全部書いてあるよ! はい、次の人どうぞ
348 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:18:28 ] >>346 全部間違い。
349 名前:デフォルトの名無しさん [2008/01/24(木) 11:27:14 ] >>347 さん、>>348 さん、 激しくありがとうございました。
350 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:31:23 ] 5.は正解じゃないかと思ってjavadocを読み返したが、 確かにファイルでもディレクトリでもない場合がありうるみたいだね。 しかし、ファイルでもディレクトリでもないものってなんだろう?
351 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:39:27 ] conとかnulかなと思って試してみたら、isFileがtrue返した。 調べてみたら、java6からfalse返すように変ったみたい。
352 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:42:40 ] >>350 NamedPipe とか デバイスファイル とか。 Javaが動作するプラットフォームはWindowsだけじゃないし。
353 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:47:37 ] >>351 次のメソッドの動作が変更されました。 * CON、NUL、AUX、LPT などの予約されたデバイス名には必ず false を返すように、 File.isFile() Windows 実装が変更されました。以前の戻り値は true で、それが Unix で使用するデバイスの動作と整合していないことから、対象ユーザーはこれを バグとみなしていました。 java.sun.com/javase/ja/6/docs/ja/technotes/guides/io/enhancements.html#6
354 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:58:36 ] HIDDEN ファイル (存在するが見えない) シンボリックリンク (リンク先がないのとシンボリックリンク自体が存在しないのとは違う) デバイスファイル (扱いはファイルシステムに依存) だいたいファイルとかディレクトリとか、問題が階層型ファイルシステムに限定だし。 AS/400 なんかメモリと二次記憶の区別がなくてファイルっつーか全部テーブルだし。
355 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:02:38 ] 大学の研究でJava3Dを勉強していて、彩画3Dというフリーのクラスライブラリを使って 参考文献を頼りにプログラムを試作しているのですが ttp://www11.axfc.net/uploader/20/so/He_66742.zip.html PASS:java 回転する球体をストップさせた時、2つの球体が初期位置に戻らないようにして停止させた位置で 止まるようにするにはどうしたらいいのでしょうか
356 名前:デフォルトの名無しさん [2008/01/24(木) 14:03:25 ] すいません、質問です。 MouseListenerインターフェイスを実装しようとしたんですが、 Test は abstract でなく、java.awt.event.MouseListener 内の abstract メソッド mouseReleased(java.awt.event.MouseEvent) をオーバーライドしません。 という風にコンパイルエラーが出て、困ってます。 全てのメソッドを実装しているはずなのですが…何故なんでしょうか? import java.awt.event.MouseListener; public class Test implements MouseListener { public static void main (String args[]) { } public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} }
357 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:26:21 ] >>356 スペルミスの可能性70%
358 名前:デフォルトの名無しさん [2008/01/24(木) 14:45:20 ] >>357 その可能性考えて何度もAPIとにらめっこしたんだけど、 どこにも誤字は見当たらないんですよね… KeyとMouseMotionもエラーになるが、その他のリスナーはちゃんと実装できるから余計わからない。
359 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:47:09 ] >>356 MouseEvent が import されていない。
360 名前:デフォルトの名無しさん [2008/01/24(木) 14:56:12 ] >>359 ごめん、他のリスナーで試そうとして今気づいた。orz でも、import java.awt.event.*;にしても相変らずコンパイルエラー起こすようです。 スレ無駄に消費して申し訳ない。
361 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:12:23 ] >>360 直した新しいソースと新しいエラーメッセージを
362 名前:デフォルトの名無しさん [2008/01/24(木) 15:21:47 ] >>361 import java.awt.event.*; public class Test implements MouseListener { public static void main (String args[]) { } public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} } エラーメッセージ: Test.java:3: Test は abstract でなく、java.awt.event.MouseListener 内の abstract メソッド mouseReleased(java.awt.event.MouseEvent) をオーバーライドしません。 直す前とエラー内容は変わってないみたいです。
363 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:26:56 ] >>362 なんで MouseListenerをインポートしてないのに implements MouseListenerでエラーが出てないんだ?
364 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:28:21 ] >>363 import java.awt.event.*;
365 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:31:40 ] >>362 手元でやってもエラーでないけど。
366 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:35:46 ] >>362 んー。Testと同じ階層に同名のMouseEventやらが存在する、とか…
367 名前:デフォルトの名無しさん [2008/01/24(木) 15:46:50 ] >>366 Testを別の場所に移動したら動きました! 最初に実験した奴の名前がMouseEventだったのが原因だったみたいです。 盲点でした。本当にありがとうございます!
368 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:54:55 ] 今回の例では、import 完全修飾クラス名、で宣言すれば問題ない。 import java.awt.event.MouseEvent; 同一クラス内に同名のクラスが混ざったときも似たような方法で回避可能。 java.util と java.sql の Date は良く有る話。 ttp://www.atmarkit.co.jp/fjava/javatips/170java055.html
369 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 17:22:22 ] Exception in thread "Thread-6" java.lang.ArrayIndexOutOfBoundsException: 8 at ipmsg.HelloWorldJNI.btoS(HelloWorldJNI.java:35) at ipmsg.IDManager.getPID(IDManager.java:71) at MainWindow.makeSortKey(MainWindow.java:270) at MainWindow$RefreshList.run(MainWindow.java:304) このエラーの意味がわからなくて困っています。 もしよろしければ教えていただけないでしょうか。
370 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 17:28:55 ] java.lang.ArrayIndexOutOfBoundsException
371 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 17:53:08 ] >>369 意味:バーカ、添字が8になってんぞ(藁
372 名前:デフォルトの名無しさん [2008/01/24(木) 19:27:31 ] Javaでデータベース(MySQL)を操作して予定などを管理するプログラムをEclipseで作っています。 Eclipse上では動くのですが、jarファイル化してjarファイルから実行しようとするとソフト自体は動くのですが、 データベースに接続できません。 どうしたらよいのでしょうか?
373 名前:デフォルトの名無しさん [2008/01/24(木) 19:42:04 ] エスパー募集中
374 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:51:27 ] >>372 エスパーします。 mysqlのjdbcドライバがjarを実行するときのパスに入っていません。 -cp オプションで指定しましょう。
375 名前:デフォルトの名無しさん [2008/01/24(木) 19:54:41 ] ありがとうございます。 今からやってみます。
376 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 22:19:08 ] >>371 無事解決しました。 ありがとうございました。
377 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 09:49:45 ] Ant の質問ここで良いかな? <property> って一度設定したら再設定できないんだけど <antcall> にパラメータのような 可変値を渡したい場合ってどうするの?
378 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 10:53:37 ] >>377 param ttp://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/CoreTasks/antcall.html
379 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:39:01 ] あらかじめ複数のタブがあり、あるタブが選択された瞬間に そのタブのウィンドウサイズを変更したいのですが、どのようにすればできるのでしょうか?
380 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:07:16 ] JTabbedPaneにaddChangeListenerしといて、stateChangedが来たらサイズを変えればいいんじゃないかな
381 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:34:42 ] >>380 ちょっと調べてみますね。 ありがとうございました。