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 |
+} |