У меня есть проект 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();
}
}
}
}