14

私はプロジェクトでYuiCompressorTask(最新バージョン)を非常に長い間問題なく使用しています。ただし、OSXでOracleのJava 1.7パッケージにアップグレードした後は、次の例外が発生します(これは、javascriptファイルの場合です。cssファイルで正常に動作します)。

[yuiCompress] java.lang.reflect.InvocationTargetException
[yuiCompress]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[yuiCompress]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[yuiCompress]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[yuiCompress]   at java.lang.reflect.Method.invoke(Method.java:601)
[yuiCompress]   at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21)
[yuiCompress]   at ww.ant.YuiCompressorTask.execute(YuiCompressorTask.java:40)
[yuiCompress]   at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[yuiCompress]   at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[yuiCompress]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[yuiCompress]   at java.lang.reflect.Method.invoke(Method.java:601)
[yuiCompress]   at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[yuiCompress]   at org.apache.tools.ant.Task.perform(Task.java:348)
[yuiCompress]   at org.apache.tools.ant.Target.execute(Target.java:390)
[yuiCompress]   at org.apache.tools.ant.Target.performTasks(Target.java:411)
[yuiCompress]   at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
[yuiCompress]   at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
[yuiCompress]   at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[yuiCompress]   at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[yuiCompress]   at org.apache.tools.ant.Main.runBuild(Main.java:809)
[yuiCompress]   at org.apache.tools.ant.Main.startAnt(Main.java:217)
[yuiCompress]   at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[yuiCompress]   at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
[yuiCompress] Caused by: java.util.MissingResourceException: Can't find bundle for base name org.mozilla.javascript.resources.Messages, locale en_US
[yuiCompress]   at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
[yuiCompress]   at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
[yuiCompress]   at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
[yuiCompress]   at org.mozilla.javascript.ScriptRuntime.getMessage(ScriptRuntime.java:3316)
[yuiCompress]   at org.mozilla.javascript.ScriptRuntime.getMessage0(ScriptRuntime.java:3273)
[yuiCompress]   at org.mozilla.javascript.Parser.addError(Parser.java:121)
[yuiCompress]   at org.mozilla.javascript.TokenStream.getToken(TokenStream.java:773)
[yuiCompress]   at org.mozilla.javascript.Parser.peekToken(Parser.java:161)
[yuiCompress]   at org.mozilla.javascript.Parser.parse(Parser.java:361)
[yuiCompress]   at org.mozilla.javascript.Parser.parse(Parser.java:337)
[yuiCompress]   at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312)
[yuiCompress]   at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:533)
[yuiCompress]   at com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:131)
[yuiCompress]   ... 22 more

AppleのJava1.6に戻すことができ、正常に動作します。私の質問は、これを回避する方法はありますか?私は本当にもう1.6を続けることができません。

4

4 に答える 4

8

少し古い質問ですが、今日も同じエラーが発生します。

私の場合、問題はJavaScriptの構文エラーでした。カット&ペースト操作の後で}を忘れました。

このオンラインツール(http://refresh-sf.com/)を使用してjsファイルを圧縮すると、奇妙なエラーが返されましたが、Java例外スタックよりも便利です...

この助けを願っています...

于 2012-09-27T11:56:36.480 に答える
4

私は、長年使用してきた最後のYUIコンポーネントを放棄して、GoogleClosureCompilerに切り替えることにしました。ビルドログに大量の警告が表示されますが、機能します。はぁ

于 2013-01-10T16:45:27.287 に答える
3

本当に古い質問ですが、まだyui-compressを使用している場合は同じエラーが発生し、yui-compressは関数呼び出しの引数の後にコンマを付けるのが好きではないことがわかりました。例えば:

foo(a, b, c);

大丈夫ですが

foo(a, b, c,);

ではありません。

于 2017-10-12T11:32:19.273 に答える
0

古い質問ですが、私は他の発見にコメントを入れなければなりませんでした。

letを使用した変数の定義はサポートされていません。

そして今日の新しい発見では、デフォルト値のパラメータで関数を定義することはできません

私の場合、私は変更しなければなりませんでした

関数convertDate(inputFormat、type = 1)

関数convertDate(inputFormat、type){

if(typeof(type)=== "undefined")
type = 1;

失敗する理由を見つけるためのヒントとして、使用しているjavascriptのクローンを作成し、新しい空を開始して、エラーが発生するブロックが見つかるまでブロックを追加するのが最善の方法です。

于 2019-05-29T18:05:54.360 に答える