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