2015-11-04 40 views
0

第一個問題,要善良,我在12小時前開始閱讀批處理文件。一個批處理文件可以給一個jar文件一個命令嗎?

我想寫一個批處理文件,每30分鐘將一個命令傳遞給java jar文件。

我相信這一定是可能的,但我對bat文件的小體驗並沒有削減它。

這是我迄今

@echo off 
title Test Program 

set /a count=0 
start /B java -Xms2G -Xmx2G -jar minecraft_server.1.8.8.jar nogui 
timeout /t 15 >nul 
goto loop 


:loop 
set /a mark=30*count 
set /a count=count+1 
echo say Episode %count% Minute Mark %mark% 
timeout /t 5 >nul 

goto loop 

爲了比較寫的批處理文件下面將啓動並運行jar文件,如果我鍵入命令進入命令提示符,jar文件響應他們。

title run-minecraft 
java -Xms2G -Xmx2G -jar minecraft_server.1.8.8.jar 
pause 

例如,如果I型「說喜」到其執行時所述第二程序,JAR文件執行「說」命令和「喜」出現在遊戲中。第一個程序在命令提示符中每隔5秒(我不想在測試期間等待半小時)輸出「say Episode ...」,但say命令未執行,並且所需消息「Episode#Minute Mark# #「不會顯示在遊戲中。

我認爲問題在於我沒有告訴命令提示符執行批處理文件寫入的代碼,但我不知道如何自動執行該代碼。

對不起,如果這是混亂,因爲我沒有使用適當的條款,但我不是一個程序員,不知道更好。

+0

在旁邊的評論,幫你一個忙,學會使用powershell而不是批處理。自Vista以來,它更現代化並得到支持 – Aaron

+0

這不是批處理文件問題。 Java程序需要能夠接受命令行參數。 – Squashman

+0

@Squashman我相信他在說stdin而不是命令行參數 – Aaron

回答

0

在您的短批處理文件中,該解決方案的工作原理是因爲Java命令在I/O插入Java應用程序的另一命令行中打開。
在新批處理中,使用start/b可以在不使用命令行的情況下打開Java應用程序,因此無需I/O。
我不是很熟練,可以批量回答你的問題,但你需要的是找到如何重定向命令I/O,這是控制輸入(可能輸出,但這是無關的)的Java命令。

看起來像this是一個好的開始。

+0

你的鏈接不工作,請更新... – aschipfl

+0

@aschipfl必須在你身邊,我檢查了它,它適用於我。對於那些會有你的問題的另一個來源:https://jpsoft.com/help/redirection.htm – Aaron

+0

我在兩個網站上遇到了問題...無論如何,感謝替代鏈接... – aschipfl