761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
1

Компиляция Java в C#

03.01.2019, 07:25. Показов 3474. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
protected override bool Compile()
        {
            var startInfo = new ProcessStartInfo();
            startInfo.FileName = @"C:\Program Files\Java\jdk1.8.0_151\bin\javac.exe";
            startInfo.Arguments = "program.java 2> compile.out";
            startInfo.UseShellExecute = false;
            Process.Start(startInfo);
            return true;
        }
Выполняю компилирование простого java файла, но его не находит java. см 2.jpg
Что делаю не так?
Миниатюры
Компиляция Java в C#  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2019, 07:25
Ответы с готовыми решениями:

Компиляция наследования Java
Народ пытаюсь разобраться с наследованием в Java и компилятор выдается ошибку вот мой первый...

Компиляция пакетов в Java
Добрый день! Скачал книжку Шилдт Г. - Java 8. Полное руководство - 2015 изучая 9 главу 1 части,...

Компиляция java файла
Пытаюсь собрать декомпилированный java в class файл, при это выдает 17 ошибок. Помогите,...

Java, Package, компиляция
Всем доброго дня. Вопрос у меня по пакетам. Только сегодня начал их изучать и напоролся на ошибку....

10
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.01.2019, 08:02 2
попробуй полный путь указать, например
1
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
03.01.2019, 11:13  [ТС] 3
Изменений нет см на рис.
Путь не писал, а копировал прямо в папке, чтобы исключить просто ошибки
Миниатюры
Компиляция Java в C#  
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
03.01.2019, 11:33  [ТС] 4
Прошло обновление Java, теперь в bin javac не найду.
Нашел самое близкое
"C:\Program Files\Java\jre1.8.0_191\bin\javacpl.exe"
Это правильно?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.01.2019, 11:40 5
ты точно правильный путь туда отдаешь? у тебя там довольно странные имена. javac должен быть
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
03.01.2019, 11:59  [ТС] 6
первый открыл папку bin

Второй - поиск в папке bin javac.exe . Пробовал в панели управления добавить обновление
Миниатюры
Компиляция Java в C#   Компиляция Java в C#  
0
Администратор
Эксперт .NET
16989 / 13348 / 5209
Регистрация: 17.03.2014
Сообщений: 27,293
Записей в блоге: 1
03.01.2019, 14:36 7
Лучший ответ Сообщение было отмечено all_angarsk как решение

Решение

all_angarsk, 1) возможно файл не существует потому что ты не дожидаешься окончания процессов перед этим. Ведь метод Process.Start запускает процесс, но не ждет его завершения. Если ожидание нужно, то добавь WaitForExit
C#
1
Process.Start(startInfo).WaitForExit();
Еще вместо указания полного пути к *.java файлу можно указать WorkingDirectory. Хотя это принципиально ничего не меняет, а только упрощает командную строку.

2) В приведенном коде используется перенаправление вывода. Оно поддерживается только в рамках командного интерпретатора. Запуск должен выглядеть как-то так.
C#
1
2
3
4
5
6
7
8
9
protected override bool Compile()
        {
            var startInfo = new ProcessStartInfo();
            startInfo.FileName = "cmd";
            startInfo.Arguments = @"/c ""C:\Program Files\Java\jdk1.8.0_151\bin\javac.exe"" program.java 2> compile.out";
            startInfo.UseShellExecute = false;
            Process.Start(startInfo).WaitForExit();
            return true;
        }
1
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
03.01.2019, 16:30  [ТС] 8
Но проблема оказывается осталась.
выполняется попытка компиляции. Это видно на первом рис. Нет ошибок.
Но нет jar файла или .exe

В самом compile.out запись ошибок. см второй
Миниатюры
Компиляция Java в C#   Компиляция Java в C#  
0
Администратор
Эксперт .NET
16989 / 13348 / 5209
Регистрация: 17.03.2014
Сообщений: 27,293
Записей в блоге: 1
03.01.2019, 16:45 9
all_angarsk, значит с путями что-то не так. Не видя всего кода трудно сказать что-то определенное.
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
03.01.2019, 16:58  [ТС] 10
В архиве весь код, без папок
Вложения
Тип файла: rar RobotService.rar (191.0 Кб, 6 просмотров)
0
Администратор
Эксперт .NET
16989 / 13348 / 5209
Регистрация: 17.03.2014
Сообщений: 27,293
Записей в блоге: 1
03.01.2019, 18:39 11
all_angarsk, судя по наличию файла compile.out в папке проекта процесс запускается именно в этом каталоге и там же он пытается найти Program.java. Попробуй такой вариант метода Compile в Robotjava
C#
1
2
3
4
5
6
7
8
9
10
        protected override bool Compile()
        {
            var startInfo = new ProcessStartInfo();
            startInfo.FileName = "cmd";
            startInfo.Arguments = @"/c ""C:\Program Files\Java\jdk1.8.0_151\bin\javac.exe"" Program.java 2> compile.out";
            /* + */ startInfo.WorkingDirectory = folder;
            startInfo.UseShellExecute = false;
            Process.Start(startInfo).WaitForExit();
            return true;
        }
Добавлено через 8 минут
Или укажи как и раньше полный путь к файлу
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        const string JAVAC_PATH = @"C:\Program Files\Java\jdk1.8.0_151\bin\javac.exe";
 
        protected override bool Compile()
        {
            string javaSrcPath = Path.Combine(folder, "Program.java");
 
            var startInfo = new ProcessStartInfo();
            startInfo.FileName = Environment.GetEnvironmentVariable("ComSpec"); // Полный путь к cmd.exe
            startInfo.Arguments = $"/c \"{JAVAC_PATH}\" \"{javaSrcPath}\" 2> compile.out";
            //startInfo.WorkingDirectory = folder;
            startInfo.UseShellExecute = false;
            Process.Start(startInfo).WaitForExit();
            return true;
        }
1
03.01.2019, 18:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2019, 18:39
Помогаю со студенческими работами здесь

Компиляция проекта на java.
Всем привет! У меня есть готовый проект написанный на java. Я хочу собрать этот проект, но сам я не...

Компиляция *.java файла
Привет всем. Такой вопрос. Есть у меня jdk 1.6.0. есть файл example.java, что и как делать...

Компиляция Java в cmd
Добрый день учусь программировать на Java. Возникла проблема компиляции. При расположении 2х...

Компиляция Java в cmd
Доброе время суток, я начал изучать язык программирования Java, читал книгу и там был пример...

Компиляция/декомпиляция в Java
Вечер добрый! Извините, если я с своим вопросом ни в тот раздел попал, просто я пока совсем...

java компиляция исходного кода
Доброго времени суток , уважаемые знатоки. Допустим есть класс example с функцией main, помещенный...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru