【问题标题】:Is there a limit on .class file name lengths in google app engine, outside of jar files?在 jar 文件之外,谷歌应用引擎中的 .class 文件名长度是否有限制?
【发布时间】:2013-07-21 05:15:03
【问题描述】:

当我尝试运行部署到应用引擎的项目时遇到错误。我看到以下问题:

java.lang.ClassNotFoundException: com.seattleglassware.AuthServletSupport$$anonfun$finishOAuth2Dance$1$$anonfun$apply$33$$anonfun$apply$34$$anonfun$apply$37$$anonfun$apply$40$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$45$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49

类名看起来很合理(好吧,对于某些合理的值 - 这是由 Scala 编译器生成的代码)。我在我的本地 web/WEB-INF/classes/com 目录中看到该文件,我可以使用 javap 反编译它(所以我不认为它已损坏或类似的愚蠢。)在本地调试服务器上运行一切正常。

更奇怪的是,我可以将 web/WEB-INF/classes 中的所有 .class 文件倒入一个 jar 文件中,如下所示:

cd to the web/WEB-INF/classes directory
jar cf ../lib/classes.jar .

现在,如果我上传项目(在 Eclipse 中按下部署按钮),我看不到那些 ClassNotFoundException 错误。删除jar文件,重新上传项目,再次报错。

我想知道 .class 文件的名称是否有某种限制?还是在部署过程中发生了其他导致这种情况发生的事情?

编辑:从命令行运行使这一点更加清晰(现在使用 maven):

严重:文件名中的无效字符:WEB-INF/classes/com/seattleglassware/AuthServletSupport$$anonfun$finishOAuth2Dance$1$$anonfun$apply$33$$anonfun$apply$34$$anonfun$apply$37$$anonfun$apply $40$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$45$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49.class

但在我看来它仍然是一个有效的文件名。

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    文件名中包含“特殊”字符可能是这里的问题。

    目前有一个关于项目文件名中的“特殊”字符的未解决问题。

    Issue 2211: Special characters are not supported in the filenames in the project

    最初的问题是由 Python App Engine 用户报告的,但是如果您查看 cmets,您会发现它显然也会影响 Java 用户。

    【讨论】:

    • 很遗憾,这些名字并没有什么特别之处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多