mam problem z pisaniem gry

0

jest taki błąd/error:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Gra/Polacy/GrajMaf/Main has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

a kod źródłowy pliku main:


package Gra.Polacy.GrajMaf;

import javax.swing.*;

import org.apache.logging.log4j.Logger;

import com.google.gson.Gson;
import com.sun.istack.internal.Nullable;

import Gra.Polacy.info.EventHandler;

import org.apache.logging.log4j.LogManager;

import ibxm.*;




public class Main extends JFrame implements Runnable 
{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 7667830679557742029L;

	private IBXM ibxm;

	private Gson gson;

	private Gra.Polacy.info.jfrom<Main> jfrom = new Gra.Polacy.info.jfrom<Main>();
	public Main()
	{
		ibxm = new IBXM(8013);
		
		java.lang.reflect.Type typ = null;
		try {
			typ = java.lang.reflect.Type.class.newInstance();
		} catch (InstantiationException | IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		gson = new Gson();
		gson.notify();
		
		gson.fromJson("main.json", typ);
		
		
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(780 + this.getInsets().bottom + this.getInsets().top, 780 + this.getInsets().left + this.getInsets().right);
	}
	
	
	
	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		new Main().start();
	}

	private Thread t;
	
	@Nullable
	private static final Logger LOGGER = LogManager.getRootLogger();
	private static boolean RUNNING;
	
	

	
	
	@EventHandler
	private synchronized void start() 
	{
		
		
		
		t = new Thread(this, "Gra");
		RUNNING = true;
		t.start();
		
	}

	
	public static synchronized void stop(Thread t1)
	{
		RUNNING = false;
		t1.stop();
	}
	
	@Override
	public void run() {
		
		while(RUNNING)
		{
			ibxm.next_tick();
			
		}
		
	}

}


używam bibliotek: gson, ibxm(zmodyfikowałem) , guava, jinput, log4j api oraz core i jna

1

zaktualizuj Javę

0

jest aktualna więc nie wiem.

0

"Exception in thread "main" java.lang.UnsupportedClassVersionError: Gra/Polacy/GrajMaf/Main has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0"

"Wyjątek w wątku "main" java.lang.UnsupportedClassVersionError..." -> https://docs.oracle.com/javase/10/docs/api/java/lang/UnsupportedClassVersionError.html

"...Gra/Polacy/GrajMaf/Main została skompilowana przez nowszą wersję Java Runtime (wersja pliku klasy 53.0), ta wersja Java Runtime rozpoznaje jedynie wersje pliku klasy do 52.0"

Nie znam się na Javie, ale mnie to wygląda, jakbyś kompilował program w jednym środowisku (=== w jednym systemie), a uruchamiał w drugim. Może aktualizacja środowiska Javy (JRE) jednak pomoże, a przynajmniej instalacja tej samej jego wersji?


UPDATE: Podaj, w jakiej wersji Javy ten program był kompilowany (jeśli możesz to sprawdzić), a jaką masz zainstalowaną. Tzn. sprawdź – i napisz tutaj, jeśli rzeczywiście są to te same wersje; wtedy będziemy szukać czego innego.

0

mam jave 9.0.4 ale używam i odpalam w ósemce gdy kompiluję na 9 to taki sam error

2

I dokładnie dlatego Ci nie działa.
Jak kompilujesz pod 9 to na 8 nie zadziała.

1

A dokładniej jest tak: w opcjach kompilacji (zależne od używanego narzędzia) określasz, na jakiej javie ma to chodzić. Na przykład: kompiluję na 9, ale będzie chodzić na 7. Jak zostawiłeś ustawienia domyślne, to będzie chodzić tylko na Javie >= 9.

0
jarekr000000 napisał(a):

I dokładnie dlatego Ci nie działa.
Jak kompilujesz pod 9 to na 8 nie zadziała.

lecz gdy kompiluje na 9 to ten sam error więc...

1 użytkowników online, w tym zalogowanych: 0, gości: 1