Search code examples
javamacosterminalcommand-line-interfacemacos-sierra

how can I run a jar from /usr/local/bin like a Terminal command?


I have made a calculator CLI calculator app in Java that I would like to use. Since I am actually going to use it quite often, I do not like the idea of typing the long path all the time. I have read an article on StackoverFlow that you can place a .sh command into the /usr/bin folder, but after the El Capitan update, all System folders are locked even for the root user. So, again, I did some more research, and I found that /usr/local/bin folder is specifically made for "home-made" commands for the terminal. I have made a calculator.sh file with the following code:

    #!/bin/sh 
    -jar /Users/mac/Desktop/Данила/my_apps/calculator.jar "$*"

The article said that I should place it in the /usr/bin folder, but because it is locked, I placed it in the /usr/local/bin, thinking that it is practically the same thing, and that it should work. Of course after I placed it in there and tried to run "calculator" command in the terminal, it did not work at all. I figured that it might need a "chmod" command to make it work. So I used chmod +x /path, but afterwards it still would not work. Right now I am stumped, so any help would be welcome.


Solution

  • First, is /usr/local/bin on your path? echo $PATH to find out.

    Second, are you sure you pasted the above script properly?

    It seems to be missing java on the command line.

    I would expect it to look something like:

    #!/bin/sh 
    java -jar /Users/mac/Desktop/Данила/my_apps/calculator.jar "$*"
    

    Also, since you named it calculator.sh, you have to run it using that name.

    The .sh extension isn't needed, so you could just call it calculator.