在我工作的地方,我们有一个 shell 脚本,它允许我们使用所有必要的库和设置执行任意 Java 类,例如:
#!/bin/sh
$JAVA_HOME/bin/java -cp LONG_LIST_OF_JARS -Xmx6g -XX:MaxPermSize=128m "$@"
并像这样使用:
javacorp.sh com.mycorp.SomeJob
这显然比需要指定所有的java
每次都显式地传递参数,但我不喜欢它只是手动连接到我们的 Eclipse 项目中配置的用于编译代码库的 jar。我正在开发一个个人项目,并希望能够从命令行执行任意类,并尝试确定如何最好地提供一致的java
环境。
目前我正在使用 Eclipse 来运行我的应用程序,但我希望能够直接从命令行运行它们,或者在没有安装 Eclipse 的计算机上运行它们。特别是,我还希望能够限制可以执行的类/jar 的范围。例如,javacorp.sh
让我们运行任何东西src/
目录,并且仅javacorpunit.sh
包括以下类别tests/unit/
类路径中的目录。
- 有没有一种干净的方法来使用 Ant、Maven 或其他构建工具来执行配置的
java
在命令行中执行命令,使用最少的样板?
- 有什么办法可以挂载到
.classpath
Eclipse 创建的文件?这并不能完全解决我的问题(例如一致的内存设置),但使用已经存在的数据会很好。
Edit:
表达我的问题的另一种方式是“在命令行上复制 Eclipse 的简单‘运行当前文件的主方法’按钮的最简洁方法是什么?”
您是否考虑过从 Ant 生成 shell 脚本?这<pathconvert> task http://ant.apache.org/manual/Tasks/pathconvert.html可以从创建一个类路径<fileset>
.
您可以为每种所需的 shell 脚本创建一个 Ant 目标。make
然后可以调用这些 Ant 目标来生成 shell 脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)