ラベル Mac の投稿を表示しています。 すべての投稿を表示
ラベル Mac の投稿を表示しています。 すべての投稿を表示

2013年1月14日月曜日

MacにインストールされているJava

(2015/11/22追記)
ターミナルからjavaコマンドやjavacコマンドを実行する場合は、JAVA_HOME環境変数でJavaのバージョンを指定します。bash, zshの場合は.bashrcや.zshrcに記載してsource .bashrcなどで反映させます。以下の指定では、1.8系で最新のものが利用されます。
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8"`

とりあえずインストールされている最新版を使いたいという時は、-vのバージョン指定が不要です。
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home `

あまり用途はないと思いますが、細かいバージョン指定もできます。
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8.0_65"`

「システム環境設定」はJavaアプレットに関する設定なので、以下の手順は有効ではないですが、残しておきます。

########################################################
(以下は2013/1/14記載。ターミナルから実行する)
前回の続きです。

インストールされている1つのJDKの中のjavacとjavaが使えているのかよくわからないので、とりあえず、「システム環境設定」から「Java」を選んで確認してみます。

すると、セキュリティ・アップデートを促されます。

アップデートが終わるとJava 7になったはずなんですが、「ターミナル」上では1.6のままです。インストールされたパスが異なるようです。

Mac:~$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Mac:~$ which java
/usr/bin/java

Mac:~$ ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 10 20 02:05 /usr/bin/java@ -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

おそらくJDK 7はインストールされていないので、せっかくなので最新化します。
インストール手順はこちらです。バージョンを確認してみると、javacもjavaも1.7.0_10になってました。またhelpも日本語になりました。
他のバージョンのJDKを使いたい場合は、/usr/libexec/java_homeコマンドで変更可能パスを取得するか、同じコマンドで直接実行できるみたいです。

2013年1月4日金曜日

Safariのブックマークをソートする

Safariにはなぜかブックマークをソートする機能がありません。お正月休みで暇を持て余しているので、ソートツールを作ってみます(きっとどこかにすでに存在するんでしょうけど)。勉強を兼ねて初挑戦のRubyで作ってみます。

ソートするといってもどこから手を付けていいかと思い調べたところ、Safariにはブックマークの書き出しと、読み込みの機能があります。書き出されるのはNETSCAPE Bookmark formatという形式のファイルです。

<!DOCTYPE NETSCAPE-Bookmark-file-1>
<HTML>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<Title>ブックマーク</Title>
<H1>ブックマーク</H1>
<DT><H3 FOLDED>ブックマークバー</H3>
<DL><p>
<DT><A HREF="http://www.blogger.com/home">Blogger</A>
<DT><A HREF="http://www.yahoo.co.jp/">Yahoo!</A>
</DL><p>
以下省略

一旦NETSCAPE Bookmark format形式で書きだしておいて、Rubyでソート後、Safariに読みこませればソート完了という計画です。これならRuby初心者には程よい練習問題になりそうです。

まず、ファイル形式を眺めてみると、HTMLとは異なり<HEAD>タグや<BODY>タグは無く、他のタグがきちんと閉じられていなかったりします。またこれはSafari限定だとおもいますが、<H1>ブックマーク</H1>の下には、<DT><H3 FOLDED>ブックマークバー</H3>、<DT><H3 FOLDED>ブックマークメニュー</H3>、<H1>ブックマーク</H1>とそれぞれの階層にブックマークの実態が<DT>タグで記述されています。私の場合、以下の様な構造でした。
  • ブックマーク
    • ブックマークバー
      • ブックマーク1
    • ブックマークメニュー
      • フォルダ1
        • ブックマーク2
      • フォルダ2
        • ブックマーク3
      • ブックマーク4
    • ブックマーク5
一般的な構造がどうなっているのかまでは調べると大変なので、とりあえず自分のブックマークだけソートできることを目標にします。

はじめはREXMLというXML操作用ライブラリを使ってみようと思いましたが、やってみると正しいXMLフォーマットではないために色々面倒な事に。単純にタグが閉じられていないのと、親子関係が解析しづらいために、ベタに1行ずつ読み込んでいくことにしました。

完成したのはこちら。
main.rb
bookmark.rb
使用方法はこちら。標準出力にソート結果が出力されます。
ruby main.rb input.html
いつもはJava、Eclipseを使用しており、Rubyは初めてで作成に結構時間かかりましたが、感想です。

  • コード作成にはHomebrewでインストールした素のVimを使用しましたが、Eclipseを使い慣れているので機能的に物足りないです。.vimrcの設定等でどこまで機能追加できるか調べてみたいです。
  • デバッグ実行を行う際にruby -r debugを使用しました。今回はそうでもなかったですが、コード量が多くなると厳しいです。世の中一般ではどういう環境で開発しているんでしょうか。
  • 動的型付け言語で変数に型が付いていないのでなんでも代入できてしまうというのが、まったく慣れないです。
  • 他にもAPIが分からない等いろいろありますが、慣れれば少ないコーディング量で機能を実現できるんでしょう。まだまだ先は長いです。

2012年12月24日月曜日

Mac上のJavaで日本語を正しく表示させる

Mac OS X Mountain Lionでjavacコマンドを実行するとこんな感じで文字化けしてます。
どうしてこうなっているかというと、

  • Macの「ターミナル」の文字コードがUTF-8
  • javacの出力する文字コードがShift JIS
になっているのが理由のようです。ということで、javacコマンドとjavaコマンドにUTF-8として文字を入出力させるように以下の設定をします。
するとこんな感じに正しく表示されます。
これで気持よくJavaが使えると思ってjavaコマンドの方も確認してみると、 あれ、英語です。バージョンは一致しているけど、1つのJDKに含まれているjavaではないみたいです。 次回に続きます。

DockerでMQ環境を作る

DockerHubの ibmcom/mq を使う。ファイルシステムとしてtmpfsは使えないので これ を参考に/mnt/sda1に置き換える。 brew install docker docker-machine docker-machine create --drive...