-2

重複の可能性:
MSSQLSERVER2008およびGroovyでのManifest.MFの問題

2つのデータベース接続を持つ非常に単純なGroovyスクリプトがあります。

  1. Oracleへの1つのデータベース接続
  2. SQLServerへの別のデータベース接続

問題

GGTSエディター(SpringSource Tool SuiteのGroovyおよびGrailsバージョン)を使用してプログラムを実行すると、2つのクエリが実行され、正常に結果が返されます。しかし、コマンドラインから、プロジェクトフォルダから次のようにプログラムを実行すると、次のようになります。

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. ここで別の方法で報告された同じ問題に基づいて、問題はMicrosoftサイトのsqljdbc4.jarであると考えたため、jtdsドライバーを使用してSQLServerに接続しようとしました。

  2. クラスパスの依存関係を区切るためにセミコロンを付けようとしましたが、それでも同じエラーが発生します。

  3. Javaバージョンを1.7にアップグレードしました。Groovyのバージョンは2.0.5です

  4. IDEからは正常に実行されますが、コマンドラインからはエラーが発生します。

  5. dbアクセスコード(接続、クエリ、結果セットのprintln)の1つをコメントアウトすると、groovyスクリプトにdb接続が1つだけ残り、プログラムはコマンドラインから正常に実行されます。例えば:

これ

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

またはこれ:

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

動作します。2番目のdbアクセスのクラスパスにコードとjarを追加するとすぐに、上記のエラーが報告されます。

私は考えやアイデアが不足しています

4

1 に答える 1

1

Windowsでは、クラスパス内のファイルをセミコロンで区切る必要があります。LinuxやOSXのようなUNIXライクなプラットフォームでは、区切り文字はコロンです。Groovyは、2番目のjarファイルをスクリプトとして扱い、スクリプト名を最初のコマンドラインパラメーターとして扱います。

これを試して:

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

それで別のエラーが発生しますか?

于 2012-11-16T21:26:47.863 に答える