開発環境は下記。
- macOS Catalina 10.15.7
- IntelliJ IDEA Ultimate 2020.2.4
- Tomcat 8.0.43
- Apache Maven 3.6.3
- Java 1.8.0_131
状況としてはTomcatをインストールし、tomcat-users.xml
、settings.xml
、pom.xml
の設定を済ませて後はデプロイするだけの状態とする。下記の記事を参照。
この段階で再生ボタン(▶︎)を押すとこのようなエラーが表示されることがある。

Error running ‘Tomcat 8.0.43’:
Cannot run program
“/Application/Eclipse_4.6.3.app/Contents/tomcat/8/bin/c”(in directory
“/Application/Eclipse_4.6.3.app/Contenrs/tomcat/8/bin”)
error=13, Permission denied
このエラー文を見ていたらLinuxを勉強していた時を思い出した。Permission denied
はユーザに対して実行権限が与えられていない時に表示される。なので、単純に上記のパスに権限を与えてあげるだけで良いということだ。ターミナルを開き以下のコマンドを実行する。
% cd /Applications/Eclipse_4.6.3.app/Contents/tomcat/8/bin
% chmod 777 *.sh
説明すると先ずはcd
コマンドででエラー文に表示されているフォルダへと移動する。次にchmod
コマンドで.sh
の付くファイルにパーミッションを設定すれば完了。これでデプロイが可能になる。
折角だからchmod
コマンドについて振り返っておこう。上記のコマンドでは数値モードによるパーミッションの変更を行った。この数値モードは後ほど触れるシンボルモードとは異なり絶対指定の方法である。一気に権限を変更したい時に便利ね。以下の数字を足し算でする単純な方法。
- 読み取り(r) -> 4
- 書き込み(w) -> 2
- 実行(x) -> 1
7の場合は全ての権限を与えるということ。6は読み取りと書き込みという具合。これらの番号をオーナー、グループ、その他のユーザの順番に並べる。777は全てのユーザに全ての権限を与えるオープンなパーミッションである。
次にシンボルモード。例を挙げるとこのような感じ。
% chmod u+x *.sh
これは相対的に指定する方法でパーミッションの一部だけ変更したい時に使えば便利な方法である。上記の例はオーナーに.sh
が付くファイル全てに実行権限を追加するということ。
- u -> オーナー
- g -> グループ
- o -> その他のユーザ
- a -> ugo全て
このオプションで変更したいユーザを指定する。次に下の演算子を使用し、r(読み取り)、w(書き込み)、x(実行)を追加、または削除すればOK。
- + -> 権限を追加
- – -> 権限を禁止
- = -> 指定した権限と等しく
もちろん、GUIでやってもいいがCLIで実行した方が100倍効率的。