我在我的Linux系統上創建了一個java程序,它壓縮和格式化給定的文件。我想讓這個程序像Linux中的命令一樣工作,它將文件名和其他選項作爲參數,然後生成輸出。我可以用C程序by just copying the compiled executable in /bin folder
來做到這一點,但我不知道如何用java來做到這一點。將一個java程序轉換成一個linux命令
回答
能可能會進一步幫助 -
#!/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 filename arg1 arg2
,其中test.sh爲
您可以簡單地運行一個Java類文件或jar文件與命令行的「java」命令。例如:
Java的罐子yourprogram.jar參數1參數2
如果您保存這條線在保存例如,作爲「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命令。
看起來使用.class文件作爲命令並不像C程序可執行那麼簡單..但無論如何感謝Ufo.rob的幫助! – Nullpointer
您需要在'.jar'中正確打包應用程序才能正常工作;這似乎是一個額外的描述,做他的完整性將是必要的。 –
正如其他人指出的,最好使用小型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"
- 1. 創建一個Java字符串形成一個Linux命令
- 2. 將一個ssh命令轉換爲python
- 3. 如何將多行linux命令轉換爲一行命令
- 4. 從java運行一個Linux命令
- 5. Java:將一個小程序轉換爲桌面應用程序
- 6. imageMagick從一個文件夾轉換爲Linux中的另一個命令?
- 7. 將Unix排序命令轉換成Quicksort
- 8. Linux:命令行實用程序將RTF轉換爲PDF?
- 9. 從一個命令啓動多個Java程序(多個JVM)
- 10. Linux:將命令添加到bashrc中的另一個命令中
- 11. Linux命令行將PDF轉換爲excel
- 12. 將Linux Curl命令轉換爲PHP
- 13. 將Linux命令轉換爲windows(mysql)
- 14. 轉換Python程序爲我寫了一個Python程序C shell命令,腳本
- 15. 需要將粘貼命令從一個程序發送到另一個程序?
- 16. AutoIt:完成前一個命令後運行下一個命令
- 17. 上一個命令完成後執行下一個命令
- 18. 尋找一個GUI應用程序來輸入linux命令
- 19. 從python終止一個linux命令行實用程序
- 20. 運行一個Linux程序viz命令行與PHP?
- 21. 提供的Linux Shell腳本:保存一個命令行程序
- 22. 轉換一個SFTP shell腳本命令爲ftp命令
- 23. WPF兩個命令處理程序,一個命令
- 24. 從linux命令行中用另一個替換整個段落
- 25. 我想將一個php/mysql應用程序轉換成一個wordpress插件
- 26. 將一個普通的java程序轉換爲map減少
- 27. 轉換cURL命令成純Java
- 28. 從java程序內執行linux命令
- 29. 從命令行運行Java程序Linux
- 30. 從Java程序使用attr linux命令
您創建了一個程序來縮進和格式化文件。那很好。你可能會很高興知道有一個名爲'indent'的程序已經爲你做了這個。 – devnull
使用Java,您可以編寫一個在您的Jar上調用Java的小型shell腳本,並傳遞一些傳遞給shell腳本的參數。 – dasblinkenlight
http://www.gnu.org/software/indent/ – devnull