Org.apache.commons виден, но FTPClient не может быть преобразован в тип

У меня есть проект maven в eclipse.

Я добавил jar-файл apache.commons.net и создал все необходимые ссылки и зависимости.

Intelisense не видит никаких проблем, никаких красных линий.

Однако при запуске codeа из IDE происходит сбой. FTPClient не может быть преобразован в тип.

Исключение в потоке "AWT-EventQueue-0" java.lang.Error: Неразрешенные проблемы компиляции: FTPClient не может быть преобразован в тип. FTPClient не может быть преобразован в тип. FTP не может быть преобразован в переменную.

Я попробовал повторно открыть проект, удалив его из рабочей области и читая. Он компилируется с ошибками и дает сбой при запуске этого codeа.

Я добавил commons.net.jar в путь сборки и импортировал его в pom.xml

Я ожидаю, что ссылка будет видна.

Я попробовал несколько вещей, которые прочитал здесь, чтобы решить проблему с открытием org.apache.com.

Я закрыл и снова открыл и даже попытался написать новый проект, но получил ту же проблему.

Я добавил это в путь сборки и импортировал его в pom.xml

Файл находится в локальной папке lib. Версия jar — commons-net-3.11.1.jar

Я новичок в Java и не знаю, как скомпилировать проект Jframe из командной строки.

Что такое "файл сборки" и где он будет храниться, я вам его предоставлю.

POM.XML

воспроизводимый пример в проекте Java

   import org.apache.commons.net.*;
   import org.apache.commons.net.ftp.*;
   import org.apache.commons.net.ftp.FTPClient;

  private void connect(){
        FTPClient ftpClient = new FTPClient();
        try {

            USERNAME= txtUserName.getText();
            SERVERADDRESS = txtAddress.getText();
            PASS = txtPassword.toString();
              
             // Connect to the FTP server
            ftpClient.connect(SERVERADDRESS, PORT_NUM);
            ftpClient.login(USERNAME, PASS);
    
            // Set file transfer type to binary
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>MyTest1</groupId>
  <artifactId>T1B-A</artifactId>
  <packaging>jar</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>T1B-A</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
     <groupId>org.apache.commons.net</groupId>
     <artifactId>ftp</artifactId>
     <version>3.11.1</version>
    </dependency>
  </dependencies>
package myPackage;

import java.awt.EventQueue;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class Form1 extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel contentPane;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Form1 frame = new Form1();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Form1() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            MakeConnection();
        setContentPane(contentPane);
    }
    
    public static void MakeConnection() {
        FTPClient ftpClient = new FTPClient();
          try {
              // Connect to the FTP server
              String FTP_SERVER, FTP_USER, FTP_PASSWORD ;
              
              int FTP_PORT = 21;
              
              FTP_SERVER= "the address your using";
              FTP_USER = "your login name";
              FTP_PASSWORD="your password";
              
              ftpClient.connect(FTP_SERVER, FTP_PORT);
              ftpClient.login(FTP_USER, FTP_PASSWORD);

              // Set file transfer type to binary
              ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
          } catch (IOException e) {
              e.printStackTrace();
          } finally {
              try {
                  // Disconnect from the FTP server
                  if (ftpClient.isConnected()) {
                      ftpClient.logout();
                      ftpClient.disconnect();
                  }
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
        
    }
}
Авксентий
Вопрос задан26 июля 2024 г.

1 Ответ

2

Объявление зависимости выглядит неправильно. Правильная зависимость для Apache Commons Net 3.11.1

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.11.1</version>
</dependency>
Ким
Ответ получен11 сентября 2024 г.

Ваш ответ

Загрузить файл.