有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

编译java RMI服务器时出错

我也在尝试将ssl添加到我的服务器实现中。我想编译服务器时遇到了问题。JAVA这是输出

**Server.java:7: error: cannot find symbol
import javax.net.ssl.KeyStore;
                    ^
  symbol:   class KeyStore
  location: package javax.net.ssl
Server.java:8: error: cannot find symbol
import javax.net.ssl.KeyStorePassword;
                    ^
  symbol:   class KeyStorePassword
  location: package javax.net.ssl
Server.java:9: error: cannot find symbol
import javax.net.ssl.trustStore;
                    ^
  symbol:   class trustStore
  location: package javax.net.ssl
Server.java:10: error: cannot find symbol
import javax.net.ssl.trustStorePassword;
                    ^
  symbol:   class trustStorePassword
  location: package javax.net.ssl
Server.java:21: error: call to super must be first statement in constructor
        super(0, new SslRMIClientSocketFactory(), new SslRMIServerSocketFactory());
             ^
5 errors**

这是我的服务器代码,在添加ssl之前工作得很好

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.net.ssl.KeyStore;
import javax.net.ssl.KeyStorePassword;
import javax.net.ssl.trustStore;
import javax.net.ssl.trustStorePassword;


public class Server extends UnicastRemoteObject implements ServerInterface
{
    private static final long serialVersionUID = 1L;

    protected Server() throws RemoteException
    {

        super(0, new SslRMIClientSocketFactory(), new SslRMIServerSocketFactory());
    }

我之所以发布这一部分,是因为我认为ssl包存在导入问题。我在用Ubuntu

谢谢。 卢乔


共 (2) 个答案

  1. # 1 楼答案

    在Java(包括Java 8)之前的Java中:

    • 没有名为javax.net.ssl.KeyStore的类
    • 没有名为javax.net.ssl.KeyStorePassword的类
    • 没有名为javax.net.ssl.trustStore的类
    • 没有名为javax.net.ssl.trustStorePassword的类

    实际上,最后两个类名甚至不符合标准的类命名约定

    I only post this part because I think is an import problem with the ssl package. I'm using Ubuntu.

    这并不表明Java、Java安装或Ubuntu存在问题。真正的问题是,您试图编译的代码显然是错误的。完全错了。不能导入不存在的类


    值得一提的是,有一个名为java.security.KeyStore的标准类,但与其他三个类完全不同

  2. # 2 楼答案

    不存在“ssl包的导入问题”。尝试导入虚构类时出现问题。你甚至似乎都没有使用它们,至少从你发布的内容来看是这样。有些系统属性几乎是这样拼写的,但不完全是这样:

    javax.net.ssl.keyStore
    javax.net.ssl.keyStorePassword
    javax.net.ssl.trustStore
    javax.net.ssl.trustStorePassword
    

    你最后的错误是不言而喻的

    远程对象中不需要serialVersionUID

    简而言之,你的代码完全是胡说八道