java - 如何从命令行调用 jar 中的公共(public)静态 String 方法?

标签 java jar static

我们有一个项目(例如,Foo),它有一些public static 方法,其中一些返回String。现在,我需要从命令行访问该项目的 jar 并调用其中一个 public static String 方法来获取该字符串。


编辑 1:

我需要将返回的字符串作为参数传递给 shell 脚本。像这样:

./my_bash_script.sh <value returned from jar> <more arguments> 

我们该怎么做?

尝试从命令行调用 jar,但这没有帮助。

java -cp Foo.jar full.package.name.ClassName

Error: Could not find or load main class jar

这是预期的,因为该类没有 Main 函数。

还尝试在 Foo.jar 周围添加一个包装器。比如,在我的其他项目中添加这个 jar (Foo.jar) 作为依赖项,并从 Foo.jar 调用 public static String 方法。好吧,这行得通,但我必须在 Java 应用程序之外返回一个字符串,并且 Main 必须是 void

谁能帮我解决这个问题?

如果我遗漏了任何细节,请在否决票之前要求我提供更多解释。

最佳答案

最简单的解决方案是:创建并编译一个新的 Java 控制台应用程序作为 JAR,包括您的其他 JAR 和

System.out.println

它的输出非常简单。 之后你可以开始你的新 JAR

java -jar FILE.jar

并按照您的需要输出

关于java - 如何从命令行调用 jar 中的公共(public)静态 String 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944304/

相关文章:

java - 导出的Jar文件未执行

java - 在每个 jvm 运行中添加 jar 文件似乎不起作用

java - Java 中的静态变量

java - Maven - 来自 java 项目的可执行文件

java - 关于简单 Java 程序的语义

java - Spring MVC 不解析 json 数组正确丢失部分数组

java - 哪个 weblogic jar 文件包含 com.bea.logging.BaseLogRecord?

java - 我可以保证静态初始化程序在 Java 中的运行顺序吗?

java - 在Java中初始化Map的静态数组

java - 等待 JSch 命令执行,而不是硬编码一个固定的等待时间