FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

macでバッチファイル実行

Windowsでは、テキストファイルにMS-DOSのコマンドを書いて、「.bat」というファイル名で保存すれば、そのファイルのアイコンをダブルクリックすることで、書いたコマンドを実行することができます。

javaで作ったプログラムを、ヒープサイズ指定して実行したいときなどに便利なので、配布用のjavaアプリには.batファイルを添付するようにしています。

たとえば、
java -Xmx1024M -jar someapp.jar

と書いたテキストファイルを作り、「Run.bat」などの名前で保存しておく感じ。


で、同じようなことをMacでやりたいなーと思っていた。

実は以前に調べたことがあったのだが、マックを使い慣れていない私にとっては、ネットの情報の通りにやってるつもりでもなかなか出来ず、挫折していました・・・

しかし今日は、何としてもやらねばならぬ状況に!

 「僕のMacBookAirにあのソフト入れといて、今日出張で使うから」

と、最近WindowsからMacに乗り換えた上司に言われてしまったのである。


ということで、午前中に奮闘すること2時間。
なんとかできたので、メモしておく。


OSは、Mac OSX 10.7.3

ネットの情報では、
・ターミナルを使う方法
・Automatorを使う方法
・AppleScriptを使う方法

などが紹介されていましたが、結局うまくいったのはターミナルを使う方法でした。


1)テキストファイルを準備する

適当なテキストエディタで下記のような起動用のシェルスクリプトを書き、***.commandという名前で保存します。

#!/bin/bash
MY_DIRNAME=$(dirname $0)
cd $MY_DIRNAME
java -Xmx1024M -jar someapp.jar


ここでのポイントは、2行目と3行目。
このスクリプトを起動したディレクトリがカレントディレクトリになるようにします。
こうしないと、
Unable to access jarfile someapp.jar

というエラーが出てしまいます。

こちらを参考にさせていただきました。

二つ目のポイントは、.commandという拡張子をつけること。
こうすることで、ダブルクリックしたときに、デフォルトで関連づけられているターミナルが自動的に開くようになります。

さらに三つ目のポイント!
このテキストファイルは、windowsの改行コード(CR + LF)では動かず、Unix(LF)でないと動かないようです。私が試した限りでは、mac用(CR)でもダメでした。必ずmac上で作成し、windowsで作成した場合は、改行コードをUnix用(LF)に合わせておきましょう。

今回は、Run.commandというファイル名にしました。
「テキストエディット」というツールで、フォーマット「標準テキスト」で保存しました。


2)作成したファイルに実行権限をつける

1)のままだと、ダブルクリックすると
「ファイル"Run.command"は適切なアクセス権限がないため実行できません。」
と言われてしまいます。そこで、アクセス権の変更をします。

「Command + I」などで、ファイルの情報を見ると、「共有とアクセス権」の項目がありますが、ここで変更できるのは読み/書きだけ。アクセス権限の変更は、ターミナルでコマンドを打って行います。
ターミナルは、Macintosh HD -> アプリケーション -> ユーティリティーの中にあります。

起動後、cdコマンドで、先ほど作ったRun.commandがあるフォルダまで移動します。
例) $ cd /Users/YOURACCOUNT/Desktp/someappdir/

フォルダのパスがわからないときは、「cd」と打ったあとにスペースを入れ、そこに、フォルダのアイコンをドラッグ&ドロップすると、パス部分が入力されます。

ls -lコマンドで見ると、デフォルトでは「-rw-r--r--」になっていました。こんな感じ。
$ ls -l Run.command
-rw-r--r--@ 1 sakurai staff 66 3 22 11:35 Run.command


chmodコマンドで権限を変更します。
$ chmod u+x Run.command


ls -lで確認すると、-rwxr--r--となったことが分かります。


これで、準備はOK。

あとは、Run.commandをダブルクリックすればOKです。

初回は、
「"Run.command"は、スクリプトアプリケーションで、インターネットからダウンロードされました。開いてもよろしいですか?」
と聞かれますが、自分で作ったファイルなので、構わず「開く」で問題ありません。



こちらのサイトが非常に参考になりました。ありがとうございます。
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

No title

やっほー

承認待ちコメント

このコメントは管理者の承認待ちです

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

承認待ちコメント

このコメントは管理者の承認待ちです

承認待ちコメント

このコメントは管理者の承認待ちです
プロフィール

櫻井望

Author:櫻井望
海が好きでプール好き
千葉県・木更津市に住む
生物系出身の情報処理工作員

最新記事
最新コメント
カテゴリ
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。