С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64

Java не может найти или загрузить класс

12.11.2016, 03:26. Показов 4929. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Сделал графический проект с формой в IDEA (для генерации формы использовал JFormDesigner). Из IDE все нормально запускается, а если просто скомпилировать классы, сложить в одну папку, а потом запустить, находясь в этой папке, вот так:
Bash
1
java Main
или
Bash
1
java Main.class
то выдается ошибка,
"Error: Could not find or load main class Main.class".
Так вот вопрос: почему это может быть, с чем связано и как исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2016, 03:26
Ответы с готовыми решениями:

Конструктор форм не может создать (или инициализировать) класс
Прошу помощи. Написал форму авторизации для приложения (в нём С# windows forms + бд access). Создал новую главную форму, на которую должен...

Tree - это класс или интерфейс в Java
Задали на собеседовании такой вопрос. Первичный гуглинг дал ответ, что такой структуры данных в чистом нативном виде вообще нет в Java, то...

Подскажите пожалуйста компилятор .java файлов на Android, или то, что может заменить JDK
Подскажите пожалуйста компилятор .java файлов на андроид, или то, что может заменить JDK. Заранее благодарен. P.S. JavaIDEdroid можете...

21
11 / 11 / 4
Регистрация: 22.09.2016
Сообщений: 90
12.11.2016, 22:08
Derrt, почитай
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
13.11.2016, 01:06  [ТС]
Дело в том, я не знаю, совпадение это или нет, но из консоли не запускаются только программы с графикой. Любые другие, с несколькими файлами, запускаются.
0
11 / 11 / 4
Регистрация: 22.09.2016
Сообщений: 90
13.11.2016, 10:23
Derrt, пример нужен, так сложно делать выводы
0
 Аватар для TurboDuck
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
13.11.2016, 10:40
Derrt, с вероятностью 99% проблема в том, что при сборке проекта не указана точка входа. Это делается либо в ручную (созданием дефолтной точки или изменения альтернативной в манифесте), либо через IDE. Например в NetBeans - клацаешь правой по проекту, свойства, выполение, выбираешь класс, являющийся точкой входа.
У тебя скорее всего, точка входа в классе с одноименным названием формы, сгенерированным твоим IDE. Находишь в нем
Java
1
public static void main()
или метод
Java
1
run()
вырезаешь его из этого класса, создаешь в пакете новый класс Main.java и переносишь в него метод
Java
1
public static void main()
, что бы JRE определяла точку входа в программу по умолчанию, а именно класс Main, метод psvm Далее билдишь джарник и наслаждаешься запущенной программой.
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
13.11.2016, 12:31  [ТС]
правильно выше написали, надо было сразу кинуть код.
Это точка входа, класс Main
Java
1
2
3
4
5
6
7
8
9
10
/**
 * Created by Sergey on 10.11.2016.
 */
public class Main {
 
    public static void main(String[] args) {
        new Form().setVisible(true);
    }
 
}
Это форма:
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
78
79
80
81
82
83
84
import java.awt.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
 
public class Form extends JFrame {
 
    private JScrollPane scrollPane1 = new JScrollPane();
    private JEditorPane editorPane1 = new JEditorPane();
    private JScrollPane scrollPane2 = new JScrollPane();
    private JEditorPane editorPane2 = new JEditorPane();
    private JLabel label1 = new JLabel();
    private JButton button1 = new JButton();
    private JButton button2 = new JButton();
    private JButton button3 = new JButton();
 
    public Form() {
        initComponents();
    }
 
    private void initComponents() {
        setFont(new Font("Source Code Pro", Font.PLAIN, 12));
        Container contentPane = getContentPane();
        contentPane.setLayout(null);
 
        editorPane1.setFont(new Font("Source Code Pro", Font.PLAIN, 12));
        scrollPane1.setViewportView(editorPane1);
        contentPane.add(scrollPane1);
        scrollPane1.setBounds(0, 32, 705, 285);
 
        editorPane2.setFont(new Font("Source Code Pro", Font.PLAIN, 12));
        scrollPane2.setViewportView(editorPane2);
        contentPane.add(scrollPane2);
        scrollPane2.setBounds(0, 335, 705, 105);
 
        label1.setText("Log of operations");
        label1.setFont(new Font("Source Code Pro", Font.PLAIN, 14));
        contentPane.add(label1);
        label1.setBounds(0, 315, 705, 20);
 
        button1.setText("File");
        contentPane.add(button1);
        button1.setBounds(0, 0, 105, button1.getPreferredSize().height);
        button1.addActionListener(e -> {
            JFileChooser fileOpen = new JFileChooser();
            FileFilter filter = new FileNameExtensionFilter("c files", "c");
            FileFilter filter1 = new FileNameExtensionFilter("java files", "java");
            FileFilter filter2 = new FileNameExtensionFilter("txt files", "txt");
            fileOpen.addChoosableFileFilter(filter);
            fileOpen.addChoosableFileFilter(filter1);
            fileOpen.addChoosableFileFilter(filter2);
 
            if (fileOpen.showDialog(null, "Open file") == JFileChooser.APPROVE_OPTION)
                try {
                    editorPane1.setText(readFile(fileOpen.getSelectedFile()));
                } catch (IOException ignored) {}
 
        });
 
        button2.setText("Obfuscate");
        contentPane.add(button2);
        button2.setBounds(110, 0, 105, button2.getPreferredSize().height);
 
        button3.setText("Deobfuscate");
        contentPane.add(button3);
        button3.setBounds(220, 0, 150, button3.getPreferredSize().height);
 
        contentPane.setPreferredSize(new Dimension(705, 435));
        pack();
        setLocationRelativeTo(getOwner());
    }
 
    private String readFile(File file) throws IOException {
        FileInputStream fileInputStream = new FileInputStream(file);
        byte [] buffer = new byte[fileInputStream.available()];
        int length = fileInputStream.read(buffer);
        fileInputStream.close();
        return new String(buffer, 0, length, "UTF-8");
    }
 
}

TurboDuck, а может ли это быть из-за того, что я просто транслирую в байткоды и запускаю Main.class?
0
 Аватар для TurboDuck
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
13.11.2016, 13:23
Derrt, не правильно значит запускаешь
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
13.11.2016, 15:15  [ТС]
запускаю, как в самом первом посте.
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
13.11.2016, 15:38
А зачем запускать из консоли программы с графическим интерфейсом?)

