TITLE:Java Tips

Posted by at 2011-01-25

Java Tips

概要

Java のデバッグ(Swing)、Java用のバッチファイル、API-doc 翻訳などに関するメモをまとめています。

Swing debug agent

Javadoc 翻訳

Javadoc

  • Javadoc/Japanese
    • 日本語訳で修正した方が良さそうなもの。
  • Javadoc/Nitpick
    • 翻訳元から修正した方が良さそうなもの。
  • Javadoc/Typo
    • Typo、変換ミスなど。
  • Javadoc/JDK7
    • Java SE 7 API のドキュメントで未翻訳なもの(主にSwing関係)。

JRuby


  • JRuby One-Liner で、UIManagerのDefaults.keySetを一覧表示する
    > jruby -rjava -e "javax.swing.UIManager.lookAndFeelDefaults.keySet.each{|o| p o}"

> chcp
現在のコード ページ: 932
> jruby -J-Dfile.encoding=UTF-8 -rjava -e 'p java.net.URLEncoder.encode("日本語","UTF-8")'
> jruby -J-Dfile.encoding=UTF-8 -rjava -e "puts java.net.URLEncoder.encode('日本語','UTF-8')"
> jruby -J-Dfile.encoding=UTF-8 -rjava -e 'puts java.net.URLEncoder.encode(""日本語"",""UTF-8"")'
> jruby --1.9 -U -rjava -e 'puts java.net.URLEncoder.encode("日本語","UTF-8")'
> jruby -J-Dfile.encoding=UTF-8 -ruri -e 'puts URI.encode("日本語")'
%E6%97%A5%E6%9C%AC%E8%AA%9E
> jruby --1.9 -rjava -e 'puts java.net.URLEncoder.encode("日本語","MS932")'
> jruby --1.9 -ruri -e 'puts URI.encode_www_form_component("日本語")'
%93%FA%96%7B%8C%EA

lines = src.rstrip.split(/\r?\n/).map {|line| line.chomp }
C:\pukiwiki2markdown>jruby p2m.rb wiki
ArgumentError: invalid byte sequence in Windows-31J
   split at org/jruby/RubyString.java:4643
 to_html at p2m.rb:45
    main at p2m.rb:219
    each at org/jruby/RubyArray.java:1611
    main at p2m.rb:214
  (root) at p2m.rb:234
C:\pukiwiki2markdown>jruby -J-Dfile.encoding=UTF-8 p2m.rb wiki
wiki/2010-04-12-swing-leaftreecelleditor.markdown
wiki/2007-06-18-swing-leftclippedcombobox.markdown
...
C:\pukiwiki2markdown>jruby -E UTF-8 p2m.rb wiki
wiki/2011-07-18-swing-listmouseselection.markdown
...

「Java Swing Hacks」本のレビュー

Java その他

  • Java API Doc の「日本語、英語」をブックマークレットで切り替える
    • JavaのAPIドキュメントをブックマークレットを使って、日本語と英語で切り替えます。

Java メモ

環境変数

  • http://cr.openjdk.java.net/~gbenson/zero-08/raw_files/new/hotspot/src/share/vm/utilities/vmError.cpp
    // List of environment variables that should be reported in error log file.
    const char *env_list[] = {
      // All platforms
      "JAVA_HOME", "JRE_HOME", "JAVA_TOOL_OPTIONS", "_JAVA_OPTIONS", "CLASSPATH",
      "JAVA_COMPILER", "PATH", "USERNAME",
    
      // Env variables that are defined on Solaris/Linux
      "LD_LIBRARY_PATH", "LD_PRELOAD", "SHELL", "DISPLAY",
      "HOSTTYPE", "OSTYPE", "ARCH", "MACHTYPE",
    
      // defined on Linux
      "LD_ASSUME_KERNEL", "_JAVA_SR_SIGNUM",
    
      // defined on Windows
      "OS", "PROCESSOR_IDENTIFIER", "_ALT_JAVA_HOME_DIR",
    
      (const char *)0
    };
    

コマンドプロンプトからデフォルトのロケールを変更

> javac -J-Duser.language=en Test.java
> java -Duser.language=en Test
  • Java 国際化 FAQ
    アプリケーションの外部からデフォルトのロケールを設定できますか。
    
    使用している Java プラットフォームの実装によって異なります。通常、初期のデフォルトロケールは、ホストオペレーティングシステムのロケールによって決まります。Sun の JRE のバージョン 1.4 以降では、コマンド行から user.language、user.country、および user.variant の各システムプロパティを設定することで、初期のデフォルトロケールを変更できます。たとえば、初期のデフォルトロケールとして Locale("th", "TH", "TH") を選択するには、次のコマンドを使用します。
    java -Duser.language=th -Duser.country=TH -Duser.variant=TH MainClass
    
    この機能を使用できない実行環境もあるため、この機能はテスト目的だけに使用してください。

コメント