Ответы пользователя по тегу Java
  • Как лучше осуществить работу с удалённой базой данных на Android?

    @rPman
    Настоятельно рекомендую, все, что гуляет через интернет, заворачивать через http (в т.ч. websocket), само собой лучше с шифрованием (https), меньше будет гемороя, так как провайдеры (россия), а чаще мобильные, старательно тормозят или даже блокируют остальной трафик (например почти полностью убит p2p, даже webrtc испоьлзовать нужна магия).

    Вернее сказать, тот трафик, которые DPI у провайдера не понимает, может быть сильно ограничен или даже сломан (лезут кривыми руками куда не следуют), поэтому не изобретайте паровоза.

    На базе http берите либо готовые фреймворки и сериализаторы либо изобретайте свое. Популярные направления, использовать json, xml а если бинарный то Protobuf (вообще универсальная вещь). Для любого из указанных примеров в java есть библиотеки.
    Ответ написан
    Комментировать
  • Почему скомпилированный .exe не может подключиться к SQLite?

    @rPman
    Проверьте запускаете ли вы приложение с сетевого или webdaw диска или с локального (локальным диском так же считается подключенный vhd с сетевого размещения), особенно если вы используете javafxpackager или аналоги, заворачивающие java виртуальную машину в exe приложение. Запуск с помощью java - jar считается локальным (а отладчик так и делает), так как exe-приложением является виртуальная машина java а она у вас скорее всего установлена локально.

    При запуске приложений по сети действуют отдельные настройки политики и доступа к файлам, в т.ч. по сети, особенно я встречал много проблем при использовании .net скомпилированных приложений (не ваш случай но проблемы похожие).
    Ответ написан
    Комментировать
  • Как java поток выбирает ядро процессора?

    @rPman
    Ключевые слова - google: java cpu affinity

    В разных операционных системах свои инструменты. Точно знаю есть врапперы на java чтобы этим управлять.
    Ответ написан
    Комментировать
  • Возможно ли программно считать код из google authenticator или его аналога?

    @rPman
    ну задали бы в гугл вопрос а? это же не сложно!
    первый же результат - https://github.com/google/google-authenticator

    это HMAC-Based One-time Password если в гугл задать добавив java получим:
    https://github.com/jchambers/java-otp
    Ответ написан
  • Есть ли хорошая библиотека Java-браузера?

    @rPman
    webkit штатно идет с jre на всех платформах как часть javafx кажется с 1.7 версии, в android - это android.webkit, плюс точно знаю есть аналогичные опенсорс компоненты для chromium.

    Работает абсолютно все, кроме загрузки файлов (ее можно до реализовать самому, правда довольно кривовато).
    Ответ написан
    Комментировать
  • Как связать Java и web-интерфейс?

    @rPman
    необходимо будет немного поправить серверную часть, чтобы она работала не с простыми сокетами а с вебсокетами, библиотек вроде полно для всех языков, так что особых проблем и изменений логики на серверной стороне не будет, особенно если не требуется как то защищать этот интерфейс (т.е. он не публичный)

    как альтернатива вам нужен конвертер (прокси) вебсокет - обычные сокеты, эта прокси будет выступать сервером для вашей html страничке, написать ее будет еще проще

    соответственно html страничка будет по вебсокету подключаться к вашей программе, штатными средствами html5+javascript
    Ответ написан
    Комментировать
  • Подходит ли Java для desktop и MS Office?

    @rPman
    Если сравнивать c# и java именно в направлении разработки desktop приложений, то c# объективно выигрывает.

    Нет особой разницы на чем реализовывать вашу задачу, но лично мне удобнее клепать формочки на древнючем WinForms, чем на той же java fx (даже с использованием GUI построителей) реально меньше телодвижений, проще изучение, идеологические баги все простые.

    Доступ к данным именно microsoft office это фигня, хотя я очень редко но встречал проблемные документы, доступ к данным которых был только из запущенного офиса средствами его языка (или interprop communication в c#, когда запускается скрытый офис и язык имеет доступ к объектам самого офиса и открытого документа), на java кажется это будет еще менее удобно.
    Ответ написан
    Комментировать
  • Как вставить текст в input страницы загруженной в webView?

    @rPman
    не с android но на java, javafx.scene.web.WebEngine (как я понимаю он же и на android используется)

    берете документ webEngine.getDocument() к нему можнео делать запросы вида getElementById или getElementsByTagName, в общем почти все те же методы что доступны в javascript (querySelector напрямую недоступен), в результате вы получите доступ к элементам типа org.w3c.dom.html.HTMLImageElement / HTMLInputElement и т.п. у которых будут методы установки значений value или просто доступ к атрибутам по имени.

    Эмуляция кликов доступна так же напрямую из java но настоятельно рекомендую все что должно вызывать методы внутри браузера на javascript делать вызовом webEngine.executeScript, а если до элемента сложно достучаться по его идентификатору (например у него нет ни имени ни идентификатора) но вы смогли получить его объект в java, вы можете передать его обратно в javascript вот так:
    final static string GET_NODE_TEXT = "unique_node_name";
    ...
    // после загрузки страницы
    htmlWnd = (DOMWindowImpl)((DocumentView)htmlDoc).getDefaultView();
    ...
    // пример вызова submit формы, элемент которой у нас в node
    htmlWnd.setMember(GET_NODE_TEXT, node);
    browser.executeScript("(function(){var x=window."+GET_NODE_TEXT+";x.form.submit();})()");
    Ответ написан
  • Дилемма выбора между C++ и Java

    @rPman
    Выбор между с++ и java (добавьте сюда .net c# ) это больше не выбор между языками программирования и синтаксическим сахаром, а выбор между фреймворками (библиотеками) которые идут вместе (или для) с этим языком как 'стандарт по умолчанию'.
    Тем более эти языки на столько похожи, они вышли то и одного лона 'старого c++'!

    А это значит выбирайте то что вам нравится, но будьте готовы просто выучить еще один фреймворк (и чуть чуть языковых конструкций), ведь программист, не готовый изучать что то новое… слабовато выглядит и заранее обречен на провал.
    Ответ написан
    1 комментарий
  • Сделал программный проект, базирующийся на Windows 7 Embedded, теперь надо обновлять все это дело?

    @rPman
    — я смешал в одной миске мороженное (его очень любят дети), мясной рулет с тушеной картошечкой (ммм, питательно), кофе и черный чай (я не знаю что больше любит заказчик), и пропустил его через миксер, чтобы влезло в тюбик. Теперь это завтрак для космонавтов.
    — я все правильно сделал?
    Ответ написан
    Комментировать
  • Нужно зашифровать файл настроек программы Java?

    @rPman
    Запакуйте его, средствами java это очень просто… а чтобы совсем было нетривиально, добавьте в начало файла перед сохранением рандомный мусор фиксированной длинны. Делов то на лишние 3 строчки.
    Ответ написан
    Комментировать
  • Ваши мнения про C#(.NET) и Java в целом и по отдельности

    @rPman
    Опыт программирования на java вам подойдет в гораздо большем количестве мест, чем знание c# (и точнее .net framework, так как обычно говоря c# подразумевают сразу и язык, и среду разработки и библиотеки от майкрософта).

    Как я зык, java — это и веб, и все mobile (как старое так и новое — android), и desktop, и игры и самое главное — кроссплатформенность.

    В минусах — грустная политика oracle, владельца java как технологии так и пула патентов. И как результат, смутное далекое будуще. Но c# 'держит за горло' еще более худший монстр — microsoft…
    Ответ написан
    3 комментария
  • Законность декомпиляции и использования кода библиотеки

    @rPman
    * 'посмотреть как оно работает и написать свое' — да, можно, так поступают разработчики ReactOS, причем даже круче, одна команда изучает библиотеки windows, описывает это письменно/устно второй команде, которая пишет код
    * 'декомпилировать и скопировать получившийся код, с модификациями' — нельзя ни при каких условиях, а коммерческое назначение использование только усугубляет вину, но отсутствие этой цели — ее не уберет.

    p.s. но, в лицензии к программе может стоять запрет на декомпиляцию, тогда у вас останется только один легальный способ изучения кода — на основе поведения, но нужно будет обвиняющим доказать, что вы так делали, а 'не пойман — не вор'.
    Ответ написан
    3 комментария
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    Залил приложение на appspot.com (настройки базы High Replication), Test.amount увеличивается успешно, но проскакивает такое:
    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 9
    Test repeat read: 10, queryed:9

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 10
    Test repeat read: 11, queryed:10

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 11
    Test repeat read: 12, queryed:12

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 12
    Test repeat read: 13, queryed:12

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 13
    Test repeat read: 14, queryed:13

    Т.е. нет никакой гарантии что Query вернет верные данные, но каким то образом данные все равно корректно изменяются.

    p.s. уже размышляю по исключению из проекта любых Query и работа с данными исключительно по id (а особые списки реализовывать самостоятельно) все еще надеюсь что я где то ошибся, ибо это нереально глупое поведение БД
    Ответ написан
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    Стало еще страшнее!!! я ошибся выше в коментарии, не перепроверил, если запросить после изменений данных данные объекта через Query execute() и .get(0) то данные ВООБЩЕ никогда не записываются!
    Добавив код после обновления данных:
    q=pm.newQuery(Test.class);
    qdr=(List)q.execute();
    q.closeAll();
    resp.getWriter().println(«Test repeat read: „+d.getAmount()+“, queryed:»+qdr.get(0).getAmount());

    т.е. вывод всегда такой:
    # curl 127.0.0.1:8888/test
    Test length:1
    Test[1]: 44
    Test repeat read: 45, queryed:44

    # curl 127.0.0.1:8888/test
    Test length:1
    Test[1]: 44
    Test repeat read: 45, queryed:44

    # curl 127.0.0.1:8888/test
    Test length:1
    Test[1]: 44
    Test repeat read: 45, queryed:44
    Ответ написан
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    для очистки совести проверил, конечно ничего не изменилось, там d=pm.getObjectById(Test.class, new_id); исключительно для тестов и вывода в лог данных далее по коду.

    Гарантированно сериями по 2 запроса данные тупо никуда не записываются, при этом в пределах метода сервлета данные успешно записаны, доступны по повторным запросам через Query, но по завершению метода и выдачи результата клиенту изменения куда то исчезают

    p.s. в основном проекте все еще хуже… в один объект данные сохраняются, в другом, записываемым в этом же методе — нет, группы у объектов разные, в транзакцию завернуть еще не могу, я пока еще не придумал красиво объединить в группу слабо связанные сущности, по документации, чтобы это сделать — нужна связь типа 1к1 или 1кМ, либо что то нетривиальное с ключами
    Ответ написан
    Комментировать