Javaの開発環境構築

Javaはあんまり書かないから毎度忘れる。できれば書きたくないよ。。とりあえずは以下からJava SEを入れる。javaコマンドとかjavacとかは確かこれ入れないといけないはずだったような気がする。

Java SE - Downloads | Oracle Technology Network | Oracle

次にコンパイルには私はGradleしか使わないので入れるんだがbrewで簡単に入る。ちなみにbrew search gradleするといろいろ見れるけどよくわかんないし普通になんとかなるのでそのまま以下でw

brew install gradle

IDEとかでは初回はSDKを指定する必要がある。IntelliJではプロジェクト作成時にSDKを指定するところがあるのでNEWからSDKを指定すればいい。今これを書いている時期だと1.8だったかな。

findで直下のディレクトリとファイルだけを検索する

これで/hogeディレクトリ直下にあるファイルからhoge.txtを検索できる

find ~/hoge -maxdepth 1 -name "hoge.txt"

このmaxdepthオプションを使えば、いつまでもfindの結果が帰ってこないなんていう問題がなくなる。ある程度目的のファイルがある可能性のある階層が浅いということがわかっていれば、浅めの階層を設定して短い時間で目的のファイルの場所を得られる。

ゴミ箱のファイルを自動的に古いものから削除する

Macの場合は~/.Trashにゴミが入っているのでこう

find ~/.Trash -maxdepth 1 -mtime +90 -print0 | xargs -0 rm -rf

90日変更のないファイルが削除される。削除したファイルをずらずら出力したいなら以下でやる。

find ~/.Trash -maxdepth 1 -mtime +90 -print0 | xargs -0 rm -rfv

私の仕事用PCに2年前のファイルが入っていて良くないなーってことで作成。こういうのも作っておいたので興味ある人は使うと良い。

github.com

Java – jarファイルが実行できない時

なんか存在しないと言われる

$ ls -la
total 101256
drwxr-xr-x  3 hoge  apache       102 10 28 13:26 .
drwxr-xr-x  7 hoge  apache       238 10 28 15:22 ..
-rw-r--r--  1 hoge  apache  12345678 11 16 14:38 hoge.jar
$ java hoge.jar
エラー: メイン・クラスhoge.jarが見つからなかったかロードできませんでした

オプションの-jarが足りなかった

java -jar hoge.jar

Shellで引数をオプションみたいにかっこ良く受け取る

利用頻度の高いShellは引数もかっこよく受け取れるようにしたい

while getopts d:s:r: OPT
do
case $OPT in
"d" ) dry="$OPTARG" ;;
"s" ) source="$OPTARG" ;;
"r" ) remote="$OPTARG" ;;
* ) echo "Usage: $CMDNAME [-d bool] [-s SOURECE_PATH] [-r REMOTE_PATH]" 1>&2
exit 1 ;;
esac
done
echo $dry
echo $source
echo $remote

こうして受け取れるっぽい。予め渡されると思われる引数は1行目でコロン区切りで宣言し、whileで回すのでその引数の値が来たら受け取れるようにししておくだけ。実行する時はこうなる。

$ hoge.sh -d hoge -s hoge2 -r hoge3

Ruby – テンプレートエンジンERBをRails以外で使う

hoge.html.erbみたいなViewを作成しておけばRailsでそこに変数を渡せるというのをご存知の人は多いと思うけど、別にRailsじゃなくても使えるぞ

require 'erb'
id = 10
name = '名前です'
puts ERB.new('<a href="/<%= id %>.html"><%= name %></a>').result(binding)

別ファイルでRailsみたいに作って、それを変数に読み込んで渡しても同じことができると思う。別にWebアプリケーションでなくても、ViewとActionを分けたい時なんかは覚えておこう。他のRubyでよく使われているっぽいテンプレートエンジンのHamlとかSlimとかでも同様のことが可能かと思うんだが、ERBはRubyの標準実装だそうなので、Ruby初心者はとりあえずまずはここを抑えておけばいいかな。私としてはTwig結構好きで使ってるからRubyでも使えたりしないかなw

Java – 文字列をreplaceする

PHPでいう所の preg_replace に似たやつ

class Test {
  public static void main(String args[]) {
    String str = "hoge.hoge.aun";
    System.out.println(str.replaceAll("\\.", "[dot]"));
  }
}

replacereplaceAll ってのがある。一つだけ書き換えたいってケースもあんまないと思うのでよく使うのはreplaceAllになるかな。