【问题标题】:How to pass arguments to a java code using shell script如何使用 shell 脚本将参数传递给 java 代码
【发布时间】:2017-02-15 10:58:35
【问题描述】:

我是 java 和 shell 的新手。我只是对程序有一个模糊的想法,是这样的-

  1. 制作可执行的jar文件
  2. 制作一个shell脚本文件并在其中包含这个命令

    java -jar /home/usr/mystuff/jarFile.jar arg1 arg2 arg3

  3. 现在的疑问是-

    • 我的 java eclipse 项目中有很多文件。我是否需要只制作具有 main() 方法的文件的可执行 jar?
    • 我使用脚本提供的参数是否会被 main 函数收集。
    • 在 shell 中传递参数的语法是什么。像 $var 或 var 或 "var 或其他东西

【问题讨论】:

  • 抱歉,这有点过分了。整个教程都是关于这些事情的……所以:先做一些研究。换句话说:当你不知道你在做什么时,不要尝试使用工具。那是行不通的。
  • 我猜你使用的是 maven 或 gradle,它们都有插件,你不必重新发明轮子。
  • #1 你在你的eclipse项目中使用maven吗? #2 正在开发什么样的应用程序:桌面、Web、api、javafx、套接字? #3 分发我们的 java 应用程序的包非常有趣且具有挑战性:在客户端机器上检测 java、下载 java、启动图标等

标签: java shell


【解决方案1】:

要以这种方式运行 jar 文件,java -jar /home/usr/mystuff/jarFile.jar。您必须在您的 jar 中指定一个包含主类的清单文件。清单文件必须放在 jar 文件根目录下的 META-INF 文件夹中。

例如,您的 MANIFEST.MF 文件应该包含类似的条目:

Main-Class: com.example.MainClass

com.example.MainClass 替换为您的主类的完全限定名称

当您从 Java 项目 > 导出选项 > “Runnable Jar”创建“Runnable Jar”时,您的 IDE(例如 Eclipse)会处理上面列出的整个过程。


至于将参数从 Script 传递到 Jar,您可以直接传递值,也可以使用脚本中的变量传递值。

例如,直接:

java -jar /home/usr/mystuff/jarFile.jar arg1 arg2 arg3

或通过 shell 变量:

var1="arg1"
var2="arg2"
var3="arg3"
java -jar /home/usr/mystuff/jarFile.jar $var1 $var2 $var3

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    1) 你必须创建一个可执行的 jar 文件,是的(使用 Ant、Ivy、Maven 或其他)

    2) 当你把东西扔到 jar 文件时,参数被收集,jeah java -jar <jar-file> "Something goes in here" -DmyCoolVariable=hello

    3)这取决于脚本中是否有变量,然后传递变量 - 如果您使用“静态”的东西,那么只需将变量直接传递给命令。像这样: java -jar <jar-file> "$variables" -DmyCoolVariable=$someProperty

    【讨论】:

      猜你喜欢
      • 2014-11-27
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2018-09-03
      • 2023-03-06
      相关资源
      最近更新 更多