2016-06-17 3 views
4

私はこのようなコマンドラインから実行することができますjarファイルを持っています。私は(他のどこか)デスクトップからこのスクリプトを実行することができることを期待して... ....jarコマンドラインスクリプトのエイリアスを作成するにはどうすればよいですか?私は<em>fop.jar</em>を含むフォルダに移動する必要が動作するように、このため現時点で</p> <pre><code># In Terminal.app java -jar fop.jar /path/to/infile.fo /path/to/outfile.pdf </code></pre> <p>:

# In bash_profile 
alias fop="java -jar /path/to/a/far/away/folder/fop-2.1/build/fop.jar" 

これは理想的ではないので、私はbash_profileに次のエイリアスを追加しようとしましたそのよう:残念ながら

# In Terminal 
fop ~/Desktop/simple.fo ~/Desktop/simple.pdf 

それは働いていない:

# Error message 
Unable to start FOP: 
java.lang.RuntimeException: fop.jar not found in directory: /my/pwd (or below) 
    at org.apache.fop.cli.Main.getJARList(Main.java:70) 
    at org.apache.fop.cli.Main.startFOPWithDynamicClasspath(Main.java:130) 
    at org.apache.fop.cli.Main.main(Main.java:219) 

誰も助けることができますか?

+0

あなたがfop.jarを含む実際のフォルダにaliasコマンドを実行した場合、それは動作しますか? –

+0

@Michael:そうです。 –

答えて

0

エイリアスや関数がjavafop.jarの実際のパス限り、正常に動作する必要が使用されます。

$ which java 
/usr/bin/java 

あなたはオプションを変更することを可能にする利点を持っている機能を(作成したい場合~/.bash_profileにこのような何かを追加することができるなど、パラメータ、引数、):

# fop: run java -jar with input and output files 
fop() { /usr/bin/java -jar /path/to/fop.jar "$1" "$2" ; } 

は重要な要素は、機能または別名あなたのjava実行可能とのパスを語っています。この問題の解決に役立つもう1つの点は、便利な場所にfop.jarというシンボリックリンクを作成し、必要に応じて簡単に参照できるようにすることです。

あなたのコマンドは、本質的になるだろうとそうすることによって
ln -s /path/to/fop.jar /path/to/symlink 

/usr/bin/java -jar /path/to/symlink infile outfile 

In Bash, when to alias, when to script, and when to write a function?

関連する問題

 関連する問題