2016-08-30 12 views
5

デバッグセッションと起動セッションの間に次のような異なる動作が発生する可能性はありますか?大文字と大文字と小文字の区別デバッグ時の環境変数の名前

eclipse-debugとmaven-runでは、すべての環境変数を大文字で取得しますが、eclipse-runではWindowsで定義されたものが残ります。

@Test 
public void testEnvironmentVariables() { 
    ArrayList<String> keys = new ArrayList<>(System.getenv().keySet()); 
    Collections.sort(keys); 
    System.out.println(keys); 
} 

出力実行によって実行された場合:デバッグによって実行された場合http.proxyUser

[=::, ALLUSERSPROFILE, APPDATA, APR_ICONV_PATH, CLASSPATH, CLINK_DIR, COMPUTERNAME, ChocolateyBinRoot, ChocolateyInstall, ComSpec, CommonProgramFiles, CommonProgramFiles(x86), CommonProgramW6432, DEBUG_PORT, DEFLOGDIR, EC_COMPUTER_OU, EC_HOMEAPPDATA, EC_USER_DEPARTMENT, EC_USER_DG, EC_USER_DISPLAY_NAME, EC_USER_ELK, EC_USER_OU, EXTRA_JAVA_PROPERTIES, FP_NO_HOST_CHECK, GRADLE_HOME, HOMEDRIVE, HOMEPATH, JAVA_HOME, JAVA_OPTS, LDMS_LOCAL_DIR, LOCALAPPDATA, LOGONSERVER, LocalRunSetup, M2, M2_HOME, M2_REPO, MAVEN_OPTS, MW_HOME, NUMBER_OF_PROCESSORS, ORACLE_BASE, ORACLE_HOME, OS, PATH2, PATHEXT, PROCESSOR_ARCHITECTURE, PROCESSOR_IDENTIFIER, PROCESSOR_LEVEL, PROCESSOR_REVISION, PSModulePath, PUBLIC, Path, ProgramData, ProgramFiles, ProgramFiles(x86), ProgramW6432, SBT_HOME, SESSIONNAME, SFT_SOFTGRIDSERVER, SystemDrive, SystemRoot, TEMP, TMP, USERDNSDOMAIN, USERDOMAIN, USERDOMAIN_ROAMINGPROFILE, USERNAME, USERPROFILE, UUMDS_CFG, VAGRANT_HOME, VBOX_MSI_INSTALL_PATH, VSEDEFLOGDIR, chocolatey_bin_root, debugFlag, http.proxyHost, http.proxyPassword, http.proxyPort, http.proxyUser, http_proxy, https.proxyHost, https.proxyPassword, https.proxyPort, https.proxyUser, https_proxy, myProxy, no_proxy, uumds.config.location, windir, windows_tracing_flags, windows_tracing_logfile]

出力に気づく:通知HTTP.PROXYUSER

[ALLUSERSPROFILE, APPDATA, APR_ICONV_PATH, CHOCOLATEYBINROOT, CHOCOLATEYINSTALL, CHOCOLATEY_BIN_ROOT, CLASSPATH, CLINK_DIR, COMMONPROGRAMFILES, COMMONPROGRAMFILES(X86), COMMONPROGRAMW6432, COMPUTERNAME, COMSPEC, DEBUGFLAG, DEBUG_PORT, DEFLOGDIR, EC_COMPUTER_OU, EC_HOMEAPPDATA, EC_USER_DEPARTMENT, EC_USER_DG, EC_USER_DISPLAY_NAME, EC_USER_ELK, EC_USER_OU, EXTRA_JAVA_PROPERTIES, FP_NO_HOST_CHECK, GRADLE_HOME, HOMEDRIVE, HOMEPATH, HTTP.PROXYHOST, HTTP.PROXYPASSWORD, HTTP.PROXYPORT, HTTP.PROXYUSER, HTTPS.PROXYHOST, HTTPS.PROXYPASSWORD, HTTPS.PROXYPORT, HTTPS.PROXYUSER, HTTPS_PROXY, HTTP_PROXY, JAVA_HOME, JAVA_OPTS, LDMS_LOCAL_DIR, LOCALAPPDATA, LOCALRUNSETUP, LOGONSERVER, M2, M2_HOME, M2_REPO, MAVEN_OPTS, MW_HOME, MYPROXY, NO_PROXY, NUMBER_OF_PROCESSORS, ORACLE_BASE, ORACLE_HOME, OS, PATH, PATH2, PATHEXT, PROCESSOR_ARCHITECTURE, PROCESSOR_IDENTIFIER, PROCESSOR_LEVEL, PROCESSOR_REVISION, PROGRAMDATA, PROGRAMFILES, PROGRAMFILES(X86), PROGRAMW6432, PROMPT, PSMODULEPATH, PUBLIC, SBT_HOME, SESSIONNAME, SFT_SOFTGRIDSERVER, SYSTEMDRIVE, SYSTEMROOT, TEMP, TMP, USERDNSDOMAIN, USERDOMAIN, USERDOMAIN_ROAMINGPROFILE, USERNAME, USERPROFILE, UUMDS.CONFIG.LOCATION, UUMDS_CFG, VAGRANT_HOME, VBOX_MSI_INSTALL_PATH, VSEDEFLOGDIR, WINDIR, WINDOWS_TRACING_FLAGS, WINDOWS_TRACING_LOGFILE]

