首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java编写linux工具

使用java编写linux工具
EN

Stack Overflow用户
提问于 2014-07-25 18:16:09
回答 2查看 140关注 0票数 3

我想使用java编写一个在linux下使用的工具,这样我就可以像调用"ls“一样调用它。我该怎么办?我计划:

  1. 编写一个带有主函数的java,取我的参数,做好工作。如何返回结果?Java不能返回字符串。
  2. 在系统中添加我的jar的最佳位置是哪里? /user/bin?
  3. 我怎样才能用最少的打字来称呼它呢?我不想键入java jar XXXXXX com.mynamespace.myfunction .我怎么能用像"ls“这样的简单名字来称呼它呢?

非常感谢

EN

回答 2

Stack Overflow用户

发布于 2014-07-25 18:18:45

您可以创建指向jar的bash文件/usr/bin/custom_program

代码语言:javascript
复制
#!/usr/bin/bash
java -jar /path/to/your/java.jar # add any custom command line switches here

不要忘记用sudo chmod u+x /usr/bin/custom_program将其标记为可执行文件。

您的输出将在程序中以System.out.println()调用的形式提供--不需要从main返回String

然后,您可以在上面的bash脚本的帮助下用custom_program调用您的java程序。

票数 7
EN

Stack Overflow用户

发布于 2014-07-25 18:30:03

除了shell脚本之外,还可以使用其他技巧。

我更喜欢shell脚本,它可能更具有可移植性(某些Linux系统可能没有加载支持binfmt_misc所需的内核模块,或者没有可用的内核模块)

正如内核的文档/java.txt解释的那样:

2)您必须将BINFMT_MISC编译为一个模块,或者编译到内核(CONFIG_BINFMT_MISC)中,并正确地设置它。如果您选择将其编译为一个模块,则必须手动使用kmod /insmod插入它,因为binfmt_misc很难支持kmod。阅读此目录中的“binfmt_misc.txt”文件,了解有关配置过程的更多信息。 3)将以下配置项添加到binfmt_misc (您现在应该已经阅读了binfmt_misc.txt ):支持binfmt_misc.txt应用程序:

代码语言:javascript
复制
 ':Java:M::\xca\xfe\xba\xbe::/usr/local/bin/javawrapper:'

支持可执行的Jar文件:

代码语言:javascript
复制
 ':ExecutableJAR:E::jar::/usr/local/bin/jarwrapper:'

支持Java小程序:

代码语言:javascript
复制
 ':Applet:E::html::/usr/bin/appletviewer:'

或者,如果您希望更有选择性,请执行以下操作:

代码语言:javascript
复制
 ':Applet:M::<!--applet::/usr/bin/appletviewer:'

当然你必须修正路径名。本文档中给出的路径/文件名与Debian2.1系统匹配。(即安装在/usr中的jdk、/usr/local中该文档的自定义包装器)

使用gcj

另一种可能性(我不推荐)是使用gcj (GCC内部的旧Java编译器)。

gcj使您能够将Java程序编译成本地Linux二进制可执行文件。但我不推荐这样做是因为:

  • GCC社区中很少(越来越少)的人在gcj上工作。
  • 很少有人使用gcj;我只遇到过一个偶尔使用它的开发人员。
  • 所以gcj已经过时了
  • 分配了大量资源的gcj生成代码的性能不太好(因为它使用的Boehm垃圾收集器比其他Java实现中的GC要慢得多)。然而,在低分配率的Java代码上,它可能运行得相当快(因为GCC的强大优化是以GCC语言中性的中间端完成的)。
  • gcj支持的Java语言是一些相当老的Java标准的子集。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24962077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档