Почему javac создает кучу файлов .class? - PullRequest
0 голосов
/ 30 октября 2019

поэтому я написал Java-программу, которая содержит некоторые внешние файлы .jar, такие как SimpleJSON и Selenium. Когда я компилирую эту программу в intelliJ, она создает только один файл .class моего файла .java.

Но если я скомпилирую мой .java через командную строку (javac example.java), он создаст примерно 300+ файлов .class, включая файл .class моего .java

Я просто любопытныйпочему это? Это нормальное поведение? Может кто-нибудь объяснить это мне?

, поэтому я ожидал, что компиляция с помощью javac создаст тот же результат, что и компиляция в моей IDE, но я думаю, это просто неправильное предположение

import org.json.simple.parser.JSONParser;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.concurrent.TimeUnit;
import java.util.Scanner;
import org.json.simple.*;
import org.openqa.selenium.chrome.ChromeOptions;



public class SeleniumWikipedia
{
    public static String searchTerm;
    public static String JSONpath = internal
    public static String JSONoutput =i nternal
    public static String ceo;

    public static void main(String[] args) throws Exception {
        //readString();
        readJSON();
        ChromeDriver Chrom1 = getDriver();
        Chrom1.get("https://de.wikipedia.org/wiki/Wikipedia:Hauptseite");
        WebElement searchfield = Chrom1.findElement(By.id("searchInput"));
        Chrom1.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        searchfield.sendKeys(searchTerm);
        WebElement searchGo = Chrom1.findElement(By.id("searchButton"));
        searchGo.click();
        checkSuccess(Chrom1);

some created class files

https://imgur.com/a/Igh8Tca

Структура файла:

└───Code
    │   tree.txt
    │
    ├───.vscode
    │       settings.json
    │
    ├───lib
    │       auto-service-1.0-rc6-sources.jar
    │       auto-service-1.0-rc6.jar
    │       auto-service-annotations-1.0-rc6.jar
    │       byte-buddy-1.8.15.jar
    │       client-combined-3.141.59-sources.jar
    │       client-combined-3.141.59.jar
    │       commons-exec-1.3.jar
    │       guava-25.0-jre.jar
    │       json-simple-1.1.1.jar
    │       okhttp-3.11.0.jar
    │       okio-1.14.0.jar
    │
    ├───NyxDevKit.PowerShellErrorHandling
    │       Out-Null
    │       PSErrorHandling.Tests.ps1
    │       PSErrorHandlingScript.ps1
    │
    ├───NyxDevKit.Selenium
    │   │   NyxDevKit.Selenium.iml
    │   │   Output.json
    │   │
    │   ├───.idea
    │   │       compiler.xml
    │   │       misc.xml
    │   │       modules.xml
    │   │       vcs.xml
    │   │       workspace.xml
    │   │
    │   ├───Build
    │   ├───ChromeDriver
    │   │       chromedriver.exe
    │   │
    │   ├───out
    │   │   └───production
    │   │       └───NyxDevKit.Selenium
    │   │           │   Output.json
    │   │           │   SeleniumWikipedia.class
    │   │           │
    │   │           └───ChromeDriver
    │   │                   chromedriver.exe
    │   │
    │   └───src
    │           SeleniumWikipedia.java
    │
    └───NyxDevKit.SeleniumSample
            SeleniumParam.json

файл .class в папке out \ production создан intelliJ.

Я хочу скомпилировать файл SeleniumWikipedia.java, расположенный в src.

Что я делаю, чтобы получить более 300 файлов .class:

Я открываю PowerShell, попадаю в каталог, где находится SeleniumWikipedia. Ява файл находится (src), а затем я набираю «javac SeleniumWikipedia.java». Затем он занимает полминуты или около того и генерирует эти 300 файлов .class в папке src (поскольку я не определяю другой каталог), как показано на скриншоте

. Я также получаю это сообщение, отображаемое в PowerShell:

warning: Implicitly compiled files were not subject to annotation processing.
  Use -proc:none to disable annotation processing or -implicit to specify a policy for implicit compilation.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 warning
...