• Java консольный ввод. Почему не получается ввести строку?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    После ввода чисел программа закрывается, и h остаётся не заданным. Напишите пожалуйста верный вариант программы и почему ввшеприведенный вариант не работает?


    Попробуйте так:
    package com.company;
    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int y=in.nextInt();
    float x=in.nextFloat();
    in.nextLine();
    String h = in.nextLine();
    System.out.printf("x = %.3f, y =%d, h=%s \n", x,y, h);
    in.close();
    }
    }


    Вот, ответ на ваш вопрос:
    https://stackoverflow.com/questions/13102045/scann...

    для чего нужно in.close() в каких случаях добавлять в каких не нужно?

    При вызове метода закрывается сканнер. Однако, так как Scanner имплементирует интерфейс Closable, вы можете использовать Scanner с try with resouces и явно не вызывать метод close()
    Ответ написан
    Комментировать
  • IntelliJ IDEA(или любая IDE Jetbrains) - можно ли как-то скрыть assert'ы?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Ну в принципе любой код можно скрыть (code folding) в IDEA.

    Можно например, выделить код и нажать ctrl + ' . '

    Можно попробовать выделить код, затем нажать ctrl + alt + T (Code -> Surround with) и выбрать удобный для вас тег, а затем прописать название для fold и скрыть блок

    https://www.jetbrains.com/help/idea/code-folding-s...

    Плагинов, которые автоматически скрывали бы assert я не встречал, но в принципе можно и написать небольшой плагин
    Ответ написан
    2 комментария
  • Как добавить CSS в Spring Security?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.

    Об этом речь?
    @Override
      public void configure(WebSecurity web) {
        web.ignoring()
            .antMatchers(
                "/css/**", "/fonts/**",
                "/images/**");
      }


    Если используете thymeleaf, то путь прописывать так:

    <link media="all" rel="stylesheet" th:href="@{/css/reset.css}" type="text/css"/>
    Ответ написан
  • Хочу создать игру, что посоветуете новичку, стоит ли изучать самому или курсы?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!
    Обычно, игры разрабатываются в C / C++ или в C#. Хоть в Java игры разрабатываются тоже, но если вы планируете заниматься этим профессионально, то найти работу по C# или C++ в сфере gamedev будет проще.
    Что касается движкой и библиотек, то:
    C++ (unreal engine)
    C# (Unity)
    Java (libgdx, LWJGL, jmonkey)

    Подробная информация тут - https://en.wikipedia.org/wiki/List_of_game_engines

    Прежде чем изучать сферу геймдев, рекомендую изучить основы разработки, синтаксис языка, основы ООП, computer science, алгоритмы и т.д. И только потом переходить на геймдев.
    Ответ написан
  • Как удалить повторяющихся элементов из массива?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Рекомендую изучить JCF. А также обратить внимание на Map тоже.
    В Set элементы являются уникальными.
    Соответственно, необязательно все проверять на равенство.
    Достаточно итерировать по массиву int[] arr={10, 22, 10, 20, 11, 22}; и добавить каждый элемент в Set. Повторяющиеся значения не будут добавлены

    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    
    public class Main {
    
        public static void main(String[] args) {
            int[] arr={10, 22, 10, 20, 11, 22};
            Set set = new HashSet();
            for (int i = 0; i < arr.length; i++) {
                set.add(arr[i]);
            }
            set.forEach(System.out::println);
        }
    
    }
    Ответ написан
    4 комментария
  • Как создать jar файл из Java программы?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Используете ли вы Maven? Если да, то что прописано в pom.xml? В частности, packaging
    Если там xml, то смените на jar
    Ответ написан
    Комментировать
  • Spring Data Jpa как удалить сущность без удаления другой связной сущности?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.
    Можете попробовать следующее:
    CascadeType.MERGE,
    CascadeType.PERSIST

    orphanRemovel = false;
    Если orphanRemoval = true, то если у клиента будет отсутствовать lessonId, то он будет удален, так как является "сиротой". А если наоборот false, то удаляться не будет.
    Вот, разница между CascadeType.REMOVE vs orphanRemoval
    https://www.baeldung.com/jpa-cascade-remove-vs-orp...
    Ответ написан
    Комментировать
  • Почему метод не возвращает значение?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    public int giveBalance(int amount) {
         return amount;
    }


    Вот, так надо получить переменную. А дальше вывести в консоль
    int a = giveBalance(10);
    System.out.println(a);
    Ответ написан
    Комментировать
  • Что выбрать для изучения Java, Kotlin или Python?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Пробовал сесть и заставить себя учить javascript и php, однако быстро забиваю.

    А почему вы думаете, что сев за java или kotlin не забьете? Для наглядности: порог входа в РНР ниже, чем в java.
    Да, JavaScript сложнее. Притом на нем куча фреймворков, которые нужно изучить. Плюс постоянно появляются новые фрейморки, которые нужно освоить и т.д. В Java фреймворки появляются не так часто.
    Но в каком-то смысле я понимаю Вас. Я сам занимался разработкой на WP и писал небольшие проекты на РНР около 3-х лет и скажу, что сам не мог заставить себя выучить РНР. Вот, субъективно не нравился он и все. А затем перешел на Java и скажу, что очень доволен. Принципиально разные уровни восприятия.

    Java - насколько я понимаю это в основном работа в больших фирмах для поддержки крупных махин. Как туда попасть джуну? Не ясно. Другой вариант это java для android, тут уже можно тыкаться и учить самостоятельно довольно успешно.

    Да, Java это энтерпрайз. А вот, сейчас на андроид сейчас пишут больше на kotlin. Перейти с Java на Kotlin не так сложно.

    Python - Django и Flask как разработка сайтов, в крайнем случае Data Science. С одной стороны смежная тематика с тем, что я делаю сейчас но на более серьёзном уровне, пару раз сталкивался с джанго в работе.

    Да, Python это в основном ERP, Data Science. Ну и Deep Learning.

    Смотрите, если вам ближе веб-разработка, то конечно же Python лучший выбор. Можно еще глянуть в сторону Ruby. На них пишут серьезные проекты. В основном e-commerce. Хотя РНР тоже не стоит скидывать со счетов, так как на нем тоже пишут e-commerce. Взять тот же Laravel, Symfony, Yii2.
    Если вам интересна android разработка, то однозначно kotlin. Ну а если энтерпрайз, то java.
    А вот, в JavaScript войти сложнее. В нем в основном либо фронт, либо фулстэк (mern, mean), либо мобильная разработка (react native и т.д.)
    Ответ написан
    Комментировать
  • Что посмотреть по созданию dependency?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Не очень понятен ваш вопрос.

    Правильно ли я понимаю, что создали свое приложение / библиотеку и хотите, чтобы она была доступна по собственному dependency?
    Я например, как-то раз закинул небольшую библиотеку на Maven Central через nexus
    https://central.sonatype.org/publish/release/
    Можете также глянуть на https://packagecloud.io/
    https://dzone.com/articles/publish-your-artifacts-...

    Или речь идет о мультимодульных проектах? Если так, то нужно проект разделить на модули. А затем прописать зависимость одного модуля от другого.
    https://www.baeldung.com/maven-multi-module
    Ответ написан
  • Какое выбрать wordpress-решение для оффлайн магазина?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!
    Для небольшого,а иногда и для большого, интернет-магазина WordPress хорошо подходит. И да, он прост.
    И нужен ли мне на данном этапе woocommerce?

    Woocommerce - плагин для создания интернет-магазина.
    Так как вам не нужен функционал оплаты онлайн, то вы можете дополнительно установить плагин yith woocommerce catalog mode. Он дает возможность отключать страницу оплаты, корзины и т.д. не залезая в код.
    посоветуйте темы/плагины для вышеозначенных целей, если возможно, то с небольшим бюджетом (до 3000р).

    3000 рублей примерно 40 у.е. В среднем темы на themeforest стоят 40-60 долларов. Темы уже поставляются с набором других премиум плагинов. Например, визуальный редактор (Visual Composer, Elementor), слайдер (Revolution Slider) и т.д.
    Подойдет любая тема, которая вам понравится. + обычно разработчики сами компонуют и создают демо страницы, которые вы можете установить себе и останется только поменять тексты, товары и т.д.
    Плагины которые вам нужны:
    Woocommerce
    Yith Woocommerce Catalog Mode
    Любая тема, которая совместима с Woocommerce. Обычно, разработчики делают большинство тем совместимыми.
    Далее список необязательных, но рекомендуемых плагинов.
    Например,
    Yoast SEO (или Pro версия) - SEO плагин
    WPML (только Pro версия) - плагин для мультиязычности (если нужен)
    и любой плагин для транслитерации кириллических символов в латиницу (Cyr-To-Lat Cyr-and-Lat) и т.д.

    Вот, темы, которые доводилось использовать:
    Impreza
    Avada
    BeTheme
    KLEO
    Dash
    и др.

    Вы можете выбрать любую тему, которая вам нравится. Woocomerce желательно использовать, чтобы в дальнейшем при надобности онлайн-оплаты можно было быстро ее интегрировать на сайт
    Ответ написан
    Комментировать
  • Как в spring посмотреть при дебаге запроса все его параметры?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    В asp.net есть объект HttpRequest через который в контроллере можно увидеть все параметры запроса, начиная от url и заканчивая заголовками и куками. Есть ли подобный аналог в Spring?

    Да, аналог есть - https://docs.spring.io/spring-framework/docs/curre...
    Ответ написан
  • Как поменять элементы массива?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Ответ на ваш вопрос: https://www.baeldung.com/java-invert-array
    Ответ написан
    Комментировать
  • Возможно ли спарсить josn file не создавая его объект?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Не создавая объект вы можете прочитать файл в строку. И в этом случае вообще все равно, что за файл читать, будь-то json или еще какой-нибудь.
    Если подразумевается дальнейшяя работа с данными содержащимися в json, то лучше все-таки спарсить в объект.
    Если лень писать структуру объекта, то https://www.jsonschema2pojo.org/ вам в помощь. Просто вставьте json файл туда и получите его в виде pojo. Поддерживается Gson, Jackson и т.д.
    Можно ли считать и ввести json file без создание объекта?

    Вы конечно можете не создавать специализированный объект (Person) и вычитать его в строку String
    Но как я сказал выше, если подразумевается дальнейшая работа, то читайте в объект.

    Знаю, вопросы оооочень тупые, но все таки решил спросить.

    Не бойтесь задавать вопросы. Как говорится, тяжело в учении...
    Ответ написан
  • Что вписать в .jar или .bat файлы для автозапуска?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Еще раз приветствую!
    А такое вообще возможно?

    Да, возможно. Вы можете создать батник и при запуске добавить в планировщик Windows задачу
    Так как вы обозначили платформу Windows, то отмечу что в Windows есть "Планировщик задач" (Task Scheduler),
    Вот, несколько полезных ссылок по этому вопросу:

    https://stackoverflow.com/questions/12034177/runni...
    https://stackoverflow.com/questions/15783553/run-a...
    https://stackoverflow.com/questions/31521553/how-t...
    https://www.windowscentral.com/how-create-task-usi...
    https://www.computerhope.com/forum/index.php?topic...
    Ответ написан
  • Запуск Java программы, без установки интегрированной среды разработки возможен?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Если честно, то у вас путаница с терминами, так что внесу ясность:

    Запуск Java программы, без установки интегрированной среды разработки возможен?

    Интегрированная среда разработки (IDE) - это программы для разработки ПО. Например, Intellij IDEA, Eclipse и др.
    jdk - Java development kit - это комплект для разработки Java приложений.

    Есть программа Jframe, и я хочу чтобы еë можно было запустить без JDK

    Любой jar можно запустить без jdk, так как для запуска программы достаточно jre.
    Для наглядности:
    606cce89baa5b840749460.jpeg

    Другое дело, что вы хотите запустить jar без надобности установки на устройство пользователя jre, как например, это делает IDE - Intellij IDEA.
    Прочитайте вот, эту статью - https://eax.me/java-without-jvm/

    если да то нужен только .jar или ещë и .bat?

    jar должно быть достаточно. По факту батник при запуске будет через cmd запускать jar. Для кросплатформенности при использовании bat, нужно будет еще создать и sh скрипт, чтобы запустить в UNIX системах.

    Есть программа Jframe

    JFrame это не программа, а класс из пакета awt.
    https://docs.oracle.com/javase/7/docs/api/javax/sw...
    Ответ написан
    2 комментария
  • Как сохранить в таблице картинку при изменении других полей?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Как сохранить в таблице картинку при изменении других полей?

    А зачем вы удаляете / изменяете картинку при изменении полей?
    Допустим, что есть некий эндпоинт, куда нужно отправлять POST запрос для загрузки картинки и принимает он MultiPartFile.
    Соответственно, при загрузки новой картинки можно отправить аякс запрос на этот урл, а id картинки назначить для сущности, которая добавляется из формы.
    А значит, при изменении других данных вы никоим образом не будете изменять картинку и соответственно, она не удалится.
    Ответ написан
  • Что использовать для написания андроид приложения на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Дело вот в чём: я написал простое приложение в IntelliJ IDEA, зашёл в Android studio для сборки apk, но там не хочет импортироваться swing.

    Вы можете и не заходить в Android Studio. Можно собрать apk и в IDEA. Другое дело, что вы пытаетесь скрестить ужа с ежом, пытаясь использовать swing в андроид.
    В теории можно конечно же swing запустить на android, вопрос в том, а надо ли так изворачиваться. Однозначно, нет. Ну а если дело принципа, то - вот решение

    Насчёт последнего, в IntelliJ IDEA мне удалось собрать .jar, а как сделать именно .exe?

    launch4j.sourceforge.net
    Ответ написан
    Комментировать
  • Что нужно знать о maven, чтобы добавить его в своё резюме?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    По maven можно много чего изучить. Я как-то раз приобрел вот, этот курс на Udemy и в принципе, он понравился. Также конечно же есть куча бесплатных курсов и видеоматериалов.
    - научитесь работать с maven на уровне cli
    - изучите структуру maven проекта
    - изучите плагины и зависимости, BOM. Обратите внимание на dependencyManagement & pluginManagement
    - разберитесь в maven lifecycle, maven wagon, waven reactor и т.д.
    - изучите мультимодульность
    - изучите профили maven
    - посмотрите, как можно деплоить приложения на maven central при помощи различных сервисов (packageCloud, nexus)
    Ответ написан
    Комментировать
  • Как отправить запрос на предоставление доступа?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день!
    Было бы неплохо вообще более подробно описать проблему, чтобы можно было более точно ответить.

    есть файл, у него есть владелец

    Где этот файл находится? Что значит у него есть владелец? Просто, например, файл может лежать где-то на сервере и владельцем его будет являться пользователь Linux или владельцем будет являться пользователь Apache и т.д. Или же под владельцем подразумевается некая сущность юзера, которая реализована в Spring.

    Нужно отправить запрос от другого пользователя на получение доступа.

    Как другой пользователь видит, что у этого пользователя (владельца) есть файл?
    Что является процессом предоставления доступа к этому файлу? Т.е. дать ссылку на скачивание этого файла просто или например, дать доступ на редактирование или только просмотр этого файла (как в Google Drive || Yandex Disk).

    Можно ссылку на документацию или хотя бы название, куда смотреть.

    Ну смотреть нужно в документацию по Spring. А также погуглить ваш вопрос, но с большей детализацией.

    Напишу псевдокодом для наглядности один из простых вариантов решения:
    entity User {
       List<File> uploadedFiles; (OneToMany)
       List<File>  files; (ManyToMany)
    }
    entity File {
       User owner; (ManyToOne)
       List<User> users; (ManyToMany)
    }

    uploadedFiles - файлы загруженные пользователем
    owner - владелец файла
    files - файлы, к которым у пользователя есть доступ
    users - пользователи, у которых есть доступ к этому файлу.


    Дальше процессом предоставления доступа к файлу является уведомление пользователя (например, по почте или через push и т.д.) с просьбой предоставить доступ на указанный файл. Если доступ владельцем предоставляется, то запрашивающий доступ пользователь добавляется в список users для того файла, который он запросил.

    Это самый примитивный вариант, который можно реализовать. Конечно же если предполагается интеграция с AWS, то могут потребоваться дополнительные манипуляции.

    А так для более объективного и детального ответа, нужно больше информации о продукте и цели, которую вы желаете достичь.
    Ответ написан