gpt4 book ai didi

java - 如何为 .jar 命令行脚本创建别名?

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:43 25 4
gpt4 key购买 nike

我有一个 jar 文件,可以像这样从命令行运行:

# In Terminal.app
java -jar fop.jar /path/to/infile.fo /path/to/outfile.pdf

目前,为了使其正常工作,我需要导航到包含 fop.jar 的文件夹。这并不理想,因此我尝试将以下别名 添加到 bash_profile...

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

...希望我可以像这样从桌面(或其他任何地方)执行此脚本:

# 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)

有人能帮忙吗?

最佳答案

只要使用 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 可执行文件和 fop.jar 的路径。可能有助于解决该问题的另一件事是在方便的地方创建指向 fop.jar 的符号链接(symbolic link),然后您可以根据需要轻松引用它。

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?

关于java - 如何为 .jar 命令行脚本创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com