Немного въехал в тему, говорят, что авторизация через логин и пароль может любой момент слететь, то есть быть закрытой ВК. Они рекомендуют авторизацию через браузер, то есть java приложение должно открыть браузер, и получить оттуда токен, если пользователь подтвердит нажатием на кнопку Войти.
То есть при таком способе приложению придется запрашивать пароль пользователя? Это не очень подходит.
Я это себе представляю, как нажатие кнопки войти и получения данных, желательно без браузера.
Да, SwingWorker это именно то, что нужно. Только все равно непонятно, каким механизмом заблокировать вызов getCommand в SwingWorker, а из EDT отблокировать. wait, notify, listener или еще какой вариант есть.
Программа запускается только через скрипт, который похоже игнорирует опции. Поэтому -Xmx1g я пытался прописать в Control Panel -> Java, но это эффекта не возимело. Вы правы, проблема была в классе Aim после прочтения на stackoverflow, как Java хранит enum, ужаснулся и переписал в С-стиле. Проблема исчезла. Спасибо!
Большое спасибо за пункт 2. Неправильно ловил и не знал, что эта ошибка не является потомком от обычного Exception. Теперь java.lang.OutOfMemoryError: Java heap space.
1. Aim — это enum c 4-мя значениям, тремя полями и штук семь методов. Как можно в Яве очень количество байт на каждый объект?
И кстати в приведенных логах никак не вижу, чтобы где-то указывалось 2 ГБ, кажется что опции игнорируются.