Java 使用其他用户名运行应用程序

Java 使用其他用户名运行应用程序,java,Java,我正在使用IBM驱动程序连接DB2数据库。一切都很完美,直到我在电脑上用西里尔字母启动它。在这种情况下,驱动程序抛出错误: com.ibm.db2.jcc.am.SqlException:[jcc][10402][11146][3.63.123]无法将Unicode字符串转换为Ebcdic字符串。ERRORCODE=-4220,SQLSTATE=null。 我发现的唯一方法是从其他用户名启动应用程序,该用户名具有正确的名称,但System.setPropertyuser.name和user不起作

我正在使用IBM驱动程序连接DB2数据库。一切都很完美,直到我在电脑上用西里尔字母启动它。在这种情况下,驱动程序抛出错误: com.ibm.db2.jcc.am.SqlException:[jcc][10402][11146][3.63.123]无法将Unicode字符串转换为Ebcdic字符串。ERRORCODE=-4220,SQLSTATE=null。 我发现的唯一方法是从其他用户名启动应用程序,该用户名具有正确的名称,但System.setPropertyuser.name和user不起作用。我可以使用Duser.name=user,但它仅在使用.bat文件启动应用程序时有效,但如果在NetBeans中的项目属性中使用此键进行编译,则不起作用。 有人能至少帮助解决其中一个问题吗

upd:我用来连接DB2的代码

public Connection Connect(String url, Connection con){
   Class.forName("com.ibm.db2.jcc.DB2Driver"); 
   String User ="energy"; 
   String Pass ="energy"; 
   con = DriverManager.getConnection(url,User,Pass); 
   return con;
}

登录名/密码不是西里尔文,只有wundows用户名是。正如我所发现的,这是DB2驱动程序的一个缺陷,但我如何才能避免这个缺陷?

getProperty或setProperty?问题似乎是,您的遗留DB2数据库的颤抖的EBCDIC编码不能表示该用户名中的字符。请在设置驱动程序的位置张贴代码;您通常可以在其中包含用户名。@chrylis public Connection ConnectString url,Connection con{Class.forNamecom.ibm.db2.jcc.DB2Driver;String User=energy;String Pass=energy;con=DriverManager.getConnectionurl,User,Pass;return con;}我在这里是noob,因此无法正确设置注释中的代码:@SašŠijak setProperty,只是一个mistype@crzbt-没关系,没有人可以在注释中放入格式正确的代码。不过,您可以编辑原始问题:你能调试驱动程序并找出它是如何读取用户名的吗?另外,我强烈建议向IBM报告错误。