- 1 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:18:14 ]
- ●公式サイト
Eclipse.org home www.eclipse.org/ Eclipse downloads home www.eclipse.org/downloads/ ●JDK JDK 1.4.2 java.sun.com/j2se/1.4.2/ja/download.html JDK 5 (1.5.0) java.sun.com/j2se/1.5.0/ja/download.html JDK 6 (1.6.0) java.sun.com/javase/ja/6/download.html ●関連サイト エクリプス - Eclipse Wiki (日本語) eclipsewiki.net/eclipse/ Eclipse Plugins eclipse-plugins.2y.net/eclipse/index.jsp Eclipse Plugin Central www.eclipseplugincentral.com/index.php
- 75 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:29:46 ]
- すみません。初心者なのですが…
Javaの場合、ひとつのプロジェクトの中に複数の(mainを含む)クラスを作る ことができますが、CDTの場合はこういうことできないのでしょうか? たとえば、現在はhelloプロジェクトの中にhello.cとhello.exe(ひとつのプロジェクト の中にひとつのmainを含むソースとexe)しか作ることができません。 プロジェクト名がexeの名前になるからみたいなのですが…
- 76 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:56:12 ]
- >>75
Eclipse関係無い。C/C++のお勉強しといで
- 77 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:57:43 ]
- >>75
それ(mainが全体で一つ)は、CDTじゃなくて普通にC/C++の仕様だ。 それ以上のことは適切なスレで聞いてくれ。
- 78 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:16:03 ]
- CDT関係の質問です。
C/C++でライブラリとくっ付けたソースコードをデバッグしたいのですが、 ライブラリ側にコマンドを投げるときにRaise Exceptionが発生してexeが落ちてしまいます。 ライブラリ側にはexportした関数を用意してあって、それの引数として変数( int hoge; 的な物) を渡して、それの戻り値を取得したいのです。 下のような感じで取得を行っているのですが、デバッグを行う際に ステップ実行で、C/C++側のmain部分でとまった場合、 実体が定義される前にIStackFrameには値が入ってしまっているので、 それが原因で落ちてしまうというのは理解できたのですが、 実体が定義されていなくても落ちないようにできるのでしょうか? どなたかご教授ください。 環境は eclipse 3.3.2 CDT 4.0.3 gdb 6.8.0 です。 public void handleDebugEvent(DebugEvent[] event) { for ( int i = 0; i < event.length ; i++) { Object source = event[i].getSource(); if ( source instanceof ICThread ) { ICThread thread = (ICThread)source; if(thread.isSuspend()) { try { IStackFrame stackframe = ((ICThread)source).getTopStackFrame(); if (stackframe instanceof ICStackframe) { String test = ((ICStackFrame)stackframe).evaluteExpressionToString("Func(hoge)"); System.out.println(test) } }catch(DebugException e) { e.printStackTrace(); } } } }
- 79 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:46:23 ]
- 文字を選択してCtrl+ドラッグでコピペしようとすると
横方向に勝手にスクロールしちゃうんですけど スクロールしないようにできませんか?
- 80 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 09:28:06 ]
- >>75は、一つのプロジェクトで複数の実行ファイルを作れないかということでは?
- 81 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:50:21 ]
- JavaでできてC++でできないものはないと思うぞ
と言ってみる
- 82 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:36:25 ]
- いや、初めてのプログラミング言語がJavaって人は増えてるよ。
- 83 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:17:41 ]
- ちょいと教えてくださいな
CTRL+Cで終了するようなコンソールアプリを作ってて、eclipseで 実行したときにeclipseのコンソールからCTRL+Cを入力することが できないんだけど、これはうちの環境が悪いんかな?それとも仕様? 2つくらい前のスレに出来るようなことが書いてあったんだけど ダメだったんで質問させてください。 環境はWindowsでeclipse3.2.0(AIOEclipse3.0.1)使用です。
- 84 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:21:41 ]
- >>82
ものが何々ができる の視点から 人が何々ができる に変わったアレンジは面白いな
- 85 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:22:28 ]
- >>83
EclipawのCTRL + CはEclipse用に作られているからだろう。 っていうかどうやって自分で作ったプログラム実行した?
- 86 名前:デフォルトの名無しさん [2008/06/06(金) 01:37:03 ]
- getter/setterを間単に作る方法はありますか?
private int _count;という変数がある場合に getCount(){return _count;}/setCount(int count){_count = count;} のようになることを期待しています。 private int count;の場合にはうまくいくのですが、上記の場合、 メニュー>ソースのウィザードを使ってはうまくいきません。 thisをつけるのが面倒なことと、ローカル変数とメンバ変数を見分けるために 先頭に_をつけるのがルールになっています。 VisualStudioでいうところのコードスニペットみたいなものは無いのでしょうか? getter/setterはよく使うので楽にしたいです。 Eclipseは3.3を使用しています。
- 87 名前:デフォルトの名無しさん [2008/06/06(金) 02:11:06 ]
- >>83
キーバインディングの設定を変えてなければ、 EclipseのコンソールではCtrl+Cはコピーのはず。 プラグイン(Wicked Shellなど)を入れて実現するっていう話?
- 88 名前:83 mailto:sage [2008/06/06(金) 04:57:22 ]
- >>85>>87
レスどもです。 実行は「実行」か「デバッグ」の「Javaアプリケーション」でやってます。 ログやらはコンソールに出て普通の文字は入力できるんですが、 コントロールコードは入力できないようです。 (EOFだけはCTRL+Zで入力できるようになってるみたいです) >>87さんが言ってるようにキーバインドでデフォルトなのでCTRL+Cは コピーになってました。 すみません、肝心の何をやりたいかを書き忘れてたんですが、 アプリ終了時にシャットダウンフックで後始末をしていて、その部分の 確認をeclipse上でしたい、ということなんです。 終了(Terminate)で終わらせるとシャットダウンフックが走らずにアプリが 終了してしまうため、なんとかならないものかと。 もしプラグインや別のやり方などでできそうならご教授下さい。
- 89 名前:デフォルトの名無しさん [2008/06/06(金) 05:04:51 ]
- >>86
ローカル変数とフィールドは色の違いで簡単に識別できない? また、"this"をつけるのはローカル変数と衝突する場合だけで それほど機会は多くない。それよりもメンバ変数を書く度に"_"を タイプしなければならないことの方が面倒だと思うけどなぁ。 Window > Preferences... > Java > Code Style > Code Templates で 生成されるコードを設定できるけど、 getCount(){return _count;}/setCount(int count){_count = count;} のようには出来ない。
- 90 名前:デフォルトの名無しさん [2008/06/06(金) 05:47:40 ]
- >>88
シャットダウンフックを強制的に呼び出したければ、 System.exit(0)を試験的に挿入すれば良いんじゃないかな? もしくは、デバッグ中に任意のコードを任意の箇所で実行する機能 を使っても良いと思う。 1) Breakpoint Propertiesダイアログを開く 2) Enable Condition をチェックする 3) テキストフィールドにコードSystem.exit(0)を書く
- 91 名前:86 mailto:sage [2008/06/06(金) 08:18:36 ]
- >>89
レスサンクスです。 確かにEclipse上であれば色でも分かるのですが、 TracなどのBTSやWinMergeからも簡単に見れるという点で_付きの方がよいです。 他にも_と打つだけでフィールドを補完候補に絞り込めますので _をつける方がメリットが多いと感じております。 蛇足ですが・・ VisualStudioの方が使い易いなぁと思いつつ、NetBeansはどうだろう?と試してみたところ NetBeansではイメージに近いことができるようでした。 いつの間にかかなり完成度高くなっていて驚きました。
- 92 名前:デフォルトの名無しさん [2008/06/06(金) 09:50:03 ]
- まあ、Eclipseは無料、Visual Studioは有料だから
Visual Studioが優れていて当然だけど・・。
- 93 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:58:29 ]
- Express Editionなら無料
- 94 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 10:37:29 ]
- >>86
設定の Java→コード・スタイル 「変数命名規則」の「フィールド」の「接頭語リスト」に _ を追加してから GetterおよびSetterの生成をやってみて。 VSのエディタなぞEclipseと比べればクソ。NetBeansも遙かに及ばない。 JavaエディタとしてはEclipseは最強。あくまでエディタとしてね。
- 95 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:32:29 ]
- >>91
アンダースコアの接頭辞はいつ見ても嫌な命名規則だな。 時代遅れじゃねえ? C++時代の汚物だろ。Javaに持ち込む必要性はまったくないわい。
- 96 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:34:35 ]
- >>90
> >>88 > シャットダウンフックを強制的に呼び出したければ、 > System.exit(0)を試験的に挿入すれば良いんじゃないかな? できればJUnitでやるべきものだろう
- 97 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:35:55 ]
- >>92
当然と思いきやなにかと機能的に中途半端なとこがあって 有料の癖にあれはないだろうってのはいくらかあったけどな
- 98 名前:デフォルトの名無しさん [2008/06/06(金) 15:03:18 ]
- >>95
オレも未熟なころは、そう思った。 あるオープンソースの巨大プロジェクトが、急にフィールド変数に _ を付け出したから 「なんだよ〜ダセェ〜」 とかバカにしてたけど >>91 の言うようにメリットもあって、単に見た目で嫌ってはダメだと思った。 _ が嫌なら $ だっていい。マイクロソフトみたいに m_ でもいいんだよ。 せっかくのメリットなのに、過去のくだらない固定観念に固執して意地を張ってると そのうち置き去りにされちゃうよ。
- 99 名前:デフォルトの名無しさん [2008/06/06(金) 19:48:09 ]
- StringBuilder sb = new StringBuilder(2000);
sb.append("<html>" + "<title>かけざんの苦苦</title>" + "<body>"); sb.append("<table>"); for (int i=1; i<=9; i++) { sb.append("<tr>"); for (int j=1; j<=9; j++) { sb.append("<td>" + i*j + "</td>"); // ←ココ } sb.append("</tr>"); } sb.append("</table>"); まぁ、こんなコードに出合ったワケですよ。 sb.append("<td>" + i*j + "</td>"); に注目してください。 これは、実はコンパイル時にこう展開されるんです。 sb.append( new StringBuilder("<td>").append(i*j).append("</td>").toString() ); なんか変です。StringBuilder の append の中に StringBuilder が生成されて さらに toString() つまり String オブジェクトに変換されてから、元の sb に append されるワケです。 sb を StringBuilder で宣言したのは、無駄なオブジェクトの生成を抑えて効率よく処理するためな筈なのに 結局は見えないところで String オブジェクトの生成・破棄がなされてたワケです。 無駄ですね。こんなおバカなコード書くのって恥ずかしいですよね。 じゃぁ実際どう書けばいいかというと、 sb.append("<td>").appned(i*j).appned("</td>"); なワケですが、これがメンドクサイ。いちいち ).appned( で連結するのがヒジョーにメンドクサイんです。 見た目も横に長〜いコードになりがちで、パッと見てわかりにくい。 なんか便利な方法は無いですか?みなさんは、せっせと ).appned( を書きまくってるんですか?
- 100 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:16:57 ]
- _は好きだが$は嫌いっつーか許せん
なので糞ウンコPerl死ね
- 101 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:18:19 ]
- s/糞ウンコPerl/糞PHPウンコPerl/
- 102 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:17:21 ]
- >>99
> みなさんは、せっせと ).appned( を書きまくってるんですか? はい。 String を + で加えていくと、>>99 のようになるのは、しょうがない。
- 103 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:19:29 ]
- >>98
> >>91 の言うようにメリットもあって、単に見た目で嫌ってはダメだと思った。 ダサいとか見た目の問題ではなく見やすさと可読性とトラブルの元になる危険性の問題なんだけどなあ。 > _ が嫌なら $ だっていい。マイクロソフトみたいに m_ でもいいんだよ。 > せっかくのメリットなのに、過去のくだらない固定観念に固執して意地を張ってると > そのうち置き去りにされちゃうよ。 その_とm_をつける手法が過去のくだらない固定観念に固執して意地を張ってることじゃないの。 メリットに挙げられている「Tracやwinmergeからも簡単に見られる」っていう理由も Eclipseの比較ビュー機能を使えば必要性を感じないし「_と打つだけでフィールド補完候補になる」も thisと打てば同様に補完候補にもなるし。打たなくてもctrl+spaceで補完候補に宣言したフィールドが出てkるし。 それでは_やm_をつける理由としては説得力に欠け過ぎだよ。 それでもまだまだ他にメリットはある?あるなら是非とも教えて欲しい。 グローバル変数もないんだし、よほど特殊な変数でもない限りそういう命名をする必要性が感じないな。 getter/setter用の変数かどうかなんてJavadocコメントでわかるようにするでしょ。 人や組織によって_やm_の命名規則が異なると混乱の元だし どうせならアノテーションつけたほうが利便性が高いんじゃないの?
- 104 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:28:52 ]
- >>99
そういうときこそテンプレートを自作するときだね。 StringBuilderのコーディングの面倒くささとは 直接は関係ないけどRope for JavaというStringBuilderよりも 高速な文字列処理クラスがあるよ。
- 105 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:33:54 ]
- >>99
StringBuffer 使うべきじゃないの?
- 106 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:46:40 ]
- >>99
つテンプレートエンジン ……って、ここ、JavaスレじゃなくてEclipseスレじゃねーか。
- 107 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 05:38:37 ]
- Eclipse昨日初めて入れてみたんだけど
約60秒ごとに一瞬CPU使用率が30〜50%くらい行って マウスカーソルが止まるくらい重くなるんだけど俺だけですか?
- 108 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 05:57:49 ]
- パソコン買い換えてください
- 109 名前:デフォルトの名無しさん [2008/06/07(土) 07:29:31 ]
- EclipseというよりJavaのガベージコレクションのせいです。
- 110 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 09:32:04 ]
- 本体メモリとか環境かけよ
- 111 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 11:49:12 ]
- >>107
何も操作しなくても周期的に起きるのか?
- 112 名前:デフォルトの名無しさん [2008/06/07(土) 12:22:05 ]
- >ダサいとか見た目の問題ではなく見やすさと可読性とトラブルの元になる危険性の問題なんだけどなあ。
 ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ 「見た目の問題ではなく」 と 「見やすさと可読性の・・・問題なんだけど」 の矛盾した文章みてワラタ。
- 113 名前:デフォルトの名無しさん [2008/06/07(土) 12:31:42 ]
- >>106
「テンプレートエンジン」 を知りませんでした。 ググってみたらJSPのようです。 やりたいのはJSPじゃなくJAVAのコーディングなんですが。 あと、例題では <html> とか買いてますがウエブアプリじゃありません。 html はウエブアプリ専用言語じゃ無いんですよ。 >>104 「Rope for Java」 はググっても出てきませんでした。 も少し調べてみます。 >>105 氏ね
- 114 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:52:57 ]
- >>113
刺ね
- 115 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:54:32 ]
- >>113
テンプレートエンジン=JSPとか お前の方が氏んだほうがいいよ
- 116 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:00:33 ]
- >>113
馬鹿は際限が無い
- 117 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:41:42 ]
- イジメかっこわるい
- 118 名前:107 mailto:sage [2008/06/07(土) 16:10:56 ]
- >>108 P4の2.23GHzだから古いといえば古いけど…十分じゃね?
>>109 そんなに頻繁にかつ定期的に起こるの? >>110 RAM1GB+Win2000SP4+Java1.6.0_05+Eclipse3.3.2+公式C++用プラグイン >>111 何故か起動直後は起きないんだけど、一度何かの操作をしたら 以降は画面上の全部のビューを閉じても関係なく起こり続ける。 何かが何なのかは? まあ俺だけなら俺が悪いんだからそれが分かるだけでいいやと思ってたんだ。 でもせっかくだから何か分かる人がいたら教えてくれると嬉しい。 俺もCPU優先度を低くして使い続けるからそのうち何か分かるかも。
- 119 名前:デフォルトの名無しさん [2008/06/07(土) 16:34:15 ]
- 「テンプレートエンジン」はソーステンプレートとデータモデルから
成果ドキュメントを生成するコンポーネントの総称。 言うまでもないがJSPではないしWebアプリ以外の用途にも使える。
- 120 名前:デフォルトの名無しさん [2008/06/07(土) 16:35:16 ]
- テンプレートエンジンApache Velocityを使った例:
***ソーステンプレートファイル(sample.vm) <table> #foreach($i in [1..9]) <tr> #foreach($j in [1..9]) <td> $kuku.getValue($i,$j) </td> #end </tr> #end </table>
- 121 名前:デフォルトの名無しさん [2008/06/07(土) 16:35:46 ]
- ***Javaソースコード
public class Sample { static public class Kuku { public int getValue(int i, int j) { return i*j; } } public static void main(String[] args) { try { VelocityContext vc = new VelocityContext(); Kuku kuku = new Kuku(); vc.put("kuku", kuku); StringWriter sw = new StringWriter(); Template template = Velocity.getTemplate("sample.vm"); template.merge(vc, sw); System.out.println(sw.toString()); sw.flush(); } catch (Exception e) { e.printStackTrace(); } } }
- 122 名前:デフォルトの名無しさん [2008/06/07(土) 16:46:12 ]
- >>118
eclipse.iniファイルを編集してヒープサイズを 十分大きくすれば良いんじゃないかな。
- 123 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:13:44 ]
- 以前、EclipseでPHPをやろうと思い、PDTを入れたのですがPHPサーバーの設定をしようとすると
「現在表示されているページに、無効な値が含まれています」 というエラーが表示され、内部ブラウザが使用できませんでした。 Eclipseのバージョンを下げてみたり、日本語化する前にPHPサーバーの設定をしてその後日本語化したり、 ttp://homepage.mac.com/tuyano/Tankoubon/Eclipse3_3-php.html のページの方法を試してみたりしたのですが、解決できませんでした。 仕方なく使用を諦めていたのですが、今日設定をしてみたら、何故かPHPサーバーの設定ができ、内部ブラウザも使用できました。 今後このままEclipseでPHPの製作は可能だと思いますでしょうか? 以前やった時は延々とエラーがでていたので、未だにいつエラーが出るのか怖くて設定すら開くことができません。 又、今後再びこのような症状がでた時の対処法が分かる方はその方法もよろしくお願いします。
- 124 名前:デフォルトの名無しさん [2008/06/07(土) 23:36:27 ]
- 質問です。色々調べてみたのですが分からなくて。。。
eclipseを2つのパソコンにインストールしました。 1つのパソコンで打ったソースをフォルダなどに保存し、 もう一つのパソコンで見たいのですが出来ませんでした>< どうしたら見れるようになりますか? どなたか教えて頂けると嬉しいです。
- 125 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:45:48 ]
- >>124
Windows ファイル 共有 でググレ。
- 126 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:59:52 ]
- 複数人で同一のプロジェクトを管理するなら、
専用のソフトをおすすめします。
- 127 名前:デフォルトの名無しさん [2008/06/08(日) 01:28:12 ]
- すいません。
もう少し詳しく説明してもらえると嬉しいです。。 あ、複数ではしないので専用は大丈夫かと。
- 128 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 01:46:08 ]
- >>127
>>125
- 129 名前:86 mailto:sage [2008/06/08(日) 02:39:33 ]
- >>94
できました。ありがとうございます。 >>103 「Eclipseの比較ビューを使えば・・・」の時点でうちでは駄目なんです。。 _は1文字でthisは4文字です。thisは一度入力してから消すのもメンドイです。 thisを付けると横に長くなるので見辛いです。 自分にとってはこれが十分な理由ですね。 Javaが最初に習った言語だったので固定観念にとらわれているということもないと思います。 this.で初めてどこかのソース触って_派に改宗、最初は>>98のようにダサいと思ってた。 いっその事、言語レベルで決まっていればいいのに・・ Rubyの@fieldみたいに
- 130 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 09:53:30 ]
- 十分とらわれてるだろw
- 131 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:02:34 ]
- Rubyの場合プリコンパイルで「@」が「this.」に置き換わってるだけなんだよね
- 132 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:18:36 ]
- >>129
eclipseの設定で「ローカル変数がフィールドを隠蔽していたらエラー」みたいな設定にでもしておけよ。
- 133 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:36:20 ]
- >>131
JRuby? CRubyについてならそれはダウト
- 134 名前:107 mailto:sage [2008/06/08(日) 19:23:26 ]
- Javaアプリはほとんど使う機会がなかったから検索しまくってやっと少し分かってきたよ。
ログとるとメモリ使用量に関係なく1分毎にFull GC (System)が実行されてるらしい。 というわけで-XX:+DisableExplicitGCを指定すると止まった。 勝手に止めていいのか不安だけど一応解決しました。
- 135 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:50:14 ]
- >>113
質問しておいて、 最後に死ねはねえだろ。お前が死ね!ファック野郎!
- 136 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:51:41 ]
- >>120
そういえばSimteecプラグインという奴があったきがする
- 137 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:53:36 ]
- >>123
> 以前、EclipseでPHPをやろうと思い、PDTを入れたのですがPHPサーバーの設定をしようとすると > 「現在表示されているページに、無効な値が含まれています」 > というエラーが表示され、内部ブラウザが使用できませんでした。 プロキシの設定は? > Eclipseのバージョンを下げてみたり、日本語化する前にPHPサーバーの設定をしてその後日本語化したり、 > ttp://homepage.mac.com/tuyano/Tankoubon/Eclipse3_3-php.html > のページの方法を試してみたりしたのですが、解決できませんでした。 > 仕方なく使用を諦めていたのですが、今日設定をしてみたら、何故かPHPサーバーの設定ができ、内部ブラウザも使用できました。 > 今後このままEclipseでPHPの製作は可能だと思いますでしょうか? わかんなかったらPHPEclipse使え
- 138 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:56:10 ]
- >>129
> 「Eclipseの比較ビューを使えば・・・」の時点でうちでは駄目なんです。。 理由は? > _は1文字でthisは4文字です。thisは一度入力してから消すのもメンドイです。 > thisを付けると横に長くなるので見辛いです。 それだけの理由でやると Eclipseのテンプレートも使いこなせないクチかね。 getter/setterの自動生成機能がどこかにあったと記憶しているが。 リファクタリングだったかな。 > Javaが最初に習った言語だったので固定観念にとらわれているということもないと思います。 > this.で初めてどこかのソース触って_派に改宗、最初は>>98のようにダサいと思ってた。 また同じことを。ダサいという理由だけではなく利便性があるのに。
- 139 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:04:42 ]
- >>132
それだ。それやっとくと、 黄色い波線をクリックするだけで勝手にthisつけてくれる。 だったらアンダースコアなんていらないな。 Checkstyleプラグイン、FindBugsプラグインもついでとして 入れておくといいな。
- 140 名前:デフォルトの名無しさん [2008/06/08(日) 20:53:03 ]
- >>139
Preferences -> Java -> Compiler -> Errors/Warnings -> Code Style -> Unqualified access to instance field じゃねーかと。 まぁ、プロジェクトの規約が許すなら接頭辞つけてもどっちでもいいと思うけど。 宗教論争で時間使うほうが間抜けだし。
- 141 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:15:41 ]
- VisualEditorプラグインについて質問させて下さい。
JButtonなりを継承してオリジナルのパーツを作って それをD&Dで貼り付ける時、サイズを固定させる事って 可能でしょうか? 自分でサイズプロパティをいじるのは無しの方向で・・・
- 142 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:30:53 ]
- >>99
遅レスだが、それって無駄な生成ではあるかもしれないけど、 それほど馬鹿なコードじゃない AにBをappendするとき、多くの場合、Aが長いから問題なのであって、 Bの部分は別にちょっと無駄なコードが入っても構わない
- 143 名前:86 mailto:sage [2008/06/08(日) 23:54:33 ]
- >>130
確かにw >>132 ありがとうございます。そういうのがあるのですか、参考になりました。 >>138 ご意見ありがとうございます。 >理由は? メンバのバックグラウンド的な問題です。Emacs使いがいるとか >Eclipseのテンプレートも使いこなせないクチかね。 はい、現状そういうクチです。 >また同じことを。ダサいという理由だけではなく利便性があるのに。 まだ、その利便性が実感できてないようです。 _付きの方が利便性があると感じます。 this.が_よりも冗長に見えるのです。 _付きの場合、補完時にprivateフィールドメンバだけ補完することができる。 this.の場合、全てのメンバが候補に出てしまいます。 >>139 Checkstyleプラグイン、FindBugsプラグイン入れてるんですけど、 デフォルトのSun規約使って、リファクタ機能使うと (this.xxx = xxx)のようなコードが生成されて警告でるので胃が痛くなりました。 >>140 慣れって言うのは結構大きいですよね。 宗教論争は本位ではないので、適当に決めたいと思います。
- 144 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:00:08 ]
- >>143
this.はJavaの言語仕様で保証されている書き方。 それに沿わないやり方をするのは自由だが アンダースコアの使い方が異なるソースと出会ったときに苦労するだけだね
- 145 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 04:28:24 ]
- >>143
thisよりも_がいいっていってるおまいは、 ハンガリアンの短縮記法が好きなのか。 短いのが好きだったらJavaよりもC++のほうが向いてる。 その理屈だと、 クラス宣言が面倒くさいから関数だけで短く済むC++のほうがいいとも言えてしまうぞ。 Javaのクラスやメソッドはやたらと長い名前のが多いから短縮できるCやC++のほうがいい とかな。
- 146 名前:デフォルトの名無しさん [2008/06/09(月) 11:29:29 ]
- > ***ソーステンプレートファイル(sample.vm)
> <table> > #foreach($i in [1..9]) > <tr> > #foreach($j in [1..9]) > <td> $kuku.getValue($i,$j) </td> > #end > </tr> > #end > </table> で、?これのどこが、javac でコンパイルできるわけ? バカじゃねーの?
- 147 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 12:00:06 ]
- そうだな、バカだな
146が
- 148 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:57:58 ]
- >>146
お前はアホだ。Velocityで実際にサンプルプログラムを実行してみることだな
- 149 名前:デフォルトの名無しさん [2008/06/09(月) 14:30:24 ]
- >>147
「+」 一文字を 「).append(」 に書き換えるだけのために >>120-121 はむご過ぎるだろ。 テキストエディタでイッパツ置換した方が、まだマシ。 1000本のソースコードを全部、1から書き直せるほどヒマ人じゃ無ぇ! sb.append( new StringBuilder("<td>").append(i*j).append("</td>").toString() );  ̄ ̄ この余分な new を削ってオブジェクトの生成破棄を少しでも抑えようと苦労してるのに Velocity など使えるか! Velocity 内部でどれだけオブジェクトの生成破棄が繰り返されてるのか Velocity のソースコードをちょっと覗いてみればすぐわかるだろ。 隣町のスーパーで10円安いモヤシが売ってるから、わざわざ電車賃100円使って買いに行くようなもん。 3億円の宝くじを当てるために、くじを100億円分買うようなもん。当たってもちっとも嬉しくない。 費用対効果を考えろ、っちゅうの! おまいら普段からそんなぬるい仕事してるんか?頭悪すぎ!まるで、莫大な赤字を生み出した大阪府職員やな。 で、土日かけて perl で置換スクリプト書いてみた。 "文字列" + "文字列" だけ避けて、それ以外の 「+」 を 「).append(」 に置き換えるという単純なスクリプト。 置換した結果のコードを javac にコンパイルさせて、元のソースコードはそのまま手付かずに残るから リポジトリと同期とるときに支障が無い。 これを ant の javac タスクに executable= で呼び出すよう細工してやれば、今までの環境をほとんど変えずに済む。 ちょっと自慢話みたいになってしまったが、おまいらは一生、ぬるい仕事してろ。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:46:23 ]
- >>149
そんな後で見た奴が首ひねるコード書かれて自慢されても・・・・ Velocityは本末転倒でお遊びコードだとしても、 普通に、"+" 演算子使うのが普通の仕事で使うコードです。 チューニングは、実際に問題が出ている部分で、しかもシンプルに行うものです。
- 151 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:49:53 ]
- >>149
> 1000本のソースコードを全部、1から書き直せるほどヒマ人じゃ無ぇ! 千本? 今までどうしてきたんだか。 とりあえずリファクタリンゴ > > sb.append( new StringBuilder("<td>").append(i*j).append("</td>").toString() ); >  ̄ ̄ > この余分な new を削ってオブジェクトの生成破棄を少しでも抑えようと苦労してるのに > Velocity など使えるか! > Velocity 内部でどれだけオブジェクトの生成破棄が繰り返されてるのか そこでstaticなVelocityContextで
- 152 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:50:50 ]
- あ、1から作り直すのがOKならvelocity(freemarker etc...)もお遊びじゃないよ。
それなら、>>99のコードは俺でも嫌になる。 テンプレート化する。 というか、他にもあるだろうし、同じような場所が。
- 153 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:51:04 ]
- >>149
1000本もあるほど 大規模な文字列処理やんだったら 以前説明があったRopes for Javaがマジお勧め。 パフォーマンスも抜群。Stringの+よりもStringBufferよりもStringBuilderよりも高速。 脅威の速さ!
- 154 名前:デフォルトの名無しさん [2008/06/09(月) 20:04:39 ]
- >>153
「Ropes for Java」 について少し調べてみました。 StringBuilder の append() の中に + を書いてしまうのが問題なのでして・・・ (ほんとは 「+」 じゃなく 「).append(」 と書いてほしい) www.ibm.com/developerworks/jp/java/library/j-ropes/ ↑に、こんなサンプルが載ってますが リスト 2. ロープのミューテーション Rope r = Rope.BUILDER.build("Hello World"); r = r.append("!"); // r is now "Hello World!" ←コレ r = r.delete(0,6); // r is now "World たとえロープを導入したとしても ).append( を書くのがメンドウなのは変わりないです。 おそらくみんな、 r = r.append("<td>"+ i*j + "</td>"); という具合に、ロープの append の中に + を書くでしょう。 これがどうコンパイルされるのか、わかりますよね?おそらく、こんなでしょう。 r = r.append( new StringBuilder("<td>").append(+i*j).append("</td>").toString() ); 結局、StringBuilder 使うのと何ら変わりないんです。 それにしても、www.ibm.com/developerworks/jp/java/library/j-ropes/ は パフォーマンスの比較で StringBuilder を対象としていないのはワザとかな。 遅いと評判の StringBuffer としか比較しないでパフォーマンスが高いと思わせるのは まるで悪質通販みたいだな。右端の囲みの中に小さく目立たないように書いてはいるが。
- 155 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:40:51 ]
- というか、
"hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge hogehogehogehogehogehogehogehogehogehogehogehogehoge"+"hoge" というコードで、足される方の "hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge hogehogehogehogehogehogehogehogehogehogehogehogehoge"の方が newで生成されたら大ダメージだけど、足す方の"hoge"が生成されても別に ダメージじゃないだろ appendをしていくと、足される方が長くなっていくから、足される方が生成されるのはまずい しかし、足す方をnewで生成してもたいしたダメージじゃない 結局、>>99のコードは多くの場合、気にする必要はない
- 156 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:44:26 ]
- おいおい、リテラル同士を+でくっつけてもStringBufferやStringBuilderは使われねーよ
"あ"+"い"はコンパイル時に"あい"になってるんだぞ
- 157 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:12:48 ]
- >>156
いまどきの Java コンパイラは、 "あ" + "い" を、 (new StringBuilder()).append("あ").append("い") に、コンパイル時に変換してくれるじゃないんだっけ? www.javainthebox.net/laboratory/J2SE1.5/TinyTips/StringBuilder/StringBuilder.html の受け売りだけど。 最適化オプションで、バリバリ最適化するようにしたら、 いきなり "あい" になっちゃうかもしれないけど。 試したことないので、詳しい方教えてください。
- 158 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:24:11 ]
- System.out.println("あ"+"い");
をecjでコンパイル(というか、eclipseでビルド) で、クラスファイル見たら public static void main(java.lang.String[] args); 0 getstatic java.lang.System.out : java.io.PrintStream [16] 3 ldc <String "あい"> [22] 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24] "あい"になってるよ。 まあ、そうだと思った。 ちなみに、MacOSX 10.5 の Java6上で動くeclipse3.3.1です。(ecjだからOS関係ないかな?)
- 159 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:37:58 ]
- > sb を StringBuilder で宣言したのは、無駄なオブジェクトの生成を抑えて効率よく処理するためな筈なのに
結局、これが間違い 「オブジェクトの生成を抑える」んじゃなくて、「長い文字列データの複製を抑える」が正しい それに、>>99で行われてるオブジェクトの生成・破棄の場合、文字列データそのものは破棄されていないから たいしたネックにはなってない
- 160 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:11:31 ]
- 質問よろしいでしょうか?
EclipseのEuropaを使っています。OSはUbuntu8.0.4です。 コンパイラはjava6です。 java3dを使うべく sourceforge.net/project/showfiles.php?group_id=186307 ここで java3declipse-1.5.1.zip を落として、/usr/local/eclipseに入れました。 java3d-eclipse.wiki.sourceforge.net/Installing+java3d-eclipse+plug-in ここに書いてあるとおりにアーカイブサイトを指定して、 インストールしました。 /usr/local/eclipse/pluginsには java3d_1.5.1.jar java3d_linux_i586_1.5.1.jar が入っています。 これをプロジェクトのビルドパスの構成から 外部JARの追加でjava3d_1.5.1.jarを追加しました。 それでプロジェクトに含まれるコードに import javax.media.j3d.*; と書いたのですが、赤線が出て、どうやらライブラリが読み込まれていないようです。 もちろん自動補完も出来ません。 他に足りない作業があるのでしょうか? よろしくお願いします。
- 161 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:45:24 ]
- core ~ というほうは無視?
- 162 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:52:38 ]
- coreも必要なんですか?
私のいれたプラグインを入れたら十分であるように思えましたが。
- 163 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:53:00 ]
- >>157
違う。"あ" + "い" は必ず "あい" になることが言語仕様レベルで規定されてる。 Java言語仕様第3版 - 3.10.5 文字列リテラルより: > 長い文字列リテラルは、小さく分割後、文字列連結演算子 + (§15.18.1)を > 用いた式(括弧で囲むこともできる)として記述することができる。 (略) >・定数式(§15.28)を用いて生成される文字列は、コンパイル時に生成され、 > リテラルであるかのように扱われる。 って、だからここはEclipseスレだと(ry
- 164 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:03:33 ]
- >>163
だから苦しいながらも、ejcで検証したんだよ><
- 165 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:10:38 ]
- >>164
それだと、コンパイラの実装がたまたまそうだったのか、仕様なのか区別できないじゃない。 実際、 > (ecjだからOS関係ないかな?) って確証が持ててなかったわけだろ?
- 166 名前:デフォルトの名無しさん [2008/06/10(火) 00:17:50 ]
- おいおいお前ら、土日かけてperlで置換スクリプトを書いた>>149に
一言ぐらいかけてやれよ
- 167 名前:デフォルトの名無しさん mailto:cookiejar [2008/06/10(火) 01:41:39 ]
- わかった
本人乙
- 168 名前:デフォルトの名無しさん [2008/06/10(火) 04:15:46 ]
- >>149さんありがとうございました
- 169 名前:デフォルトの名無しさん [2008/06/10(火) 05:12:58 ]
- >>149
appendを書くのが面倒くさいとか読みにくいとかいう理由で +からappendへの置換スクリプトをいちいちビルド時に走らせる なんてあり得ない。 ビルドのパフォーマンスが低下することと、デバッグ時にコードが 一致しないことから、却下。 保守性の観点から、htmlをjavaのコードの中にハードコーディング するのではなくテンプレートとして分けて扱う方向性はあり得る。
- 170 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:03:29 ]
- >>167
>>166 は >「+」 を 「).append(」 に置き換えるという単純なスクリプト を書くためにわざわざ土日を費やす無能な >>149 に対する皮肉だろ
- 171 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:07:36 ]
- いやいや、いい練習になって良かったじゃないかw
- 172 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:22:52 ]
- >>149
ご苦労だった。皆の気持ちが一つになれたよ! ありがとう。>>149 そして、頑張れよ。 あ。でも、うちのプロジェクトのビルドにそれを潜ませるのは勘弁して下さい。 >>169 次世代スレだと、ここからヒアドキュメントの話に飛ぶんですが 何か、こういう流れでホッとする。
- 173 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:25:08 ]
- >>158
System.out.println("あ"+"い"); は、"あ" と "い" は定数でコンパイル時に値が確定するから、 コンパイル結果は "あい" と最適化されるんじゃないの? コンパイル時に値が確定されない文字変数は、+ でくっつけるようなソース書いても、 コンパイル時に .append() に変換されるんじゃないの? 例:↓みたいなソース public static void main(String[] args) { String foo = args[0]; String bar = args[1]; System.out.println(foo + bar); } というか ecj は知らんが jad でやったら、 System.out.println() の行は、 System.out.println((new StringBuilder()).append(s).append(s1).toString()); になった。 public static void main(String[] args) { String foo = "あ"; String bar = "い"; System.out.println(foo + bar); } も、↑と同様。 public static void main(String[] args) { System.out.println("あ" + "い"); } は、System.out.println("あい"); になった。
- 174 名前:デフォルトの名無しさん [2008/06/10(火) 14:12:43 ]
- すみませぬ。ちょっと質問です。
現在MinGWにてC++を開発して JNI連携でeclipseのJAVAで実行しようと考えているんです。 MinGWでdllを作って中覗くと、 クラス名が「Java_HelloWorldJNI_sayHelloWorld@8」みたいに 「@+数字」が付いてしまいます。 こうなるとネイティブメソッド宣言がエラーで出来なくなっちゃいますよね? こんな感じ ⇒ public native String sayHelloWorld@8(); これはどのように回避すればよろしいのでしょうか・・・
- 175 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:37:02 ]
- >>174
--add-stdcall-alias
|

|