你的代碼有很多問題,最主要的一個(gè)吧就是你的inverse函數(shù)的參數(shù)沒傳進(jìn)去,你自己定義一個(gè)空矩陣num[][],計(jì)算秩,怎么算都是零,然后就返回 null,自然就報(bào)空指針異常了。我改好了程序,供你參考:
為延長等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及延長網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、延長網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
import?java.util.Scanner;
public?class?Project2?{
public?static?void?main(String[]?args)?{
Scanner?input?=?new?Scanner(System.in);
System.out.println("請(qǐng)依次輸入:a11、a12、a13、a21、a22、a23、a31、a32、a33\n");
int?i,?j;
double[][]?number?=?new?double[3][3];
double[][]?number0?=?new?double[3][3];
for?(i?=?0;?i??3;?i++)
for?(j?=?0;?j??3;?j++)
number[i][j]?=?input.nextDouble();
System.out.println("Input?Matrix?is?:");
System.out.println(number[0][0]?+?"?"?+?number[0][1]?+?"?"
+?number[0][2]);
System.out.println(number[1][0]?+?"?"?+?number[1][1]?+?"?"
+?number[1][2]);
System.out.println(number[2][0]?+?"?"?+?number[2][1]?+?"?"
+?number[2][2]);
number0?=?inverse(number);
if?(number0?!=?null)?{
System.out.println("Inverse?Matrix?is?:");
System.out.println(number0[0][0]?+?"?"?+?number0[0][1]?+?"?"
+?number0[0][2]);
System.out.println(number0[1][0]?+?"?"?+?number0[1][1]?+?"?"
+?number0[1][2]);
System.out.println(number0[2][0]?+?"?"?+?number0[2][1]?+?"?"
+?number0[2][2]);
}?else
System.out.println("矩陣的秩為零");
}
public?static?double[][]?inverse(double[][]?A)?{
double?z;
double?A1,?B,?C,?D,?E,?F,?G,?H,?I;
//?double?[][]?num?=?new?double?[3][3];
double[][]?num0?=?new?double[3][3];
System.out.println("Inverse?Matrix?A?is?:");
System.out.println(A[0][0]?+?"?"?+?A[0][1]?+?"?"?+?A[0][2]);
System.out.println(A[1][0]?+?"?"?+?A[1][1]?+?"?"?+?A[1][2]);
System.out.println(A[2][0]?+?"?"?+?A[2][1]?+?"?"?+?A[2][2]);
z?=?A[0][0]?*?A[1][1]?*?A[2][2]?+?A[2][0]?*?A[0][1]?*?A[1][2]?+?A[0][2]
*?A[1][0]?*?A[2][1]?-?A[0][2]?*?A[1][1]?*?A[2][0]?-?A[0][0]
*?A[1][2]?*?A[2][1]?-?A[2][2]?*?A[1][0]?*?A[0][1];
if?(z?==?0)
return?null;
else?{
A1?=?A[0][0];
B?=?A[0][1];
C?=?A[0][2];
D?=?A[1][0];
E?=?A[1][1];
F?=?A[1][2];
G?=?A[2][0];
H?=?A[2][1];
I?=?A[2][2];
num0[0][0]?=?1?/?z?*?(E?*?I?-?F?*?H);
num0[0][1]?=?1?/?z?*?(C?*?H?-?B?*?I);
num0[0][2]?=?1?/?z?*?(B?*?F?-?C?*?E);
num0[1][0]?=?1?/?z?*?(F?*?G?-?D?*?I);
num0[1][1]?=?1?/?z?*?(A1?*?I?-?C?*?G);
num0[1][2]?=?1?/?z?*?(C?*?D?-?A1?*?F);
num0[2][0]?=?1?/?z?*?(D?*?H?-?E?*?G);
num0[2][1]?=?1?/?z?*?(B?*?H?-?A1?*?H);
num0[2][2]?=?1?/?z?*?(A1?*?E?-?B?*?D);
return?num0;
}
}
}
Connection conn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:taian", "hr", "hr"); //連接Oracle
conn.setAutoCommit(false);
Statement myStat = conn.createStatement();
String sqlTxt = "update BankAccount set account=account-" + this.amount.getText() + " where accId=" + this.payOut.getText();
System.out.println("第一步 執(zhí)行:" + sqlTxt);
//
try {
int affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println("從匯出方扣減" + this.amount.getText() + "元,修改了" + affectedRow + "行數(shù)據(jù).");
sqlTxt = "update BankAccount set account=account+" + this.amount.getText() + " where accId=" + this.saveIn.getText();
System.out.println("第二步 執(zhí)行:" + sqlTxt);
affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println("從匯入方增加" + this.amount.getText() + "元,修改了" + affectedRow + "行數(shù)據(jù).");
// 事務(wù)成功結(jié)束, 提交
conn.commit();
} catch (SQLException sqlEx) {
System.out.println
sqlEx.printStackTrace();
// 事務(wù)中斷,整體回滾到事務(wù)開始前狀態(tài)
conn.rollback();
}
myStat.close();
conn.close();
} catch (Exception ex) {
System.out.println("反正是出錯(cuò)了.");
}
}//
該過程需要經(jīng)歷四個(gè)步驟:解壓,反編譯,修改,打包。
解壓:jar文件和我們平常的rar和zip文件一樣是屬于壓縮文件,通過一般的解壓縮工具(例如:winrar)都能解壓。解壓之后生成的文件為**.class的字節(jié)碼文件。
反編譯:互聯(lián)網(wǎng)上有很多的字節(jié)碼文件反編譯工具(例如:jad)。他能夠?qū)?*.class文件或者直接能夠?qū)ar文件反編譯為**.java文件。
得到j(luò)ava文件以后就可以修改里面的源代碼了。
將修改好的代碼編譯成**.class字節(jié)碼文件以后再添加替換掉原來jar包中的class文件,或者重新將修改后的java代碼轉(zhuǎn)換成java工程,再生成jar文件都行。
這個(gè)過程的完成需要熟悉java基礎(chǔ),編譯環(huán)境等相關(guān)知識(shí)。尤其是對(duì)jar包的理解很重要。反編譯在互連網(wǎng)上就能直接找到很多工具。打包則很簡單不做累述。