org.codehaus.groovy.control.MultipleCompilationErrorsException当我在类路径上有2个不同的jdbc jar时

时间:2012-11-16 20:18:02

标签: sql-server-2008 jdbc command-line groovy classpath

  

可能重复:
  Manifest.MF issue with MSSQLSERVER 2008 and Groovy

我有一个非常简单的groovy脚本,有2个数据库连接:

  1. 与Oracle的一个数据库连接
  2. 与SQLServer的另一个数据库连接
  3. 问题

    当我通过GGTS编辑器(SpringSource Tool Suite的groovy和grails版本)运行程序时,两个查询运行并返回结果。但是,当我从命令行运行程序时,从项目文件夹中运行如下:

    groovy -cp lib\jtds-1.3.0.jar lib\ojdbc6-11g.jar src\Starter.groovy
    

    我收到以下错误:

    C:\workspace-ggts\Test>groovy -cp lib\jtds-1.3.0.jar lib\ojdbc6-11g.jar src\Star
    ter.groovy
    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    C:\workspace-ggts\Test\lib\ojdbc6-11g.jar: 1: unexpected char: 0x3 @ line 1, col
    umn 3.
       PK♥ ßî∟9              ♦ META-INF/■╩  ♥     ☻       PK♥♦ ßî∟9            ¶   M
    ETA-INF/MANIFEST.MF?æ┴N├0►D∩æ≥☼½₧α►7)R[rúΘÑá☻R½^æq6─òcç╡SΦ▀π4◄ →        ─╒3;π}╗µ
    Z▬h]┤C▓╥Φ¶↕▬ç┴¬¬§V¿↔w■╤ï:7ö┬♥qí►2C╡íôtf▌Jº0♣│╧ƒ┼öφ9
         ^
    
    1 error
    

    我尝试过什么

    1. 我尝试使用jtds驱动程序连接到SQLServer,因为我认为问题是来自Microsoft网站based on this same problem reported differently here

    2. 的sqljdbc4.jar
    3. 我尝试用分号分隔类路径依赖项,但仍然是同样的错误。

    4. 我已将java版本升级到1.7。 Groovy版本是2.0.5

    5. 从IDE运行正常,但是从命令行我得到了错误。

    6. 如果我注释掉其中一个db访问代码(连接,查询,结果集的println),那么我的groovy脚本只有一个db连接&访问程序从命令行运行正常。例如:

    7. groovy -cp lib\jtds-1.3.0.jar src\Starter.groovy
      

      或者这个:

      groovy -cp lib\ojdbc6-11g.jar src\Starter.groovy
      

      确实有效。一旦我在第二次数据库访问的类路径中添加代码和jar,我就会收到上面报告的错误。

      我没有想法或想法

1 个答案:

答案 0 :(得分:1)

类路径中的文件需要在Windows上用分号分隔。在像Linux或OSX这样的类Unix平台上,分隔符是冒号。 Groovy将第二个jar文件视为脚本,将脚本名称视为第一个命令行参数。

试试这个:

groovy -cp lib\jtds-1.3.0.jar;lib\ojdbc6-11g.jar src\Starter.groovy

你有不同的错误吗?