aboutsummaryrefslogtreecommitdiff
path: root/find_java2/FindJava2/FindJava2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'find_java2/FindJava2/FindJava2.cpp')
-rwxr-xr-xfind_java2/FindJava2/FindJava2.cpp199
1 files changed, 0 insertions, 199 deletions
diff --git a/find_java2/FindJava2/FindJava2.cpp b/find_java2/FindJava2/FindJava2.cpp
deleted file mode 100755
index 1435e1b0d..000000000
--- a/find_java2/FindJava2/FindJava2.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
-* Copyright (C) 2014 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include "stdafx.h"
-#include "FindJava2.h"
-#include "utils.h"
-#include "JavaFinder.h"
-#include "FindJava2Dlg.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#endif
-
-// The one and only MFC application object
-class CFindJava2App : public CWinApp {
-public:
- CFindJava2App() {
- }
-
- // Set CWinApp default registry key. Must be consistent with all apps using findjava2.
- void initRegistryKey() {
- SetRegistryKey(_T("Android-FindJava2"));
- }
-};
-
-CFindJava2App theApp;
-
-using namespace std;
-
-int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) {
-
- // Init utils; use default app name based on VERSIONINFO.FileDescription
- initUtils(NULL);
-
- // initialize MFC and print and error on failure
- HMODULE hModule = ::GetModuleHandle(NULL);
- if (hModule == NULL) {
- displayLastError(_T("Fatal Error: "));
- return -2;
- }
- if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0)) {
- displayLastError(_T("Fatal Error: "));
- return -3;
- }
-
- theApp.initRegistryKey();
-
- gIsConsole = true; // tell utils to to print errors to stderr
- gIsDebug = (getenv("ANDROID_SDKMAN_DEBUG") != NULL);
-
- // Parse command line
- bool doTests = false;
- bool doShortPath = false;
- bool doVersion = false;
- bool doJavaW = false;
- bool doForceUi = false;
- bool doJava1_7 = false;
-
- for (int i = 1; i < argc; i++) {
- if (_tcsnccmp(argv[i], _T("-t"), 2) == 0) {
- doTests = true;
-
- } else if (_tcsnccmp(argv[i], _T("-d"), 2) == 0) {
- gIsDebug = true;
-
- } else if (_tcsnccmp(argv[i], _T("-s"), 2) == 0) {
- doShortPath = true;
-
- } else if (_tcsnccmp(argv[i], _T("-v"), 2) == 0) {
- doVersion = true;
-
- } else if (_tcsnccmp(argv[i], _T("-f"), 2) == 0) {
- doForceUi = true;
-
- } else if (_tcsnccmp(argv[i], _T("-7"), 2) == 0) {
- doJava1_7 = true;
-
- } else if (_tcscmp(argv[i], _T("-w")) == 0 || _tcscmp(argv[i], _T("-javaw")) == 0) {
- doJavaW = true;
-
- } else {
- printf(
- "Outputs the path of the first Java.exe found on the local system.\n"
- "Returns code 0 when found, 1 when not found.\n"
- "Options:\n"
- "-h / -help : This help.\n"
- "-t / -test : Internal test.\n"
- "-f / -force : Force UI selection.\n"
- "-7 : Java 1.7 minimum instead of 1.6.\n"
- "-s / -short : Print path in short DOS form.\n"
- "-w / -javaw : Search a matching javaw.exe; defaults to java.exe if not found.\n"
- "-v / -version: Only prints the Java version found.\n"
- );
- return 2;
- }
- }
-
-
- CJavaFinder javaFinder(JAVA_VERS_TO_INT(1, doJava1_7 ? 7 : 6));
- CJavaPath javaPath = javaFinder.getRegistryPath();
-
- if (doTests) {
- std::set<CJavaPath> paths;
- javaFinder.findJavaPaths(&paths);
- bool regPrinted = false;
- for (const CJavaPath &p : paths) {
- bool isReg = (p == javaPath);
- if (isReg) {
- regPrinted = true;
- }
- _tprintf(_T("%c [%s] %s\n"), isReg ? '*' : ' ', p.getVersion(), p.mPath);
- }
-
- if (!regPrinted && !javaPath.isEmpty()) {
- const CJavaPath &p = javaPath;
- _tprintf(_T("* [%s] %s\n"), p.getVersion(), p.mPath);
- }
- return 0;
- }
-
- if (doForceUi || javaPath.isEmpty()) {
- CFindJava2Dlg dlg;
- dlg.setJavaFinder(&javaFinder);
- INT_PTR nResponse = dlg.DoModal();
-
- if (nResponse == IDOK) {
- // Get java path selected by user and save into registry for later re-use
- javaPath = dlg.getSelectedPath();
- javaFinder.setRegistryPath(javaPath);
- } else if (nResponse == -1) { // MFC boilerplate
- TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n");
- return 1;
- }
- }
-
- if (javaPath.isEmpty()) {
- fprintf(stderr, "No java.exe path found");
- return 1;
- }
-
- if (doShortPath) {
- PVOID oldWow64Value = disableWow64FsRedirection();
- if (!javaPath.toShortPath()) {
- revertWow64FsRedirection(&oldWow64Value);
- _ftprintf(stderr,
- _T("Failed to convert path to a short DOS path: %s\n"),
- javaPath.mPath);
- return 1;
- }
- revertWow64FsRedirection(&oldWow64Value);
- }
-
- if (doVersion) {
- // Print version found. We already have the version as an integer
- // so we don't need to run java -version a second time.
- _tprintf(_T("%s"), javaPath.getVersion());
- return 0;
- }
-
- if (doJavaW) {
- // Try to find a javaw.exe instead of java.exe at the same location.
- CPath javawPath = javaPath.mPath;
- javawPath.RemoveFileSpec();
- javawPath.Append(_T("javaw.exe"));
- javawPath.Canonicalize();
-
- // Only accept it if we can actually find the exec
- PVOID oldWow64Value = disableWow64FsRedirection();
- bool exists = javawPath.FileExists() == TRUE; // skip BOOL-to-bool warning
- revertWow64FsRedirection(&oldWow64Value);
-
- if (!exists) {
- _ftprintf(stderr,
- _T("Failed to find javaw at: %s\n"),
- javawPath);
- return 1;
- }
-
- javaPath.mPath = javawPath;
- }
-
- // Print java.exe path found
- _tprintf(_T("%s"), javaPath.mPath);
- return 0;
-
-}