2017-06-06 96 views
0

我有通過任務計劃程序中的計劃安裝程序啓動的Windows控制檯應用程序。該控制檯應用程序作爲其正常運行時的一部分,將啓動命令提示符以運行Java程序。不,我無法控制Java程序的設計。它是按原樣提供給我的,我沒有權利或訪問權限對其進行更改。我也無法用另一種語言來實現它。我必須使用給我的東西。從通過Windows任務計劃程序運行的控制檯應用程序啓動命令shell

無論如何,當我的控制檯應用程序試圖運行命令提示符時,如果我手動啓動應用程序,它就會工作得很好。但是,當我將它作爲Task Scheduler中的操作進行嘗試時,我的控制檯應用程序將按預期啓動並運行,直到它需要啓動命令提示符。此時,控制檯應用程序退出。沒有提供錯誤信息或代碼。

當沒有人登錄到服務器時,如何從我的控制檯應用程序中啓動命令提示符窗口作爲新窗口啓動?

感謝您提供任何提示或建議。

* UPDATE *

這裏是代碼片段,從我的控制檯應用程序中啓動程序:

string parameter_save_path = @"C:\output\folder" 
System.Diagnostics.Process process = new System.Diagnostics.Process(); 
System.Diagnostics.ProcessStartInfo start_info = new System.Diagnostics.ProcessStartInfo(); 
start_info.WorkingDirectory = @"C:\mtselect-client"; 
start_info.FileName = "cmd.exe"; 
start_info.Arguments = "/C run.bat \"" + parameter_save_path + "\""; 
process.StartInfo = start_info; 
process.Start(); 
process.WaitForExit(); 

的run.bat中就是啓動java程序。

+0

你能分享一些代碼?你現在如何在命令行應用程序中啓動java程序? – easuter

+0

對不起。代碼片段現在是原始帖子的一部分。 – breusshe

+0

無賴。我想沒有人知道如何做到這一點。我想我會嘗試將程序分成兩部分,併爲我的任務添加三個動作。這樣,java程序將直接由任務調度程序運行,而不是由程序調用。儘管如此,還是有更好的方式來做到這一點。 – breusshe

回答

0

我認爲這是太晚了此消息,但...

在批處理文件

也許你正在運行的東西,如Java應用程序:Java的罐子應用程序名稱

首先我要做的應該是註釋掉批處理文件中的「@echo off」,然後用一個回聲「x」(xa自然數從1開始並在每次出現中增加1)追蹤批處理行。接下來,我將添加一行java -version,所以我將確保Java應用程序已安裝並可訪問。

也許java需要由經過身份驗證的用戶運行,因此定義了java_home。也許應用程序需要一些JVM參數,如內存大小等

有好運氣,告訴我,我會盡力幫助

相關問題