|
Line 0
Link Here
|
|
|
1 |
--- src/com/eteks/sweethome3d/SweetHome3DBootstrap.java.orig 2015-05-21 23:38:24 UTC |
| 2 |
+++ src/com/eteks/sweethome3d/SweetHome3DBootstrap.java |
| 3 |
@@ -53,77 +53,26 @@ public class SweetHome3DBootstrap { |
| 4 |
String operatingSystemName = System.getProperty("os.name"); |
| 5 |
String javaVersion = System.getProperty("java.version"); |
| 6 |
String java7Prefix = "1.7.0_"; |
| 7 |
- if (operatingSystemName.startsWith("Mac OS X") |
| 8 |
- && javaVersion.startsWith("1.6") |
| 9 |
- && System.getProperty("com.eteks.sweethome3d.deploymentInformation", "").startsWith("Java Web Start")) { |
| 10 |
- // Refuse to let Sweet Home 3D run under Mac OS X with Java Web Start 6 |
| 11 |
- String message = Locale.getDefault().getLanguage().equals(Locale.FRENCH.getLanguage()) |
| 12 |
- ? "Sweet Home 3D ne peut pas fonctionner avec Java\n" |
| 13 |
- + "Web Start 6 sous Mac OS X de façon fiable.\n" |
| 14 |
- + "Merci de télécharger le programme d'installation depuis\n" |
| 15 |
- + "http://www.sweethome3d.com/fr/download.jsp" |
| 16 |
- : "Sweet Home 3D can't reliably run with Java Web Start 6\n" |
| 17 |
- + "under Mac OS X.\n" |
| 18 |
- + "Please download the installer version from\n" |
| 19 |
- + "http://www.sweethome3d.com/download.jsp"; |
| 20 |
- JOptionPane.showMessageDialog(null, message); |
| 21 |
- System.exit(1); |
| 22 |
- } else if (!operatingSystemName.startsWith("Mac OS X") |
| 23 |
- || javaVersion.startsWith("1.5") |
| 24 |
- || javaVersion.startsWith("1.6")) { |
| 25 |
- extensionJarsAndDlls.addAll(Arrays.asList(new String [] { |
| 26 |
- "j3dcore.jar", // Main Java 3D jars |
| 27 |
- "vecmath.jar", |
| 28 |
- "j3dutils.jar", |
| 29 |
- "macosx/gluegen-rt.jar", // Mac OS X jars and DLLs for Java 5 or 6 |
| 30 |
- "macosx/jogl.jar", |
| 31 |
- "macosx/libgluegen-rt.jnilib", |
| 32 |
- "macosx/libjogl.jnilib", |
| 33 |
- "macosx/libjogl_awt.jnilib", |
| 34 |
- "macosx/libjogl_cg.jnilib"})); |
| 35 |
- } else if (javaVersion.startsWith(java7Prefix) |
| 36 |
- && javaVersion.length() >= java7Prefix.length() + 1 |
| 37 |
- && Character.isDigit(javaVersion.charAt(java7Prefix.length())) |
| 38 |
- && (javaVersion.length() >= java7Prefix.length() + 2 // Test version on 2 digits |
| 39 |
- && Character.isDigit(javaVersion.charAt(java7Prefix.length() + 1)) |
| 40 |
- && Integer.parseInt(javaVersion.substring(java7Prefix.length(), java7Prefix.length() + 2)) < 40 |
| 41 |
- || javaVersion.length() == java7Prefix.length() + 1 // Test whether version is on 1 digit (i.e. < 40) |
| 42 |
- || !Character.isDigit(javaVersion.charAt(java7Prefix.length() + 1)))) { |
| 43 |
- // Refuse to let Sweet Home 3D run under Mac OS X with Java 7 before version 7u40 |
| 44 |
- String message = Locale.getDefault().getLanguage().equals(Locale.FRENCH.getLanguage()) |
| 45 |
- ? "Sous Mac OS X, Sweet Home 3D ne peut fonctionner avec Java 7\n" |
| 46 |
- + "qu'à partir de la version Java 7u40. Merci de mettre à jour\n" |
| 47 |
- + "votre version de Java ou de lancer Sweet Home 3D sous Java 6." |
| 48 |
- : "Under Mac OS X, Sweet Home 3D can run with Java 7 only\n" |
| 49 |
- + "from version Java 7u40. Please, update you Java version\n" |
| 50 |
- + "or run Sweet Home 3D under Java 6."; |
| 51 |
- JOptionPane.showMessageDialog(null, message); |
| 52 |
- System.exit(1); |
| 53 |
- } else { // Java >= 1.7.0_40 |
| 54 |
- extensionJarsAndDlls.addAll(Arrays.asList(new String [] { |
| 55 |
- "macosx/java3d-1.6/j3dcore.jar", // Mac OS X Java 3D 1.6 jars and DLLs |
| 56 |
- "macosx/java3d-1.6/vecmath.jar", |
| 57 |
- "macosx/java3d-1.6/j3dutils.jar", |
| 58 |
- "macosx/java3d-1.6/gluegen.jar", |
| 59 |
- "macosx/java3d-1.6/jogl-java3d.jar", |
| 60 |
- "macosx/java3d-1.6/libgluegen-rt.jnilib", |
| 61 |
- "macosx/java3d-1.6/libjogl_desktop.jnilib", |
| 62 |
- "macosx/java3d-1.6/libnativewindow_awt.jnilib", |
| 63 |
- "macosx/java3d-1.6/libnativewindow_macosx.jnilib"})); |
| 64 |
- // Disable JOGL library loader |
| 65 |
- System.setProperty("jogamp.gluegen.UseTempJarCache", "false"); |
| 66 |
- } |
| 67 |
- if ("64".equals(System.getProperty("sun.arch.data.model"))) { |
| 68 |
- extensionJarsAndDlls.add("linux/x64/libj3dcore-ogl.so"); // Linux 64 bits DLLs |
| 69 |
- extensionJarsAndDlls.add("windows/x64/j3dcore-ogl.dll"); // Windows 64 bits DLLs |
| 70 |
+ |
| 71 |
+ Boolean amd64 = "64".equals(System.getProperty("sun.arch.data.model")); |
| 72 |
+ Boolean java7 = (null!=javaVersion && javaVersion.startsWith(java7Prefix)); |
| 73 |
+ |
| 74 |
+ if (!amd64 && !java7) { |
| 75 |
+ extensionJarsAndDlls.add("/usr/local/openjdk6/jre/lib/i386/libj3dcore-ogl.so"); |
| 76 |
+ } else if (amd64 && !java7) { |
| 77 |
+ extensionJarsAndDlls.add("/usr/local/openjdk6/jre/lib/amd64/libj3dcore-ogl.so"); |
| 78 |
+ } else if (!amd64 && java7) { |
| 79 |
+ extensionJarsAndDlls.add("/usr/local/openjdk7/jre/lib/i386/libj3dcore-ogl.so"); |
| 80 |
+ } else if (amd64 && java7) { |
| 81 |
+ extensionJarsAndDlls.add("/usr/local/openjdk7/jre/lib/amd64/libj3dcore-ogl.so"); |
| 82 |
} else { |
| 83 |
- extensionJarsAndDlls.addAll(Arrays.asList(new String [] { |
| 84 |
- "linux/i386/libj3dcore-ogl.so", // Linux 32 bits DLLs |
| 85 |
- "linux/i386/libj3dcore-ogl-cg.so", |
| 86 |
- "windows/i386/j3dcore-d3d.dll", // Windows 32 bits DLLs |
| 87 |
- "windows/i386/j3dcore-ogl.dll", |
| 88 |
- "windows/i386/j3dcore-ogl-cg.dll", |
| 89 |
- "windows/i386/j3dcore-ogl-chk.dll"})); |
| 90 |
+ String message = "Your combination of JDK version and\n" |
| 91 |
+ + "hardware architecture is not supported.\n" |
| 92 |
+ + "If you think that this is an error, please\n" |
| 93 |
+ + "contact the port maintainer."; |
| 94 |
+ |
| 95 |
+ JOptionPane.showMessageDialog(null, message); |
| 96 |
+ System.exit(1); |
| 97 |
} |
| 98 |
|
| 99 |
String [] applicationPackages = { |
| 100 |
@@ -162,4 +111,4 @@ public class SweetHome3DBootstrap { |
| 101 |
// Call application class main method with reflection |
| 102 |
applicationClassMain.invoke(null, new Object [] {args}); |
| 103 |
} |
| 104 |
-} |
| 105 |
\ No newline at end of file |
| 106 |
+} |