• Какие онлайн ресурсы посоветуете для изучения Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вообще я бы посоветовал поискать ответ на хабре, прежде чем задавать вопрос, ибо было дано много подобных ответов.
    Результат поиска - https://qna.habr.com/search?q=%D0%B8%D0%B7%D1%83%D...
    https://qna.habr.com/q/645347
    https://qna.habr.com/q/539385

    Что касается ресурсов, то можете глянуть на habr.com baeldung.com или на medium.com
    Ответ написан
    Комментировать
  • В чем проблема моего switch?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Attempt to invoke virtual method "boolean android.widget.Switch.isChecked()" on a null object reference

    Ну тут как по мне довольно ясно написано, что вы пытаетесь вызвать метод isChecked() на объекте, который null
    Исключение выбрасывается тут:
    edit.putBoolean(APP_MUSIC,sw4.isChecked());
    Потому, что sw4 = null
    А значит, почему-то тут null:
    sw4 = dialog.findViewById(R.id.music);
    Посмотрите есть ли id music.
    Ответ написан
  • Как запустить код Java в VSCODE Windows?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Ну первое, что попадается в глаза, это ваш исходный код (который кстати, должен быть обрамлен тегом code, а не быть добавлен в виде скриншота, согласно правилам сайта). Писать код на Java удобно используя Intellij IDEA Community Edition или же Eclipse.
    Попробуйте обойтись без VSCode для начала и скопмилируйте проект при помощи консоли.
    При помощи команды cd перейдите в директорию, которая содержит java файл.
    Затем скомпилируйте его в байт-код javac GuessTheGame.java
    После чего попробуйте запустить ваш код через команду java GuessTheGame
    Если будут проблемы, то введите:
    java -version
    и выложите результат выполнения сюда
    Ответ написан
    4 комментария
  • Как исправить ошибку no main manifest attribute in my_app.jar?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Как создал jar файл:
    1) В intellij idea зашел в project structure
    2) Далее выбра artifacts и нажал "+"
    3) далее выбрал jar from modules with dependencies где указал свой main класс
    4) Нажал окей и забилдил проект

    Если не ошибаюсь, то в Intelilj IDEA есть такой баг, когда он добавляет не тот MANIFEST.mf файл. Что-то такое было вроде бы...

    Попробуйте разархивировать ваш jar и глянуть, что написано в этом файле.

    Как отметил коллега Dmitry Roo попробуйте создать новый проект с нуля с указанного сайта и запустите его. Ну а если решите все-таки добить этот, то вся проблема в MANIFEST.mf Видимо, класс указан не тот или сам файл некорректен (например, нет переноса строки и т.д.)
    Ответ написан
    Комментировать
  • Найти работу java без опыта и образовния - невозможно?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Спринг и прочее не очень вникал как работает, но использовать тоже могу для своих целей.

    Пожалуй, именно с изучения этого стека и стоит начать.

    Найти работу java без опыта и образовния — невозможно?

    Можно найти работу. Да, будет сложно. Другое дело, возможно ли найти работу без знания Spring... А что именно вы планируете тогда писать? Парсеры и боты? Ну так можно и на фриланс биржах найти заказчиков.

    Из вариантов в теории сейчас есть только попробовать устроиться через курсы от епама.

    Как по мне, хорошая идея. Можно начать с курсов от Epam. А затем, стажироваться там же и трудоустроиться.

    Можно еще пойти в QA, но тогда вам также нужно изучить соответствующие фреймворки. Например, Mockito, JUnit и т.д.
    Ответ написан
    Комментировать
  • Как собрать java проект на maven в jar файл и поставить на ubuntu server 18.04?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Можно по-разному задеплоить приложение.
    Один из возможных способов это docker или docker-compose.
    Шаги:
    1 - создать Dockerfile, указать как проект должен быть собран, что нужно установить и т.д.
    Например,
    FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-alpine as build
    COPY . /srv
    RUN cd /srv && chmod +x mvnw && ./mvnw clean package
    FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-alpine
    WORKDIR /srv
    COPY --from=build /srv/target/{JAR_NAME}.jar /srv/{JAR_NAME}.jar
    ENTRYPOINT exec java -jar /srv/{JAR_NAME}.jar

    2 - залить проект на гит
    3 - сделать git clone этого проекта на удаленный сервер.
    4 - запустить docker или docker-compose

    Другое более простое решение:
    1 - собрать архив при помощи maven
    mvn clean package
    2 - Полученный архив из директории target/(JAR_NAME).jar закинуть по scp на сервер.
    3 - Установить jre соответствующей версии и запустить проект.
    java -jar /srv/{JAR_NAME}.jar
    Ответ написан
    Комментировать
  • Какой есть бесплатный динамический генератор QR кода?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Исходя из вышеуказанных комментариев могу предположить, что вам нужен сервис, а не либа для разработки приложения.
    Мне приходилось использовать пару штук таких приложений.
    Например,
    https://www.the-qrcode-generator.com/ru/
    А вот, этот более функционален и удобен:
    https://qrcode.by/
    Можно еще погуглить и найти кучу сервисов, которые будут вам полезны. Надо поискать с ключевым словом:
    free online qr code generators
    . Ну или используйте те, которые я указал выше
    Ответ написан
    2 комментария
  • Не могу получить доступ к MSQL?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Вы хотите подключиться к MySQL или к MsSQL?

    Тут в вашем конфиге ну все в одну кучу намешано.
    Во-первых, необходимо прописать строки, которые указал Михаил
    Во-вторых, драйвер не от MySQL и даже не от MsSQL. А от db2.
    В-третьих, url тоже прописан для db2
    hibernate.connection.driver_class = com.ibm.db2.jcc.DB2Driver
    hibernate.connection.url = jdbc:db2://127.0.0.1:3306/test1250
    hibernate.connection.username = testuser
    hibernate.connection.password = Test12345678
    hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
    driverClassName: com.mysql.cj.jdbc.Driver


    Предположительно должно быть:
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test1250
    spring.datasource.username=testuser
    spring.datasource.password=Test12345678
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

    Возможно, что название БД, логин и пароль отличаются.
    Ответ написан
    2 комментария
  • Как поставить телеграм бота java на windows server?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Ну по-первых, сервер на Windows - плохой выбор. Рекомендую использовать Linux.
    Во-вторых, хоть сервер на Windows, хоть на Linux, а работать придется через терминал (консоль). Необходимо подключиться по ssh и установить jdk и т.д. В данном случае GUI (графическая оболочка) вам не нужна.
    В-третьих, если нужен относительно дешевый vps на linux, то hetzner неплохой.

    Теперь, по существу вопроса:
    1) вам нужна программа для работы с ssh.
    Например, xShell - https://www.netsarang.com/ru/xshell/
    Скачать / установить.
    2) Подключиться к серверу по ssh
    Ввести хост, логин, пароль, порт (возможно, пуб. ключ и т.д.)
    3) Установите Java
    https://www.java.com/en/download/help/silent_insta...
    https://stackoverflow.com/questions/51112065/how-t...
    4) Перекиньте ваш проект на сервер и запустите.
    Ответ написан
    Комментировать
  • Контент определенному пользователю показывать определенный контент на WP?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Есть сайт, на нем есть страница с лицензиями.

    Предположу. что лицензии выводятся в каком-то шаблоне, в котором указан цикл.
    Нужно чтобы пользователю показывались только его лицензии и никаких других.

    Проверяете кто авторизован при помощи:
    https://wp-kama.ru/function/get_current_user_id
    https://wp-kama.ru/function/wp_get_current_user
    Далее получаете посты (лицензии) пользователя по его id и выводите на сайте
    Ответ написан
    Комментировать
  • Меняют ли аннотации данные в коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    В первую очередь, наверное, стоит обратить внимание на это:
    Аннотации представляют собой некие метаданные, которые могут добавлятся в исходный код программы и семантически не влияют на нее, но могут использоваться в процессе анализа кода, компиляции и даже во время выполнения.

    Далее обратите внимание на RetentionPolicy:

    RetentionPolicy.SOURCE - аннотация используется на этапе компиляции и должна отбрасываться компилятором;
    RetentionPolicy.CLASS - аннтоация будет записана в class-файл компилятором, но не должна быть доступна во время выполнения (runtime);
    RetentionPolicy.RUNTIME - аннотация будет записана в class-файл и доступна во время выполнения через reflection.


    Чтобы аннотация "заработала" нужен так называемый Analyzer (Processor)
    Вот, пример процессора:
    https://www.baeldung.com/java-annotation-processin...
    https://thetechstack.net/how-to-process-annotation...
    https://cloudogu.com/en/blog/Java-Annotation-Proce...

    @SQLString(30) String firstName;
    Процессор при помощи рефлексии получит доступ к экземпляру данного класса, затем прочитав данные указанные в аннотации создаст соответсвующую таблицу с соответствующими колонками согласно указанным аннотациям
    Ответ написан
    Комментировать
  • Как отправить запрос в виде url и в ответ получить xml?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    URL на который вы обращаетесь, я так понимаю, что это сторонний сервис? И вы хотите по API обратиться из Spring'a на этот сервис и полученный ответ в xml прочитать и что-то с ним сделать?
    Прочитайте про RestTemplate
    https://www.baeldung.com/rest-template
    Это для отправки запроса на сторонний сервис.

    Вот, пример того, как получить xml и распарсить его в pojo -
    https://stackoverflow.com/questions/36124081/sprin...
    Ответ написан
    Комментировать
  • Как переводить строку копирайта на сайте?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    При смене языка не переводится

    Ну было бы неплохо уточнить, что за плагин мультиязычности вы используете?
    Как именно реализован вывод копирайта в админке? Это некая строка из po файла или это виджет, в котором есть копирайт или это какое-то поле на странице?

    В админке, при использовании плагина перевода, если для другого языка вводишь на нужном языке надпись копирайта, она остается такой для всех языковых версий.

    Попробуйте перевести это не плагином, а например, программой (PoEdit). Если я правильно понял, то речь идет о переводе po & pot файлов.
    Ответ написан
  • Не удалось развернуть проект на heroku?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Дополню ответ Dmitry Roo
    Тут указано, что по дефолту используется OpenJDK 8
    https://devcenter.heroku.com/articles/java-support...
    Heroku currently uses OpenJDK 8 to run your application by default.


    Heroku currently uses OpenJDK 8 to run your application by default. OpenJDK versions 17, 15, 13, 11, and 7 are also available. Depending on the major version you select the latest available update of that JDK will be used each time you deploy your app.
    
    Current default versions are:
    
        Java 7 - 1.7.0_332
        Java 8 - 1.8.0_322
        Java 11 - 11.0.14
        Java 13 - 13.0.10
        Java 15 - 15.0.6
        Java 17 - 17.0.2


    Прочитайте главу Specifying a Java version по ссылке выше, чтобы понять, как сменить версию
    Ответ написан
    1 комментарий
  • Пример кода: таблица с фильтрацией с использованием Thymeleaf и Spring ( можно Boot ), как найти?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Ну тут стоит обратить внимание на 2 варианта реализации:
    1) фильтрация / сортировка на стороне клиента средствами js. Т.е. с сервера отдаются данные, а затем уже эти данные сортируются на стороне клиента
    2) фильтрация / сортировка на стороне сервера. А данные уже отдаются в отсортированном виде

    Сортировку и фильтрация на клиентской стороне можно достичь средствами js.
    Вот, готовый продукт:
    Data Tables -
    сортировка - https://datatables.net/examples/basic_init/table_s...
    фильтрация - https://datatables.net/extensions/fixedheader/exam...
    Если нужна серверная фильтрация и сортировка в DataTables, то:
    https://datatables.net/examples/data_sources/serve...

    А вот, готовая либа для Spring, чтобы работать с DataTables. Фильтрация также поддерживается:
    https://github.com/darrachequesne/spring-data-jpa-...

    Вот, кастомный пример сортировка средствами js
    простое нажатие на хедер таблицы

    https://bootsnipp.com/snippets/1erEV

    Теперь, что касается фильтрации и сортировки на серверной стороне средстваами самого Spring:
    https://www.bezkoder.com/spring-boot-pagination-so...
    https://www.baeldung.com/spring-data-jpa-paginatio...

    P.S. у разработчика bezkoder (ссылка выше), также есть страница на гитхаб, где предложены исходники проектов
    Ответ написан
    Комментировать
  • Thymeleaf, как добавить значение по умолчанию для параметра, если он отсутствует при нажатии на ссылку?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Thymeleaf, как добавить значение по умолчанию для параметра, если он отсутствует при нажатии на ссылку?

    Никак. thymeleaf есть на стороне сервера. А нажатие на ссылку происходит на стороне клиента (в браузере), где нет никакого thymeleaf.
    Соответственно, вам нужно валидировать средствами js || jQuery.
    Условно говоря, вещаете обработчик на клик по ссылке
    Погуглите jQuery .on('click', function(){}) или .click()
    Если нет нужного параметра, то средствами js добавляете его и все.
    Ответ написан
    1 комментарий
  • Как исправить ошибку "no main manifest attribute"?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Могу предположить проблемы в самом файле manifest:
    В файле MANIFEST.mf или Manifest.txt нет переноса строки. Из-за чего он игнорирует ваш файл. Убедиться в этом можно, если открыть jar каким-нибудь архиватором и заглянуть в директорию MANIFEST/MANIFEST.mf
    Вот, простой рабочий пример:

    Структура директорий и файлов:
    folder/package1/Dime2.java
    folder/package1/Dime2.class
    folder/MANIFEST.mf


    Выполненные команды:
    Компилируем в байт-код
    javac Dime2.java

    Создаем архив
    jar cfm dime.jar MANIFEST.mf package1/*.class

    Содержимое файла MANIFEST.mf (не забываем про перенос строки)
    Main-Class: package1.Dime2

    Содержимое файла Dime2.jar
    package package1;
    
    public class Dime2{
        public static void main(String [] args){
            try{
                System.out.println("Hello world");
                Thread.sleep(10000);
            } catch(Exception exc){}
        }
    }


    P.S. Обратите внимание на некоторых ОС необходимо дать права на запуск jar файла.
    Например, в linux
    chmod a+x dime.jar

    Ну и запускаем jar'ник
    java -jar dime.jar

    P.S. В примере я показал MANIFEST.mf, но без разницы. Можно и txt использовать
    Ответ написан
    1 комментарий
  • Thymeleaf, th:text не работает, если находится внутри другого th:text, как обойти?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если память не изменяет, то вам нужен th:inline
    Примерно так:
    <h4 th:inline="text">[[${product.name}]]<span th:text="${product.getPrice()}">45</span></h4>

    Вот, прочитайте этот вопрос:
    https://stackoverflow.com/questions/25071985/thyme...
    Ответ написан
    Комментировать
  • Почему Bad Request, status=400 при загрузке файлов?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Ваш инпут называется images
    <input type="file" name="images" multiple class="form-control" accept=".jpg, .jpeg" >


    В контроллере вы ожидаете files
    @RequestParam("files") MultipartFile[] images
    Ответ написан
    Комментировать
  • Стоит ли использовать разные DTO для Response и Creation объекта?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Зависит от проекта, но на мой взгляд хорошей практикой является создание разных DTO.
    Например,
    UserCreationDto
    UserUpdateDto
    Ответ написан
    Комментировать