Вам нужен именно такой вариант или вы просто хотите программу запустить?)
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
13.11.2016, 23:17  [ТС]
Просто нужно так запустить. Без IDE. В IDE (IDEA) все работает
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
13.11.2016, 23:27
Соберите джарник в IDE и запускайте его где хотите)
ctrl+alt+shift+S -> Artifacts -> + (кнопка) -> JAR -> from modules и выбираете Главный Class (в котором psvm)
Вложения
Тип файла: rar Derrt.rar (2.9 Кб, 1 просмотров)
1
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
14.11.2016, 19:45  [ТС]
Спасибо. Наверное так и сделаю.
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
15.11.2016, 21:33  [ТС]
Все супер, jar-ник запускается, когда создал его из IDE. Но теперь другая проблема: кнопки не работают. Не понимаю, почему, не срабатывают обработчики событий кнопок. Обработчик я сделал вместо создания объекта, лямбду (Java 8).
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        button1.addActionListener(e -> {
            JFileChooser fileOpen = new JFileChooser();
            FileFilter filter = new FileNameExtensionFilter("c files", "c");
            FileFilter filter1 = new FileNameExtensionFilter("java files", "java");
            FileFilter filter2 = new FileNameExtensionFilter("txt files", "txt");
            fileOpen.addChoosableFileFilter(filter);
            fileOpen.addChoosableFileFilter(filter1);
            fileOpen.addChoosableFileFilter(filter2);
 
            if (fileOpen.showDialog(null, "Open file") == JFileChooser.APPROVE_OPTION)
                try {
                    editorPane1.setText(readFile(fileOpen.getSelectedFile()));
                } catch (IOException ignored) {}
 
        });
Может ли быть такое, что такой вид обработчика не полностью поддерживается?
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 08:11
Не работают при запуске jar-файла? Если да, то вы его где запускаете?если на другом устройстве/операционке, то вполне вероятно, что там стоит более ранняя версия джавы)
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
16.11.2016, 22:36  [ТС]
Запускаю на этом же компьютере. Да, при запуске jar-файла. Если запускать из IDE, то все нормально.
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 22:43
прикрепите сюда jar-файл, я у себя проверю)
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
16.11.2016, 22:52  [ТС]
Можно взять тот jar-ник, что вы присылали парой постов раньше. В нем тоже кнопки не работают.
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
16.11.2016, 23:00  [ТС]
Забыл добавить: реагировать должно на нажатие кнопки "file". Должно появляться диалоговое окно с выбором файла.
Вложения
Тип файла: zip Form_jar.zip (3.7 Кб, 1 просмотров)
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 23:05
у меня все работает)мое предположение - у вас стоит несколько версий джавы, более новая юзается в IDEE,а более старая где то валяется) как вариант, попробуйте обновить джаву и после обновления вам должны предложить удалить более старые версии)
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
16.11.2016, 23:24  [ТС]
Странно. В системе, действительно, 2 JRE, (не ожидал ) но обе с версией 1.8.0_112.
Но, вроде же это последняя версия?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2016, 23:24
Помогаю со студенческими работами здесь

Невозможно загрузить файл или сборку или один из зависимых от них компонентов. Не удается найти указанный файл
Прошу помощи знающих людей. Есть программа специализированная Mantis Lvision, к ней можно подключать различные dll для вывода отчетов в...

Описать класс, реализующий восьмеричный счетчик, который может увеличивать или уменьшать свое значение
Всем привет. Уже все перепробывал с этим заданием. помогите. желательно попроще Описать класс, реализующий восьмеричный счетчик,...

Описать класс, реализующий шестнадцатеричный счетчик, который может увеличивать или уменьшать свое значение
Здравствуйте. Есть такое задание: Описать класс, реализующий шестнадцатеричный счетчик, который может увеличивать или уменьшать свое...

Javac не может найти файл .java для компиляции
Добрый вечер. Есть проблема. Javac не может найти файл .java для компиляции. Я уже указала все значения переменных JAVA_HOME и Path ...

Построенное Maven приложение не может найти класс
Здравствуйте. Написал приложение для простого соединения с MySQL в целях обучения. Т.к. впервые пользуюсь мавеном, решил всё делать из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru