LINUX.ORG.RU

Что нового в Мустанге


0

0

Денни Ковард, опубликовал список из 10 основных вещей, которые надо знать о Java SE 6.

WebServices: Необходимые классы для написания клиентов теперь входят в SE. Поддержка скриптования: встроенная поддержка JavaScript и возможность встраивания своих скриптовых движков (Perhaps You ThougHt yOu couldN't program with a scripting language and Java togetheR. Which will yoU Be trYing ?). Встроенная JavaDB (основанная на Derby), поддержка JDBC 4, интеграция с десктопом, доступ к API компилятора и многое другое.

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()

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

> System.getProperty("user.home");

Я, похоже, несколько сумбурно выразился. Мне надо не c:\Documents and Settings\username, а c:\Documents and Settings\username\Application Data. На всякий случай напоминаю: в русской и английской винде он, конечно, Application Data, но, например, в немецкой - Anwendungsdaten.

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

>Я повторяю: мне надо под любой платформой сохранять юзерские настройки в каталоге, который под этой платформой для этого предусмотрен

А про FileSystem, FileSystemView просвещенный не слыхал?

А про Preferences?

Учите матчасть

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

>необходимость периодического рефакторинга говорит о никаком проектировании :)

Ты слышал про Экстремальное программирование? В экстремальном программировании проектирование в принципе запрещенно более чем на 2-х недельную итерацию. Никакое проектирование не предусмотрит все мелочи, из-за которых потом приходиться переписывать очень много. Если ты написал код и видишь что он плохо пахнет, но ты не рефакторишь его, т.к. он так запроектирован. То конце концов проект превратится в нечто неподдерживемое, либо просто не будет сдан.

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

>Я, похоже, несколько сумбурно выразился. Мне надо не c:\Documents and Settings\username, а c:\Documents and Settings\username\Application Data. На всякий случай напоминаю: в русской и английской винде он, конечно, Application Data, но, например, в немецкой - Anwendungsdaten.

Нечего там тебе делать, пиша прогу на джаве. А если ты пишешь под Винду only, то лучше использовать .NET, ибо он проще.

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

> Тебе курить в сторону идеологии переносимости.

Идеология переносимости гласит, что работать всё должно ровно наполовину, а когда что не работает - горестно разводим руками и печально говорим "не сложилось"? Да, очень удобная идеология.

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

> А про FileSystem, FileSystemView просвещенный не слыхал?

Слыхал. Но не вижу, как это позволит мне ПРОСТО И БЫСТРО определить нужное. Пока что мне проще и быстрее написать самому платформеннозависимый код. Парадокс? Ну, и зачем тогда все эти гордые словеса про кроссплатформенность?

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

> Нечего там тебе делать, пиша прогу на джаве.

Сильно сказано, чёрт возьми. А где мне хранить юзерские данные? Вот за это вас, убогих, и не любят. Вы в каждой системе живёте по принципу "весь мир - моя нора", засираете каталоги, которые предусмотрены ОС для совсем другого, и гордо именуете эту свою импотенцию кроссплатформенностью.

> А если ты пишешь под Винду only, то лучше использовать .NET, ибо он проще.

Нет, я пишу под винду и линукс. И хочу, чтобы мой софт уважал правила, принятые в обеих системах. Java же кроссплатформенная? Или таки нет?

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

Ладно, надоело мне измываться над убогими. Я уже получил представление о том, насколько херово вы знаете возможности своей java и насколько херово вы лепите кроссплатформенные приложения. Ответ на первый мой вопрос прост:

if ((UserDir=System.getenv("APPDATA"))!=null) { ...

или же запуском "reg.exe query ..." и анализом его вывода.

Для win9x не сработает, но под это старьё я писать и не собираюсь.

А вот по второму вопросу всё же хотел бы что-то услышать.

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

>Сильно сказано, чёрт возьми. А где мне хранить юзерские данные? Вот за это вас, убогих, и не любят. Вы в каждой системе живёте по принципу "весь мир - моя нора", засираете каталоги, которые предусмотрены ОС для совсем другого, и гордо именуете эту свою импотенцию кроссплатформенностью.

Вот именно там ( System.getProperty("user.home"); )и хранят все данные джавовские проги, не залезая в Application Data. Твое желание пихануть в Application Data - это уже просто из серии "когда собаке делать нехрен, она будку красит".

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

> Вот именно там ( System.getProperty("user.home"); )и хранят все данные джавовские проги, не залезая в Application Data. Твое желание пихануть в Application Data - это уже просто из серии "когда собаке делать нехрен, она будку красит".

Вот-вот, "весь мир - моя нора". Нам насрать, что там себе думают аффтары операционных систем. Мы себе создадим государство в государстве, притом в том месте, где это делать не положено. Разработчик ОС сделал для этого Application Data, но мы-то умнее его, правда? На самом деле, нам просто лень разбираться в этой ерунде, но в качестве публичного обоснования своих действий такое явно не катит; поэтому будем с важным видом нести более благообразную околесицу.

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

>Вот-вот, "весь мир - моя нора". Нам насрать, что там себе думают аффтары операционных систем. Мы себе создадим государство в государстве, притом в том месте, где это делать не положено. Разработчик ОС сделал для этого Application Data, но мы-то умнее его, правда? На самом деле, нам просто лень разбираться в этой ерунде, но в качестве публичного обоснования своих действий такое явно не катит; поэтому будем с важным видом нести более благообразную околесицу.

Тут два варианта - 1) Если все приложения должны использовать Application Data согласно спецификации создателей Windows, то в Java допустили ошибку и показывают не на тот каталог в Windows. решение: пишем баг-репорт. До внесения изменений - используем каталог "user.home" 2) Создатели Windows не указывали требования об обязательности использования application Data, а требование об обязательности - дикие фантазии anonymous'a. используем каталог "user.home".

В любой из двух ситуация прога на Java ОБЯЗАНА использовать "user.home".

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

> Тут два варианта - 1) Если все приложения должны использовать Application Data согласно спецификации создателей Windows

https://www.microsoft.com/technet/prodtechnol/windows2000serv/maintain/featus...

"Application data, such as user preferences, application state, temp files, and so on, must be stored in application data folders or the registry ... ".

> В любой из двух ситуация прога на Java ОБЯЗАНА использовать "user.home".

:)

Расскажи это Mathworks, которая Matlab UI пишет как раз на java. AppData они хранят в %USERPROFILE%\Application Data\MathWorks\MATLAB\R14 :)

Правда, и эти умники лажанулись (такое ощущение, что java посильно препятствует корректному созданию приложений). Винда немецкая, %APPDATA%=%USERPROFILE%\Anwendungsdaten. Но matlab'у насрать, он специально под себя создаёт %USERPROFILE%\Application Data. Даже не знаю - смеяться или плакать над этими ламерами :)

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

>"Application data, such as user preferences, application state, temp files, and so on, must be stored in application data folders or the registry ... ".

Кстати, эта фраза говорит лишь о том, что данные должны содержаться в некоторых папках (а не Application Folder (папка)!), которые принадлежат данному приложению. А вовсе не о том, что данные должны находится в папке Application Folder Вот как бы выглядела эта фраза, если бы создатели Винды думали, как анонимус "Application data, such as user preferences, application state, temp files, and so on, must be stored in %USERPROFILE%\Application Data folder or the registry ... ".

Обратим внимание на разницу во множественном числе - у майкрософтовцев folderS, а во фразе анонимуса folder.

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

> Кстати, эта фраза говорит лишь о том, что данные должны содержаться в некоторых папках (а не Application Folder (папка)!), которые принадлежат данному приложению. А вовсе не о том, что данные должны находится в папке Application Folder

Application Data только :) Советую всё-таки почитать ВЕСЬ текст по ссылке, а не только тот огрызок, который я привёл. Тогда всё прояснится (надеюсь) и не придётся писать всякие глупости :) Или мне тут ВСЮ статью привести?

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

> Я, похоже, несколько сумбурно выразился. Мне надо не c:\Documents and Settings\username, а c:\Documents and Settings\username\Application Data. > На всякий случай напоминаю: в русской и английской винде он, конечно, Application Data, но, например, в немецкой - Anwendungsdaten.

О, тогда да, либо брать искомое значение из окружения, либо что-то дергать из реестра.

Но, думается мне, что это не самый большой недостаток Java. ;-)

chinpunkanpun
()

Докатились - на LOR начали ссылки на MSDN постить. Вам должно быть стыдно, товагищи!

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

Слыхал. My Music, My Pictures, My Documents, My Pr0n, My Shit, My Videos, My Virtual Machines etc Только зачем тебе ЭТО в Java программах? Ты их пишешь, чтобы только в винде запускать? Тогдда пеши на дельфах и умри от голода.

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

