GAE插件或GAE appcfg.cmd无法使用--enable_jar_splitting参数

时间:2013-04-10 03:34:22

标签: google-app-engine

我有以下错误消息:

  

准备部署:创建的临时目录位于:   'C:\用户\莱特\应用程序数据\本地的\ Temp \ appcfg4768292050846213939.tmp'     扫描jsp文件。编译jsp文件。扫描文件   本地磁盘。 java.io.IOException:Jar   C:\ Users \用户莱特\应用程序数据\本地\ TEMP \ appcfg4768292050846213939.tmp \ WEB-INF \ lib中\应用服务引擎的API-1.0-SDK-1.7.7.jar   太大了考虑使用--enable_jar_splitting。

我发出了这样的命令,但它不能用于--enable_jar_splitting。

  

“C:\ Program Files \ Java \ jdk1.7.0_17 \ bin \ java.exe”-Xmx1100m -cp   “%〜DP0 .. \ LIB \ AppEngine上的工具 - api.jar文件”   com.google.appengine.tools.admin.AppCfg --enable_jar_splitting -e   user@domain.com更新“C:\ myfolder \ myproject \ war”

有任何评论吗?

4 个答案:

答案 0 :(得分:4)

已发布Java App Engine 1.7.7.1 SDK以解决此特定于Windows的问题。 Google Eclipse插件已更新,以及Google App Engine Maven工件和插件(仅使用1.7.7.1版本)。

答案 1 :(得分:0)

我通过拆分我自己的“appengine-api-1.0-sdk-1.7.7.jar”文件解决了这个问题。

如果其他人想知道如何操作,请按照以下步骤进行 1)从7z解压缩“appengine-api-1.0-sdk-1.7.7.jar”文件。

2)无论任何结构如何,将它们平衡为2个文件夹(每个约15mb)。

3)将第一个文件夹命名为“appengine-api-1.0-sdk-1.7.7-1”,将第二个文件夹命名为“appengine-api-1.0-sdk-1.7.7-2”。

4)确保你安装了jdk。例如“C:\ Program Files \ Java \ jdk1.7.0_17 \ bin”。将其设置为环境,以便您可以从该bin文件夹运行该文件。

5)重要提示:您必须进入第一个“appengine-api-1.0-sdk-1.7.7-1”文件夹而不是这些文件夹的父文件夹。

6)启动cmd.exe并在第一个存档中输入“jar cf appengine-api-1.0-sdk-1.7.7-1.jar *”。

7)对第二个档案再次进行相同的操作(重复步骤5和步骤6)。

8)转到\ war \ web-inf \ libs文件夹,删除现有的appengine-api-1.0-sdk-1.7.7.jar。

9)将appengine-api-1.0-sdk-1.7.7-1.jar和appengine-api-1.0-sdk-1.7.7-2.jar复制并粘贴到\ war \ web-inf \ libs文件夹中。 />
10)现在部署它。它应该像魅力一样工作!

编辑: 拼写纠正。

答案 2 :(得分:0)

要解决库错误信息,你必须这样做:

1)打开Windows资源管理器并将其找到您的eclipse文件夹。例如“\蚀\插件\ com.google.appengine.eclipse.sdkbundle_1.7.7 \ AppEngine上的Java-SDK-1.7.7 \ lib中\用户” 点。

2)然后,您将看到一个名为“appengine-api-1.0-sdk-1.7.7.jar”的文件,将其重命名为“appengine-api-1.0-sdk-1.7.7.original”。 (只是不要在将来删除)

3)复制您之前创建的2个文件 - “appengine-api-1.0-sdk-1.7.7-1.jar”和“appengine-api-1.0-sdk-1.7.7-2.jar”并粘贴到此文件夹中。

4)切换它eclipse ide,清理项目并重建它。然后,错误信息将消失。

答案 3 :(得分:0)

使用该指令:

To clarify, we're going to release a minor update for 1.7.7. For the
meantime, you can re-jar the file as follows:

cd to the working directory
$ jar xf somewhere\appengine-java-sdk-1.7.7\lib\user\
appengine-api-1.0-sdk-1.7.7.**jar
$ jar cfm somewhere\appengine-api-1.0-sdk-1.7.7.**jar META-INF/MANIFEST.MF *
and replace the old jar with the newly created one.
来自http://www.mail-archive.com/google-appengine@googlegroups.com/msg67954.html

以及来自解决方案的消息,我能够让它像这样工作:

打开命令行并进入JAVA安装的bin目录,其中jar.exe文件为

cd "C:\Program Files\Java\jdk1.7.0_17\bin\"

然后,您需要在计算机上的某个位置找到“appengine-api-1.0-sdk-1.7.7.jar”文件。它位于eclipse项目的\ war \ WEB-INF \ lib文件夹中以及eclipse安装的“plugins”文件夹中的2个位置(不包括临时目录)。恰好在那里:\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\ 你只需要这两条路径中的一条。

现在在命令行中输入:

jar xf "C:\whatever-folder-your-eclipse-is-in\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\user\appengine-api-1.0-sdk-1.7.7.jar"

然后

jar cfm "C:\whatever-folder-your-eclipse-is-in\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\user\appengine-api-1.0-sdk-1.7.7.jar" META-INF/MANIFEST.MF

现在,如果你去那个文件夹并检查.jar文件,它现在应该是11 MB而不是30。现在你需要复制这个并在\ war \ WEB-INF \ lib \中的webapp文件夹中替换相同的jar,这样两个名为“appengine-api-1.0-sdk-1.7.7.jar”的jar都有11 mb大小

现在错误应该消失了,你不必拆分任何东西。