当JDBC连接到Docker中的Postgres时,JDBC驱动程序类不会加载JAVA应用程序

我有一个在CentOS和Boot2Docker本地设置的docker容器。 目标是安装连接到Postgres的JAVA应用程序。 安装了Java JDK和JRE for 1.8。 Postgres正在运行。 我可以通过psql连接到它并做功。

Java应用程序使用Intellij作为jar文件进行编译。 附加的是POM.xml文件。 intellij一切都很好。 但是,当我尝试从命令行使用java -jar APP_NAME.jar运行docker中的应用程序时,出现以下错误消息:

“PostgreSQL 9.4.1212.jre7

find:jar:file:/demo_data/out/artifacts/demo_data_jar/demo_data.jar!/org/postgresql/Driver.class

PgJDBC驱动程序不是可执行的Java程序。

您必须根据您的application / container / appserver的JDBC驱动程序安装说明进行安装,然后通过指定jdbc:postgresql://格式的JDBC URL或使用特定于应用程序的方法来使用它。

请参阅PgJDBC文档: http ://jdbc.postgresql.org/documentation/head/index.html

这个命令没有效果。“

这是POM:http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

<groupId>com.align</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo_data</name> <description>Program to create demo data for align care.</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 

你创build的jar使用的是PostgreSQL的jdbc驱动的main类(只用于警告那些试图运行它的人,比如java -jar postgresql_jdbc.jar ,这是没有意义的)。

所以,当你创build你的jar时,确保你指定了正确的主类。