簡単なところで,こんなのはどうよ。
Substance NetBeans Moduleを入れると,こんな感じにウォーターマークが設定できるのよ。
#ずっと前にきしださんが紹介してる。
ただ,JFrame/JPanelあたりに効くけど,エディタの背景には効かないんで,あまり楽しめないかもダ(あとOSXだとSubstance自体が汚い。特にフォント)。
IDEAのSexy Editorプラグインみたいなのあればいいのにね。
BTrace - dynamic, safe tracing system for the Java platform
A. Sundararajan's Weblogより。実行中のJVMに張り付いて,いろいろ情報を引き出すツール。なにげにスゴくないか?これ。
面白いのは,BTrace programと呼ばれるJavaコードでトレースする内容を記述できること。さらに付け加えると,コンパイルする必要がない(してもいいけど)。
たとえば,サンプルについてきてるJInfo.java(下記参照)
import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; @BTrace public class JInfo { static { println("System Properties:"); printProperties(); println("VM Flags:"); printVmArguments(); println("OS Enviroment:"); printEnv(); exit(0); } }
ってのを動かすと,即座にシステムプロパティの内容がダンプされる。
#これだけでも鼻血吹くっつの。JMX(MBean)に手を出さなくてよかった。:-P
> btrace 245 JInfo.java ※ 245ってのは jpsで得たJVM-PID。
AOPまがいなことをやってるのだけれど,あくまでトレーサのため,いろいろ制約もあるみたい。
BTrace Restrictions
To guarantee that the tracing actions are "read-only" (i.e., the trace actions don't change the state of the program traced) and bounded (i.e., trace actions terminate in bounded time), a BTrace program is allowed to do only a restricted set of actions. In particular, a BTrace classBTrace User's Guide
- can not create new objects.
- can not create new arrays.
- can not throw exceptions.
- can not catch exceptions.
- can not make arbitrary instance or static method calls - only the public static methods of com.sun.btrace.BTraceUtils class may be called from a BTrace program.
- can not assign to static or instance fields of target program's classes and objects. But, BTrace class can assign to it's own static fields ("trace state" can be mutated).
- can not have instance fields and methods. Only static public void returning methods are allowed for a BTrace class. And all fields have to be static.
- can not have outer, inner, nested or local classes.
- can not have synchronized blocks or synchronized methods.
- can not have loops (for, while, do..while)
- can not extend arbitrary class (super class has to be java.lang.Object)
- can not implement interfaces.
- can not contains assert statements.
- can not use class literals.
でも,まあそうゆうもんでしょ(パッチ当てとかに使うなってことで)。
残念なことは,JDK6以上のJVMじゃないと使えないことね。むしろ,運用管理面を考えればとっととJDK6にシフトしろって話でもある。
VisualVMといい,運管まわりの充実っぷりを考えれば妥当だわな。>JDK6移行
ねこび〜ん
ブログ: 岡崎 - Okazaki's blogより。コーヒー吹いた。
片貝さんの野望ってこれかっ。
NetBeansでNekoBeanね。
これはヤバい。ヤバ過ぎる。やつらはホンキでNetBeansの布教を行う気だ。:-D
(追記)こんなおもろいモン見つけて黙ってられるかっつうわけで,スプラッシュスクリーンとアバウト画面を差し替えたよ。
いじくる場所はこちら。
$NETBEANS_HOME/nb6.0/core/locale/core_nb.jar
の中のこのファイル達。
core_nb.jar/org/netbeans/core/startup ・splash_nb.gif ... スプラッシュスクリーン ・about_nb.png ... アバウト画面
参考リンク
- http://www.nabble.com/how-to-change-the-splash-screen-of-netbeans-td13882963.html
- http://wiki.netbeans.org/NB601BrandingChecklist:tilte
- NetBeansのソース(ide.branding)
(おまけ)NetBeansのブランディング機構ってPlatformだけじゃなくてIDEでも有効だよな。と思い,core_nb_ja.jarにイメージファイル仕込んでみたけどダメだった(ロケール違いはリソースバンドルだけか)。
イメージファイルなんかのリソースも丸ごと切り替えできたら,日本語版ビルドだけ変更とか出来たのにね。;-)