如何自动创建批处理/shell 脚本来运行Java 控制台应用程序?

发布于 2024-10-21 03:28:08 字数 468 浏览 5 评论 0原文

我有一个 Java 命令行应用程序,并且想要创建一个 Ant* 构建脚本,该脚本将创建成功运行应用程序所需的所有批处理/shell 脚本,包括所有类路径变量。我需要它执行以下操作:

  1. 创建适用于 Linux/Unix 的 shell 脚本文件和适用于 Windows/DOS 的批处理文件
  2. 添加所有类路径依赖项(来自 Maven 或仅使用 Eclipse 中的构建路径)
  3. 将任何必要的样板 sh/bat 代码添加到run(ENV 变量、JAVA_HOME 等)

我在此处只找到了部分答案。

但我还没有找到任何东西可以完成每个构建都涉及的基本而琐碎的任务。

免责声明 - 最初的问题是 Ant/Maven,但我更愿意看看是否可以在 Ant 中完成。

I have a Java command-line application, and would like to create an Ant* build script that will create all the required batch/shell scripts to run the application successfully including all the classpath variables. I need it to do the following:

  1. Create a shell script file for Linux/Unix and a batch file for Windows/DOS
  2. Add all classpath dependencies (from Maven or simply use the build path in Eclipse)
  3. Add any necessary boilerplate sh/bat code to run (ENV variables, JAVA_HOME, etc.)

I found only a partial answer here.

But I haven't found anything that does this basic and trivial task that every build involves.

Disclaimer - the original question was Ant/Maven, but I would prefer to see if it can be done in Ant.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

感情旳空白 2024-10-28 03:28:08

在 Maven 中,最好的解决方案是 maven-appassembler-plugin ,它处理创建 shell 脚本/批处理文件。与 maven- assembly 结合,您可以创建一个 tar.gz 或 zip 存档,其中包含所需的所有内容。

In Maven the best solution for this is the maven-appassembler-plugin which handles the creation of a shell script / batch file. In combination with maven-assembly you can create a tar.gz or zip archive which contains everything which is needed.

ぽ尐不点ル 2024-10-28 03:28:08

Maven 知道 dependency:build-classpath目标,它完成了大部分脏工作:

mvn dependency:build-classpath -DoutputFile=cp.txt

您可以在 shell 脚本中使用这个生成的文件来创建 java 类路径(我知道,它不多,但它会帮助您入门)。

或者您可以使用 exec-maven-plugin 启动当前 Maven 上下文中的主类。像这样的事情会做:

mvn compile org.codehaus.mojo:exec-maven-plugin:1.2:java \
    -Dexec.mainClass=com.yourcompany.YourClass

Maven knows the dependency:build-classpath goal, which does most of the dirty work:

mvn dependency:build-classpath -DoutputFile=cp.txt

You can use this generated file in a shell script to create the java classpath (I know, it ain't much, but it'll get you started).

Or you can use the exec-maven-plugin to launch a main class from the current maven context. Something like this will do:

mvn compile org.codehaus.mojo:exec-maven-plugin:1.2:java \
    -Dexec.mainClass=com.yourcompany.YourClass
冰雪梦之恋 2024-10-28 03:28:08

一种方法是对 Java 应用程序使用二进制可执行构建器。其中一些可以通过提供的 ant 任务从 ant 启动。

例如, exe4j 可以为命令行应用程序创建可执行文件,并支持Windows、Linux 和 Mac。可执行文件包装了 Java 代码、其类路径和 JVM 搜索路径。自定义 ant 任务“com.exe4j.Exe4JTask”支持从 exe4J 配置生成可执行文件——可以使用友好的向导创建该可执行文件。

One approach is to use a binary executable builder for Java applications. Some of these can be launched from ant with provided ant tasks.

For example, exe4j can create executables for command-line applications, and supports Windows, Linux and Mac. The executable wraps the Java code, its classpath, and JVM search path. A custom ant task "com.exe4j.Exe4JTask" supports generation of the executable from an exe4J configuration -- which can be created with a friendly wizard.

北斗星光 2024-10-28 03:28:08

Apache commons Launcher 为您创建启动脚本。 Windows 和 Linux 脚本都会生成。它还可以与Ant集成。

我希望它能帮助其他人。

Apache commons Launcher creates startup scripts for you. Both Windows and Linux script will be generated. Also it can be integrated with Ant.

I hope it will help others.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文