のmavenから実行した場合:https://www.eclipse.org/forums/index.php?t=msg&th=77986&goto=242568&#msg_242568が、任意の答えなし:私はここに同様の質問を見つけHTTP.PROXYUSER testEnvironment=[=::, =C:, =EXITCODE, ALLUSERSPROFILE, APPDATA, APR_ICONV_PATH, CHOCOLATEYBINROOT, CHOCOLATEYINSTALL, CHOCOLATEY_BIN_ROOT, CLASSPATH, CLASSWORLDS_JAR, CLASSWORLDS_LAUNCHER, CLINK_DIR, COMMANDER_DRIVE, COMMANDER_EXE, COMMANDER_INI, COMMANDER_PATH, COMMONPROGRAMFILES, COMMONPROGRAMFILES(X86), COMMONPROGRAMW6432, COMPUTERNAME, COMSPEC, DEBUGFLAG, DEBUG_PORT, DEFLOGDIR, EC_COMPUTER_OU, EC_HOMEAPPDATA, EC_USER_DEPARTMENT, EC_USER_DG, EC_USER_DISPLAY_NAME, EC_USER_ELK, EC_USER_OU, ERROR_CODE, EXEC_DIR, EXTRA_JAVA_PROPERTIES, FP_NO_HOST_CHECK, GRADLE_HOME, HOME, HOMEDRIVE, HOMEPATH, HTTP.PROXYHOST, HTTP.PROXYPASSWORD, HTTP.PROXYPORT, HTTP.PROXYUSER, HTTPS.PROXYHOST, HTTPS.PROXYPASSWORD, HTTPS.PROXYPORT, HTTPS.PROXYUSER, HTTPS_PROXY, HTTP_PROXY, JAVA_HOME, JAVA_OPTS, LDMS_LOCAL_DIR, LOCALAPPDATA, LOCALRUNSETUP, LOGONSERVER, M2, M2_HOME, M2_REPO, MAVEN_CMD_LINE_ARGS, MAVEN_JAVA_EXE, MAVEN_OPTS, MAVEN_PROJECTBASEDIR, MW_HOME, MYPROXY, NO_PROXY, NUMBER_OF_PROCESSORS, ORACLE_BASE, ORACLE_HOME, OS, PATH, PATH2, PATHEXT, PROCESSOR_ARCHITECTURE, PROCESSOR_IDENTIFIER, PROCESSOR_LEVEL, PROCESSOR_REVISION, PROGRAMDATA, PROGRAMFILES, PROGRAMFILES(X86), PROGRAMW6432, PROMPT, PSMODULEPATH, PUBLIC, SBT_HOME, SESSIONNAME, SFT_SOFTGRIDSERVER, SYSTEMDRIVE, SYSTEMROOT, TEMP, TMP, USERDNSDOMAIN, USERDOMAIN, USERDOMAIN_ROAMINGPROFILE, USERNAME, USERPROFILE, UUMDS.CONFIG.LOCATION, UUMDS_CFG, VAGRANT_HOME, VBOX_MSI_INSTALL_PATH, VSEDEFLOGDIR, WDIR, WINDIR, WINDOWS_TRACING_FLAGS, WINDOWS_TRACING_LOGFILE]

に気づきます。

私はWindows7の上java8を使用してEclipseベースのネオンてる

>java -version 
java version "1.8.0_77" 
Java(TM) SE Runtime Environment (build 1.8.0_77-b03) 
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) 

Eclipse Java EE IDE for Web Developers 
Version: Neon Release (4.6.0) 
Build id: 20160613-1800 

> mvn -version 
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00) 
Maven home: C:\costin\apps\apache-maven-3.3.3 
Java version: 1.8.0_77, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.8.0_77\jre 
Default locale: en_GB, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 
+0

同じ注文をしていないガレージなし。無作為に指定することはできません(少なくとも将来は)。同じVMバージョンを使用していますか? –

+2

@PeterRader、私は彼が変数の場合を指していると思います。順序自体ではありません。良い質問です。 –

+0

@XtremeBikerああ、その場合? http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/ProcessEnvironment.java#71で埋め込まれたハッシュマップが異なるため、この点が悪い質問です。 –

答えて

1

あなたはJPDAを使用してデバッグされていません。 JPDAを使用すると、Systemで使用されているのとまったく同じHashMapが表示されます。キーの順序が異なるため、2つの異なるVM実行を使用する必要があります。これは100%Javaデバッグではありません。

異なる2つのプロセスでは、環境変数の前にsystem-propertyを使用することで、実行に異なる名前を付けることができます。

+0

主張されている主張の違いから奇妙な結論を引き出しています。まず、同じキーが存在する限り、順序は異なりません。第二に、順序が異なっていない理由は、print文の前に明示的な 'Collections.sort(keys)'があるからです。 – Holger

+0

あなたはそうです私はJPDAを使ってデバッグしていません。私は日食でこれをやっている。テスト・クラスを実行します。実行メニューから実行> JUnitテストまたは実行>デバッグ> Junitテストを選択して、テスト・クラスを実行します。 – raisercostin

+0

@Holger私は本当に 'uumds.config.location'が間違った位置にあると思います! –

関連する問題