Ответы пользователя по тегу Java
  • Возможно ли открыть порт 25565 если серый IP?

    @rPman
    Если работает upnp на роутере, то можно средствами сервера или если не умеет (майнкрафт не умеет) консольной утилитой upnpc (пакет miniupnpc) запросить перенаправление на порт сервера майнкрафта (если используется клиент то он пишет порт, который открыт для публикуемого в локальную сеть мира)
    upnpc [options] -a ip port external_port protocol [duration] [remote host]

    не факт что получится но почему бы не попробовать

    клиенты так же должны ip и порт прописывать вручную (тот что будет указан в перенаправлении)

    с помощью upnpc list можно посмотреть какие порты уже открыты и куда ведут чтобы выбрать свободный
    Ответ написан
    Комментировать
  • Установить джар на Nokia TA-1235 (150-2020)?

    @rPman
    На него нельзя устанавливать приложения
    народ мается просто с русскоязычной поддержкой для него
    Ответ написан
    1 комментарий
  • Зачем у некоторых java программ имеется exe файл запускающий jar архив?

    @rPman
    В зависимости от того, как именно создан exe файл, а точнее какая именно версия java и как распространяется вместе с приложением.

    В подавляющем большинстве случаев, windows сборки (например oracle java или или от redhat) ограничены лицензией на распространение, т.е. разработчики не имеют права распространять даже просто установщик jre вместе с приложением (полагаю можно получить персональное разрешение), а пользователь при загрузке таковой с офф сайта должен принять лицензионное соглашение.

    Так вот в java имеется официальный метод деплоя приложений без необходимости установки jre на машину (это начиналось с javafx packager и подхвачено почти всеми пакерами в т.ч. launch4j), а сама java прикладывается к приложению в виде пакета .dll (т.е. там нет ни одного exe-шника), в этом случае на машине клиента ничего не нужно настраивать и устанавливать и не требуется принимать никакие лицензии.

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

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

    @rPman
    потому что вывод YES никак не связан с твоим if, он вне его записан, дальше - выход из цикла определен условием в for (цикл будет работать пока i<10), внутри условия if у тебя стоит дополнительное увеличение i на единицу, а так же на каждом шаге в цикле i увеличивается на 1, значит значение i у тебя на каждом шаге цикла будут 0,2,4,6,7,8,9 - т.е. 7 раз

    p.s. Универсальный ответ - открой для себя отладку, по шагам проходи по своей программе и смотри на каждом шаке значения переменных, сравнивая их с ожидаемыми и поведением.
    Ответ написан
    Комментировать
  • Почему цикл for работает вопреки значению false?

    @rPman
    потому что само присваивание b=false не отменяет цикл, необходимо сделать break
    Ответ написан
    1 комментарий
  • Можно ли на Java написать нейронные сети и ИИ в целом?

    @rPman
    Да, можно, я разрешаю ;)

    Ты бы хоть погуглил, тьма библиотек и фреймворков, даже с поддержкой gpu но будет сложнее работать с не nvidia картами
    например Deeplearning4j
    рекомендую посмотреть на weka, про поддержку gpu там вроде нет, но этот фреймворк с огромной кучей реализаций алгоритмов работы с данными
    Ответ написан
    Комментировать
  • Есть ли аналог LWJGL но для DirectX? И может ли вообще Java взаимодействовать с DirectX?

    @rPman
    погуглю за тебя
    forum.lwjgl.org/index.php?topic=5651
    попроси у него код так как все репозитарии упоминающиеся там удалены

    ну ок посмотри java-direct3d.sourceforge.net/web если тебя интересует dx9
    Ответ написан
    Комментировать
  • Как поставить телеграм бота java на windows server?

    @rPman
    Судя по всему ты попал в классическую ловушку новичка - знаешь и умеешь только windows, но на полноценный хостинг денег не хватило и купил кастрированный (без gui) он обычно дешевый, порядка 200-300р и в результате получил одну единственную консольку?

    В windows консоль очень уж убогая, спасибо powershell можно с его помощью выполнять задачи, например скачать файл по ссылке
    Invoke-WebRequest -Uri "http://example.com/file.ext" -OutFile "C:\path\myfile.ext"


    p.s. настоятельно рекомендую не маяться дурью и сразу изучать хостинг на основе linux, это фактически золотой стандарт в мире, и большинство готовых инструментов - там

    чтобы передать файлы на linux хостинг тебе нужно чтобы на нем был запущен какой то сервер и он был доступен по ip адресу (и порту, иногда дешевые хостеры меняют порт со стандартного), в linux это ssh
    с помощью ssh ты подключаешься к хостингу, а так же можешь копировать файлы туда и обратно (scp) так с ним умеют работать такие утилиты как rsync или тот же git так что на выбор у тебя куча вариантов
    Ответ написан
    Комментировать
  • Не запускается Tlauncher, что делать?

    @rPman
    попробуй установить версию, предлагаемую tlauncher
    https://tlauncher.org/ru/install-java.html#downloa...

    еще можно поискать билды openjdk, например эти
    https://adoptopenjdk.net/installation.html#x64_mac-jre
    Ответ написан
    Комментировать
  • Как исправить проблему с созданием папки?

    @rPman
    можно конечно гадать, долго и бессмысленно, а можно в catch выводить информацию об exception, в 99% случаев там полезная информация
    Ответ написан
    2 комментария
  • Объясните, пожалуйста, этот пример в побитовых операциях, зачем тут Math.pow?

    @rPman
    возведение в степень 2^x это побитовый сдвиг единицы влево на x бит, отсчет начинается с 0 (2 в степени 0 = 1, 2 в степени 1 - 010, 2 в степени 3 - 100,..)
    Ответ написан
    1 комментарий
  • Как загружать видео с фейсбука?

    @rPman
    заменить код на вызов свежей версии утилиты youtube-dl ссылка
    Ответ написан
    4 комментария
  • Как узнать качество передачи данных с помощью сокетов и COM портов в Java?

    @rPman
    Программы мои: 1) между 2 программами передаются данные с помощью сокетов;

    качество передачи данных

    скорость

    если твои программы, то все просто

    собираешь статистику принятых и отправленных данных, на обоих сторонах, на каком то интервале
    добавляешь в протокол передаваемых данных пакеты с этой статистикой
    профит

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

    какой то капитанский ответ, непонятно почему такой вопрос у автора возник
    Ответ написан
    Комментировать
  • Как оптимально перебрать все возможные комбинации 4х массивов?

    @rPman
    ip4 адрес это число 32бит, все ip адреса тут это все значения unsigned int32 от 0 до 0xFFFFFFFF
    т.е. пишешь один единственный цикл от 0 до 0xFFFFFFFF а затем из числа получаешь ip в нужном тебе виде, либо последовательным получением остатка отделения на 256, либо вручную побитовыми операциями (маска и сдвиг) либо сконвертировав число в массив байт
    Ответ написан
    Комментировать
  • Как спарсить строку в double?

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

    Выбирай страну с твоим форматом или проси пользователей вводить числа в формате, принятом в своей стране (указанной в системной локали ОС)
    NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); // Locale.US если надо точку, осторожно запятая с ним игнорируется как разделитель тысяч
    Number number = format.parse("1,234");
    double d = number.doubleValue();


    p.s. каких только глюков я с этой точкой не вижу
    программисты в россии привыкли к точке, а в стандарте ожидается запятая.
    например приложение сбер на экране рисует запятую, но вводить для копеек надо точку (запятая выдаст ошибку)

    но самое паршивое, когда народ лезет в настройки локали windows и меняет запятую на точку и получает еще больше глюков с тем же ms office
    Ответ написан
  • Что нужно изучить чтобы писать красивые приложения под Android?

    @rPman
    Красивый интерфейс - это дизайн (+ mobile UX trend)
    Удобный интерфейс - это юзабилити дизайн (все на это почему то забивают)
    Красивый код - это... code style и может быть это (первое что гугл выдал)
    Ответ написан
    Комментировать
  • Как выделяется поток для пользователя и расчёт предельной нагрузки сервера?

    @rPman
    С практической точки зрения самый верный вариант - провести эксперимент на реальной нагрузке.
    Все остальные способы дадут приблизительную оценку или с погрешностью, с лимитом сверху или снизу.

    Вам один сборщик мусора может внести заметной паразитной нагрузки вне расчета. Так же помимо прямых затрат на работу с потоками есть же затраты на обслуживание к примеру файловых операций, даже если они асинхронные, ресурсы которые на это тратятся из воздуха не берутся.
    Ответ написан
  • Как понять и исправить EXCEPTION_ACCESS_VIOLATION при вызове jni метода при использовании упаковщика в exe файл javafxpackager и x86_64 версии java?

    @rPman Автор вопроса
    Если что эту проблему я решил некоторое время назад, в коде rhvoice обнаружил баг, указатель сохранялся в 4-байтовую переменную (а затем переносился в 8-байтовый лонг java), когда как для 64-битных систем нужно сразу 8 байт.

    Разработчикам rhvoice ооб этом сообщили но багу пока они не пофиксили, это тут, long нужно заменить на auto
    Ответ написан
    Комментировать
  • Как найти остаток от деления чисел с помощью сложения и вычитания?

    @rPman
    берем делитель и складываем с самим собой (т.е умножаем на 2), затем полученное число снова складываем.. до тех пор пока результат не станет больше делимого числа (эту сумму не запоминаем, берем предыдущую)
    затем на выбор:
    * из разницы делимого и текущей суммы, в цикле вычитаем делитель, пока результат не станет меньше нулдя (предыдущий и будет остатком)
    * в процессе подсчета суммы делителя промежуточные результаты (массив из n элементов, каждый y*2*n) из разницы делимого вычитаем предыдущую сумму, если результат меньше нуля, не запоминаем результат и переходим к следующей промежуточной сумме, так до тех пор пока не пройдем по всем сохраненным суммам. Последним пробуем вычесть сам делитель.

    этот алгоритм заметно эффективнее просто тупого вычитания делителя, второй вариант еще более эффективный но потребляет память log(x)
    Ответ написан
    Комментировать
  • Как оптимизировать данный код?

    @rPman
    if(g >= m) break;
    else pays--;
    из-за этих двух странных строк (логику понять не могу, если текущая взвешенная сумма станет больше указанного на старте значения то прекращяем, иначе вычитаем 1 из pays которая поделенная сумма на m, логику чисел pays и m я понять не могу) избавиться от acc не получится, (в твоем коде нет ничего жрущего оперативную память кроме этого массива) так как нужно сначала посчитать всеобщую сумму. Т.е. если приложению на вход дать 16 миллионов строк (или 8 миллионов, int там 8 или 4 байтный?) то приложение точно выйдет за лимит памяти.
    Ответ написан
    1 комментарий