* Systray: Better detection of 64-bit Windows (tickets #756, #912)

- Don't even instantiate systray unless on 32-bit Windows
This commit is contained in:
zzz
2013-04-17 14:49:25 +00:00
parent 6af73d087b
commit 9443a96f0c
4 changed files with 21 additions and 4 deletions

View File

@ -274,7 +274,9 @@ public class RouterConsoleRunner implements RouterApp {
} else {
// required true for jrobin to work
System.setProperty("java.awt.headless", "true");
SysTray.getInstance();
// this check is in SysTray but do it here too
if (SystemVersion.isWindows() && (!Boolean.getBoolean("systray.disable")) && (!SystemVersion.is64Bit()))
SysTray.getInstance();
}
} catch (Throwable t) {
t.printStackTrace();

View File

@ -18,14 +18,25 @@ public abstract class SystemVersion {
private static final boolean _isAndroid;
private static final boolean _isApache;
private static final boolean _isGNU;
private static final boolean _is64 = "64".equals(System.getProperty("sun.arch.data.model")) ||
System.getProperty("os.arch").contains("64");
private static final boolean _is64;
private static final boolean _hasWrapper = System.getProperty("wrapper.version") != null;
private static final boolean _oneDotSix;
private static final int _androidSDK;
static {
boolean is64 = "64".equals(System.getProperty("sun.arch.data.model")) ||
System.getProperty("os.arch").contains("64");
if (_isWin && !is64) {
// http://stackoverflow.com/questions/4748673/how-can-i-check-the-bitness-of-my-os-using-java-j2se-not-os-arch
// http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx
String arch = System.getenv("PROCESSOR_ARCHITECTURE");
String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432");
is64 = (arch != null && arch.endsWith("64")) ||
(wow64Arch != null && wow64Arch.endsWith("64"));
}
_is64 = is64;
String vendor = System.getProperty("java.vendor");
_isAndroid = vendor.contains("Android");
_isApache = vendor.startsWith("Apache");

View File

@ -1,3 +1,7 @@
2013-04-17 zzz
* Console: Better handling of missing font for graphing (ticket #915)
* Systray: Better detection of 64-bit Windows (tickets #756, #912)
2013-04-16 zzz
* ClientAppManager: Add method to look up clients by class and args
* Console: Implement stopping of clients using the ClientApp interface

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 6;
public final static long BUILD = 7;
/** for example "-test" */
public final static String EXTRA = "";