analyze method
Implementation
EnvironmentInfo analyze() {
String? flutter, dart, channel, java;
try {
final p = Process.runSync(
Platform.isWindows ? 'cmd.exe' : 'flutter',
Platform.isWindows
? ['/c', 'flutter', '--version', '--machine']
: ['--version', '--machine']);
final data = jsonDecode(p.stdout.toString()) as Map<String, dynamic>;
flutter = data['flutterVersion']?.toString();
dart = data['dartSdkVersion']?.toString();
channel = data['channel']?.toString();
} catch (_) {}
try {
final p = Process.runSync(Platform.isWindows ? 'cmd.exe' : 'java',
Platform.isWindows ? ['/c', 'java', '-version'] : ['-version']);
final match = RegExp(r'(?:version|openjdk)\s+"?([0-9][^"\s]*)')
.firstMatch(p.stderr.toString() + '\n' + p.stdout.toString());
java = match?.group(1);
} catch (_) {}
return EnvironmentInfo(
flutterVersion: flutter,
dartVersion: dart,
flutterChannel: channel,
javaVersion: java,
javaHome: Platform.environment['JAVA_HOME'],
androidSdkPath: Platform.environment['ANDROID_SDK_ROOT'] ??
Platform.environment['ANDROID_HOME']);
}