выполнить Maven проект с Json из командной строки - PullRequest
0 голосов
/ 02 апреля 2020

Я запускаю проект для чтения и анализа JSON -файла с JAVA 8. Чтобы запустить его в Eclipse, я превратил его в проект maven и добавил эту зависимость:

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
    <scope>runtime</scope>
</dependency>

В Eclipse проблем нет, но когда я запускаю его из командной строки, я получаю эту ошибку:

Поставщик org.glassfi sh. json .JsonProviderImpl не найден

В futur я хочу запустить его на сервере без установки Eclipse. Как мне запустить его?

Ответы [ 3 ]

0 голосов
/ 02 апреля 2020

Пожалуйста, посмотрите этот вопрос . Это поможет вам создать JAR-файл, в который встроены все зависимости. Я бы не предложил переписывать вещи и свободно пользоваться библиотеками. Вы пишете код намного быстрее и без ошибок, если вы сами его не кодируете.

Как только вы это сделаете, вы сможете запустить java -jar для файла jar, и ваше приложение запустится. Если вы хотите просто запустить приложение, вы можете скачать jar и добавить его в переменную classpath, которую вы передаете в командной строке java.

0 голосов
/ 04 апреля 2020

спасибо большое. Следующая конфигурация maven заставляет его работать для командной строки:

<plugins>
..    
<plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
              <archive>
                <manifest>
                    <mainClass>data.Parser</mainClass>
                </manifest>
              </archive>
            </configuration>
        </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.json</artifactId>
        <version>1.1</version>
        <scope>runtime</scope>
    </dependency>
  </dependencies>
0 голосов
/ 02 апреля 2020

, если вы хотите просто десериализовать с помощью Gson. вы используете этот пример программы

import java.io.File;
import java.io.IOException;
import java.util.Map;

import org.apache.commons.io.FileUtils;

import com.google.gson.Gson;

public class Main {

    public static void main(String[] args) throws IOException {

        String json = FileUtils.readFileToString(new File("PATH_TO_JSON"), "UTF-8");
        Gson deserializer = new Gson();
        System.out.println(deserializer.fromJson(json, Map.class));
    }
}

вам понадобятся следующие зависимости

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.6</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...