Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Консольные команды для Java Developer
Как опытный Java Developer, я работаю с командной строкой каждый день. Вот основные команды, которые нужно знать.
1. Запуск Java приложений
// Компиляция Java файла
javac HelloWorld.java
// Результат: HelloWorld.class
// Запуск скомпилированного класса
java HelloWorld
// С параметрами
java -Xmx1024m -Xms512m MyApplication
// С системными свойствами
java -Dapp.config=prod -Dserver.port=8080 Application
// Запуск JAR файла
java -jar application.jar
java -jar application.jar --server.port=9090
// С опциями JVM
java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar app.jar
2. Maven команды
// Очистить проект
mvn clean
// Скомпилировать
mvn compile
// Запустить тесты
mvn test
// Собрать JAR
mvn package
// Полный цикл
mvn clean package
// С пропуском тестов
mvn clean package -DskipTests
// Установить зависимость в локальный репозиторий
mvn install
// Развернуть в удалённый репозиторий
mvn deploy
// Показать зависимости
mvn dependency:tree
// Запустить main класс
mvn exec:java -Dexec.mainClass="com.example.Main"
// С профилем
mvn clean package -P production
// Без кэша
mvn clean package -U
// В offline режиме
mvn clean package -o
// С повышенной логацией
mvn -X clean test
3. Gradle команды
// Собрать проект
./gradlew build
// Без тестов
./gradlew build -x test
// Запустить тесты
./gradlew test
// Специфический тест
./gradlew test --tests com.example.UserServiceTest
// Запустить main
./gradlew run
// С аргументами
./gradlew run --args='arg1 arg2'
// Очистить
./gradlew clean
// Показать зависимости
./gradlew dependencies
// Jar task
./gradlew jar
// Boot jar (Spring Boot)
./gradlew bootJar
// Запустить Boot приложение
./gradlew bootRun
4. Docker команды
// Собрать образ
docker build -t myapp:1.0 .
// Запустить контейнер
docker run -d -p 8080:8080 --name myapp myapp:1.0
// Интерактивный режим
docker run -it myapp:1.0 /bin/bash
// С переменными окружения
docker run -e DB_HOST=localhost -e DB_PORT=5432 myapp:1.0
// С подключением папки
docker run -v /host/path:/container/path myapp:1.0
// Список контейнеров
docker ps
// Все контейнеры включая остановленные
docker ps -a
// Остановить контейнер
docker stop container_id
// Удалить контейнер
docker rm container_id
// Логи контейнера
docker logs container_id
// Потоковые логи
docker logs -f container_id
// Войти в контейнер
docker exec -it container_id /bin/bash
// Посмотреть историю образа
docker history myapp:1.0
// Удалить образ
docker rmi myapp:1.0
// Push в registry
docker push myregistry/myapp:1.0
5. Docker Compose команды
// Запустить сервисы
docker compose up
// В фоне
docker compose up -d
// Пересобрать образы
docker compose up --build
// Остановить
docker compose down
// Очистить volumes
docker compose down -v
// Логи
docker compose logs
// Конкретного сервиса
docker compose logs app
// Потоковые логи
docker compose logs -f app
// Статус
docker compose ps
// Выполнить команду в сервисе
docker compose exec app /bin/bash
6. Git команды
// Клонировать репозиторий
git clone https://github.com/user/repo.git
// Статус
git status
// Добавить файлы
git add .
git add src/main/java/Main.java
// Коммит
git commit -m "Add feature"
// История
git log
git log --oneline
// Ветки
git branch
git branch new-feature
// Переключиться на ветку
git checkout new-feature
git switch new-feature # более новый синтаксис
// Создать и переключиться
git checkout -b new-feature
git switch -c new-feature
// Merge
git merge feature-branch
// Rebase
git rebase main
// Push
git push origin main
git push -u origin new-feature # с tracking
// Pull
git pull origin main
// Fetch
git fetch origin
// Diff
git diff
git diff main..feature
// Stash
git stash
git stash pop
7. Kubernetes команды
// Подключиться к кластеру
kubectl config use-context production
// Информация о кластере
kubectl cluster-info
// Узлы
kubectl get nodes
// Поды
kubectl get pods
kubectl get pods -n production
// Подробно
kubectl get pods -o wide
// Yaml
kubectl get pods -o yaml
// Описание пода
kubectl describe pod pod-name
// Логи пода
kubectl logs pod-name
kubectl logs -f pod-name # потоком
// Войти в контейнер
kubectl exec -it pod-name -- /bin/bash
// Применить конфигурацию
kubectl apply -f deployment.yaml
// Удалить ресурс
kubectl delete pod pod-name
kubectl delete deployment my-app
// Port forward
kubectl port-forward pod-name 8080:8080
// Services
kubectl get svc
kubectl describe svc service-name
// Deployment
kubectl get deployments
kubectl describe deployment my-app
kubectl rollout status deployment/my-app
kubectl rollout undo deployment/my-app
8. Полезные утилиты
// curl - HTTP запросы
curl http://localhost:8080/api/users
curl -X POST -H "Content-Type: application/json" \
-d '{"name":"John"}' http://localhost:8080/api/users
// jq - парсинг JSON
curl http://localhost:8080/api/users | jq '.[] | .name'
// wget - скачивание файлов
wget https://example.com/file.jar
// ps - процессы
ps aux
ps aux | grep java
// kill - завершить процесс
kill -9 pid
// top - мониторинг
top
// htop - улучшенный top
htop
// netstat - сетевые соединения
netstat -tlnp
netstat -an | grep 8080
// lsof - открытые файлы
lsof -i :8080 # какой процесс слушает порт
// find - поиск файлов
find . -name "*.java"
find . -name "*.jar" -type f
// grep - поиск в тексте
grep -r "className" src/
grep -rn "TODO" src/ # с номерами строк
// tail - последние строки
tail -f application.log # потоком
tail -100 file.log
// wc - подсчёт
wc -l src/main/java/Main.java # строк в файле
find . -name "*.java" | wc -l # всех Java файлов
9. SSH и удалённые команды
// Подключиться по SSH
ssh user@host.com
ssh -p 22 user@host.com
// С ключом
ssh -i /path/to/key user@host.com
// SCP - копировать файлы
scp file.jar user@host.com:/home/user/
scp -r user@host.com:/home/user/logs . # скачать
// Запустить команду на удалённом хосте
ssh user@host.com "java -jar app.jar"
// SSH туннель
ssh -L 3306:localhost:3306 user@host.com # port forward
10. JVM команды и утилиты
// jps - список Java процессов
jps
jps -l # с полными именами
// jstat - статистика GC
jstat -gc pid 1000 10 # каждую сек 10 раз
jstat -gcutil pid # процент памяти
// jmap - dump памяти
jmap -dump:live,format=b,file=dump.hprof pid
// jstack - dump потоков
jstack pid > threads.txt
// jcmd - команды JVM
jcmd pid GC.heap_dump dump.hprof
jcmd pid VM.uptime
jcmd pid Thread.print
// jvisualvm - графический мониторинг
jvisualvm # открыть графический инструмент
// javap - дизассемблер
javap -c MyClass.class # bytecode
javap -p MyClass.class # все члены класса
// jar - работа с JAR файлами
jar tf application.jar # список содержимого
jar xf application.jar # распаковать
jar cf app.jar . # создать JAR
Рекомендуемые скрипты для разработки
#!/bin/bash
# build-and-run.sh
mvn clean package -DskipTests && java -jar target/app.jar
# docker-build-run.sh
docker build -t myapp:latest . && docker run -p 8080:8080 myapp:latest
# deploy.sh
mvn clean package && kubectl apply -f deployment.yaml && kubectl rollout status deployment/myapp
# test-with-coverage.sh
mvn clean test jacoco:report && open target/site/jacoco/index.html
Горячие клавиши терминала
// Ctrl + C - прервать процесс
// Ctrl + Z - приостановить процесс
// Ctrl + D - выход
// Ctrl + L - очистить экран (clear)
// Ctrl + A - начало строки
// Ctrl + E - конец строки
// Ctrl + R - поиск в истории
// !! - последняя команда
// !n - команда номер n из истории
// !string - последняя команда начинающаяся с string
// Ctrl + K - удалить от курсора до конца
// Ctrl + U - удалить от начала до курсора
Профессиональные практики
# Всегда проверяй статус перед коммитом
git status && git diff
# Запусти тесты перед push
mvn clean test
# Используй meaningful commit messages
git commit -m "Fix: resolve NullPointerException in UserService"
# Для production deployments используй тэги
git tag v1.2.3
git push origin v1.2.3
# Документируй команды в README
# Development: mvn clean compile
# Testing: mvn test
# Build: mvn clean package
# Используй .gitignore
# /target/
# /build/
# /.idea/
# *.iml
Эти команды - основной toolkit для Java Developer. Умение быстро работать в консоли значительно повышает производительность разработки.