Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
1

Как запустить код bat-файла, который, в свою очередь, запускает сервер, написанный на Java

23.07.2014, 06:56. Показов 1613. Ответов 11
Метки нет (Все метки)

Есть батник... В нем такой код(запускает яву с параметрами которые указаны в коде)... Этот батник запускает сервер... Который написан на яве... И выводит все происходящие в консоли(cmd)
Bash
1
2
SET JAVA_OPTS=-XX:-UseSplitVerifier -XX:+TieredCompilation %JAVA_OPTS%
JAVA %JAVA_OPTS% -ea -javaagent:./libs/al-commons-1.3.jar -cp ./libs/*;AL-Game.jar com.anemu.gameserver.GameServer
Так вот... Моя задача... Запустить этот код через программу которая написана на vb.net... И выводить все в текстбокс... Как такое можно сделать? Или дайте примеры пожалуйста
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2014, 06:56
Ответы с готовыми решениями:

Подключение библиотеки .dll, исходный код которой написан на С++, к проекту, который в свою очередь реализован на C#
Есть длл, написанная на старых добрых плюсах. Вопрос: как подключить ее к проекту, написанному на...

Один bat-файл запускает по очереди два других bat-файла
Имеются две папки в одной драйвера в второй программы решил сделать установку этого хозяйства с...

Как записать в переменную Array элемент массива, который в свою очередь так же является массивом
Вот часть кода. Array sim = new Array; for (int i = 0; i <= slova.Length - 1; i++) ...

Как сделать upload на сервер свою страничку, что бы потом ее запустить?
Как сделать upload на сервер свою страничку, что бы потом ее запустить? Естественно без...

11
288 / 269 / 107
Регистрация: 10.06.2011
Сообщений: 696
23.07.2014, 10:03 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim process As New System.Diagnostics.Process()
With process.StartInfo
    .FileName = "cmd.exe"
    .Arguments = "параметры"
    .RedirectStandardOutput = True
    .RedirectStandardError = True
    .RedirectStandardInput = True
    .UseShellExecute = False
    .WindowStyle = ProcessWindowStyle.Normal
    .CreateNoWindow = False
End With
 
Dim reader As StreamReader = process.StandardOutput
process.WaitForExit()
 
dim output as string 
output = reader.ReadToEnd()
Или же записать параметры в батник и запустить его
1
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
23.07.2014, 18:53  [ТС] 3
Darth Coder, в батник то понятное дело можно записать... Но у меня не такая задача... Нужно не посредственно из моей программы все делать... А как выводить данные с консоли в текстбокс?
0
288 / 269 / 107
Регистрация: 10.06.2011
Сообщений: 696
23.07.2014, 20:18 4
VB.NET
1
TextBox1.Text=output
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
28.07.2014, 09:41  [ТС] 5
Какой день уже бьюсь... Но так и не могу запустить ((... Все варианты уже перепробовал которые смог придумать
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
31.07.2014, 13:04  [ТС] 6
Получилось сделать то что хотел... Но появилась другая проблема... Данные выводяться в текстбокс после того как в консоли завершиться весь процесс и она закроется... А как выводить данные непосредственно во время выполнения в консоли задачи?
код который использую

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        With proce.StartInfo
            .FileName = "Start.bat"
            .RedirectStandardOutput = True
            .RedirectStandardError = True
            .RedirectStandardInput = True
            .UseShellExecute = False
            .WindowStyle = ProcessWindowStyle.Hidden
            .CreateNoWindow = True
            proce.Start()
            proce.WaitForExit()
        End With
        Dim reader As StreamReader = proce.StandardOutput
 
        output = reader.ReadToEnd
        TextBox1.Text = output
0
250 / 162 / 14
Регистрация: 10.03.2012
Сообщений: 544
31.07.2014, 21:01 7
Treals, http://msdn.microsoft.com/ru-r... 10%29.aspx
Сейчас код набросаю...

Добавлено через 5 часов 31 минуту
Хотя нет, не набросаю... звиняйте) запарка.
1
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
01.08.2014, 03:46  [ТС] 8
iprog, спасибо за ссылку... А случайно не знаешь пример на винформе?)
0
Заблокирован
01.08.2014, 23:23 9
Нужно не посредственно из моей программы все делать...
Тогда на кой же в ней вообще батник?)))

А как выводить данные непосредственно во время выполнения в консоли задачи?
Тут вроде есть пример на C++/CLI.
https://www.cyberforum.ru/cpp-... 27810.html

Может и тут есть похожий.
Visual Basic .NET FAQ. Готовые решения, полезные коды
Если нет, то потом напишите сами и у следующего такой проблемы уже не будет.
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
02.08.2014, 03:54  [ТС] 10
Бауман, батником воспользовался потому что не смог в аргументах прописать параметры... Консоль работает в фоне(hide)... Так что ее не видно... А данные выводятся в текстбокс... Но проблема в том что они выводятся только после завершения работы консоли... А мне надо что бы во время работы выводились данные
0
250 / 162 / 14
Регистрация: 10.03.2012
Сообщений: 544
03.08.2014, 17:20 11
Treals, на WinForms то же самое будет в той части кода, где идет вызов процесса. Нужно сделать обработчик события OutputDataReceived, там выводить полученную строку в текстбокс. Подключать обработчик к объекту Process и после старта процесса вызвать BeginOutputReadLine().
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
04.08.2014, 13:24  [ТС] 12
Хоть убейте не получается... Все уже проштудировал по нескольку раз... Не могу вывести данные в текст бокс во время выполнения задачи в консоли ((... Уже и консольный пример разобрал... Все равно результат нулевой

Добавлено через 7 часов 33 минуты
Написал то что нужно... Если кому надо выкладываю код

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Imports System.IO
Imports System
Imports System.Text
 
Public Class Form1
    Public pro As New System.Threading.Thread(AddressOf pr) ' вызывает новый поток
    Dim proce As New System.Diagnostics.Process()
    Private Shared sortOutput As StringBuilder = Nothing
 
    Dim numOutputLines As Integer = 0
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False ' отключает проверку на потоки
    End Sub
 
    Public Sub pr()
 
        With proce.StartInfo
             .FileName = "имяфайла.bat"
            .RedirectStandardOutput = True
            .RedirectStandardError = True
            .RedirectStandardInput = True
            .UseShellExecute = False
            .WindowStyle = ProcessWindowStyle.Hidden
            .CreateNoWindow = True
            sortOutput = New StringBuilder()
            AddHandler proce.OutputDataReceived, AddressOf SortOutputHandler
 
        End With
        Try
            proce.Start()
            proce.BeginOutputReadLine()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
 
 
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        pro.Start()
    End Sub
 
    Private Sub SortOutputHandler(sender As Object, outLine As DataReceivedEventArgs)
        Try
            TextBox1.Text = TextBox1.Text + vbCrLf + outLine.Data
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
End Class
Эти два параметра отключают консольное окно(оно работает в фоне и его не видно)
VB.NET
1
2
            .WindowStyle = ProcessWindowStyle.Hidden
            .CreateNoWindow = True
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2014, 13:24

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Groovy Как описать task, который запускает некоторый метод из java класса (не main)?
как описать task, который запускает некоторый метод из java класса (не main)?

Как запустить программу из .bat файла?
Пользуюсь DevC++, хочу узнать как с помощью батника открыть написанную прогу? Гуглил, опыта нету...

Как запустить программу через Far из BAT файла?
Есть win 10 Есть программа древняя, которая запускается с интерфейсом в командной строке(типа...

Как запустить Winamp свернутым из BAT-файла ?
у меня появилась проблема запуска Winamp.exe т.е. не как все нормальные люди запускают через ярлык...

Что выведет следующий код написанный на Java?
Всем привет! Я с синтаксисом Java не знакома, знакома только с С++, хотелось бы понять алгоритм...

Запустить bat файл, который находится в корне проекта
Всем привет!) Написал програмку, которая запускает батник, и запускается он через путь :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.