classPath 不能含有空格
把“Program Files”
改为 “Progra~”试一下,或者直接把那些.jar放在没有空格的路径里。

解决方案 »

  1.   

    不行啊,还是一样的错误C:\Program Files>java -classpath "E:\JavaPractice\ingresteset\classes;E:\JavaPra
    ctice\ingresteset\iijdbc.jar;D:\Progra~1\JBuilder9\jdk1.4\jre\lib\rt.jar;D:\Prog
    ra~1\JBuilder9\jdk1.4\jre\lib\i18n.jar;D:\Progra~1\JBuilder9\jdk1.4\jre\lib\sunr
    sasign.jar;D:\Progra~1\JBuilder9\jdk1.4\jre\lib\jsse.jar;D:\Progra~1\JBuilder9\j
    dk1.4\jre\lib\jce.jar;D:\Progra~1\JBuilder9\jdk1.4\jre\lib\charsets.jar;D:\Progr
    a~1\JBuilder9\jdk1.4\jre\classes;D:\Progra~1\JBuilder9\jdk1.4\lib\tools.jar" com
    .ingrestest.IngresTest
    Exception in thread "main" java.lang.NoSuchMethodError: sun.nio.cs.AbstractChars
    etProvider.<init>(Ljava/lang/String;)V
            at sun.nio.cs.ext.ExtendedCharsets.<init>(ExtendedCharsets.java:45)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
    orAccessorImpl.java:39)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
    onstructorAccessorImpl.java:27)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
            at java.lang.Class.newInstance0(Class.java:296)
            at java.lang.Class.newInstance(Class.java:249)
            at sun.misc.Service$LazyIterator.next(Service.java:270)
            at java.nio.charset.Charset$1.getNext(Charset.java:303)
            at java.nio.charset.Charset$1.hasNext(Charset.java:316)
            at java.nio.charset.Charset$2.run(Charset.java:359)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.nio.charset.Charset.lookupViaProviders(Charset.java:356)
            at java.nio.charset.Charset.lookup(Charset.java:383)
            at java.nio.charset.Charset.isSupported(Charset.java:405)
            at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:71)
            at java.io.InputStreamReader.<init>(InputStreamReader.java:57)
            at ca.gcf.util.CharSet.checkEncoding(CharSet.java:387)
            at ca.gcf.util.CharSet.<clinit>(CharSet.java:224)
            at ca.gcf.dam.MsgIn.getCharSet(MsgIn.java:684)
            at ca.gcf.dam.MsgIn.<init>(MsgIn.java:445)
            at ca.gcf.dam.MsgConn.<init>(MsgConn.java:227)
            at ca.gcf.jdbc.DrvConn.connect(DrvConn.java:433)
            at ca.gcf.jdbc.DrvConn.<init>(DrvConn.java:358)
            at ca.gcf.jdbc.JdbcDrv.connect(JdbcDrv.java:555)
            at java.sql.DriverManager.getConnection(DriverManager.java:512)
            at java.sql.DriverManager.getConnection(DriverManager.java:193)
            at com.ingrestest.IngresTest.main(IngresTest.java:32)C:\Program Files>
      

  2.   

    命令行的classPath不全。与jbuilder工程里的比较一下。
      

  3.   

    已经解决了,是jdk的版本不对导致的,在命令行执行时是用原来安装的jdk,而jbuilder中却是用自带的jdk