在一致的环境中执行Java程序

2024-04-18

在我工作的地方,我们有一个 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在命令行中执行命令,使用最少的样板?
  • 有什么办法可以挂载到.classpathEclipse 创建的文件?这并不能完全解决我的问题(例如一致的内存设置),但使用已经存在的数据会很好。

Edit:

表达我的问题的另一种方式是“在命令行上复制 Eclipse 的简单‘运行当前文件的主方法’按钮的最简洁方法是什么?”


您是否考虑过从 Ant 生成 shell 脚本?这<pathconvert> task http://ant.apache.org/manual/Tasks/pathconvert.html可以从创建一个类路径<fileset>.

您可以为每种所需的 shell 脚本创建一个 Ant 目标。make然后可以调用这些 Ant 目标来生成 shell 脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一致的环境中执行Java程序 的相关文章

随机推荐

  • 为什么大多数 RNG 中上限都是独有的?

    大多数编程语言都提供 伪 随机数生成器 其中许多都有方便的方法来生成特定范围内的整数 到目前为止 在我见过的所有实现中 范围的下限是包含的 而上限是排除的 这有具体的技术或历史原因吗 我可以想象 在使用索引或长度时它很方便 但我找不到任何有
  • 如何查明当前安装的 webdeploy/msdeploy 版本是什么?

    我正在寻找类似 Powershell 脚本的东西来检查 msdeploy 是否已安装 如果是 是什么版本 我考虑过检查 c Program Files IIS 并检查那里的 MSDeploy 安装 但这总是保证是安装位置吗 我需要它在任何给
  • GAE:模型失去了父子关系的踪迹

    我在谷歌应用程序引擎数据存储中的实体关系中遇到了一个非常奇怪的问题 我正在开发一个 Python GAE Web 应用程序 学习练习 完整的代码可以在来源锻造 http rhs galleries svn sourceforge net v
  • 如何以最小的内存占用直接将大内容流式传输为 PDF?

    我正在尝试以最小的内存占用 例如每个客户端 线程 20 MB 将格式化数据的大内容 例如 200 MB 流式传输为 PDF PDF结构是用Adobe postscript编写的 直接用PDF postscript格式编写比较复杂 我一直在使
  • Dynamics CRM 2011 Outlook 客户端和浏览器呈现

    因此 通过 Dynamics CRM 2011 您可以使用浏览器客户端或 Outlook 客户端 http blogs c5insight com Home tabid 40 entryid 218 CRM and Outlook 6 Re
  • 如何进行从旧 Servlet 到 JSF 2.0 的服务器端重定向?

    我目前正在执行客户端重定向 以从遗留 servlet 应用程序的旧部分 到 JSF 页面 应用程序的新部分 如果可能的话 我更愿意进行服务器端重定向 以便我可以将项目放入 JSF 页面可以拾取的请求中 有一组数据需要在遗留 servlet
  • 在 pandas 中插入具有随机字符串值的新列

    我有一个数据框 A B C 0 1 2 3 1 2 3 3 2 3 2 1 我需要在 pandas DataFrame 中创建一个新列 并随机填充此列中的 是 或 否 A B C NEW 0 1 2 3 yes 1 2 3 3 no 2 3
  • random.choice() 需要 2 个位置参数,但给出了 3 个

    当我输入以下内容时 rand num random choice 1 101 表明 TypeError choice takes 2 positional arguments but 3 were given 这些都放在函数中 我不明白为什
  • 使用cmake创建UWP包

    我正在开发简单的 hello world 应用程序 main cpp include
  • N1QL 错误索引扫描超时 - 原因:索引扫描超时

    我在 couchbase 4 1 0 上通过 CBQ 对大约 2000 万个文档运行查询时遇到问题 执行查询时 2 分钟超时后会打印此错误 代码 12015 msg 索引扫描超时 原因 索引扫描超时 我的问题是这样的 什么是索引扫描 这是寻
  • 通过更改 select 的 selectedIndex 来触发更改事件,无需使用 jQuery

    我正在改变selectedIndex通过JS选择 问题是此操作不会触发更改或输入事件 我怎样才能做到这一点 let select document getElementById select let p document getElemen
  • jQuery 进行动态 ajax 调用并等待它们完成

    我需要进行多次ajax调用 确切的数量是可变的 并等待它们全部完成 我当前的代码如下 ajaxRequests new Array ajaxRequests push function return jQuery post url some
  • 在这段 C# 代码中,我的方法后面的符号“=>”在做什么?

    我最近在这里问了一个问题 有人提供了这样的答案 private void button1 Click object sender EventArgs e var client new WebClient Uri X new Uri http
  • 使用 Simpletest 对 CodeIgniter 进行单元测试 - 测试很少

    在我们的开发团队中 我们决定尝试一下单元测试 我们使用简单测试 然而 这是一条艰难的路 一周后 我只创建了 1 个单元测试来测试某个帮助文件 就是这样 其余的 控制器 模型 视图 库 还没有单元测试 我计划不测试其中的大多数 例如 视图对于
  • Log4j2 错误处理

    由于我发现 log4j 1 2 x 存在一些性能问题 因此我尝试迁移到 log4j2 现在我遇到了一个问题 我找不到解决方案 我必须将 log4j 1 2 x 的配置文件重写为 v2 兼容文件 当我到达附加程序内部的属性 称为 errorH
  • 如何抑制自己重写一切的强烈冲动?

    Setup 您是否有过这样的经历 在一段代码中进行看似简单的更改 然后意识到您刚刚踏入了一片值得认真关注的荒地 这通常会由官方跟进吓坏了那一刻 重写眼前一切的压倒性感觉开始蔓延 值得注意的是 这些糟糕的代码不一定来自其他人 因为它可能确实是
  • 如何按组加速子集

    我曾经使用 dplyr 来实现数据整理 但有些计算速度 慢 特别是按组的子集 我读到当有很多组并且基于时 dplyr 很慢这个基准 https github com Rdatatable data table wiki Benchmarks
  • HtmlUnit 会话管理

    我正在尝试使用 HtmlUnit 登录 Facebook 页面并查看其 HTML 内容 我试图通过 HtmlUnit 填写登录凭据 但单击提交按钮时没有看到会话被携带 找不到太多关于 htmlunit 会话管理类的内容 我还附上了我当前用于
  • Javascript 闭包保留整个父词法环境还是仅保留闭包引用的值的子集? [复制]

    这个问题在这里已经有答案了 考虑以下示例 function makeFunction let x 3 let s giant string 100 MB in size return gt console log x Are both x
  • 在一致的环境中执行Java程序

    在我工作的地方 我们有一个 shell 脚本 它允许我们使用所有必要的库和设置执行任意 Java 类 例如 bin sh JAVA HOME bin java cp LONG LIST OF JARS Xmx6g XX MaxPermSiz