powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / не понятное поведение при запуске через консоль
25 сообщений из 31, страница 1 из 2
не понятное поведение при запуске через консоль
    #39619532
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!
собственно сабж, не понимаю в чем дело когда запускаю проект под ИДЕ (пробовал и в ИДЕА и в Нетбинс) все нормально запускается и нормально работает, а вот когда запускаю джарник получаю ошибку изза того что не сработал регэкс... в чем может быть дело?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619543
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Когда вы говорите, Иван Васильевич ..."
Какая регулярка на каком тексте "не сработала"?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619556
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

строка в виде json формата из сайта с помощью jsoup
Код: plaintext
...{id=167,contractId=21,name=ЭР9Е-665,.......

для него самый примитивный регэкс
Код: java
1.
String regex = "\\{id=(?<id>\\d+),contractId=\\d+,name=(?<name>((\\w+)?[А-Яа-я]+\\w+[А-Яа-я]+\\-\\d+)),";



и самое интересное что при sop(str); в ИДЕ я получаю то что показано первым

а вот с cmd эта строка выглядит чуть иначе...
Код: plaintext
1.
2.
3.
4.
...{id=167,contractId=21,name=Р?Р 9Р?-665,.......[//FIXED]

и не заходит в цикл  [code=java]
while (matcher.find()){...}


...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619557
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а чуть не забыл, джарник пробовал запускать с параметром -D.fileEncoding=UTF-8 , тоже не помог
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619561
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
file.encoding - без ведущей точки.
Сменить кодировку консоли (для корректного отображения) "chcp 65001".
Только надо учитывать, что виндовые приложения поглюкивают на UTF8 кодировке консоли.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619568
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovfile.encoding - без ведущей точки.
Сменить кодировку консоли (для корректного отображения) "chcp 65001".
Только надо учитывать, что виндовые приложения поглюкивают на UTF8 кодировке консоли.

имеется ввиду
Код: plaintext
java -jar -Dfile.Encoding=UTF-8 file.jar
?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619572
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и не помогает смени кодировки у консоли, не 65001 не 1251 и даже не 866
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619577
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарBasil A. Sidorovfile.encoding - без ведущей точки.
Сменить кодировку консоли (для корректного отображения) "chcp 65001".
Только надо учитывать, что виндовые приложения поглюкивают на UTF8 кодировке консоли.

имеется ввиду
Код: plaintext
java -jar -Dfile.Encoding=UTF-8 file.jar
?


так сработало при java -jar -Dfile.encoding=utf-8 file.jar

моя была ошибка... хотя пока не успел запустит двойным щелчком, но до этого получил другую ошибку тоже в ИДЕ не было
NoSuchFileException как я понимаю не может найти файл?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619585
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё один вопрос, как добраться до файла находящийся в
Код: plaintext
src/resources/file.json

и ещё если прямо так оставит то при запуске с ИДЕ все есть и без ошибок, а вот из консоли вылавливаю NoSuchFileException
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619598
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффари не помогает смени кодировки у консолиКодировка консоли влияет только на отображение.
Используется тогда, когда приложение не может определить кодировку консоли или/и перекодировать вывод для (более-менее) корректного отображения.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619602
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарещё один вопрос, как добраться до файла находящийся в
Код: plaintext
src/resources/file.json
Указать относительный или абсолютный путь для имени файла в командной строке вашей утилиты.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619607
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovМузаффарещё один вопрос, как добраться до файла находящийся в
Код: plaintext
src/resources/file.json
Указать относительный или абсолютный путь для имени файла в командной строке вашей утилиты.

конечный пользователь двойным кликом запустит джарник...
а через класспас никак?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619615
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

Никто ещё не упоминал что кодировка могла и при компиляции слететь? Убедитесь что файл сохранен в UTF и что компилятор читает его как UTF.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619627
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, надо очень постараться, чтобы "сбить кодировку" в среде.
Как минимум - сделать некоторые телодвижения, которые вряд ли можно сделать неосознано.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619631
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарконечный пользователь двойным кликом запустит джарник...
а через класспас никак?Пусть сбрасывает филе на жаре - остальное сделает гуй операционки.

P.S. Я, конечно, могу построить и ещё несколько рабочих вариантов, но кому оно надо-то?..
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619633
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovПо-моему, надо очень постараться, чтобы "сбить кодировку" в среде.
Как минимум - сделать некоторые телодвижения, которые вряд ли можно сделать неосознано.
Достаточно собрать проект из командной строки.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619640
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczДостаточно собрать проект из командной строки.Даже я (когда нужно) ставлю -encoding для javac, компиляя свои фиговинки.
Неужели IDE этого не умеют, собирая проект в комстроке?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619780
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczМузаффар,

Никто ещё не упоминал что кодировка могла и при компиляции слететь? Убедитесь что файл сохранен в UTF и что компилятор читает его как UTF.

вроде как все ИДЕ на ютф стоят и соответственно компиляция тоже...

а вот на счет внутреннего ресурса можете посоветовать?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619782
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

getClass().getClassloader().getResourceAsStream()
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619787
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczМузаффар,

getClass().getClassloader().getResourceAsStream()

пробовал, но нули получаю...
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619798
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

либо файла нет в jar-е, либо не правильно указываете путь. Почитайте в документации про относительные и абсолютные пути.
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619845
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovBlazkowiczДостаточно собрать проект из командной строки.Даже я (когда нужно) ставлю -encoding для javac, компиляя свои фиговинки.
Неужели IDE этого не умеют, собирая проект в комстроке?
лучше задать енкодинг в мавене и получать джарник в лучшем виде
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619900
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczМузаффар,

либо файла нет в jar-е, либо не правильно указываете путь. Почитайте в документации про относительные и абсолютные пути.

и так сделал маленький пример чтоб разобраться...

структура в Нетбинс:
Код: plaintext
1.
2.
3.
4.
5.
src
   |- exmplepath
   |                 |-ExmplePath.java
   |- resources
                   |- stations.json

листинг
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void getFile() {
        try {
            System.out.println("0000000");
            System.out.println(getClass().getClassLoader().getResource("resources/stations.json"));
            Files.lines(Paths.get(getClass().getClassLoader().getResource("resources/stations.json").toURI()), StandardCharsets.UTF_8).forEach(System.out::println);
        } catch (IOException | URISyntaxException ex) {
            Logger.getLogger(ExmplePaths.class.getName()).log(Level.SEVERE, null, ex);
        }
    }



получаю то что надо:
Код: plaintext
1.
2.
3.
4.
0000000
file:/C:/Users/Muzaffar/Desktop/WORK/NBProjects/ExmplePaths/build/classes/resources/stations.json
[
    {бл* бла бла},
    ....

структура полученного jar'а
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ExmplePaths.jar
                    |- exmplepath
                    |                 |-ExmplePath.class
                    |- META-INF
                    |                |- MANIFEST.MF
                    |- resources
                                    |- stations.json

и запускаю в консоле
Код: plaintext
C:\Users\Muzaffar>java -jar "C:\Users\Muzaffar\Desktop\WORK\NBProjects\ExmplePaths\dist\ExmplePaths.jar"

получаю:
Код: plaintext
1.
2.
3.
4.
5.
0000000
null
Exception in thread "main" java.lang.NullPointerException
        at exmplepaths.ExmplePaths.getFile(ExmplePaths.java:50)
        at exmplepaths.ExmplePaths.main(ExmplePaths.java:20)
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619904
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по рекомендациям знакомого делал так:
Код: java
1.
2.
3.
InputStreamReader is = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("resources/stations.json"));
BufferedReader br = new BufferedReader(is);
br.lines().forEach(System.out::println);



и сработал...
З.Ы.
как получается Files для работы с реальными файлами, тогда как файлы внутри jar это уже не реальные файлы получаются?
...
Рейтинг: 0 / 0
не понятное поведение при запуске через консоль
    #39619910
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффаркак получается Files для работы с реальными файлами, тогда как файлы внутри jar это уже не реальные файлы получаются?
Ну, почти угадал. Files для работы с файловой системой. Содержимое архивов файловой системой не является. С другой стороны зачем json читать построчно - для меня загадка.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / не понятное поведение при запуске через консоль
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]