Я пытаюсь запустить простую клиент-серверную программу, написанную на Java, через терминал Ubuntu.К сожалению, я могу успешно скомпилировать код, но не могу запустить код.
Код класса сервера:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public static void main(String[] args)
{
try
{
//create server Socket with demo port
ServerSocket server = new ServerSocket(20);
//wait for server connection
Socket s = server.accept();
//upon establishing connection, print
// successful message
System.out.println("connection eastablished");
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Код класса клиента:
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client
{
public static void main(String[] args)
{
try
{
//create client socket
Socket client = new Socket("127.0.0.1", 20);
//upon establishing connection, print
//successful message
System.out.println("connection eastablished");
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Во время работыв соответствии с классом, я получаю следующую ошибку:
mamun @ mamun: ~ $ java Test Error: Произошла ошибка JNI, пожалуйста, проверьте вашу установку и попробуйте снова Исключение в потоке "main"java.lang.UnsupportedClassVersionError: Test был скомпилирован более поздней версией Java Runtime (версия файла класса 55.0), эта версия Java Runtime распознает только версии файла класса до 52.0 в java.lang.ClassLoader.defineClass1 (NativeМетод) в java.lang.ClassLoader.defineClass (ClassLoader.java:763) в java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142) в java.net.URLClassLoader.defineClass (URLClassLoader.java:4).net.URLClassLoader.access $ 100 (URLClassLoader.java:73) в java.net.URLClassLoader $ 1.run (URLClassLoader.java:368) в java.net.URLClassLoader $ 1.run (URLClassLoader.java:362) в java.security.AccessController.doPrivileged (собственный метод) в java.net.URLClassLoader.findClass (URLClassLoader.java:361) в java.lang.ClassLoader.loadClass (ClassLoader.java:4).misc.Launcher $ AppClassLoader.loadClass (Launcher.java:349) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) в sun.launcher.LauncherHelper.checkAndLoadMain (Launcher * Helper.java:493 *
)*
Я пытался найти stackoverflow и другие форумы и блоги, чтобы найти решение, я нашел несколько похожих вопросов, попробовал ответы на этот вопрос, но смог найти решение для моей проблемы.Вот почему я добавляю этот вопрос сюда.
Позже я попытаюсь написать очень простую Java-программу, например, просто напечатать приветствие, эта программа также может быть скомпилирована, но не будет запускаться, производя то же самоеошибка.Я пытался запустить программу из разных папок, кроме из корневой папки.Но все усилия приводят к одному и тому же результату.
public class Test
{
public static void main(String[] args)
{
System.out.println("Hello...");
}
}
Я могу отлично работать в Eclipse, где моя java версия 8, проблема возникает только при работе в терминале.
В моей версии Ubuntu jdk 11(который был автоматически обновлен без моего ведома);Моя версия Ubuntu: 18.04.1 LTS