将java程序转换为linux命令

时间:2013-07-20 10:27:10

标签: java linux command

我在Linux系统上创建了一个java程序,它缩进并格式化给定的文件。我想让该程序像Linux中的命令一样工作,它将文件名和其他选项作为参数,然后生成输出。我可以使用C程序by just copying the compiled executable in /bin folder执行此操作,但我不知道如何使用java。

4 个答案:

答案 0 :(得分:1)

可能进一步提供帮助的示例脚本 -

#!/bin/bash

#Set whatever number of arguments you expect for the Java jar you have
ARGS_EXPECTED=3

if [ $# -ne $ARGS_EXPECTED ]
then
  echo "[$HOSTNAME]: Usage: `basename $0` filename arg1 arg2"
  exit 1
fi

java -cp yourfile.jar com.yourpkg.Driver $1 $2 $3

将上述内容保存到文件中,例如test.sh 并使用该命令提供可执行权限chmod +x test.sh

从test.sh

的当前目录中运行./test.sh filename arg1 arg2

答案 1 :(得分:0)

答案 2 :(得分:0)

您只需使用" java"运行Java类文件或jar文件即可。命令行命令。例如:

java -jar yourprogram.jar argument1 argument2

如果将此行保存在保存的文本文件中,例如" script.sh"然后给它执行权限,你可以双击或从终端输入./script.sh在包含文件script.sh的同一文件夹中运行它。

您还可以生成使用$ 1 $ 2等参数的脚本,避免编辑文件。 http://www.linuxquestions.org/questions/linux-newbie-8/how-to-pass-command-line-parameter-to-shell-script-254396/ 您也可以使用命名参数。

您也可以为新命令生成一个C程序,就像您建议运行" java"命令。在这种情况下,您可以直接从终端引入参数,并将它们传递给C源代码中的java命令。

答案 3 :(得分:0)

正如其他人指出的那样,最好使用小型shell脚本来运行Java应用程序。有几个开源产品可以帮助您包装Java代码以生成可运行的(一组).jar(s)。

如果您已正确地将业务逻辑与接口分开(如您所愿),那么最好是Java应用程序解析命令行界面上给出的参数。为此,创建一个单独的类来解析这些参数并调用构成业务逻辑的类。当然,这将很快 - 如果不是立即 - 在编写用于Linux的解析器(如CLI参数)时。发生这种情况时,您可能希望考虑Apache Commons CLI project

如果您不想使用任何包装应用程序/运行时,我的方法通常指向类路径中的所有类文件容器,并直接指向包含静态main方法的类:

java -cp "path_to_jar;path_to_class_folder;etc" "nl.owlstead.stackoverflow.LinuxMain"
相关问题