Java - Problem med att köra jar-filer

Permalänk
Medlem

Java - Problem med att köra jar-filer

Jag är ny på java och jag har problem att starta körbara .jar-filer. Jag programmerar med eclipse i Linux Mint. Det går fint att kompilera och köra program i eclipse. Det går att skapa ’runnable JAR files’ under File/Export. Sen går jag in på egenskaper på jar-filen och kryssar för att göra den körbar. Det enda program jag kan starta filen med sen är ”OpenJDK Java 8 Runtime”. Men ingenting händer, alls. Jag vet inte vad jag missar.
Finns det någon som har några tips eller kan peta mig i rätt riktning?

Permalänk
Medlem

Vad skriver du för kommando för att köra den?

java -jar path/app.jar ?

Permalänk
Medlem

Jag har försökt att öppna mina filer i en filhanterare vilket fungerar med andra jar-filer. Jag vet inte om det påverkar att jag programmerar med slick2d.
Har även försökt öppna i terminalen:

java -jar Test4.jar

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at org.lwjgl.Sys$1.run(Sys.java:72)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:87)
at org.lwjgl.Sys.<clinit>(Sys.java:117)
at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
at java.security.AccessController.doPrivileged(Native Method)
at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)
at NextProg.Klass2.main(Klass2.java:35)

Permalänk
Medlem

Låter som att du kör en 64-bitars JVM men har 32-bitars bibliotek installerat.
Nu är inte jag någon höjdare på just Linux Mint, men titta i din pakethanterare och se så du kör 64-bitars på både JVM och de bibliotek du har installerade

Permalänk
Medlem

Ja, det kan kanske vara det. Fast då borde jag väl inte kunna köra programmet i eclipse, vilket jag kan?

Permalänk
Medlem

Eclipse kanske kör sina egna libs istället för natives

Permalänk
Medlem
Skrivet av Heptagon:

Jag vet inte om det påverkar att jag programmerar med slick2d.

Min personliga åsikt är att du bör skippa Slick2D. Projektet övergavs flera år sedan och var inte ens bra då. Har i princip ersatts utav LibGDX som är överlägset gentemot Slick2D.
Dessa är de spelmotorer jag rekommenderar för JVM utan någon speciell ordning:

  • LWJGL - Väldigt grundläggande standard funktionalitet men väldigt kraftfullt. Skulle inte råda om detta om du inte redan vet hur man skriver shaders och har rätt bra koll på antingen OpenGL eller Vulkan. Kan användas hur bra som helst för både 2D och 3D.

  • LibGDX - Det bästa JVM har att erbjuda för 2D spel men rätt kasst för 3D spel. Den har en del problem men är mycket enklare och har mer standard funktionalitet för 2D än LWJGL.

  • jMonkeyEngine - Bästa 3D biblioteket för JVM. Bygger på antingen LWJGL eller JOGL men har betydligt mycket mer standard funktionalitet. Sedan finns det situationer där man hellre vill köra LWJGL "bart", men JME3 går snabbare att utveckla för i de flesta fall.

Grammatik
Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.

Permalänk
Medlem
Skrivet av Heptagon:

Jag har försökt att öppna mina filer i en filhanterare vilket fungerar med andra jar-filer. Jag vet inte om det påverkar att jag programmerar med slick2d.
Har även försökt öppna i terminalen:

java -jar Test4.jar

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at org.lwjgl.Sys$1.run(Sys.java:72)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:87)
at org.lwjgl.Sys.<clinit>(Sys.java:117)
at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
at java.security.AccessController.doPrivileged(Native Method)
at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)
at NextProg.Klass2.main(Klass2.java:35)

Ditt program kräver lwjgl64 men det hittas inte. Någon på stackoverflow har haft samma problem: https://stackoverflow.com/questions/30346632/java-error-no-lw...

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Ok. Det är i så fall lockande att gå över till LibGDX. Jag tänker skapa ett enkelt 2D-spel och vill gärna att det vilar på en stabil grund. Jag är dock inte intresserad av en lång inlärningskurva då spelet ska bli klart under sommaren. Eftersom jag är ny på att programmera vet jag inte hur stor skillnad det är på olika bibliotek. Om LibGDX är lika enkelt att använda som Slick2d och om det erbjuder lika mycket dokumentation på nätet ska det nog gå bra.
Är det det någon här som har skrivit program i LibGDX?

Permalänk
Medlem

jag har prooblem med att starta en minecraft server. då filen blir en "winrar archive.jar" men jag vill ha den till. endast .jar så att den öppnar i java, annnars fungerar inte filen. Jag försöker att bara byta filnamn till .jar. då ändrar den endast namnet inget mer. jag har googlat runt en hel del och sett att folk går in i kontroll panelen och ändrar för just .jar så att det skall öppnas rätt. men när jag är där inne så hittar jag oändligt många filtyper, men inte just .jar. jag kan inte heller hitta att man kan byta program att öppna i till java. så jag vet inte riktigt hur jag ska göra för att lösa probelemet. någon som vet?