如何从shell脚本内部执行Java方法?从Shell脚本调用Java方法
7
A
回答
10
您只能调用main
方法。设计您的main
方法,使其调用所需的方法。
当我说调用main
方法时,你不明确地调用它。这是调用Java程序时唯一的入口点。
如果你的类是这样的:
package com.foo;
public class Test {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
可以使用下面的命令行来调用从目录中main
在这里你可以找到com/foo/Test.class
(如果你在所示结构classes
目录是远低于):
java com.foo.Test
如果你想从不同的做到这一点(见远低于目录结构)的目录,那么你就必须要设置classpath中。
java -cp /path/to/classes com.foo.Test
为了清楚起见,假设下面的目录结构。
-path
-to
-classes
-com
-foo
>Test.class
2
您不能直接从shell脚本执行任意方法,您需要以某种方式在外部暴露该方法。
最简单的方法当然是写一个main
方法,直接调用你想测试的代码。
或者,您可以使用一个Java应用程序,该应用程序将参数用作某种启动程序。以最简单的形式,您可以想象一个应用程序,它将类名称和方法名称作为参数,然后实例化该类并通过反射调用该方法。以类似的方式,但更优雅一些,我们使用一个应用程序调用通过JMX公开的操作,以便在需要时触发服务器上的某些方法。
尽管如此,bash
(或等价物)不能理解JVM字节码。你将需要启动Java进程来运行该方法,这将涉及执行一些main
方法,这反过来又调用你所需要的。
0
您可以使用shell脚本,并调用Java程序是这样的:
`#!/bin/bash
JAVA_HOME=/usr/lib/jvm/jdk1.6.0_02
CLASSPATH=/home/freddy/myapp/lib/whatever.jar: .
$JAVA_HOME/bin/java -cp $CLASSPATH MyJavaClass
exit 0`
相关问题
- 1. 从UI调用Shell脚本(使用Java)
- 2. 从Java调用shell脚本挂起
- 3. 从shell脚本调用sqlplus
- 4. 从shell脚本调用python脚本cron
- 5. 无法从c shell脚本调用perl脚本
- 6. 如何从shell脚本调用另一个shell脚本的Unix
- 7. 从Java运行shell脚本
- 8. 从Java运行shell脚本
- 9. 在java中调用shell脚本?
- 10. 从Java触发shell脚本的最佳方法
- 11. 无法从Java调用Perl脚本
- 12. 从java应用程序调用的shell脚本的位置
- 13. 从shell脚本中调用python函数
- 14. 从Linux shell脚本调用RSCRIPT
- 15. 从adobe livecycle workbench调用shell脚本?
- 16. 如何从Perl脚本调用shell
- 17. 从java调用R脚本
- 18. 从其他Gradle脚本调用方法
- 19. Java与shell脚本
- 20. 使用root权限从python脚本调用shell脚本
- 21. Shell脚本调用vim编辑器,获取退出方法
- 22. 调用shell脚本/。从一个bash脚本内的jar文件
- 23. 通过sudo - 环境变量从另一个shell脚本调用shell脚本?
- 24. 在另一个shell脚本中调用shell脚本的区别
- 25. 从shell脚本运行java类
- 26. 从Shell脚本启动Java服务器
- 27. 从Java代码执行Shell脚本
- 28. 需要从java执行shell脚本
- 29. Shell脚本 - 检查java bin
- 30. java的shell脚本问题
哦,顺便说做任何你们知道一个整洁的在线服务,使我能迅速搭起目录结构(文本格式)像上面那样? – adarshr 2012-02-23 11:28:45