ในกรณีของฉันมันเป็นปลั๊กอิน Maven Failsafe ที่ทำให้เกิดการขโมยโฟกัสของหน้าต่างที่น่ารำคาญของ ForkedBooter และการตั้งค่าJAVA_TOOL_OPTIONS
ตัวแปรใน.bashrc
ไม่ได้ช่วยอะไร
การแก้ไขนี้ใช้กับทั้ง Failsafe และ Surefire (แม้ว่าในกรณีของฉัน Surefire ไม่ได้ขโมยโฟกัส)
ในของคุณpom.xml
เพิ่ม<argLine>-Djava.awt.headless=true</argLine>
บรรทัดภายใน<configuration>
สำหรับปลั๊กอินที่ไม่ปลอดภัย (และ / หรือ) surefire
มันจะมีลักษณะเช่นนี้:
<!-- this is inside your <project><build><plugins> block -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration>
<includes>
<include>**/unit/**/*Test*.java</include>
</includes>
<!-- prevent the annoying ForkedBooter process from stealing window
focus on Mac OS -->
<argLine>-Djava.awt.headless=true</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven.failsafe.plugin.version}</version>
<configuration>
<!-- prevent the annoying ForkedBooter process from stealing window
focus on Mac OS -->
<argLine>-Djava.awt.headless=true</argLine>
<includes>
<include>**/integration/**/*Test*</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>