java dll 3d java-3d

Java 3D Hello World-Congelación de jarras



dll java-3d (2)

Hola chicos
Estoy siguiendo este tutorial para construir mi primera aplicación Java 3D. Incluí en mi proyecto las librerías java3D y mi clase DllLoader que extrae (del classpath a la ubicación del jar) y carga el archivo j3dcore-ogl.dll :

public class DllLoader { private DllLoader() { } public static void extractAndLoad(String dll) throws IOException { int aux = dll.lastIndexOf(''/''); if (aux == -1) { aux = dll.lastIndexOf(''//'); } File dllCopy = new File((aux == -1) ? dll : dll.substring(aux + 1)); try { System.load(dllCopy.getAbsolutePath()); } catch (UnsatisfiedLinkError e1) { try { DllLoader.copyFile(DllLoader.class.getResourceAsStream(dll), dllCopy); System.load(dllCopy.getAbsolutePath()); } catch (IOException e2) { } } } private static void copyFile(InputStream pIn, File pOut) throws IOException { if (!pOut.exists()) { pOut.createNewFile(); } DataInputStream dis = new DataInputStream(pIn); FileOutputStream fos = new FileOutputStream(pOut); byte[] bytes = new byte[1024]; int len; while ((len = dis.read(bytes)) > 0) { fos.write(bytes, 0, len); } dis.close(); fos.close(); } }


Todo funciona bien si ejecuto el proyecto desde Netbeans o si abro el jar desde la línea de comando con java -jar Hello3DWorld.jar" .
Mi problema es este: si ejecuto el contenedor con un simple doble clic, no pasa nada . El archivo dll aparece cerca del contenedor, pero el marco nunca aparece.
Poniendo un poco de JOptionPane.showMessageDialog() en mi código para descubrir qué está yendo mal, me di cuenta de que la ejecución no arroja ninguna excepción.
Simplemente se congela como en un bucle después de cargar el dll .
¿Puede ayudarme a entender por qué se cuelga solo haciendo doble clic en el contenedor y cuál es el problema?


Resolvió mi problema: D
Hubo un error en el Registro de Windows ... esta es la solución:
1) ejecutar regedit
2) encuentre HKEY_CLASSES_ROOT/jarfile/shell/open/command
3) asegúrese de que la ruta para javaw.exe es correcta


¿Corre siquiera? Simplemente no podría tener la asociación correcta de archivos para ejecutar archivos jar usando javaw.

Consulte esta pregunta de sobre la asociación de archivos jar.