如何檢測代碼是否在Eclipse中運行IDE如何檢測代碼在eclipse IDE中運行
回答
我不知道通用的方式來獲取這種信息。
一個建議:
當您啓動Tomcat的內部Java程序(或Web服務器),只需添加一個參數,這將表明,這種程序是由Eclipse的啓動。
您可以通過打開「打開運行對話框」(「運行」菜單),然後選擇您的應用程序類型並在「參數」選項卡中添加一個-DrunInEclipse=true
。
在Java代碼中,你可以檢查屬性的值:
String inEclipseStr = System.getProperty("runInEclipse");
boolean inEclipse = "true".equalsIgnoreCase(inEclipseStr);
這樣,如果程序沒有在Eclipse中運行(或者不幸的是,如果你忘了設置該屬性),該屬性將是null
然後布爾inEclipse
將等於假。
+1用於設置顯式運行時選項。 – Thilo
實際上我正在尋找通用的方法。 –
我不認爲有什麼辦法做到這一點。但是,我建議僅僅是一個命令行參數,如「調試」。然後在你的主要方法只是做
if (args.length > 0 && args[0].equalsIgnoreCase("debug")) {
// do whatever extra work you require here or set a flag for the rest of the code
}
這樣你也可以得到你的額外的代碼來運行,只要你通過specifiying調試參數,但它永遠不會執行正常情況下只想要。
其實代碼不被在Eclipse中運行,但在通過啓動Eclipse獨立的Java進程,並有每默認沒有通過Eclipse的工作讓比你的程序的任何其他調用任何不同。
是你想知道的東西,如果你的程序正在調試器下運行?如果是這樣,你不能肯定地說。你可以,但是,檢查用於調用你的程序的參數,看看是否存在有什麼你不喜歡的。
如果使用調試器運行,將會有一些類似於-agentlib的參數:jdwp = transport = dt_socket,suspend = y,address = localhost:2124,可以從ManagementFactory.getRuntimeMXBean()。getInputArguments()。get(
@saugata - 與Oracle JVM i –
@ThorbjørnRavnAndersen...如不能正確引用我們不想插入的參數,例如''* .txt.gz''? –
你可以嘗試這樣的事:
if (ClassLoader.getSystemResource("org/eclipse/jdt/core/BindingKey.class")!=null){
System.out.println("Running within Eclipse!!!");
} else {
System.out.println("Running outside Eclipse!!!");
}
沒有。我在Eclipse中運行,但代碼輸出相反... – BullyWiiPlaza
1)創建像一個輔助方法:
public boolean isDevelopmentEnvironment() {
boolean isEclipse = true;
if (System.getenv("eclipse42") == null) {
isEclipse = false;
}
return isEclipse;
}
2)環境變量添加到您的啓動配置:
3)使用示例:
if (isDevelopmentEnvironment()) {
// Do bla_yada_bla because the IDE launched this app
}
如果您的工作區的一些模式相匹配,如 「/ home/user中/工作區/工程」,你可以使用下面的代碼:
Boolean desenv = null;
boolean isDevelopment() {
if (desenv != null) return desenv;
try {
desenv = new File(".").getCanonicalPath().contains("workspace");
}
catch (IOException e) {
e.printStackTrace();
}
return desenv;
}
一個更通用的,精確的方法,可以在任何IDE使用將在在Loop:
ManagementFactory.getRuntimeMXBean().getInputArguments()
尋找「-Xdebug」|| (以「-agentlib:jdwp =」開頭)。
我來自@saugata評論here。
這是非常好的,如果你想拋出一個條件異常,防止應用程序退出。使用像「ideWait」這樣的布爾值,並將其作爲ideWait = false添加到Eclipse監視表達式中,因此,無論何時停止在該擲時,都可以繼續進行調試(我的意思是!)
這可能工作,如果你選擇的執行工作流程提供了一組不同的依賴關係:
boolean isRunningInEclipe = false;
try {
Workbench.getInstance();
isRunningInEclipe = true;
} catch (NoClassDefFoundError error) {
//not running in Eclipse that would provide the Workbench class
}
如果你是一個JAR內部或沒有,你可以發現按Can you tell on runtime if you're running java from within a jar?
Eclipse會從classes/
目錄運行你的應用程序,而大多數最終用戶將從JAR運行應用程序。
以下應該工作。
儘管我同意將代碼檢測爲單個IDE作爲開發環境並不是最佳解決方案。在運行時使用標誌更好。
public static boolean isEclipse() {
boolean isEclipse = System.getProperty("java.class.path").toLowerCase().contains("eclipse");
return isEclipse;
}
- 1. 如何在Eclipse中運行Scala代碼
- 2. 如何在eclipse中運行PHP代碼
- 3. 如何在Eclipse IDE中運行scala BDD測試
- 4. 如何運行JS銫在Eclipse IDE
- 5. 如何在Eclipse基礎Force.com IDE中執行代碼對齊
- 6. 如何在Eclipse IDE中自動計算代碼行?
- 7. 在本地Eclipse IDE上從Linux運行Java源代碼
- 8. 如何在Eclipse(Scala IDE)中使用scalatest測量測試運行時間?
- 9. 如何在Eclipse中測試java代碼?
- 10. 如何在Python中檢查代碼的運行時間。 PyCharm是我的IDE
- 11. 如何在Visual Studio代碼中運行所有測試代碼
- 12. 在運行時檢測產品代碼或測試代碼是否在Swift中
- 13. 如何在Eclipse中運行cunit測試?
- 14. 如何在Eclipse中運行Spock測試
- 15. 如何在Eclipse中運行Clojure測試?
- 16. 如何檢測特定的Delphi IDE是否正在運行?
- 17. 檢測代碼的第一次運行
- 18. 在eclipse中運行快速代碼測試
- 19. Eclipse IDE的運行錯誤
- 20. 無法使Eclipse IDE運行
- 21. Eclipse未運行Java代碼
- 22. 如何運行我的代碼測試
- 23. 如何在eclipse IDE中保存運行和調試配置
- 24. 如何在Eclipse IDE中運行簡單的C程序
- 25. 在Android中使用Eclipse IDE進行代碼混淆處理
- 26. 如何在eclipse kepler中運行Spring 4示例代碼?
- 27. 如何在eclipse中運行sencha觸摸代碼
- 28. 如何在eclipse中構建代碼之前運行vcvars32.bat?
- 29. Eclipse如何檢測代碼中的錯誤
- 30. 如何運行基本的OpenCL人臉檢測代碼
你必須詳細說明。什麼是上下文?你想達到什麼目的? –
我想執行一些額外的代碼,以防在Eclipse IDE中運行 –
什麼附加代碼? –