|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
День добрый.. Пишу интеграцию с государственным сервисом используя их либу. Как только либа инициализируется я уже Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
Код: html 1. 2. 3. 4.
Консультируюсь с ними что неудобно..говорят есть решение,- сделайте так Код: java 1.
Мне уже интересно...декомпилирую этот класс Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: html 1.
Кто-то встречался...как такое возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 11:16 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
в java VM путь relevant Что этот термин обозначает? Можно ссылку на доку? Если либа меняется текущую директорию операционной системы, то непонятно, откуда возник вопрос и недоумение. Менять текущую директорию конечно плохо, но вполне вероятно, что были объективные причины (например legacy код который завязан на текущей директории). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:08 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
irbis_al Код: java 1. 2. 3.
Вроде бы даже название ф-ций подсказывает, что именно делается с помощью данной нативной либы ))) В общем, Ваше удивление лично мне не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:10 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Ну путь Relevant ...я чуть опечатался ,-Конечно relative ... Это относительный путь (В принципе могли догадаться) Вроде бы даже название ф-ций подсказывает, что именно делается с помощью данной нативной либы ))) Да...Из названия то понятно...а вот реализация непонятна...неужели из нативной либы можно дернуть java VM в контексте смены каталога При том что System.getProperty("user.dir") Возвращает текущий каталог? А в действительности он не текущий...Текущим является /tmp/LibaVersion Если я создам файл new File("test")...Он окажется именно там. Есть какая-то спецификация на это действие? в JNA JNI и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:18 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
irbis_al, Я вот тут сейчас писал ответ...и пришла мысль....наверное они просто в своей dll (so) на уровне API OS Меняют каталог процессу java (И это объясняет ,что ява об этом ничего не знает ,возвращая верный user.dir...А операционка уже счиает по другому) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:32 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
irbis_al, ерунду какую-то пишете. Ссылку на доку не нашел, придумывать не хочу Если Вам интересно, то попытайтесь найти доку, что значит user.dir и чему он должен равняться и киньте ссылку на доку сюда. Мне кажется, что если бы там был текущей директорий и его и назвали бы соответственно ))). Например по аналогии с ф-цией WinApi GetCurrentDirectory автор relative ... Это относительный путь (В принципе могли догадаться) Ну относительный и относительный. При чем тут Java и JVM ? Относительный путь в файловой системе считается от текущей директории операционной системы. AFAIK авторFileInputStream На стек оверфлов пишут (ссылку на нормальную доку не нашел) СтекОверфловAs stated in stackoverflow.com/a/840229/3159183, keep in mind that the -Duser.dir flag affects File objects (if they're not given a full path) but not FileOutPutStream objects. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 16:19 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#fully-qualified-vs-relative-paths MSDNFully Qualified vs. Relative Paths For Windows API functions that manipulate files, file names can often be relative to the current directory, while some APIs require a fully qualified path. A file name is relative to the current directory if it does not begin with one of the following: ..... При чем тут Java VM, для меня загадка. То, что в класс File добавили еще какой-то специфики поведения - то на совести Java архитекторов и помогающих им анал итиков IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 16:25 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
Похоже на легкий documentation баг JavaDoc класса FileInputStreampublic FileInputStream(String name) throws FileNotFoundException Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system. A new FileDescriptor object is created to represent this file connection. First, if there is a security manager, its checkRead method is called with the name argument as its argument. If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown. the file named by the path name name in the file system Вроде как вопросов не возникает. Имя файла в файловой системе. Если не абсолютное, то относительное ТЕКУЩЕЙ директории в ОПЕРАЦИОННОЙ системе. IMHO JavaDoc класса FileA pathname, whether abstract or in string form, may be either absolute or relative. An absolute pathname is complete in that no other information is required in order to locate the file that it denotes. A relative pathname, in contrast, must be interpreted in terms of information taken from some other pathname. By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked. .... By default the classes in the java.io package always resolve relative pathnames against the current user directory . Тут моего знания английского не хватает, что бы корректно перевести и правильно of расставить ))) This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked А тут мне кажется легкое лукавство. Т.к. подозреваю, что user.dir инициализируется текущей директорией на момент старта JVM . Подозреваю, но ссылку на доку пока не нашел. Ну и слова "is typically" в технической документации тоже выглядеть прелестно ))) IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 16:51 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
Ну да, что-то в Java хотели намудрить, но до конца не довели. https://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystems.html#getDefault() В общем, много знаний - много печали. Никогда о user.dir не заморачивался и жил себе счастливо. Знаний, что в ОС есть текущая директория - мне вполне хватало ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 17:05 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Я помню еще в дельфях писал, и после того как соседние приложения меняли мой текущий каталог то забил вообще него опиратся. AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 10:28 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
А с какой ошибкой автор воюет? Чтоб менять user.dir есть команда ОС "cd" и ее вставляют в пусковой скрипт. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 13:35 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
mayton А с какой ошибкой автор воюет? Чтоб менять user.dir есть команда ОС "cd" и ее вставляют в пусковой скрипт. не воюю я с ошибкой...Хотел узнать как такого поведения JVM можно достигнуть.. Ну пока переписывался сам догадался...Написал https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1334935&msg=22303763 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 13:44 |
|
Java сбивается путь Relevant
|
|||
---|---|---|---|
#18+
irbis_al mayton А с какой ошибкой автор воюет? Чтоб менять user.dir есть команда ОС "cd" и ее вставляют в пусковой скрипт. не воюю я с ошибкой...Хотел узнать как такого поведения JVM можно достигнуть.. Ну пока переписывался сам догадался...Написал https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1334935&msg=22303763 В операционке путь задается на процесс. Другой процесс - может иметь другой $(pwd) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 14:21 |
|
|
start [/forum/topic.php?fid=59&fpage=7&tid=2120492]: |
0ms |
get settings: |
16ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
24ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
275ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 606ms |
0 / 0 |