67295


Macを使っており、ターミナルでの挙動に関する質問です。

現在下記を見てlombokをインストールし、delombokをできるようにしました。  
<https://blog.y-yuki.net/entry/2016/11/15/000000>

ただ

[code]

    java -jar lombok.jar delombok -f pretty src -d delombok-src
    
[/code]

とするときはlombok.jarの配置しているパスで実行しなければならず、めんどくさいです。

どのパスからでもlombok.jarのコマンドが実行できるようにしたいのですが、どうすればいいでしょうか？  
javaコマンドのように。

/usr/binの配下に置こうとしましたが、GUIでコピー&ペーストすることができなかったです。  
パスを通すのかとも思いましたが、そのやり方でいいのか、またlombok.jarをどこに配置してどのようなコマンドを設定するかといった具体的なところで引っ掛かり、正当なやり方を知りたいと思いました。

わかる方がいらっしゃればよろしくお願いいたします。


CC BY-SA 4.0
2020-06-03T09:59:11.397
67256
2020-06-04T18:55:40.887
2020-06-03T11:36:31.247
3060
40231
question
java macos
Macのターミナルでどのパスからでも指定のJavaプログラムを実行できるようにしたい


OS X 10.11 より [System Integrity
Protection](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%95%B4%E5%90%88%E6%80%A7%E4%BF%9D%E8%AD%B7)
が導入されたので、一部ディレクトリは `sudo` からも保護されています。

ドラッグ＆ドロップであれば、`/usr/local/bin` ではどうですか？  
または `mv lombok.jar /usr/local/bin/lombok.jar` でしょうか。

パスが通っているかはコマンドラインで `echo $PATH` で確認します。出力の中に `/usr/local/bin`
があれば当該ディレクトリに配置したコマンドは認識されます（スクリプトならシェバンと実行権限の付与を忘れずに）。


CC BY-SA 4.0
2020-06-03T10:32:23.890
67257
2020-06-03T10:32:23.890
40462
67256
answer


今回のようにJavaプログラムを実行する場合は、追加の引数として **`-classpath`** (省略形は `-cp`) で lombok.jar
の在り処をフルパスで指定してあげる必要がありそうです。

[code]

    $ java -cp /path/to/lombok.jar -jar lombok.jar delombok -f pretty src -d delombok-src
    
[/code]

実行しているのはあくまで `java` コマンドなので、lombok.jar の在り処を PATH に追加しても意味がなくて、`java` コマンドに
lombok.jar の場所を教える必要があります。

毎回入力するのが面倒な場合には、バッチファイルにまとめてもよいかもしれません。


CC BY-SA 4.0
2020-06-03T16:57:28.480
67266
2020-06-03T16:57:28.480
3060
67256
answer


`lombok.jar`をパスから指定すれば同じディレクトリに置いておく必要はなくなります。例えば:

[code]

    java -jar <lombok.jarを絶対パスで指定> delombok -f pretty src -d delombok-src
    
[/code]

* * *

シェルのalias機能を使えばタイプ数を減らせます。

[code]

    alias delombok='java -jar <lombok.jarを絶対パスで指定> -f pretty'
    
[/code]

を`~/.bash_profile`なり`~/.zshrc`なり利用されているシェルの設定ファイルに書いておけば、

[code]

    delombok src -d delombok-src
    
[/code]

で冒頭のコマンドと同じ結果が得られます。

* * *

`lombok.jar`の置き場所は、 `~/opt/lombok/`
ディレクトリとか、わかりやすい名前のディレクトリをホーム下に作れば良いのでは無いでしょうか。  
実行可能ファイルではないので `/usr/bin` などに置くのは違和感があります。


CC BY-SA 4.0
2020-06-04T18:55:40.887
67295
2020-06-04T18:55:40.887
2808
67256
answer