此代碼來自我使用的庫,並且由於錯誤而反編譯。此代碼何時崩潰?
在Windows 32是否能夠正常工作,如果一個啓動該程序的用戶是計算機的管理員,否則它崩潰。在Linux上它也崩潰了。
/* */ public static String cambiaEstensione(String nomeFile, String nuovaEstensione)
/* */ {
/* 140 */ int p = nomeFile.lastIndexOf('.');
/* 141 */ if (p < 0) {
/* 142 */ return nomeFile + "." + nuovaEstensione;
/* */ }
/* 144 */ return nomeFile.substring(0, p) + "." + nuovaEstensione;
/* */ }
的函數的調用是這樣的:
/* 182 */ if (this.fl_scrivi) {
/* 183 */ stato = "Apertura archivio dichiarazioni da inviare...";
/* 184 */ this.dcm = new Dcm();
/* 185 */ this.dcm.setNomeDcm(Util.cambiaEstensione(args[2], "dcm"));
/* 186 */ this.dcm.setFileDcm(new FileOutputStream(this.dcm.getNomeDcm()));
/* */ }
唯一的例外是:
java.io.FileNotFoundException: .dcm (Accesso negato)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at it.finanze.entrate.sco.main.M77S11.elaboraFile(M77S11.java:186)
凡「配件系列negato」指「拒絕訪問」。
你能幫助我理解錯誤的原因是什麼?
UPDATE:問題的原因是,我是傳遞一個空字符串args[2]
。
在Windows上使用管理員權限也沒有崩潰,因爲它創建的文件C:\.dcm
,不知道如果我要考慮的是一個功能或錯誤。
非常感謝大家的回答。
Grazie mille Paolo!我只是將一個空字符串傳遞給該參數。 –