TITLE:Java Tips

Posted by at

概要

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

Ubuntu に、oracle-java7 をインストール

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
sudo update-alternatives --config javac
  • tar.gzをダウンロードしてインストール
sudo tar zxvf jdk-7u11-linux-i586.tar.gz -C /usr/lib/jvm
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_11
export PATH=$PATH:$JAVA_HOME/bin

Swing debug agent

Javadoc 翻訳

Javadocに移動

JRuby

JRubyに移動

「Java Swing Hacks」本のレビュー

Java その他

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
    
    この機能を使用できない実行環境もあるため、この機能はテスト目的だけに使用してください。

コード整形

個人的に、Javaのソースコードのインデントは、エディタでは4spaceWebサイトにソースコードを表示する場合は2spaceにしているので、xyzzyfilter-buffer(C-x #)でastyleを呼び出して以下のように整形。

astyle --style=java --mode=java --indent=spaces=2

コマンドラインなどから、ファイルを指定する場合も同様。

> astyle --style=java --mode=java --indent=spaces=4 MainPanel.java

Markdown形式のStack Overflowなどにソースコードを貼り付ける場合は、以下のようにして、行頭にタブ(またはスペース4つ)を追加。

astyle --style=java --mode=java --indent=spaces=2 < Hoge.java | sed -e "s/^\(.*\)$/\t\1/" > /dev/clipboard
astyle --style=java --mode=java --indent=spaces=2 | sed -e "s/^\(.*\)$/\t\1/"
astyle --style=java --mode=java --indent=spaces=2 | sed -e "s/\A\(.*\)\z/    \1/"

Checkstyle(sun_checks.xml)

astyle --style=java --mode=java --indent=spaces=4 --pad-oper --pad-header --unpad-paren

キャストの後にスペースを入れる方法は?

int h = (int)(.5 + baseline / height);
//(int)の後に空白を入れたい...
int h = (int) (.5 + baseline / height);

asyle 2.04

$ astyle --version
Artistic Style Version 2.04
  • 以下の様なソースコード(最後の}の直後にEOF)をastyleで変換すると、余計な}が追加される?
class Hoge
{
    public static void main(String[] args)
    {
        System.out.println("aaaaaaa");
    }
}

ブラウザで表示されているソースコードのコピー

JavaScriptでpreタグで囲まれたソースコードをtextareaにコピーするに移動

コメント