Problem 於PowerMockRunner環境中,使用Files.copy且搭配ExtendedCopyOption.INTERRUPTIBLE參數時,程式會丟出java.lang.UnsupportedOperationException: Unsupported copy option例外: Files. copy ( new File ( "./test1.txt" ) . toPath ( ) , new File ( "./test2.txt" ) . toPath ( ) , ExtendedCopyOption. INTERRUPTIBLE , StandardCopyOption. REPLACE_EXISTING ) ; How to? 這問題是由於ExtendedCopyOption.INTERRUPTIBLE所造成的,我直接在@PowerMockIgnore中加入對應的套件,就順利解決這問題。 @PowerMockIgnore ( { "java.nio.*" , "sun.nio.*" , "java.util.ServiceLoader" , "com.sun.nio.*" } ) 後來查詢JDK原始碼,在JDK中的WindowsFileCopy或UnixFileCopy會做參數比較: 70 if ( option == ExtendedCopyOption. INTERRUPTIBLE ) { 71 interruptible = true ; 72 continue ; 73 } 然而在PowerMock環境中,卻無法如預期判別;於是我直接印出ExtendedCopyOption的classLoader: System . out . println ( ExtendedCopyOption. class . getClassLoader ( ) ) ; 最後發現在PowerMock環境中為MockClassLoader,而非PowerMock環境則為null(null...