Почему программа не работает после инициализации?

 
 
 
Сообщения:3
Добрый день, написал код который работает в Apache NetBeans IDE 12.0, пробовал в IntelliJ IDEA та же проблема.
Создал файл .jar но он пишет ошибку "error: a jni error has occurred" как пофиксить?
Ёще был вариант что приложение открывается но что бы я не ввел ничего не происходит.
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import java.io.File;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.awt.TextArea;

public class raz extends JFrame {

    private final JTextArea areatext;

    ArrayList<String> list  = new ArrayList<>(); // Ну мы ведь серьёзные кодеры и понимаем что массив не лучшая идея, будем использовать коллекцию

    /**
     * Launch the application.
     * @param args
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    raz frame = new raz();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public raz() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 430, 200);
        JPanel contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);


        areatext = new JTextArea();
        JScrollPane jsp = new JScrollPane(areatext);
        areatext.setBounds(20, 11, 370, 60);
        contentPane.add(areatext);
        areatext.setPreferredSize(new Dimension(5, 5));
        areatext.setLineWrap(true);

        JTextArea rezult = new JTextArea();
        JFrame frame = new JFrame("Результат");


        JButton btnNewButton = new JButton("\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0442\u0435\u043A\u0441\u0442");

        // Для того чтоб всё читать нужно чтоб чтото дало команду СТАРТ, или ПОЕХАЛИ, в ашем случае
        // Тыкнем кнопку и всё заработает
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                int IzYes = 0;

                String ezz = "ИЗ";

                String[] secret = new String[4];

                secret[0] = "НС";
                secret[1] = "ДДД";
                secret[2] = "SECRET";
                secret[3] = "SS";

                String[] personal = new String[2];

                personal[0] = "МНЕ";
                personal[1] = "ТОЛЬКО МНЕ";

                String[] speed = new String[2];

                speed[0] = "БЫСТРО";
                speed[1] = "ОЧЕНЬ БЫСТРО";


                list.add(areatext.getText()); // добавлять данные

                // Отображаем данные на экране
                for(int i = 0; i < list.size(); i++) {

                    System.out.println(list.get(i));
                    String line;

                    // Записываем данные в файл
                    try {
                        Files.write(Paths.get("demo.txt"), list, StandardOpenOption.CREATE);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }



                    // Чтениение файла
                    try (BufferedReader br = new BufferedReader(new FileReader("demo.txt"))) {

                        //чтение построчно
                        while ((line = br.readLine()) != null) {

                            String Str = line.toUpperCase();

                            // Поиск Из
                            while (IzYes == 0) {

                                boolean isIz = Str.contains(ezz);
                                int deletePosition = Str.lastIndexOf(ezz);
                                list.clear();

                                if (isIz) {
                                    Str = Str.substring(deletePosition);

                                    list.add(Str);

                                    System.out.println(Str);
                                    IzYes = 1;
                                    break;
                                }else

                                    Str = Str.substring(0,0);
                                if (Str.isBlank()){
                                    break;}

                            }

                              while (IzYes == 1) {


                                  for (int x = 0; x < 4; x++) {
                                      list.clear();
                                      boolean isSecret = Str.contains(secret[x]);

                                      if (isSecret) {
                                          System.out.println("Строка х: " + x);
                                          System.out.println(secret[x]);

                                          Str = Str.replaceFirst("(\\s*)" + secret[x], "   " + secret[x]);
                                          list.add(Str);
                                          System.out.println((Str));
                                          IzYes = 2;
                                          break;
                                      }
                                      if (x == 3){
                                          IzYes = 2;
                                          list.add(Str);
                                      }
                                  }

                                  for (int z = 0; z < 2; z++) {
                                      list.clear();
                                      boolean isPerson = Str.contains(personal[z]);
                                      if (isPerson) {
                                          System.out.println("Строка п: " + z);
                                          System.out.println(personal[z]);
                                          Str = Str.replaceFirst("(\\s*)" + personal[z], "   " + personal[z]);
                                          list.add(Str);
                                          System.out.println((Str));
                                          IzYes = 2;
                                          break;
                                      }
                                      if (z == 1){
                                          IzYes = 2;
                                          list.add(Str);
                                      }
                                  }

                                  for (int c = 0; c < 2; c++) {

                                    boolean isSpeed = Str.contains(speed[c]);
                                    list.clear();
                                    if (isSpeed) {

                                        System.out.println("Строка: " + c);
                                        System.out.println(speed[c]);
                                        Str = Str.replaceFirst("(\\s*)" + speed[c], "   " + speed[c]);
                                        list.add(Str);
                                        System.out.println((Str));
                                        IzYes = 2;
                                        break;
                                    }
                                      if (c == 1){
                                          IzYes = 2;
                                          list.add(Str);
                                      }
                                  }
                              }

                            if (IzYes != 0) {
                                SwingUtilities.invokeLater(() ->
                                {
                                    Iterator iterator = list.iterator();
                                    while (iterator.hasNext()) {
                                        rezult.append(iterator.next().toString() + '\n');
                                    }
                                    frame.add(new JScrollPane(rezult));
                                    frame.setSize(700, 400);
                                    frame.setLocationRelativeTo(null);
                                    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                                    frame.setVisible(true);

                                });
                            }
                        }

                    } catch (IOException e) {
                    }

                    // Удаление файла
                    File file = new File("demo.txt");
                    if (file.delete()) {

                        System.out.println("demo.txt файл был удален с корневой папки проекта");

                    } else System.out.println("Файл demo.txt не был найден в корневой папке проекта");


                }
            }
        });
        btnNewButton.setBounds(45, 105, 320, 30);
        contentPane.add(btnNewButton);
    }
}
 
 
Сообщения:127
Это не все сообщение об ошибке? Если это так, то там скорее всего уже должен быть дан ответ о не совместимости версий.

Например: скомпилирован файл под версию байт-кода Java14, а запуск происходит на Java8.
 
 
Сообщения:3
Dilettante:
Это не все сообщение об ошибке? Если это так, то там скорее всего уже должен быть дан ответ о не совместимости версий.

Например: скомпилирован файл под версию байт-кода Java14, а запуск происходит на Java8.


Да, так и было, спасибо! устранил эту проблему но появилась новая, схожая(

При запуске файла(raz заменил на main) я могу вписать начальный текст, но доп окно с выводом не открывает и пишет название файла и текст со сбитой кодировкой,
внизу вывод:

C:\Users\Demon\IdeaProjects\main\src>java main
demo.txt С?айР? Р?С?Р? С?Р?Р°Р?Р?Р? С? РєР?С?Р?Р?Р?Р?Р№ папки РїС?Р?Р?РєС?Р°
вввв
из Москвы ддд

Что теперь может быть не так?(
Изменен:27 июн 2020 15:43
 
 
Сообщения:127
Компилировать с указанием кодировки: javac -encoding utf8 Test.java

Если все равно не будет работать, установить кодировку: chcp 65001
И запускать так: java -Dfile.encoding=UTF-8 Test
Изменен:27 июн 2020 18:38
 
 
Сообщения:3
Dilettante:
Компилировать с указанием кодировки: javac -encoding utf8 Test.java

Если все равно не будет работать, установить кодировку: chcp 65001
И запускать так: java -Dfile.encoding=UTF-8 Test


Спасибо! это помогло! Правда теперь еще одна ошибка возникает(
Необходимо сделать .jar файл, открыть без консоли программку.
Но она не работает, теперь на javac main.java ругается так:
error: unmappable character (0x98) for encoding windows-1251
            String ezz = "╨?╨Ч";

У меня это:
String ezz = "ИЗ";


Ругается на заглавную "И" насколько я смог понять, но как запустить программу с "И" что-то так и не нашел решения
Изменен:28 июн 2020 13:24
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет