Во-первых, нужно создать Standalone-приложение через специальную форму ВК.
Во-вторых, если есть возможность и желание, можно использовать какой-нибудь WebView, чтобы провести пользователя через всякие окошки вроде ввода авторизации и разрешения доступа.
Но если такой способ не подходит, то можно просто распарсить HTML, и отправлять POST-запросы, а в самом конце выдрать токен из адресной строки. Для Android-приложения я заменял # на "?" и разбирал получившийся query string:
HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);
HttpHost currentHost = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
String currentUrl = (currentReq.getURI().isAbsolute()) ? currentReq.getURI().toString() : (currentHost.toURI() + currentReq.getURI());
currentUrl = currentUrl.replace("#", "?");
Uri uri=Uri.parse(currentUrl);
String access_token = uri.getQueryParameter("access_token");
long user_id = Long.valueOf(uri.getQueryParameter("user_id"));
Опять же, так делается в Android - в чистой яве для этого просто не хватит классов.
Но вообще, это очень некрасиво, и лучше всего, конечно, выпрашивать прямую авторизацию.