お知らせ

プログラミングII

環境

  • ターミナルでJavaのバージョンの確認
    $ java -version
    $ javac -version
  • Javaのバージョンの管理(Mac OS Xの場合)
    • Javaのありか
      /System/Library/Frameworks/JavaVM.framework/Versions/
    • JDKのバージョンの変更(CurrentJDKを希望するバージョンにリンクする)
      $ cd /System/Library/Frameworks/JavaVM.framework/Versions/
      $ sudo ln -fsh 1.6.0 CurrentJDK
      • 注:現在、SWTが64bit化されていないため、eclipseなどは、 Leopard の Java 6 では動かない。その場合、1.5.0で使う必要がある。
        $ sudo ln -fsh 1.5.0 CurrentJDK
  • /Applications/Utilities/Java/Java Preferences.app を使う
    (/アプリケーション/ユーティリティ/Java/Java Preferences.app)

最初のプログラム

HelloWorld.java

Expand allFold all
  1
  2
  3
  4
  5
-
-
|
!
!
public class HelloWorld {
    public static void main(String[] args) throws Exception {
        System.out.println("Hello, World!");
    }
}

コンパイル:

$ javac HelloWorld.java

実行:

$ java HelloWorld

MacOSX環境でのJava環境でのエンコーディング

  • MacOSXのjavacのエラーメッセージは,SJISでエンコーディングされている.UTF8のターミナル環境では,当然文字化けます.回避法は:
  • 英語環境にする
    $ setenv LC_ALL en
  • SJISメッセージをUTF8に変換して表示する. (foo.javaは,ソースファイル名)
    • javacのオプションで,エンコーディングを変える.
      $ javac -J-Dfile.encoding=UTF8 foo.java
      aliasしておくと便利
      alias  javac   'javac -J-Dfile.encoding=UTF8'
      alias  java    'java -Dfile.encoding=UTF8'
  • nkfを使う.
    $ javac foo.java | & nkf -w
    この場合のalias設定には,javacへの引数を渡すようにしなければならない.\!*を使う.
    alias  javac  'javac  \!* | &  nkf -w'
  • 文字コードの確認 ChkEncoding.java
    Expand allFold all
      1
      2
      3
      4
      5
      6
      7
      8
    
     
    -
    -
    |
    |
    |
    !
    !
    
    import java.io.*;
    public class ChkEncoding {
        public static void main(String[] args) throws Exception {
            System.out.println("Hello, World!");
            System.out.println("Default encoding: "+ new InputStreamReader(System.in).getEncoding());
            System.out.println("file.encoding: "+ System.getProperty("file.encoding"));
        }
    }

関連



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-20 (木) 14:45:23 (2286d)