簡體   English   中英

System.out.println() 不會打印到 Eclipse 中的控制台

[英]System.out.println() does not print to the console in Eclipse

我正在使用 Java 中的 Cucumber、Selenium 和 JUnit 開發測試自動化腳本。 為了快速檢測我的自定義代碼的任何問題,我在某些地方放置了System.out.println("success")System.err.println("failure") 問題是在 Eclipse 中都沒有打印到控制台。 盡管不一定使用這些工具,但我已經完成了數百次。 我懷疑 Cucumber 或 JUnit 是罪魁禍首,但在進行了一些 Google 查詢后,我找不到任何證實這一點的信息。

我確實看到了這個:

System.out.println 不在 Eclipse 控制台內打印任何內容

但這不是問題。 我的控制台都沒有顯示我的 println() 。

更新到目前為止我嘗試過的:

  1. PrintStream out = System.out; System.setOut(out); System.out.println("hello");
  2. Eclipse 控制台不顯示輸出
  3. 顯式拋出異常(導致控制台中沒有堆棧跟蹤)

所以事實證明我使用的 Eclipse 版本(Eclipse Oxygen)存在一個錯誤。 通常,在 Eclipse 中運行代碼時,代碼作為 javaw.exe 而不是 java.exe 執行。 這兩者之間的區別僅在於 javaw.exe 不使用 CMD 控制台,而 java.exe 使用 CMD 控制台。 通常 Eclipse 將使用 javaw 執行,因為它有自己的控制台,但是某些 Eclipse 版本存在一個已知錯誤,可能只是 Oxygen,Eclipse 無法正確處理此問題,因此您需要使用 java 代替。 去做這個:

轉到運行 > 運行配置 > 確保在左側選擇了具有主要方法的所需類 > 在右側選擇 JRE > 單擊運行時 JRE 部分下的備用 JRE > 在 Java 可執行文件下選擇備用並在字段中鍵入“java” > 申請

在此處輸入圖片說明

它在 Eclipse 中的一個不相關的項目中工作,而不是您當前的項目嗎? 我假設您使用的一些庫代碼調用System.setOut() (和 Err 類似)來更改打印流。 您可以嘗試的是:

PrintStream out = System.out;
...
insert your library calls here
....
System.setOut(out);
System.out.println("Test out println");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM