ToDo:
Javaで書かれたアクションを含まないJavaCCのファイルから、構文木を生成するJavaのアクションを含むJavaCCのファイルを生成するツールらしい。同様のツールにJavaCCに付属のJJTreeがあるが、どの程度違うのか気になる。
ものがたりの過去のエントリ経由で。 IKeJIがCoco/Rが使いにくいと言うので、もっと良さげなパーザジェネレータを探していたところ見つけた、Java/C#のコードを生成するLL(k)パーザジェネレータ。複数個のトークンを先読みする必要がある場合でも、何個先読みすればよいかを自動で判断してくれるようだ。JavaCCでは、複数個のトークンを先読みするときは、明示的に書かなければならないことを考えると、結構便利かも。とりあえず今週末にでも早速試してみよう。
IBM developerWorksの記事。改善が必要なXMLフォーマットについて、悪いXMLフォーマットを例として取り上げて解説している。良いXMLフォーマットが何かというのはあまり意識したことが無かったので参考になる。
この記事では、問題のあるXML文書の条件の例として、
しかし、最初の2つについては特に異論は無いが、3つ目については違和感を感じた。一般論としては理解できるが、3つ目の条件を避けようとすれば、属性の代わりに何段にもネストした要素として表現することになるので、文書がやたらに長くなり、かえって読みづらくなることがあるのではないかと思うからだ。記事でも改善を行うことによって文書が長くなる点については書かれているが、そちらの方が文書としてより読みやすくなり、クライアントプログラムにとっても処理しやすいので良いという主張のようだ。より短くてシンプルな形式が必要なのであれば、XSLTで変換すればいいとも述べられている。
確かに、属性の内容が構造を持っている場合、そのフォーマットを知らなければ文書の内容を理解できないので、改善した方が読みやすくなるというのは理解できなくは無いが、どうも釈然としない。
Thinkpad X40に標準で付属のバッテリーの稼動時間が短くて不便していたので、大容量バッテリーを購入。これでやっと、外出するときも思い切りノートパソコンが使える。
授業終了後、TEXで東京へ。途中、道がわからなくて迷ったが、なんとか開始までに到着できた。以下、各発表の一言感想。ちゃんとしたまとめは既に他の参加者の方が書かれているようなので、テキトーに。というか、発表中にメモを取っていなかったので、ちゃんとしたまとめは書けない。
高林さんの基調講演(?)。高林さんの発表を聞くのは今回が初めてだが、笑いを取るのも含めて語りがすごく上手い。スライドの構成も見事で、特に階層図でWeb 2.0とWeb1.0にBinary 2.0があるのは爆笑してしまった。
ひげぽんさんによるMona OSの簡単な紹介とデモ。動画再生のデモが動作しなかったのは残念。
Cで無理やりリフレクションを行うという凄まじい話。低レベル過ぎ(褒め言葉)。リフレクションを使いたければJavaを使えというのは却下ということだが、自分ならJavaを使ってしまうなあ。バイナリアンへの道は険しい。
GTK+のオブジェクトの状態をグラフィカルに表示、変更したりするためのツールG-Inspectorの実装についての話。GTK+がサポートしているメジャーな言語がAda、Eiffel、Haskell、Smalltalkって…。
中村孝史さんの発表。g++の例外をC言語から無理やり捕まえようというお話。基本となるアイデア自体はしごく真っ当で、それほど驚きは無かったが、実現するにあたってC++のname manglingルールを覚えるとか、いろいろ無茶なことをしているのが笑った。
首藤一幸さんの発表。Core Warsというゲームと、最近のJava VMで使われている自己書き換え技術についての紹介。最近のJava VMが内部で自己書き換えをやっているというのは、事実としては知っていたが、実際にどんな場面で行っているかというのはほとんど知らなかったので、非常に新鮮だった。
八重樫剛史さんの発表。FPGAを使って、超低レベルなことをしましょうというお話。史上初のgdbプレゼンは感動的だった。
大和正武さんの発表。Etherealに触発された開発したというBinarealの紹介。普段、バイナリを直接いじることはほとんど無いので実感はわかないが、しょっちゅうバイナリを格闘する人にとっては便利そう。
野首貴嗣さんの発表。バイナリシグネチャについてのお話。
鵜飼文敏さんの発表。実行時にプロセスを再起動させずにパッチを当てる技術であるlivepatchについての解説。システムコールに疎い自分にはいまいちピンと来ないところが多かったが、凄そうというのは伝わった。あと、タイマー+プログレスバーでプレゼンの各ページに割く時間が管理されていたが、これは短い時間で確実に最低限のことを伝えるのに上手い方法だと思った。
後藤正徳さんの発表。実行時のバイナリ書き換えを、プロセスのメモリを直接書き換えるのではなく、ファイルを書き換えて行っちゃおうというお話。Linuxでは、そのままではこれができなかったので(Solarisではそのままでできるとのこと)、カーネルにパッチを当ててコンパイルしたらしい。
よしおかひろたかさんの発表。参加者層を考えると、最初のメモリの速度がCPUに比べて云々の話は削って、すぐに本題に入っても良かったんではなかろうか。
BEROさんの発表。QEMUのJITコンパイルの方法についてのお話。全然時間が足りてなくて、途中で終わっちゃったような感がある。もう少し先まで聞きたかった。
g新部裕さんの発表。ブートローダに一通りのプロトコルスタックを実装したというお話。
全体の感想としては、自分の今まで知らなかった世界を知ることができて、楽しめたが、時間が足りない発表が多かった気がする。平日ということで開始時間が遅いため仕方が無かったのだろうとは思うが、もっといろいろ聞きたかったというのが正直なところだ。ただ、あまり長くてもだれていた可能性もあるので、実はこれくらいでちょうどいいのかもしれない。
カンファレンス終了後、ささださん、artonさん(実はこのときはartonさんとは気づいていなかったが)、k.inabaさんたちと一緒に近くの中華料理屋で2次会。k.inabaさんたちと、Binary 2.0らしくも無く言語の話で盛り上がった。もっといろいろ話をしたかったが、終電の時間が迫っていたため、12時頃に解散することに。
2次会終了後、そろそろ帰ろうとしていたところで、ささださんから、これから農工大へ行くので暇なら来ないかとのこと。まだしゃべり足りなかったこともあって、ささださん、西山さんと共にそのまま農工大へ。ささださんの所属研究室到着後、OOPSLA2005の論文集?を読んだり議論した後、A.M.3時頃になってさすがに眠気に耐え切れなくなり、就寝。
翌日は、EclipseプラグインやJavaのクラスローダ、Groovyの組み込み方法などについて説明したり、自分のプロジェクトの今後の方向性やプレゼンのコツについていくつかアドバイスをもらったりした。プロジェクトの方向性については、自分でも決めかねている部分があるので、いろいろアドバイスしてもらえるのはありがたい。
帰る前に、農工大と言えば、生協の白石さんということで、掲示板に案内してもらった。掲示板には、大量の質問とそれに対する白石さんの返答が書き込まれており、白石さんという人物は確かに存在しているのだなあということが実感できた。
ECMAScript4のnamespaceの仕様を調べるために、ECMAScript4の仕様を探しているのだが、見つからない。ECMAの公式ページで見つかるのは、ECMAScript3や、E4Xなどの仕様で、ECMAScript4に関するものは無いようだ。正式な仕様になる前の提案なら、ここにあるのだが、書かれた更新された時期が20022003年とかなり古いようなので、実際のECMAScript4の仕様とは違っている可能性がある。
ひょっとして、ECMAScript4の仕様はまだ正式には決まっていないのだろうか。しかし、だとするとActionScript32(ECMAScriptベースらしい)にあるクラス定義などの機能は一体何なんだろう。
12月5日追記:ActionScript2については、Macromediaのページ内に以下の記述が見つかった(下線は独自に追加)。
Version 2 of the Macromedia Flash MX 2004 component architecture is written entirely in ActionScript 2, an enhanced version of the ActionScript language derived from the ECMAScript Edition 4 Netscape Proposal and JavaScript 2.0 Proposal.
Netscape Proposalというのは、おそらく上で挙げた提案のことだろう。ということは、ActionScript2はECMAScript4が標準化される前の提案の段階で派生したものということか。
ものすごく久しぶりに、Onion開発日記らしい話題。
今までのOnionでは、インタフェースの実装やインタフェースの継承を行うためにconformsというキーワードを使っていた。例えば、クラスAがインタフェースBを実装する場合、以下のようになる。
class A conforms B {
}
しかし、インタフェースの実装という比較的よく使う機能に長い名前を割り当てるのは良くないと思っていたので、もっと簡潔な名前として"<:"という記号を使うように変更することにした。この記号は言語仕様などの記述でサブタイプ関係を表現するためによく使われる記号であるし、文字数も2文字と少ないので適当だと思う。
あとは、クラスの継承もextendsではなくて、もっと簡潔な名前を使うようにしたいのだが、どうしたものか。
しかし、現在のところほぼ自分くらいしかユーザがいない(笑)言語なので問題無いものの、他の人にも幅広く使ってもらいたいなら、このようにちょっとした理由であまり構文を変更するのはどうかという気がする。後で構文を変えたくならないように、構文を決定できるのが理想なのだが、なかなかうまくいかない。悩ましい。
Eclipseのプラグインを手軽に書くことを目的としたスクリプト言語らしい。一瞬ネタがかぶったかと思ってドキっとしたが、主眼はあくまでもプラグインを書くことであり、Stormのようにバッチ処理を手軽に書けるものではないようなので、ホッとした。
レンダリングがかなり高速になったと聞いて、インストールしてみた。
いくつかのページを開いてみると、確かに以前と比べてかなり高速にページが表示されるようになっている。特にスラッシュドットジャパンは、以前は表示されるのに若干時間がかかってストレスを感じることが多かったが、1.5ではかなり高速に表示され、実に快適だ。
_ Takashi [> インタフェースの実装という比較的よく使う機能に長い名前を割り当てるのは良くない そんなものはIDEやエディタが..]
_ みずしま [> そんなものはIDEやエディタが補完してくれるものなので, > 長いかどうかはあまり関係ないと思います. IDE..]
_ Napolian Netherton [ * * * * * * * * * * * * * * * * * * * ..]
_ mia matures teens [ e sessomestruazioni pippe gratis teens casalinghe calde..]
_ credit cards with high cash advance limit [ hotel carrusel cancun free mp3 decoder mature bocchino ..]
Java News経由で。 以前紹介したLaunch4jと同系統の、jarファイルからexeを生成するツール。コマンドラインで動作するのと、余計な一時ファイルを生成しないなどの点でLaunch4jとは異なるようだ。また、生成したexeをWindowsサービスとして動作させることもできるらしい。ソフトウェアの自動ビルド手順に組み込むなら、Launch4jよりこちらの方が使いやすいかも。
これで検索してきた人は、おそらく大学関係者なのだろうが、いったい何が知りたいのだろうか。ちなみに、自分は解析学で留年という事態はかろうじてまぬがれた。
今日は、コンパイルエラーの個数を表示するコードを追加した。これで、コンパイルエラーがあった場合、末尾にエラーの個数が表示されるようになった。例えば、以下のようなソースをコンパイルしようとすると、
foo = "Foo"; foo = 1; bar = 1.0; bar = "Bar";
次のようなエラーメッセージが出力される。
CompileError.on: 2,7: 型 java.lang.String が期待されている箇所に、型 int を使用
しました。
foo = 1;
^
CompileError.on: 4,7: 型 double が期待されている箇所に、型 java.lang.String を使
用しました。
bar = "Bar";
^
2 個のエラーが発見されました。
_ みずしま [はい。7文字目(7カラム目)っていうことです。どんな形式がいいかよくわからなかったので、行番号、カラムの順に出せばま..]
_ ささだ [なんか知らんけど,それだと秀丸とxyzzyでは飛べます.他も同様? 由来はなんだろ. ]
_ Danl Ash [ * * * * * * * * * * * * * * * * * * * ..]
_ gay trolas [ favoloso infermiera sex sexy puercas gay pompini violen..]
_ omni cancun hotel 26 villas [ gr solaris hotel cancun tcs decoders bloccare pagina in..]
Onionでは、トップレベルに関数を定義できるのだが、現在のOnionでは、それはObjectのサブクラスのインスタンスメソッドになる。例えば、ファイルFactorial.onに以下のようなスクリプトを記述すると、
/*
* 階乗を計算する。int型のnを引数に取り、その数の階乗を
* int型で返す。
*/
def fact(n :int) :int {
/*
* 条件式には()が必要ない。その代わりにthenとelseの部分に
* が必要。
*/
if n < 2 { return 1; } else { return n * fact(n - 1); }
}
内部的には、次のようなクラス定義に変換される。
class FactorialMain {
public: //OnionはC++方式のアクセス指定。何も指定しなければprivate
/*
* クラス内部のメソッド定義にはdefは必要無い。
*/
fact(n :int) :int {
if n < 2 { return 1; } else { return n * fact(n - 1); }
}
}
しかし、Groovyのソースのorg.codehaus.groovy.control.CompilerConfigurationクラス中にscriptBaseClassというフィールドがあるのを見て思いついたのだが、コンパイル時のオプションで、トップレベルの関数の属するクラスのスーパークラスを指定できると便利なのではないだろうか。例えば、アプレットをスクリプトのスーパークラスとして指定できると、明示的にアプレットのサブクラスを作るよりも簡潔な、次のような形でアプレットを記述できることになる。
import {
/*
* java.awtパッケージの全てのクラスをimport。
* Javaのimport java.awt.*;とほぼ同じ。
*/
java.awt.*;
}
/*
* java.applet.Applet#init() をオーバーライド
*/
def init {
}
/*
* java.applet.Applet#start() をオーバーライド
*/
def start {
}
/*
* java.applet.Applet#paint(java.awt.Graphics) をオーバーライド
*/
def paint(g :Graphics) {
}
Onionのコンパイルエラーの出力フォーマットは、
ファイル名:行番号,列番号: ...
という形になっていたのだが、ささださんから、12/7の日記に対するツッコミで、一般的なエディタで飛べる
ファイル名:行番号: ...という形にする方が良いという指摘を受けたため、自分の一番良く使うエディタであるvim(gvim)で調べてみた所、確かに
ファイル名:行番号:
という形式のエラーメッセージから、エラー行にジャンプ可能であることがわかった。
この形式が標準的なものかどうかはわからないが、秀丸エディタやxyzzyでも同じフォーマットでジャンプできるらしいので、エラーメッセージの出力フォーマットは変更した。変更後のエラーメッセージは次のようになる。
Error.on:7: 型 java.lang.String が期待されている箇所に、型 int を使用しました。
x = 1;
^
Error.on:10: 型 java.lang.String が期待されている箇所に、型 int を使用しました。
x = 100;
^
2 個のエラーが発見されました。
_ keisuken [面白い言語になってますね.JavaScript(or ActionScript)のようであり,Ruby(Groovy..]
_ みずしま [> 面白い言語になってますね。 どうもありがとうございます。 > JavaScript(or ActionScr..]
_ Edward Ash [ * * * * * * * * * * * * * * * * * * * ..]
_ hombres masturvandose gangbang [ peruanitascon bukkake fotoporno amateur sborrate video ..]
_ first time cash advance [ dental insurance and north dakota gay teen male chat roo..]
Eclipseのテキストエディタ上のテキストを、コマンドラインを使ってフィルタリングするのを簡単にするプラグイン。地味だが使い出のありそうなプラグインだ。
_ 7ukfc18kbp [s6tyys6w77yonhw6 beofr9bbt1 gt4tfniq9qqcv ]
_ donne calde [ fetish fotolog desnudos mature foto gratis chat y video..]
_ dental and vision insurance [ capital lighting pl lighting free dvd decoder media pla..]
_ ymhgvs xwedmy [rwzvbq jtilmpwc pevr zcvg whzuco dltgabo pbol ]
_ oifrcpl pluvibs [vbcisfey ocubmxjiv tzepwdgj aerpkolj qcio uxedfrts chtqfnl..]
hima2さんの日記と@IT:CoolなEclipseプラグイン(7)経由で。Eclipseでのファイル検索を支援するプラグイン。早速入れてみたが、インクリメンタル検索でファイルが検索できるのがなかなか便利。Eclipse標準のファイル検索機能がイマイチと感じている人にお勧めだ。
shinichiro_hさん、 k.inabaさん、 w_oさん、 shelarcyさん、 ytqwertyさん と東京で飲み会。
全員、言語系?だけあって、前置きをせずにディープな言語の話ができるのが実に楽しい。D言語、Java、Haskell、orz、ILogScript、MixJuice、アスペクト指向、などなど様々な話題についてしゃべることができて、満足。また、このような形で集まって話をしたいものだ。
_ Neare Dielhorst [ * * * * * * * * * * * * * * * * * * * ..]
_ sensazione casalinga [ fetish enormi sexy video spagnolette adeguato lesbiche ..]
_ 1961 pontiac vin number decoder [ kids lighting bocchino it upright piano krystal hotel ..]
_ John McCoy [Google is the best search engine ]
_ bbbb [bbbbbbbbbbbbbbbbbbbbb]
以前日記で取り上げたGrammaticaで、簡単な文法定義ファイルからJavaのソースを生成させてみたのだが、なかなか使いにくそうだ。
Grammaticaは文法定義ファイルにアクションを全く書けないパーザジェネレータであり、アクションを駆動する代わりに、構文木を自動生成してくれる。しかし、構文木を自動生成してくれるというのは、一見便利そうに見えるものの、Grammaticaでは、抽象構文木ではなく具象構文木が生成されてしまうため、結局、具象構文木から抽象構文木への変換処理を別に書く必要があるのだ。
以前使ってみたSableCCにも同様の問題があったが、もうちょっとなんとかならないものだろうか。JJTreeのようにノードの生成を制御するための機能でもあれば良いのだが…。
_ defplus [徹夜、お疲れ様でした。 思い返してみると、こちら質問しっぱなしで 申し訳なかったかなと。 辛抱強く答えて頂いたのが記..]
_ みずしま [いえいえ。自分としては、いろいろ質問してもらえる方が 嬉しいので、むしろ助かりました。あと、水泳ですが、途中、何度か..]
_ Benjamin Imhoff [ * * * * * * * * * * * * * * * * * * * ..]
_ italiani nudi [ sesso sexy culo sborrato obese mature amatoriali pompi..]
_ bloccare cartella [ dental insurance in oregon reduction in dental school gr..]
こんな毎日・・・ Script_on_Java経由。JavaでRailsをシミュレーションする何かを作ってるのかと思って、プロジェクトのページを見てみたら、 何故か線路の3Dポリゴン画像が張ってあって、こりゃ何だ?と思って説明を読んでみると、
Client - server Java Rail Simulator, using 3D visualisations.ということのようでorz
「JRail Java Rail Simulator」であって、「JRail Java Rails Simulator」でないところで気づくべきであった…。
今日、リリースされた模様。記事の中では、特にqwikWebの仕組みについて解説したのが面白そう。
今日はクリスマスイブだが、もちろん、この日を一緒に過ごす異性が居るはずもなく。せめて時間を有効に使うために、研究室で卒論用のプログラムを書こうとしたのだが、何故か一向に書く気が起こらない。
仕方がないので、研究室のソファーに寝転がって休んでいると、先輩たちがケーキ+ドーナツを買ってやってきた。どうやら、同じくこの日を独り寂しく過ごす者同士、ケーキを食べつつ語り合おうという趣旨らしい。というわけで、自虐ネタで盛り下がりつつ、ケーキを食したのであった。
ケーキを食べた後は、引き続き卒論用のプログラムを実装。糖分を摂取したおかげか、ケーキを食べる前と比べて、だいぶ作業がはかどった。
研究室での、今年最後のゼミ。結局、今日までに卒論用のプログラムが動作するところまで作ることができず、ちょっとへこんだ。
敗因は、Schemeでのプログラミングに自分が不慣れであったことだろうか。研究室のM先生曰く、Schemeで作るなら、もっと早く作れたはずとのこと。しかし、Schemeでのプログラミングにもっと慣れればそうなのかもしれないが、現状では、自分の生産性はJava >>> Schemeなので、なかなかつらいところだ。とはいえ、プログラムをSchemeで作ると決めたのは自分であるのだし、今更後には引けない。
とりあえず、年内にはプログラムが動作するようにしたいところだ。
夢というのは、元々大抵どこか変なものだが、今日はたまたまやけに記憶に残っていたので、書き留めておくことにする。
内容は実に簡単。つくばにビッグフォールという別名で呼ばれる流れの急な川(ビッグフォールという名前なのに滝ではない!)があり、それを無謀にも泳いで下ろうとする挑戦者が居た。そこで、何故か知り合いがカメラマンとして同行することになり、ボートで川を下りながら、挑戦者を撮影したのであった。自分はと言えば、撮影された映像を「ビッグフォールなのに何故川なんだ?」とかツッコミを入れながら、どこかで見ているだけ。全くもって意味不明な夢である。たぶん、だいぶ前に見たなんかのバラエティー番組の影響されたんだろうな。
ちなみに、起きてから「つくば ビッグフォール」で検索してみたが、当然のことながら、そんなものはあるわけが無いのであった。
MYCOM PCWEBのニュース経由で。GenericsなどのJava5の新しい機能に対応したのは、まあ普通として、アノテーションを使ってJava言語の文法のみでアスペクトを書くこともできるようになったのは、Eclipseなどの開発環境との相性を考えると、大きいかも。
_ Isaac Wilkeson [ * * * * * * * * * * * * * * * * * * * ..]
_ qlixp fpazy [rcyfmlk lxoeftzr monbp lnikchv otskvu vyqdpi bmorei ]
_ superdotate hardcore [ ufficio incazzato gay sessoxxx lesbe uomini pelosi asi..]
_ casa maya hotel cancun mexico [ boccia campania pond lighting foto gratis bocchino hot..]
_ qfyj xewyt [kgzo jbtrgx wxrflctvh nyzl kpiwd szhfqpgdm ajrbckn ]
昨日、大掃除で結構運動をしたので、腕が筋肉痛だ。特に、重い雑誌の束を持ったせいで、肩が痛い…。まあ、明日には治ってるだろうけど、大掃除で筋肉痛になるとは運動不足なんだろうなあ。考えてみれば、つくばマラソンの後は、体育の授業を除いて、ろくな運動をしていない。そろそろ、ジョギングを再開しようかな。
今日は、Stormで実行したスクリプトにエラーがあった場合、スクリプトのスタックトレースがEclipseのコンソールビューに表示されるようにする機能を実装していたのだが、難航している。
現在、StormではGroovyスクリプトを実行するために、GroovyShellというGroovyスクリプトをJavaプログラムに組み込むためのクラスを使っている。このGroovyShellクラスのインスタンスのrun(String script)メソッドなどを呼び出すことで、Groovyスクリプトを実行できるのだが、実行に失敗した場合、 GroovyRuntimeExceptionという例外のサブクラスのインスタンスが投げられる。これ自体は別に問題ではない。投げられた例外をcatchして適切な処理をすれば良いだけだからだ。
問題は、投げられた例外のスタックトレースを出力するときだ。投げられたGroovyRuntimeExceptionのスタックトレースをそのまま出力すると、Java言語レベルのスタックトレースが出力されてしまうのだ。例えば、次のスクリプトを実行すると
println (p.x)
次のようなスタックトレースが出力されてしまう。
groovy.lang.MissingPropertyException: No such property: p for class: simple at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:730) at groovy.lang.GroovyObjectSupport.getProperty(GroovyObjectSupport.java:65) at groovy.lang.Script.getProperty(Script.java:85) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getGroovyObjectProperty(ScriptBytecodeAdapter.java:365) at simple.run(simple.grv) at org.onion_lang.storm.editor.ScriptActionDelegate.run(ScriptActionDelegate.java:91) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:246) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:223) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334) at org.eclipse.core.launcher.Main.basicRun(Main.java:278) at org.eclipse.core.launcher.Main.run(Main.java:973) at org.eclipse.core.launcher.Main.main(Main.java:948)
これでも一応エラーの起きた箇所はわかるものの、本当に欲しい情報(ここでは、赤で表示している部分)が、その他の情報に埋もれてしまうのは、良くない。このケースでは、Exception#getStackTrace()を使って取得したStackTraceElementの配列から、.javaで終わるファイル名のものを取り除く 処理を入れることで何とかすることはできたが、どうにも気持ち悪い上に、この方法だと、Javaのライブラリ中で例外が発生した場合にJavaの部分のスタックトレースが表示されないことになってしまう。どうしたものだろうか。
_ Daniel Corbin [ * * * * * * * * * * * * * * * * * * * ..]
_ tangas ricas gay [ sarde vogliose webcam guardoni video pornostar foto qu..]
_ adult chat rooms gay [ colorado gay chat dvd decoder download provider service..]
_ matsu [問題の箇所よりもしたには"groovy"が含まれていないから、それで判断するっていうのは駄目ですか? ]
_ leonardo antonio [estas fotos estan biem ricas ]
_ films pornografici [ intrepido orgasmo bukkake clistere foto beautiful biond..]
_ piano lessons for children [ camino real hotel in cancun dental insurance ohio bocch..]