0

Javaの更新後、実行すると「何も」起こりません

java -Djavax.net.ssl.trustStore=cert.cer -Djavax.net.ssl.trustStorePassword=123456 -jar client.jar

出力が得られず、ターミナルは ctrl+c までビジーです

古い環境で実行すると、問題なく動作します。例:

/usr/lib/jvm/java-6-openjdk-i386/bin/java -Djavax.net.ssl.trustStore=cert.cer -Djavax.net.ssl.trustStorePassword=123456 -jar client.jar

このような問題の原因とデバッグ方法を教えてください。

Java -バージョン

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK Server VM (build 23.7-b01, mixed mode)
4

2 に答える 2

0

CPUを使用していますか?

スレッド ダンプを取得するには、次のシグナルを送信します。

-3を殺す

(スレッド ダンプは stdout に書き込まれます)。

jar を展開して、META-INF/MANIFEST.MF でメイン クラスを検索し、メイン クラスを明示的に指定することもできます。

java -jar jarname.jar the.main.Class

于 2013-11-05T10:12:18.580 に答える
0

スレッドスタックダンプに基づいて...

"main" prio=10 tid=0xb6506800 nid=0xfd2 runnable [0xb66de000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.Reflection.getCallerClass0(Native Method)
        at sun.reflect.Reflection.getCallerClass(Reflection.java:68)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:86)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:66)
        at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:82)
        at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:34)
        at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:360)
        at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:319)
        at se.poject.encoder.Client.<clinit>(Client.java:27)

... log4j で何かおかしなことが起こっているようです。問題は、Clientクラスの 27 行目から始まります (これは、ある種の静的初期化のようです)。...を取得しようとしてLoggerいるようで、log4j 実装内である種の「ビジー」ループに陥っているようです。


これは Log4j のバグだと思います。

  • (log4j パッケージ名から) Log4j 2.0 を使用しているようです。これはまだ「ベータ版」です。あなたは最先端に取り組んでいます...

  • スタック トレースの行番号は、ベータ 5 またはベータ 6 のソース コードと一致しているようです。log4j 2.0 の最新バージョンは beta-9 です。手に入れることができる最新のベータ版にアップグレードしてみてください。

于 2013-11-05T11:22:02.860 に答える