• Можно ли стать Java Senior разработчиком, если учится полгода-год по 2-3 часа в день?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Стать junior или trainee разработчиком за полгода - год можно. А вот, middle или senior - нет. Так как вам для становления senior или middle необходимо работать над реальными проектами, набираться опыта и нести ответственность, как отметил коллега.
    Также вы должны понимать, что для работы недостаточно знание одного языка. Например, Java. (хотя с учетом того, что вы хотите стать android разработчиком, то скорее всего вам нужна не только Java, но больше Kotlin). Также вам необходимо владеть другими языками. Например, SQL (владеть ORM). Знать про http, про ip и т.д. Знать про DI. Возможно, даже владеть паттернами проектирования. Владеть xml, json.

    Я мечтаю стать Java Senior разработчиком , писать приложения под андроид и т.д

    Для андроид вам нужен больше Kotlin, но знание Java не будет лишним.

    Можно ли стать Senior разработчиком буквально за пол года - год такого обучения ?

    Middle, Senior - нет.
    За полгода обучения вы можете стать trainee || junior. Обычно кстати, курсы так и длятся. Например, Java Core - 3 месяца (2-3 раза в неделю) и Java Enterprise (3 месяца) или Android (3-4 месяца).

    Вообще, можно поступить следующим образом: изучить язык, затем пройти тренинг от Epam (вроде бесплатный). После чего можно трудоустроиться туда в качестве trainee и подниматься по лестнице вверх.
    Ответ написан
    1 комментарий
  • Какие онлайн ресурсы посоветуете для изучения 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
    Ответ написан
    Комментировать