Java Ready | Программирование
8.89K subscribers
1.22K photos
60 videos
1 file
599 links
Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
📂 Шпаргалка по IP-адресам!

Например, 192.168.x.x — для домашней сети, а 10.x.x.x — для крупных корпоративных систем. CIDR (/24, /16, /8) — помогает точно задать размер подсети и количество хостов.

На картинке — всё, что нужно знать про IP: диапазоны, маски, специальные адреса, публичные DNS и основы IPv6.

Сохрани, чтобы не забыть!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍97🔥7🤝2
👩‍💻 Сканируем Wi-Fi сети в Windows!

Java может обращаться к системным утилитам Windows и забирать их вывод. Для Wi-Fi это особенно удобно, через команду netsh wlan show networks можно получить список доступных сетей, а дальше обработать его в своём коде.

В этом посте:
Запускаем netsh;

Читаем вывод команды;

Достаём SSID сетей.


Такой приём полезен для сетевых утилит, диагностичестики, установщиков и любых приложений, которым нужно знать, какие Wi-Fi сети видит система.

👉 Java Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍65😁1
Хотите подгружать классы, без перезапуска приложения?

В Java можно написать свой ClassLoader и динамически загружать .class-файлы, например, как плагины.

Базовый скелет кастомного загрузчика. Здесь dir это папка, где лежат ваши плагины (.class файлы):
public class PluginClassLoader extends ClassLoader {
private final Path dir;

public PluginClassLoader(Path dir, ClassLoader parent) {
super(parent);
this.dir = dir;
}}


Переопределяем findClass. Где defineClass() превращает сырые байты в настоящий Java-класс.
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
try {
Path file = dir.resolve(name.replace('.', '/') + ".class");
byte[] bytes = Files.readAllBytes(file);
return defineClass(name, bytes, 0, bytes.length);
} catch (IOException e) {
throw new ClassNotFoundException(name, e);
}}


Используем загрузчик для подгрузки плагина:
Path pluginsDir = Path.of("plugins");
PluginClassLoader loader =
new PluginClassLoader(pluginsDir, ClassLoader.getSystemClassLoader());

Class<?> pluginClass = loader.loadClass("com.example.Plugin");
Object plugin = pluginClass.getDeclaredConstructor().newInstance();


🔥 Дальше можно через интерфейсы или рефлексию вызвать методы плагина.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥3
👩‍💻 Разбираем TreeSet — простой способ получить отсортированную коллекцию!

Каждый элемент автоматически занимает своё место, а дубликаты просто не добавляются. Коллекция сама следит за порядком.

TreeSet подходит не только для хранения уникальных данных, но и для задач, где важны интервалы, границы и быстрые навигационные операции.


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103👍3
Хочешь запустить внешнюю программу прямо из Java?

Иногда нужно вызвать системную утилиту, открыть файл, запустить скрипт для этого в Java есть Runtime и ProcessBuilder.

Самый простой запуск команды:
Runtime.getRuntime().exec("notepad.exe");


Запуск с аргументами:
new ProcessBuilder("ping", "google.com")
.inheritIO()
.start();


Получение вывода программы:
Process p = Runtime.getRuntime().exec("java -version");
p.getInputStream().transferTo(System.out);


🔥 Подходит для запуска CLI-утилит, тестов, скриптов, любых системных программ.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍43😁1
👩‍💻 Конвертируем PDF в набор PNG-страниц!

Часто нужно показать PDF не как файл, а как набор картинок. Для этого можно на Java пройтись по страницам PDF и сохранить каждую в отдельный PNG.

В этом посте:
Загружаем документ;

Используем PDFRenderer;

Сохраняем каждую страницу.


Если работаете с PDF эта задаче обязательно пригодится вам для отображения всего в удобных фото.

👉 Java Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥63
🔥12👍64😁4