>Под линуксом это будет ~, под виндой - c:´\Documents and Settings\username\Application Data (если винда английская), c:\Dokumente und Einstellungen\username\Anwendumngsdaten (если немецкая), c:\Winnt\Profiles\username\Application Data (английская winnt4) и т.д. Java предлагает какой-то класс для определения этого каталога или мне самому костыли кодить?

А чем тебя не устраивает Preferences API, ась??

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

> Проще говоря, найти user home directory под windows, linux и т.п. Или в java есть стандартная функция для этого?

System.getProperty( "user.home")

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

> Как он теперь определит, жив предыдущий экземпляр или мёртв?

Надо проверять не на наличие файла, а на возможность его удалить. Сюрприз?

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

>Java предлагает какой-то класс для определения этого каталога или мне самому костыли кодить?

Так и называется: ShellFolder

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

>Парадокс? Ну, и зачем тогда все эти гордые словеса про кроссплатформенность?

Парадокс у тебя в моске. Ты хочешь определять "платформонезависим" методом то что является платформоспецифичным. Када избавишься от парадоксов в моске - можешь начинать программировать и не париться высосанными из пальца проблемами. А написать несколько строк для определения App Data под вендой или для установления хендлера стандартной менюхи в MacOS через MRJ уж точно проблемой не является.

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

Если я использую Preferences в java мне глубоко наплевать где конкретно данные будут сохранены, в винде они будут сохраннеы в реестре, в линуксе в файловой системе. Что делать с моими данными решает виртуальная машина , этом и заключается кросплатформенность.

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

>Если я использую Preferences в java мне глубоко наплевать где конкретно данные будут сохранены

Как замену реестра - да. Но иногда туда надо написать побольше чем можно в реестр.

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

>Как замену реестра - да. Но иногда туда надо написать побольше чем можно в реестр.

Можно создать файл, временный (temp), в текущем каталоге или в домашнем каталоге. Причем во всех трех варианатах не нужно указывать конкретный путь он выбирается виртуальной машиной в зависимости от системы на которой выполняется программа.

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

>Можно создать файл, временный

Это часто совсем не временный файл + во всяких нехороших маках /tmp по умолчанию стирается каждый ребут.

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

>Это часто совсем не временный файл + во всяких нехороших маках /tmp по умолчанию стирается каждый ребут.

Временный файл это только один из вариантов, можно еще создать файл в текущем каталоге или в домашнем каталоге пользователя.

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

Именно в мультиплатформенности и популярность. Как популярность UNIX и была обусловлена поддержкой разных архитектур.

.НЕТ в исполнении моно крайне сырой продукт. Да и хуэе своего "оригинала".

Самые высокие и стабильные (именно СТАБИЛЬНЫЕ, вспомним нашего "англичанина", которого уже и нет в списке, коим он так хвастался) заработки - именно у "жаба-кодеров", а не у "анонимусов".

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

> лучше помолчи, а не подставляйся

Сколь Вы вежливы и тактичны! А можно я отвечу?

> Или в java есть стандартная функция для этого?

Учите матчасть!

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperty(java.l ang.String)

Падает уровень ЛОРа! :(

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

> Ну, не знаю... В большом проекте собственно кодинг занимает так мало ресурсов, что становится непринципиальным синтаксис и компактность написания.

То есть "большой" проект - это когда из двух строчек кода и пятка 3-пати библиотек вырастает мега-монстр, требующий под инсталляцию десяток гиг места и тормозящий на Niagara :) Причем теория неплохо согласуется с практикой :))

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

> Я повторяю: мне надо под любой платформой сохранять юзерские настройки в каталоге, который под этой платформой для этого предусмотрен.

Обломно вам, "каталоги" есть только в виндах :)

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

> Я повторяю: мне надо под любой платформой сохранять юзерские настройки в каталоге, который под этой платформой для этого предусмотрен.

Я плакаль :) Учи матчасть: http://java.sun.com/j2se/1.4.2/docs/guide/lang/preferences.html http://java.sun.com/j2se/1.4.2/docs/api/java/util/prefs/Preferences.html

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

HAL в виндах "легко портируемый", а мир в котором это случилось - безумный... так что увидим и винды на спарках :))

Gharik
()

ужас как надоели эти... лучше.. хуже.. Надо что то сделать - берешь и делаешь, а как это твои половые трудности. У нас всегда так было

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