Ответы пользователя по тегу Java
  • Почему не создается файл логирования из артифакта?

    @Koshkin_I Автор вопроса
    После почти суток тыкания во все подряд нашел решение): Project Structure -> Artifacts -> Свой арт. Справа в Output Layout жмем "+" выбираем добавить файл и указываем что добавить. Теперь он будет внутри jar.
    Ответ написан
  • Как сделать прерывание по изменению положения курсора мыши?

    @Koshkin_I Автор вопроса
    Так работает:
    public static void myMouseMove(int x,int y,boolean flag) throws InterruptedException {     
            PointerInfo info = MouseInfo.getPointerInfo();
            Point point = info.getLocation();
            int v =(point.x-BasicLogic.bufferPoint.x);
            boolean b =BasicLogic.bufferPoint.x>250 && v>200;
            if (b && !flag ){
                System.out.println("SM 147 "+BasicLogic.bufferPoint+" "+v +" "+b +" "+point);
                throw new InterruptedException();
            }else {
    
                BasicLogic.bufferPoint = new Point(x,y);
                robot.mouseMove(x, y);
                BasicLogic.flagMouseMove = false;
            }
            System.out.println("SM 154 "+BasicLogic.bufferPoint+" "+v +" "+b +" "+point);
    
        }

    Добавил флаг, потому что запускатся по кнопке и он сразу ловит "не те" координаты и останавливается.
    Может кому сгодится.
    Ответ написан
    Комментировать
  • Как остановить поток?

    @Koshkin_I Автор вопроса
    Не знаю насколько это костыльно, а может так и надо, сделал так:
    доступ к сетчику открывается на "дне" дерева методов внутри transition(). Там кинул исключение и через сигнатуру передал наверх. Не уверен что правильно так, но работает.
    Ответ написан
  • Как правильно собрать артифакт?

    @Koshkin_I Автор вопроса
    Получаеся так.
    Манифест положил в /src. При создании арта в /out образуются /artifacts и /production/resources. В ресах у меня лежит config.properties и еще 2 файла с моими данными. В проперти указаны пути к ним. И походу запускаемый jar всего этого добра не видит.
    Запуская из терминала получаю:
    ivan@User:~/IdeaProjects/ClicClacer/out/artifacts/ClicClacer_jar$ java -jar ClicClacer.jar
    SA 9 Linux
    SA 10 {"p":"/home/ivan/.id.txt","id":"654409593"}
    /home/ivan/.id.txt
    Problem with properties
    Exception in thread "main" java.lang.ExceptionInInitializerError
            at org.example.ui.window.UiJFram.<init>(UiJFram.java:34)
            at org.example.Main.main(Main.java:62)
    Caused by: java.lang.NullPointerException
            at java.base/java.io.FileInputStream.<init>(FileInputStream.java:149)
            at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
            at org.example.data.ControlPoints.<clinit>(ControlPoints.java:33)
            ... 2 more

    Это дело корнями упирается сюда:
    try {
                FileInputStream fis;
                Properties properties = new Properties();
    
                fis =new FileInputStream("src/main/resources/config.properties");
                properties.load(fis);
                filepath = properties.getProperty("filepath");
                filepathCounter = properties.getProperty("pathCounter");
                System.out.println(filepath);
                fis.close();
            }

    В IDE всё работает, а jar нет. Как быть? Недает покоя /production с ресами. Как вообще всё это объеденить?
    Ответ написан
    Комментировать
  • Как исправить ошибку - release version 15 not supported?

    @Koshkin_I Автор вопроса
    ))) Все решил)) В компиляторе тоже надо поставит 13 версию.
    Ответ написан
    1 комментарий
  • Почему при десериализации null?

    @Koshkin_I Автор вопроса
    Проблему решил. Костыльно конечно и суть не совсем понял, но кому может сгодится.
    При дисериализации в этом месте:
    while (objectInputStream.available() >0) {
                    p = (ControlPoints) objectInputStream.readObject();
                    System.out.println("ioheorg"+objectInputStream.available());
                }
            } catch (FileNotFoundException e) {
                System.out.println("ein catch");
            } catch (IOException e) {
                System.out.println("cvein catch");
            } catch (ClassNotFoundException e) {
                System.out.println("drein catch");
            }

    если убрать цикл, выскакивает IOException, с этим циклом получается описанная ситуация.
    Добавил в цикл >=0, IOException вылетает, но и данные получаю. Добавил в цикл еще и break и теперь исключения нет.
    Причина не понятна, но РАБОТАЕТ.)
    Ответ написан
    Комментировать
  • Почему код работает по разному?

    @Koshkin_I Автор вопроса
    Решен. Может кому пригодится.

    Dmitry Roo Dmitry Roo Куратор тега Java
    Koshkin_I, похоже на какую-то путанницу с cr/lf (новая строка/возврат корретки).

    Не знаю насколько это костыльно, но проблему решает проверка !isEmpty() перед добавлением в list в цикле.
    Ответ написан
    Комментировать