macos - Sådan bygger du en krukke til Mac OS X 10.6 fra Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har noget problem med min Java-applikation, jeg byggede det med Eclipse under Win7 (64bit): det virker ikke på Snow Leopard 10.6.8. Fejlen er: "The JAR file .... could not be launched".


Jeg har kontrolleret, om Java blev installeret på Mac, og ja, der er JRE med 64 bit-indstillingen, der skal udføres først.


Mit program gør ikke brug af noget bestemt bibliotek:


import java.net.*;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


.. så jeg kan virkelig ikke forstå, hvorfor det ikke virker på Mac, noget forslag? Mange tak for hjælpen


UPDATE:
Ja, det virker på Windows, jeg bruger Java 6 og desværre har jeg ikke OS X, jeg har sendt min ansøgning til en ven, der har OS X, så jeg kan ikke åbne Terminal (og min ven har aldrig åbnet det sandsynligvis ...). Tak for dine forslag alligevel.


UPDATE2: Dette er outputmeddelelsen


13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]     Exception
in thread "main"
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]     java.lang.UnsupportedClassVersionError:
Main : Unsupported major.minor version 51.0
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.lang.ClassLoader.defineClass1(Native Method)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.lang.ClassLoader.defineClass(ClassLoader.java:615)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.net.URLClassLoader.access$000(URLClassLoader.java:58)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.net.URLClassLoader$1.run(URLClassLoader.java:197)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.security.AccessController.doPrivileged(Native Method)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.net.URLClassLoader.findClass(URLClassLoader.java:190)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
13/03/12 19.09.30       [0x0-0x2d52d5].com.apple.JarLauncher[44675]             at
java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Bedste reference


Du bør kun kunne dobbeltklikke på jarfilen, men hvis noget går galt, går outputen til systemloggen. Få din ven til at dobbeltklikke på jarfilen med Console-appen, der kører (i mappen Hjælpeprogrammer) og vise alle meddelelser fra systemlogfiler.


På lang sigt, hvis du vil have et godt ikon mv, skal du oprette en OS X-bund til krukken og understøtte filer. Der plejede at være et værktøj kaldet Jar Bundler for at gøre dette (kun kører på OS X), men min kopi af dev værktøjer har ikke længere det. Jeg er sikker på at du kan få det fra et eller andet sted.

Andre referencer 1


Først og fremmest sørgede jeg for, at jeg havde samme JRE, og tilsyneladende var min JRE7, så i Eclipse ændrede jeg det. Jeg ændrede også Kør/Fejlfindingskonfigurationer: i miljø -> Tilføj ny variabel DYLD\_FALLBACK\_LIBRARY\_PATH =/opt/local/lib
Hvilket skal hjælpe udførelsen på OsX. Endelig eksporterede jeg alt igen til JAR, og det fungerede også på Mac.


Tak for dit samarbejde.


Jeg håber, at dette svar kunne hjælpe nogen andre ...