LINUX.ORG.RU

Ответ на: комментарий от TDrive

Нет, к сожалению не работает. Свойство меняется, а каталог нет. Вычитал, что в Java вообще нельзя менять директорию в которой исполняется программа, но чё то не верится что разработчики java на столько упоротые.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

зато прекрасно верится, что ты настолько упорот, что не можешь выполнить работу не привязываясь к текущему каталогу

yyk ★★★★★
()
Ответ на: комментарий от yyk

Например если писать демон, нужно что бы он после запуска переходил в /. Что бы не занимать папку из которой его запустили, на всякий случай.

Ты предлагаешь все демоны на java хранить в корне? И кто из нас упорот?

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

А каким образом этот недостойный и негодный во всех отношениях «демон на java» будет занимать твою «папку»?

anonymous
()
Ответ на: комментарий от anonymous

Очевидно же, что папок на всех демонов не хватит, недавно сам Дьявол выступал по телевизору, сказал, что придется потесниться. Я специально на своем ноутбуке посоздавал пустых новых папок, ибо процесс не сложный, теперь жру^W жду наплива демонов.

anonymous
()
Ответ на: комментарий от TDrive

Вычитал, что в Java вообще нельзя менять директорию в которой исполняется программа

это внешнее по отношению с джава-машине свойство и изнутри ты его не поменяешь. Разве что Runtime.getRuntime().exec()

JFreeM ★★★☆
()
Ответ на: комментарий от anonymous

Будет мешать отмонтированию файловой системы. Может быть ещё что то, не помню. По этому считается хорошим тоном менять рабочую директорию на корень.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от JFreeM

менял директорию в которой выполняется.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

Будет мешать отмонтированию файловой системы.

т.е. у вас java лежит на файловой системе которую могут отмонтировать? Интересное архитектурное решение...

По этому считается хорошим тоном менять рабочую директорию на корень.

где считается?

JFreeM ★★★☆
()

Вообще я очень удивлен, что в Java этого нету. Теперь даже и не знаю каких ещё сюрпризов ждать от этого «замечательного» ЯП.

TDrive ★★★★★
() автор топика

а если бы вы себе дали труд немного погуглить
https://www.google.com.ua/search?sourceid=chrome&client=ubuntu&channe...
http://stackoverflow.com/questions/1234795/why-is-the-user-dir-system-propert...
http://stackoverflow.com/questions/840190/changing-the-current-working-direct...
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4045688

Will Not Fix

неужели это так сложно?
Если вас интересует почему так, почитайте обсуждения на последней ссылке. А разработчики джавы чуть больше понимают в программировании, я вас уверяю.

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

т.е. у вас java лежит на файловой системе которую могут отмонтировать? Интересное архитектурное решение...

«могут отмонтировать» это не значит что её каждый день монтируют/отмонтируют. Мало ли что может понадобиться.

где считается?

Ну в книгах по программированию такое советовали. За всех конечно не скажу, но совет вполне обоснован.

TDrive ★★★★★
() автор топика

Твоя программа — это процесс. Изменение текущей директории процесса есть изменение переменной, которая отвечает за пути к файлам. Т.е. при попытке открыть ./1.txt ты откроешь файл в /, а не в каталоге, из которого запущен процесс. Если у тебя рабочие файлы процесса в директории, которую можно отмонтировать, то смена текущего каталога процесса никак от этого не спасет. Разве что ты будешь при этом все файлы копировать тоже в /.

vurdalak ★★★★★
()
Ответ на: комментарий от JFreeM

А разработчики джавы чуть больше понимают в программировании

Больше чем разработчики других ЯП? Везде есть, а в java нету.

Первые 3 ссылки читал, 4 потом прочитаю, чё то там букв много.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

чё то там букв много.

шли бы вы на питоне/рубях педалить, а потом люди думают, что разработчики на джаве идиоты...

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Лол. А чё мало что ли? У меня прокрутка в низ улетела, ещё и на английском. Я всё это 30 мин переводить буду. Так что ваши претензии высосаны из пальца.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Если ты просто откроешь директорию bash. Отмонтировать ты её не сможешь. При чём тут пути к файлам?

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

Если ты просто откроешь директорию bash.

Объясни уже по человечески, как это проверить. Как можно «открыть директорию» командным интерпретатором?

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Консоль открой и cd в какую нибудь примонтированную директорию. А потом попробуй отмонтировать.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Ну да, получается только так.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

если писать демон, нужно что бы он после запуска переходил в /

Непременно целиком и полносью на джаве. Ведь обвязка на shell - моветон, и /etc/init.d пора удалять.

anonymous
()
Ответ на: комментарий от anonymous

Зачем удалять? Просто напишем systemj и скрипты на джаве, которые будут запускать демонов.

vurdalak ★★★★★
()

А конкретное практическое применение-то какое? Я имею ввиду отмонтирование раздела, с которого запущена java-программа? Может стоит язык программирования выбирать под задачу, а не пытаться делать на нём то, для чего он плохо подходит?

Java-программа вообще должна мало что знать о системе, на которой она работает. Как ты представляешь себе смену рабочего каталога в аплете? А в сервлете?

Если за 15 (?) лет этой возможности так и не появилось, то может не стоит доказывать людям, что это проблема языка, а выбрать более подходящий инстурмент, либо наконец осознать, что это ненужно?

