如何使用shell脚本将参数传递给java代码

时间:2017-02-15 10:58:35

标签: java shell

我是java&的新手贝壳。我只是对程序有一个模糊的想法,就像这样 -

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

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

  3. 现在怀疑是 -

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

2 个答案:

答案 0 :(得分:0)

以这种方式运行jar文件java -jar /home/usr/mystuff/jarFile.jar。您必须在jar中指定具有主类的Manifest文件。清单文件必须放在jar文件根目录的META-INF文件夹中。

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

Main-Class: com.example.MainClass

com.example.MainClass替换为您的Main Class的完全限定名称

当您创建一个" Runnable Jar"时,您的IDE(例如Eclipse)会照顾上面列出的整个过程。来自您的Java项目>导出选项> " Runnable Jar"。

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

例如,直接:

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

OR通过shell变量:

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

希望这有帮助!

答案 1 :(得分:0)

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

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

3)这取决于,如果你在脚本中有变量,那么传递变量 - 如果你正在使用&#34;静态&#34;东西,然后直接将变量传递给命令。像这样: java -jar <jar-file> "$variables" -DmyCoolVariable=$someProperty