编译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
谢谢。 卢乔
# 1 楼答案
在Java(包括Java 8)之前的Java中:
javax.net.ssl.KeyStore
的类javax.net.ssl.KeyStorePassword
的类javax.net.ssl.trustStore
的类javax.net.ssl.trustStorePassword
的类实际上,最后两个类名甚至不符合标准的类命名约定
这并不表明Java、Java安装或Ubuntu存在问题。真正的问题是,您试图编译的代码显然是错误的。完全错了。不能导入不存在的类
值得一提的是,有一个名为
java.security.KeyStore
的标准类,但与其他三个类完全不同# 2 楼答案
不存在“ssl包的导入问题”。尝试导入虚构类时出现问题。你甚至似乎都没有使用它们,至少从你发布的内容来看是这样。有些系统属性几乎是这样拼写的,但不完全是这样:
你最后的错误是不言而喻的
远程对象中不需要
serialVersionUID
简而言之,你的代码完全是胡说八道