27. Гугл 2 Як скомпілювати java-файл із консолі? Як запустити java-файл із консолі? Як запустити програму з декількох скомпільованих файлів з консолі? Як створити директорію з піддиректоріями? Як отримати список файлів в директорії за маскою (шаблоном) «*doc»?

27. 

6. Як скомпілювати java-файл із консолі?

Викликаємо консоль: заходимо в папку де збережено потрібний файл .java ->  затискаємо shift + клацаємо правою клавішею миші на вільному місці папки ->  обираємо «відкрити вікно команд».

Компіляція файла: в консолі набираємо команду javac і в якості параметра прописуємо повне ім’я файла (із розширенням). Н-д:

javac Main.java

Ця команда викличе компілятор, який cкомпілює вихідний код (якщо у коді немає помилок) і збереже байт-код у файлі з такою ж назвою, але розширенням .class

 

 

 

7. Як запустити java-файл із консолі?

Викликаємо консоль як і при компіляції, прописуємо команду java і в якості параметра назву класу (cкомпільованого коду, без розширення .class).  Н-д:

java Main

Цією командою викликається запускалка java.exe, яка запустить вказану програму.

 

Якщо в консолі з’явились кракозябри –  це збите кодування. Прописуємо в консолі

REM change CHCP to UTF-8

CHCP 65001

CLS

І пробуємо знову запустити програму  командою java НазваКласу

 

 

 

8. Як запустити програму з декількох скомпільованих файлів з консолі?

Компіляція:

Відкриваємо папку (тут – src), в якій знаходиться папка з вихідним кодом проєкту, всі файли якого треба скомпілювати (тут - Archiver).

традиційно src використовується для вихідного коду

Для зручності  поруч з проектною створюємо окрему папку для скомпільованих файлів. Традиційно використовують назву bin для файлів з байт-кодом.

Викликаємо вікно команд (на пустому місці папки - в якій знаходиться папка із файлами для компіляції і папка для скомпільованих – затискаємо shift + праву клавішу миші –> вікно команд).

Прописуємо команду «javac», вказуємо «–d» і назву папки, в які потрібно зберегти файли з байт-кодом, далі прописуємо відносний шлях до «основного» файлу, включно з іменем класу main:

javac  -d ПапкаКуди ПапкаЗвідки/НазваКласуДеЄMain.java

(н-д: javac –d bin Archiver/Archiver.java )

Запуск:

Для запуску зкомпільованих файлів, що з’явились у папці bin використовується команда «java» з тієї ж папки, «-classpath» , шлях до зкомпільованих файлів і назву головного файла (без розширення).

java –classpath ./bin Archiver

 

 

 

9.  Як створити директорію з піддиректоріями: (doc/release/com/javarush/test)?

Створити директорію і директорію з піддиректоріями можна за допомогою методів утилітного класу Files (java.nio.file.Files) з використанням об’єкта типу Path в якості аргументу:

Files.createDirectories(Path.of(“D:\\Dir1\\Dir2\\Dir3”));

 

 

Створити директорію: Files.createDirectory(Path.of(“D:\\Dir1”));

Створити файл: Files.createFile(Path.of(“D:\\somethingImportant.txt”));

 

 

 

10. Як отримати список файлів в директорії за маскою (шаблоном) «*doc»

1.Створюємо маску для пошуку файлу за потрібним критерієм (файловий фільтр) за допомогою функціонального інтерфейсу FileFilter:

FileFilter fileFilter = new FileFilter() {

  public boolean accept(File file) {

    if (file.getName().endsWith(".doc")) {

      return true;

    }

    return false;

  }

};

2. Отримуємо список файлів, застосовуючи файловий фільтр в якості аргументу метода listFiles()

File directory = new File("c:/directory");

 

File[] filtredFiles = directory.listFiles(fileFilter);

 

Так як інтерфейс FileFilter функціональний (у інт-сі один метод),  FileFilter можна застосувати для лямбда-виразу або посилання на метод.

Описаний вище код з лямбда-виразом:

File directory = new File("c:/someDirectory");

File[] filteredFiles = directory.listFiles(

           (file) -> {

             return file.getName().endsWith(".doc");

            }

 );

 

 

Коментарі

Популярні дописи з цього блогу

27 Гугл 1 goto. Зарезервовані (ключові) слова. wait не в блоці synchronized. happens-before. BlockingQueue. Методи BlockingQueue

28. Соб 1. Какие приоритеты нитей бывают? Можно ли остановить нить, снизив ее приоритет до 0? Зачем нужен класс ThreadGroup? В какой группе нитей состоит main-thread? Что такое паттерн ThreadPool?

30. Соб-2 Как установить бит в единицу в битовой маске? Как установить бит в ноль в битовой маске? Как получить значение определенного бита в битовой маске? Что такое ленивое вычисление выражения? Чем отличается использование && и & для типа boolean?