0

このチュートリアルhttp://stilius.net/java/java_ssl.phpに従って、単純なSSLServerとクライアントソケットを作成しています。keytoolを使用して証明書を作成しましたが、上記のチュートリアルからこの行を実行する際に問題が発生しました。

「java-Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456EchoServer」。

証明書はどこに置くべきですか?プロジェクトディレクトリにありますか?上記のパラメータを渡すにはどうすればよいですか?

私はこれを行っていて、エラーが発生しています。

C:\Users\abc\workspace\VirtualElectionBoothServer\bin>java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 BoothServer
    Exception in thread "main" java.lang.NoClassDefFoundError: BoothServer
Caused by: java.lang.ClassNotFoundException: BoothServer
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: BoothServer.  Program will exit.

編集:

私の問題は、コマンドラインからプロジェクトを実行することがないため、コマンドラインからこの行を実行する方法がわからないことです。

C:\Users\abc\workspace\VirtualElectionBoothServer\bin>java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 BoothServer

どのディレクトリから実行する必要がありますか?複数の.javaファイルがあります。どちらを実行しますか?main()を持っているもの?

4

1 に答える 1

0

コマンドラインからJavaアプリケーションを実行する方法がわからないようです。

BoothServerクラスがパッケージに含まれていないと仮定します。そうである場合は、そのフルネームを使用します(例the.package.name.BoothServer)。

また、これをeclipse内でコンパイルし、結果のクラスファイルがディレクトリにあると仮定しますbin。(パッケージを使用している場合は、ファイルを下に置く必要がありますbin\the\package\name\BoothServer.class。もちろん、この場合は、ディレクトリ名を実際のパッケージ名に置き換えてください。)

javax.net.ssl.SSLException:有効になっているSSL暗号スイートに対応する使用可能な証明書またはキーがありません

これは、キーストアが見つからない場合に発生する一般的なエラーです(他の理由もあります)。

使用しているパスが、-Djavax.net.ssl.keyStore=生成した実際のキーストアを指していることを確認してください。たとえば、-Djavax.net.ssl.keyStore=..\mySrvKeyStoreファイルが。の下にある場合ですC:\Users\abc\workspace\VirtualElectionBoothServer

また、Eclipseはbin再コンパイルするたびにコンテンツをクリアする可能性があるので(わからない)、binそのキーストアファイルを保持するのに必ずしも適した場所ではないのではないかと思います。

于 2012-04-21T21:00:09.337 に答える