从命令行使用Json执行Maven项目

时间:2020-04-01 22:48:48

标签: java json maven

我正在启动一个项目,以使用JAVA 8读取和分析JSON文件。要使其在Eclipse中运行,我将其转换为maven项目并添加了此依赖项:

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

在Eclipse中,没有问题,但是当我从命令行运行它时,出现此错误:

未找到提供程序org.glassfish.json.JsonProviderImpl

将来,我想在没有安装Eclipse的服务器上运行它。 我如何使其运行?

3 个答案:

答案 0 :(得分:0)

请参阅this question。这将帮助您创建一个包含所有依赖项的jar文件。我不建议重写东西并自由使用库。如果您自己不编写代码,则可以更快地编写代码,并且采用更多的无错误方式。

完成此操作后,您将可以在jar文件上运行java -jar,并且您的应用程序将运行。如果您只想运行该程序,则可以下载jar并将其添加到通过Java命令行传递的classpath变量中。

答案 1 :(得分:0)

非常感谢。遵循以下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>

答案 2 :(得分:-1)

如果您只想使用Gson反序列化。您使用此示例程序

dotnet ef database update

您将需要以下依赖项

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));
    }
}