java项目,在eclipse运行正常,但是导出jar包,单独运行时,gp数据库连接失败,报错是字符串下标越界
开始以为哪里写的有问题,重新创建了一个测试工程,还是报错
```java
//如下是连接GP的类和方法
public class GPCON {
public static String connectionString = "jdbc:pivotal:greenplum://172.26.32.25:5432;DatabaseName=mtp";
public static String user = "admin";
public static String password = "admin*";
Connection connection = null;
/**连接数据库*/
public void con(){
try {
Class.forName("com.pivotal.jdbc.GreenplumDriver");
connection = DriverManager.getConnection(connectionString,user,password);
System.out.println("GP数据库连接成功!!!");
} catch (Exception e) {
System.err.println("数据库连接出现异常 " + e.getMessage());
e.printStackTrace();
return;
}
}
}
//如下是调用的类和方法
public class T {
public static void main(String[] args) {
GPCON gpcon =new GPCON();
gpcon.con();
}
}
打包jar运行报错如下
数据库连接出现异常 String index out of range: -6
java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at java.lang.String.substring(Unknown Source)
at com.pivotal.jdbc.greenplumbase.ddda.<init>(Unknown Source)
at com.pivotal.jdbc.greenplumbase.BaseConnection.a(Unknown Source)
at com.pivotal.jdbc.greenplumbase.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at GPCON.con(GPCON.java:18)
at T.main(T.java:5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
```