如何從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. 從Java調用shell腳本掛起
- 4. 從C調用shell腳本
- 5. 從shell腳本調用sqlplus
- 6. 從makefile調用shell腳本?
- 7. 從shell腳本調用python腳本cron
- 8. Shell腳本調用運行java程序的非主要方法
- 9. 無法從java運行shell腳本
- 10. 從另一種方法的java腳本調用方法
- 11. 無法從c shell腳本調用perl腳本
- 12. 如何從shell腳本調用另一個shell腳本的Unix
- 13. 從Java運行shell腳本
- 14. 從Java運行shell腳本
- 15. 「here」調用java類的shell腳本
- 16. 在java中調用shell腳本?
- 17. 從java程序調用shell腳本並將參數從java傳遞給shell腳本循環
- 18. 方式調用UNIX shell腳本( 「」, 「源」)
- 19. 從Java觸發shell腳本的最佳方法
- 20. 無法從Java調用Perl腳本
- 21. 執行從Java,Shell腳本Shell腳本已經閱讀操作
- 22. 從shell腳本中調用java應用程序
- 23. 從java應用程序調用的shell腳本的位置
- 24. 無法調用使shell腳本
- 25. 從adobe livecycle workbench調用shell腳本?
- 26. 如何從shell腳本調用https url
- 27. 從shell腳本調用sqlplus的時候
- 28. 如何從Apache調用shell腳本?
- 29. 從shell腳本中調用python函數
- 30. 從ssh調用嵌套的shell腳本
哦,順便說做任何你們知道一個整潔的在線服務,使我能迅速搭起目錄結構(文本格式)像上面那樣? – adarshr 2012-02-23 11:28:45