воскресенье, 13 ноября 2011 г.
Глюк с JVisualWM - в списке приложений показывается только Unknown Aplication
Недавно столкнулся со следующей проблемой - JVisualWm (файл jvisualwm.exe пакета jdk (java) - служит для расширенного мониторинга и отладки приложений на java) неожиданно перестал работать как надо. Приложение запускалось, однако в списке имеющихся java программ отображалась только строка и больше ничего. Переустановка jdk, а также обновление его - не помогло. Поиск в интернете упоминаний о подобной проблеме ничего не дал. Покопавшишь в конфигах java - нашел причину проблемы. В файле C:\Program Files\Java\jdk1.6.0_29\lib\visualvm\etc\visualvm.conf параметр default_userdir оказался равен default_userdir="${HOME}/.${APPNAME}/6u23", однако на данный момент использовалась версия jdk 6u29, а 6u23 - была удалена. Замена значения 6u23 на 6u29 привела к восстановлению работоcпособности jVisualWm.
понедельник, 24 октября 2011 г.
Как в java swing программно установить фокус (focus) на некотором компоненте
Для программной установки фокуса на компоненте swing (например, текстовом поле JTextField) рекомендуется использовать функцию Component.requestFocusInWindow().
суббота, 17 сентября 2011 г.
Создание zip архивов на java
Недавно столкнулся с необходимостью создания резервных копий определенных файлов в приложении на java, резервные копии чтобы меньше занимали место было решено сжимать в zip архивы.
Для работы с zip архивами в java существует стандартный пакет java.util.zip, с использованием которого также можно запаковывать и распаковывать архивы формата gzip.
Ниже приведен исходный код метода для архивирования директории со всем её содержимым
Для работы с zip архивами в java существует стандартный пакет java.util.zip, с использованием которого также можно запаковывать и распаковывать архивы формата gzip.
Ниже приведен исходный код метода для архивирования директории со всем её содержимым
private static void directoryToZip(File directory, File zipFile) throws IOException {
URI base = directory.toURI();
Deque queue = new LinkedList();
queue.push(directory);
OutputStream out = new FileOutputStream(zipFile);
Closeable res = out;
try {
ZipOutputStream zout = new ZipOutputStream(out);
res = zout;
while (!queue.isEmpty()) {
directory = queue.pop();
for (File child : directory.listFiles()) {
String name = base.relativize(child.toURI()).getPath();
if (child.isDirectory()) {
queue.push(child);
name = name.endsWith("/") ? name : name + "/";
zout.putNextEntry(new ZipEntry(name));
} else {
zout.putNextEntry(new ZipEntry(name));
InputStream in = new FileInputStream(child);
try {
byte[] buffer = new byte[1024];
while (true) {
int readCount = in.read(buffer);
if (readCount < 0) {
break;
}
zout.write(buffer, 0, readCount);
}
} finally {
in.close();
}
zout.closeEntry();
}
}
}
} finally {
res.close();
}
}
суббота, 10 сентября 2011 г.
Как в java проверить наличие соединения с интернетом
Один из способов проверить наличие соединения с интернетом - просто протестировать загружается ли некоторые сайты или нет. Для проверки лучше всего использовать крупные сайты, про которые известно, что крайне маловероятно они в какой то момент станут недоступны, например google.com, ya.ru. Либо проверять последовательно доступность нескольких сайтов - если хоть один из них доступен - значит соединение с интернетом присутствует.
Ниже представлена функция проверяющая наличие соединения с интернетом, путем проверки доступности сайта ya.ru.
Ниже представлена функция проверяющая наличие соединения с интернетом, путем проверки доступности сайта ya.ru.
private static boolean checkInternetConnection() {
Boolean result = false;
HttpURLConnection con = null;
try {
// HttpURLConnection.setFollowRedirects(false);
// HttpURLConnection.setInstanceFollowRedirects(false)
con = (HttpURLConnection) new URL("https://ya.ru").openConnection();
con.setRequestMethod("HEAD");
result = (con.getResponseCode() == HttpURLConnection.HTTP_OK);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return result;
}
четверг, 7 июля 2011 г.
Как можно проверить является ли строка числом на java?
Этот вопрос возникает наверное у каждого начинающего (и не очень) программиста на java. Есть несколько способов выполнить вышеописанную задачу.
Способ первый - использование метода Integer.parseInt(String string).
Способ второй - использование регулярных выражений.
Этот метод выполняется примерно с одинаковой скоростью вне зависимости от того является ли строка числом.
Способ третий - проверка по очереди каждого символа в строке.
При тестировании данный метод показал на удивление хорошие результаты - более чем в 3 раза быстрее, чем самый быстрый случай для первого и второго метода.
Третий метод и второй для преобрахования строк не подходят, в отличие от первого (при небольшой доработке).
Поэтому если задача стоит только в определении является ли строка числом - то лучше всего подойдет именно третий метод, если же помимо прочего ещё и необходимо преобразовать строку в число то лучше воспользоваться 1 методом, немного видоизменив его.
Способ первый - использование метода Integer.parseInt(String string).
public boolean checkString(String string) {
try {
Integer.parseInt(string);
} catch (Exception e) {
return false;
}
return true;
}
Этот способ очень быстро выполняется если строка является числом (в 5-10 раз быстрее, чем способ с использованием регулярных выражений), и очень долго - если строка числом не является (примерно в 1,5 раз дольше, чем способ с использованием регулярных выражений). Способ второй - использование регулярных выражений.
public boolean checkString(String string) {
if (string == null) return false;
return string.matches("^-?\\d+$");
}
Этот метод выполняется примерно с одинаковой скоростью вне зависимости от того является ли строка числом.
Способ третий - проверка по очереди каждого символа в строке.
public boolean checkString(String string) {
if (string == null || string.length() == 0) return false;
int i = 0;
if (string.charAt(0) == '-') {
if (string.length() == 1) {
return false;
}
i = 1;
}
char c;
for (; i < string.length(); i++) {
c = string.charAt(i);
if (!(c >= '0' && c <= '9')) {
return false;
}
}
return true;
}
При тестировании данный метод показал на удивление хорошие результаты - более чем в 3 раза быстрее, чем самый быстрый случай для первого и второго метода.
Третий метод и второй для преобрахования строк не подходят, в отличие от первого (при небольшой доработке).
Поэтому если задача стоит только в определении является ли строка числом - то лучше всего подойдет именно третий метод, если же помимо прочего ещё и необходимо преобразовать строку в число то лучше воспользоваться 1 методом, немного видоизменив его.
четверг, 30 июня 2011 г.
Как удалить вирус GuardGuard.exe
Для начала что делает вирус GuardGuard.exe :
Алгоритм лечения от заразы:
- создает TCP порты и соединяется с другими зараженными компьютерами.
- создает файлы в папках временных файлов (Temp).
- исполняется также из папок временных файлов.
- перехватывает процессы.
Алгоритм лечения от заразы:
- Отключаем восстановление системы (желательно, но не обязательно).
- Перегружаем в безопасном режиме (при загрузке Windows нажимаем F8 и выбираем пункт безопасный режим).
- Ищем на диске поиском guardguard.exe. Удаляем. Обычно это временная папка (C:\Windows\Temp), заодно оттуда можно удалить все остальное.
- Запускаем regedit.exe (Пуск -> Выполнить -> regedit).
- Ищем "guardguard" и удаляем все ключи с этой строкой.
- Перегружаем компьютер и пытаемся работать.
- Не забудьте включить "Восстановление системы" (если отключали).
воскресенье, 5 июня 2011 г.
#E154. Ошибка установщика классов (Class installer failed). Ошибка 2: Не удается найти указанный файл.
На днях после обновления файрвола столкнулся со странным глюком. Не работала ни одна сетевая карта, а при установке драйверов на них в лог записывалоь сообщение:
#E154. Ошибка установщика классов (Class installer failed). Ошибка 2: Не удается найти указанный файл.
На просторах интернета нашел простое решение этой проблемы.
Итак, по шагам:
1. Убиваем все сетевухи (это для удобства - можно и не удалять)
2. Сносим в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network параметр CONFIG
3. Перезагружаем комп
4. Сетевухи автоматически устанавливаются - всё работает
#E154. Ошибка установщика классов (Class installer failed). Ошибка 2: Не удается найти указанный файл.
На просторах интернета нашел простое решение этой проблемы.
Итак, по шагам:
1. Убиваем все сетевухи (это для удобства - можно и не удалять)
2. Сносим в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network параметр CONFIG
3. Перезагружаем комп
4. Сетевухи автоматически устанавливаются - всё работает
Подписаться на:
Сообщения (Atom)
Ярлыки
java
(31)
оптимизация
(7)
CPanel
(5)
svn
(5)
windows xp
(5)
ошибка
(5)
свой сервер
(5)
файлы и папки
(5)
gui
(4)
регулярные выражения
(4)
jacoco
(3)
redmine
(3)
windows
(3)
автоматизация
(3)
защита данных
(3)
резервное копирование
(3)
сервер
(3)
JavaScript
(2)
Oracle SQL
(2)
adsl модем
(2)
apache maven
(2)
apache tomcat
(2)
coverage
(2)
dropbox
(2)
excel
(2)
firewall
(2)
netbeans
(2)
office 2007
(2)
samsung
(2)
system tray (системный трей)
(2)
xerox
(2)
вирусы
(2)
принтер
(2)
сериализация
(2)
удаленный рабочий стол
(2)
HTML
(1)
JFileChooser
(1)
MySQL
(1)
Nokia
(1)
Ovi
(1)
P660R-T1
(1)
WakeOnLan
(1)
blogger.com
(1)
ctfmon.exe
(1)
email
(1)
flash память
(1)
ftp
(1)
integration testing
(1)
ip
(1)
jQuery
(1)
jvisualWm
(1)
log4j
(1)
look and feel
(1)
myBatis
(1)
php
(1)
serialVersionUID
(1)
skype
(1)
smtp
(1)
ssh
(1)
swing
(1)
torrents
(1)
unit-testing
(1)
unix
(1)
vpn
(1)
windows 7
(1)
xStarter
(1)
zip
(1)
безопасность
(1)
вход в систему
(1)
дизайн
(1)
документация
(1)
заправка
(1)
интернет
(1)
логирование
(1)
мышь
(1)
патч
(1)
перенос
(1)
печать
(1)
плагины
(1)
почтовые сообщения
(1)
программирование
(1)
процессы
(1)
прошивка
(1)
сеть
(1)
сеть. ошибка
(1)
скрытые файлы
(1)
списки
(1)
фильтрация
(1)
фокус
(1)
часовые пояса
(1)
шифрование
(1)
экран
(1)