Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 27

Запустить скомпилированный класс Main.class из Java кода

18.10.2017, 21:34. Показов 1333. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Нужно запустить Main.class из Java кода. Код, который привел ниже, с компиляцией Main.java справляется неплохо. А вот запустить его не получается. Выдает ошибку Error: Could not find or load main class d:\problem\Main
Но когда я пытаюсь запустить Main.class не из кода, а просто "ручками" через cmd , то всё работает, хоть использую ту же команду, которую передаю ProcessBuilder' у . Пытался "запихивать" команду java Main в батник и запускать уже его. Результат тот же(( Если у кого-то есть идеи, посоветуйте, как решить эту проблему. Заранее благодарю за ответы!


Код :
Кликните здесь для просмотра всего текста
Java
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
/**
 * Created by Александр on 18.10.2017.
 */
public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
 
        // если скомпилировалось
        if(compile()){
            run();
        }
    }
 
    // компилирует файл
    private static boolean compile() throws IOException, InterruptedException {
 
        // компилируем
        ProcessBuilder p = new ProcessBuilder("javac", "d:\\problem\\Main.java");
        p.redirectErrorStream(true);
        Process process = p.start();
 
 
        // выводим на экран стандартный поток вывода
        InputStream stdout = process.getInputStream();
        InputStreamReader isrStdout = new InputStreamReader(stdout);
        BufferedReader brStdout = new BufferedReader(isrStdout);
 
        String line = null;
        while((line = brStdout.readLine()) != null) {
            System.out.println(line);
        }
 
        // ждем пока завершится вызванная программа
        // и сохраняем код, с которым она завершилась в
        // в переменную exitVal
        int exitVal = process.waitFor();
 
        // если процесс компиляции завершился с ошибкой
        if (exitVal != 0){
            return false;
        }else{
 
            // если ошибок не было
            return true;
        }
    }
 
    // запускаем скомпилированный файл
    private static void run() throws IOException, InterruptedException {
 
        // запускаем
        ProcessBuilder processBuilder = new ProcessBuilder("java ", "d:\\problem\\Main");
        processBuilder.redirectErrorStream(true);
        Process process = processBuilder.start();
 
        // выводим на экран стандартный поток вывода
        InputStream stdout = process.getInputStream();
        InputStreamReader isrStdout = new InputStreamReader(stdout);
        BufferedReader brStdout = new BufferedReader(isrStdout);
 
        String line = null;
        while((line = brStdout.readLine()) != null) {
            System.out.println(line);
        }
 
        // ждем пока завершится вызванная программа
        // и сохраняем код, с которым она завершилась в
        // в переменную exitVal
        int exitVal = process.waitFor();
 
    }
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2017, 21:34
Ответы с готовыми решениями:

bad class file: C:Program FilesJavajre1.5.0_02lib t.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0
написал тестовый td_jsp.jsp фаил ->> <html> <head><title>JSP test</title></head> <body> <p>JSP test</p> </body> ...

Возможно ли изменить скомпилированный класс?
Попрошу не материться, а ответить на простой вопрос: на одном форуме (не JAVA) увидел дискуссию на такую тему: парень хочет открывать на...

Ошибка IntelliJ IDEA Error: Could not find or load main class Main
package lysenko; public class Dog { String name; public static void main(String args) { Dog dog1 = new...

2
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
18.10.2017, 22:00
зачем все эти извращения?
ProcessBuilder("java.exe","-cp","path_to_jar","MyClassName");
1
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 27
18.10.2017, 22:31  [ТС]
xoraxax, спасибо за ответ! Не подскажете, как получить .jar из Main.java . Ведь после компиляции есть только main.class . А для сборки в .jar , насколько я понимаю, уже нужно пользоваться средствами IDE. Если я что-то не так понимаю, поправьте меня)

Добавлено через 18 минут
с созданием .jar разобрался!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2017, 22:31
Помогаю со студенческими работами здесь

Error: Could not find or load main class com.intellij.idea.Main
$ java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-1~deb9u1-b12) OpenJDK 64-Bit...

Ошибка: class Main is public, should be declared in a named Main.java
Выдает ошибку- class Main is public, should be declared in a file named Main.java - к коду: // описываем отдельный новый класс class...

Error:(21, 24) java: Illegal static declaration in inner class Progon.Main
Почему не работает код? Error:(21, 24) java: Illegal static declaration in inner class Progon.Main modifier 'static' is only allowed in...

Как запустить программу, если написано: "Decompiled .class file, bytecode version: 52.0 (Java 8)"?
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package com.company; ...

Exception in thread "main" java.lang.NullPointerException at Main.main
Извините, перемещю в нужный раздел как только найду как это сделать Задание: Создать масив объектов класса, определить значение полей...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru