Несмотря на то, что в этом классе есть истина в sun.*
, ответ не учитывает ошибку, а также предлагает альтернативу.
У меня нет области видимости контекста, в котором вы пытаетесь создать экземпляр sun.net.ftp.FtpClient
, но это все еще возможно.
Класс является абстрактным, поэтому его невозможно создать. (См. §8.1.1.1)
Все не потеряно. Чтобы получить экземпляр FtpClient
, вы можете использовать статические методы из sun.net.ftp.FtpClientProvider
, который находится в SDK, чтобы сделать так, как в примере ниже:
...
final FtpClient ftpClient = FtpClientProvider.provider().createFtpClient();
final InetAddress inetAddress = InetAddress.getByName(ftpUrl.getHost());
final int port = ftpUrl.getPort();
final InetSocketAddress socketAddress = new InetSocketAddress(inetAddress, port);
ftpClient.connect(socketAddress);
ftpClient.login(username, password.toCharArray());
...
Существует немного больше работы, связанной, но это позволяет вы не должны добавлять новую библиотеку с кучами классов, которые вам не нужны, - это зависит от того, что вы хотите сделать.