roy ★★★★★
()
Ответ на: комментарий от vurdalak

И да, кастую в тред тех, кто ответит, почему процесс привязывает к себе каталог.

jar - архив, который _сразу весь_ не распаковывается никуда, а только по мере надобности их него «достаётся» требуемое. Как во время работы погрузить требуемый класс, если ты отмонтировал каталог? По аналогии с офтопичными exe-шниками с ресурсами - когда понадобится ресурс (и вообще - понадобится ли в тесущей сессии) - хз.

yyk ★★★★★
()
Ответ на: комментарий от yyk

это сколько минут надо изучать жабку, чтобы не знать этого? А срать кирпичами на форуме время есть...

yyk ★★★★★
()
Ответ на: комментарий от roy

а не пытаться делать на нём то, для чего он плохо подходит?

Я только начал учить java, откуда я знаю для чего он подходит а для чего нет?

Как ты представляешь себе смену рабочего каталога в аплете? А в сервлете?

А как представить в аплете System.getRuntime().exec() или ProcessBuilder()?

Если за 15 (?) лет этой возможности так и не появилось, то может не стоит доказывать людям, что это проблема языка, а выбрать более подходящий инстурмент, либо наконец осознать, что это ненужно?

Я ничего не доказывая. Просто очень удивился тому, что в Java нет такой возможности. Это первый ЯП в котором я встретил такое.
А потом прилетели java-программисты и начали рассказывать что мне нужно, а что не нужно. И советовать «шли бы вы на питоне/рубях педалить».
Подозреваю, что у фанатов java какой то скрыты комплекс на эту тему.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

А как представить в аплете System.getRuntime().exec()

апще т по дефолту это запрещено и ты этого не сделаешь. Почитай про java security что ли)

Java's security model is focused on protecting users from hostile programs downloaded from untrusted sources across a network. To accomplish this goal, Java provides a customizable «sandbox» in which Java programs run. A Java program must play only inside its sandbox. It can do anything within the boundaries of its sandbox, but it can't take any action outside those boundaries. The sandbox for untrusted Java applets, for example, prohibits many activities, including:

*Reading or writing to the local disk
*Making a network connection to any host, except the host from which the applet came
*Creating a new process
*Loading a new dynamic library and directly calling a native method

JFreeM ★★★☆
()
Ответ на: комментарий от TDrive

Я ничего не доказывая. Просто очень удивился тому, что в Java нет такой возможности. Это первый ЯП в котором я встретил такое.

Т.е. вот это: «чё то не верится что разработчики java на столько упоротые» - это просто выражение удивления? А, ну тогда извини, что тебя «неупоротого» не так поняли...

А потом прилетели java-программисты и начали рассказывать что мне нужно, а что не нужно.

И этот с дислексией... Тебе попытались рассказать почему этого нет, и намекнули что это можно обойти.

yyk ★★★★★
()
Ответ на: комментарий от JFreeM

апще т по дефолту это запрещено и ты этого не сделаешь. Почитай про java security что ли)

Ну вот, я об этом и говорю.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от yyk

Тебе попытались рассказать почему этого нет, и намекнули что это можно обойти.

Видимо это «шли бы вы на питоне/рубях педалить» был тонкий намёк, объясняющий как обходить нехватку функционала в java?

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

Другого я и не ожидал.

Это было с самого начала понятно, что ты другого не ждёшь и другое тебе не нужно. Постановка задачи где? Иди в пень, боярин...

yyk ★★★★★
()
Ответ на: комментарий от TDrive

Я ничего не доказывая.

А потом прилетели java-программисты и начали рассказывать что мне нужно, а что не нужно.

По-моему, упоротыми java-разработчиков назвал ты ещё до того, как тебе начали что-то доказывать:

Вычитал, что в Java вообще нельзя менять директорию в которой исполняется программа, но чё то не верится что разработчики java на столько упоротые.

И следует разделять языки, компилируемые в машинный код, с теми, которые выполняются, по сути, в «песочнице». Тебе же ещё в начале дали ссылок для чтения, но ты видимо не осилил.

Лол. А чё мало что ли? У меня прокрутка в низ улетела, ещё и на английском. Я всё это 30 мин переводить буду. Так что ваши претензии высосаны из пальца.

roy ★★★★★
()
Ответ на: комментарий от roy

По-моему, упоротыми java-разработчиков назвал ты ещё до того, как тебе начали что-то доказывать

Потому, что я не думал, что java действительно не умеет менять current directory, думал такого не может быть. Вот и выразился в такой форме.

Тебе же ещё в начале дали ссылок для чтения, но ты видимо не осилил.

Что вы все этой ссылкой тычите, от того, что я прочитаю, возможности java не изменятся, и область применения не увеличится. Захочу узнать почему так, прочитаю. Буду писать демоны на других ЯП, какие проблемы?
А вот java-программистов эта тема, очевидно, сильно задевает. Раз вы даже на личности начинаете переходить и придумывать мне диагнозы.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от yyk

Постановка задачи где? Иди в пень, боярин...

В первом посте что?
«Как в java менять директорию в которой выполняется процесс?»
Я не знаю как можно сформулировать это предложение проще, чтобы вы смогли его распарсить.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

Это не постановка задачи «как забить гвоздь?», это вопрос «как вашим сраным электронным микроскопом забить обычный гвоздь?»

yyk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.