A. java里怎麼解決文件系統的軟連接問題
要得到准確的位置就要去掉冗餘的信息 在java7里 要弄明白文件的位置 首先可以使用normalize()方法去掉Path的冗餘信息
Path normalizedPath=Paths.get("/usr/log").normalize();
然後使用toRealPath()就可以得到准確的位置
Path realPath=Paths.get("/usr/log/log1.txt").toRealPath();
B. 在linux中,比如配置java環境變數,我直接在/usr/sbin下面做個軟連接不是也一樣,然後
如果你有不止一個版本的java,甚至不同開發組的java實現,就比較麻煩了。
你考慮的只針對你自己的情況
人家考慮的是如何適配各種不同的用戶,出發點不一樣。
C. Java資料庫連接的建立聯接
建議鏈接的五大步驟:
1載入(注冊)資料庫
2 建立鏈接
3 執行SQL語句
4 處理結果集
5 關閉資料庫
教程:JDBC 入門 作者:Maydene Fisher 翻譯:comer
你需要做的第一事情是你與想要使用的 DBMS 建立一個連接。這包含 2 個步驟:裝載驅動程序並建立連接。
裝載驅動程序
裝載驅動程序只需要非常簡單的一行代碼。例如,你想要使用 JDBC-ODBC 橋驅動程序,可以用下列代碼裝載它:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
你的驅動程序文檔將告訴你應該使用的類名。例如, 如果類名是 jdbc.DriverXYZ ,你將用代碼以下的代碼裝載驅動程序:
Class.forName("jdbc.DriverXYZ");
你不需要創建一個驅動程序類的實例並且用 DriverManager 登記它,因為調用 Class.forName 將自動將載入驅動程序類。如果你曾自己創建實例,你將創建一個不必要的副本,但它不會帶來什麼壞處。
載入 Driver 類後,它們即可用來與資料庫建立連接。
建立連接
第二步就是用適當的驅動程序類與 DBMS 建立一個連接。下列代碼是一般的做法:
Connection con = DriverManager.getConnection(url,"myLogin","myPassword");
這個步驟也非常簡單,最難的是怎麼提供 url。如果你正在使用 JDBC-ODBC 橋, JDBC URL 將以 jdbc:odbc 開始:餘下 URL 通常是你的數據源名字或資料庫系統。因此,假設你正在使用 ODBC 存取一個叫 "Fred" 的 ODBC 數據源,你的 JDBC URL 是 jdbc:odbc:Fred。把 "myLogin" 及 "myPassword" 替換為你登陸 DBMS 的用戶名及口令。如果你登陸資料庫系統的用戶名為 "Fernanda" 口令為 "J8",只需下面的 2 行代碼就可以建立一個連接:
String url = "jdbc:odbc:Fred";
Connection con = DriverManager.getConnection(url,"Fernanda","J8");
如果你使用的是第三方開發了的 JDBC驅動程序,文檔將告訴你該使用什麼 subprotocol, 就是在 JDBC URL 中放在 jdbc 後面的部分。例如,如果驅動程序開發者注冊了 acme 作為 subprotocol, JDBC URL 的第一和第二部分將是 jdbc:acme。驅動程序文檔也會告訴你餘下 JDBC URL 的格式。JDBC URL 最後一部分提供了定位資料庫的信息。
如果你裝載的驅動程序識別了提供給 DriverManager.getConnection 的 JDBC URL ,那個驅動程序將根據 JDBC URL 建立一個到指定 DBMS 的連接。正如名稱所示,DriverManager 類在幕後為你管理建立連接的所有細節。除非你是正在寫驅動程序,你可能無需使用此類的其它任何方法,一般程序員需要在此類中直接使用的唯一方法是 DriverManager.getConnection。
DriverManager.getConnection 方法返回一個打開的連接,你可以使用此連接創建 JDBC statements 並發送 SQL 語句到資料庫。在前面的例子里,con 對象是一個打開的連接,並且我們要在以後的例子里使用它。
設置表
創建表
首先,我們在我們的示例資料庫創建其中一張表 COFFEES,包含在咖啡店所賣咖啡的必要的信息,包括咖啡名字,他們的價格,本星期賣了多少磅及迄今為止賣的數目。
另外,我們應該指出的的是 SQL 語句的格式。在 CREATE TABLE 語句中,關鍵字採用大寫字元,並且每個項目都另起一行。SQL 並沒有此要求;僅僅是為了更容易閱讀。SQL 標準是不區分關鍵詞的大小寫的,
然而,引號里的內容是區分大小寫的:在名字"Washington" 里 "W" 必須被大寫,並且餘下的字元必須是小寫的。
對於標識,不同的 DBMS 有不同的要求,例如,某些 DBMSs 要求那些列名及表名必須跟創建時的一樣,有些則沒有此要求。為安全起見,我們全部使用大寫標識如 COFFEES、SUPPLIERS,因為我們是那樣定義他們的。
到止我們寫了創建 COFFEES 表的 SQL 語句,我們在它外面加上引號(使它成為字元串),並且字元串賦值給變數 createTableCoffees,在以後的 JDBC 代碼中我們可以使用此變數。正如看到的,DBMS 並不在意分行,但對 Java 語言來,String 對象分行是通不過編譯的。因而,我們可以用加號 (+) 把每一行的串連接。
String createTableCoffees = "CREATE TABLE COFFEES " +
"(COF_NAME VARCHAR(32),SUP_ID INTEGER,PRICE FLOAT," +
"SALES INTEGER,TOTAL INTEGER)";
我們在 CREATE TABLE 語句中使用的數據類型是通用的 SQL 類型(也稱 JDBC 類型)它們在類 java.sql.Types 中定義。DBMSs 通常使用這些標準的類型,因此,當你要嘗試一些 JDBC 應用程序時,你可以直接使用 CreateCoffees.java 應用程序,它使用了 CREATE TABLE 語句。如果你的 DBMS 使用了它的自己的本地的類型名字,我們為你供應其它的應用程序,我們將在後面詳細解釋。
在運用任何應用程序前,當然,我們將讓你了解 JDBC 的基礎。
創建 JDBC Statements 對象
Statement 對象用於把 SQL 語句發送到 DBMS。你只須簡單地創建一個 Statement 對象並且然後執行它,使用適當的方法執行你發送的 SQL 語句。對 SELECT 語句來說,可以使用 executeQuery。要創建或修改表的語句,使用的方法是 executeUpdate。
需要一個活躍的連接的來創建 Statement 對象的實例。在下面的例子中,我們使用我們的 Connection 對象 con 創建 Statement 對象 stmt:
Statement stmt = con.createStatement();
到此 stmt 已經存在了,但它還沒有把 SQL 語句傳遞到 DBMS。我們需要提供 SQL 語句作為參數提供給我們使用的 Statement 的方法。例如,在下面的代碼段里,我們使用上面例子中的 SQL 語句作為 executeUpdate 的參數:
stmt.executeUpdate("CREATE TABLE COFFEES " +
"(COF_NAME VARCHAR(32),SUP_ID INTEGER,PRICE FLOAT," +
"SALES INTEGER,TOTAL INTEGER)");
因為我們已經把 SQL 語句賦給了 createTableCoffees 變數,我們可以如下方式書寫代碼:
stmt.executeUpdate(createTableCoffees);
執行語句
我們使用 executeUpdate 方法是因為在 createTableCoffees 中的 SQL 語句是 DDL (數據定義語言)語句。創建表,改變表,刪除表都是 DDL 語句的例子,要用 executeUpdate 方法來執行。你也可以從它的名字里看出,方法 executeUpdate 也被用於執行更新表 SQL 語句。實際上,相對於創建表來說,executeUpdate 用於更新表的時間更多,因為表只需要創建一次,但經常被更新。
被使用最多的執行 SQL 語句的方法是 executeQuery。這個方法被用來執行 SELECT 語句,它幾乎是使用最多的 SQL 語句。馬上你將看到如何使用這個方法。
在表中輸入數據
我們已經顯示了如何通過指定列名、數據類型來創建表 COFFEES,但是這僅僅建立表的結構。表還沒有任何數據。我們將次輸入一行數據到表中,提供每列的信息,注意插入的數據顯示順序跟表創建時候是一樣的,既預設順序。
下列代碼插入一個行數據,COF_NAME 的值為 Colombian,SUP_ID 為 101,PRICE 為 7.99,SALES 0,TOTAL 0。就象創建 COFFEES 表一樣,我們創建一 Statement 對象,並執行 executeUpdate 方法。
因為 SQL 語句一行顯示不下,因此我們把它分為兩行,並用加號 (+) 相連。特別要注意的是,在 COFFEES 和 VALUES 之間要有空格。這個空格必須在引號之內並且要在 COFFEES 跟 VALUES 之間;沒有這個空格,SQL 語句將被錯誤地被讀作為 "INSERT INTO COFFEESVALUES ...",並且 DBMS 將尋找表 COFFEESVALUES。還要注意的是在 coffee name 上我們使用了單引號。
Statement stmt = con.createStatement();
stmt.executeUpdate(
"INSERT INTO COFFEES " +
"VALUES ('Colombian',101,7.99,0,0)");
下面的代碼把第二行插入到表 COFFEES 中。我們可以在使用 Statement 對象而無須為每次執行創建一個新的。
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('French_Roast',49,8.99,0,0)");
剩下行的數據如下:
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('Espresso',150,9.99,0,0)");
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('Colombian_Decaf',101,8.99,0,0)");
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('French_Roast_Decaf',49,9.99,0,0)");
從表中取得數據
既然表 COFFEES 中已經有數據了,我們就可以寫一個 SELECT 語句來取得這些值。下面的 SQL 語句中星號 (*) 表示選擇所有的列。因為沒有用 WHERE 子句來限制所選的行,因此下面的 SQL 語句選擇的是整個表。
SELECT * FROM COFFEES
結果是整個表的數據,如下:
COF_NAME SUP_ID PRICE SALES TOTAL
--------------- ------ ----- ----- -----
Colombian 101 7.99 0 0
French_Roast 49 8.99 0 0
Espresso 150 9.99 0 0
Colombian_Decaf 101 8.99 0 0
French_Roast_Decaf 49 9.99 0 0
如果你直接在資料庫系統里輸入 SQL 查詢語句,你將在你的終端上看到如上的結果。當我們通過一個 Java 應用程序存取一個資料庫時,正如我們馬上要做的一樣,我們需要檢索結果以便我們能使用他們。你將在下一節看到如何實現。
這是 SELECT 語句的另一個例子,這將得到咖啡及其各自每磅單價的列表。
SELECT COF_NAME,PRICE FROM COFFEES
查詢的結果集將具有如下形式:
COF_NAME PRICE
-------- ---------- -----
Colombian 7.99
French_Roast 8.99
Espresso 9.99
Colombian_Decaf 8.99
French_Roast_Decaf 9.99
上面 SELECT 語句取得了所有咖啡的名字及價格。而下面的 SELECT 語句限制那些每磅價格低於 $9.00 的咖啡才被選擇。
SELECT COF_NAME,PRICE
FROM COFFEES
WHERE PRICE < 9.00
結果集將具有如下形式:
COF_NAME PRICE
-------- ------- -----
Colombian 7.99
French_Roast 8.99
Colombian Decaf 8.99
JDBC 入門 -- 開始
你需要做的第一事情是你要正確的安裝。這包含下列幾個步驟:
在你的計算機上安裝 Java 和 JDBC
Java 資料庫連接 (JDBC) 是一個標准 SQL(Structured Query Language,結構化查詢語言)資料庫訪問介面,可以為多種關系資料庫提供統一訪問。JDBC(Java DataBaseConnection,Java 資料庫連接) 也提供一種基準,據此可以構建更高級的工具和介面。 JDK(Java Development Kit,Java 開發工具包)軟體捆綁包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,開放式資料庫連接)橋。這些包也可獨立得到,以跟 JDK 1.0 一起使用。應該注意的是,本文的示例使用了 JDBC 2.0 介面,需要 JDK 2.0 來運行,不能在 JDK 1.1 下運行。
你的驅動程序應該有安裝方法。為特定的 DBMSs 寫的 JDBC 驅動程序安裝時只要拷貝到你的計算機上就可以了。並不需要特殊的配置。
如果你下載的是 Solaris 或 Windows JDK1.1 版本,橋作為包 sun.jdbc.odbc 與 JDK 一起自動安裝。有關安裝和配置 ODBC 的信息,請咨詢 ODBC 驅動程序廠商。橋無須特殊配置。有關客戶機安裝和配置信息,請咨詢資料庫廠商。
如果需要,安裝資料庫系統
如果你不能確認是否安裝了資料庫系統,你需要按照供應商的要求安裝資料庫。大多數用戶都已經安裝了資料庫,可繼續使用他們安裝好的資料庫。
配置資料庫
我們假設資料庫 COFFEEBREAK 已經存在。(創建一個資料庫並不困難,但需要一定的許可權並通常是由資料庫管理員來做)你還需要在此資料庫里創建本教程作為例子使用的表。我們有意限製表的大小跟及數目,以便於管理。
假設我們的資料庫是在一個咖啡館里使用, 咖啡豆按磅賣,而咖啡則以杯為單位。為了簡單起見,還假定經營者只需要 2 張表,分別存放不同種類的咖啡及咖啡供應商的有關信息。
首先我們演示怎麼打開一個 DBMS 連接, 及 JDBC 是怎麼發送 SQL 語句到你的 DBMS。通過這些代碼,我們將表明使用 JDBC 傳遞 SQL 語句到你的 DBMS 並處理返回的結果是非常簡單的。
所有的代碼在主要的幾個 DBMS 產品做了測試。然而,如果你使用 JDBC-ODBC 橋來連接舊版本 ODBC 驅動程序時,可能會遇到一些兼容性問題。
D. java 項目jar包建立軟連接是什麼意思是不是就是把jar包添加到項目中
需求、時間、合同
需求:首先要知道客戶提的需求是什麼,需要多長時間完成。根據自己經驗分析需求是否明確,是否需要互相溝通。
時間:通過需求大致估算出自己完成時間(參考依據以往經驗、是否有東西可復用等)
合同:合同中一定要註明雙方的義務和責任,甲方變動需求是家常便飯,有必要在合同中著中提出。
寫出幾點供你參考,有問題可留言!~good luck~
E. 怎麼用java連接第三方設備,比如水表,電表
對接過 一些門鎖,說下,連接硬體的經驗吧,不一定對,首先,你連接那種 智能的硬體,這種硬體 一般會有 網卡,有了網卡,才能和別的設備連接起來,有可能是網線,或者無線WiFI,現在應該都是wifi,至少不需要網線那樣的介面,一個硬體上如果帶有網線那樣的介面,會丑的要死。有了網線,你需要去配置相關的東西,比如wifi,你至少需要把賬號密碼給它,它才能連上網。這裡面一般 製造那個硬體的公司 會開發 一個APP,通過APP,就可以去設置賬號密碼,一般情況下,APP是通過藍牙直接跟硬體交互。你能配置好wifi的賬號密碼之後,那個智能的水電表,就能連上 那個公司對應的管理平台,然後 你就能 調用那個公司對應管理平台的介面,獲取對應的數據了,也可以是操作,我對接的是門鎖,所以一般是開門,或者關門,水電表的化,應該是獲取讀數了。這是一種方式,還有另一種,會有專門的軟體,你需要把軟體安裝到自己的伺服器,同時把對應的智能硬體連接到對應的軟體上,這個就相當於伺服器,硬體都有你們自己管理了。
這裡面,其實重要的是理解計算機網路,兩個東西怎麼依賴網路連接起來。然後是 這種硬體的開發商,一般會有對應的文檔,描述怎麼對接的。多看看,然後從網路連接的角度理解下,就好了。
F. Java判斷一個文件是否是鏈接文件
這種判斷方式的依據就是,如果是鏈接文件(軟連接、硬鏈接),那麼getCanonicalFile和getAbsoluteFile的返回值是不一樣的。否則一樣。
G. 手機JAVA軟體連接網路失敗
我手機也出現過這樣的問題,我拿到賣家那,人家說參數不對,換了部新的給我
H. linux下怎麼安裝JAVA
1、准備工作:
到Oracle官網下載JDK jdk-6u31-linux-x64-rpm.bin,根據系統是32還是64位的選擇下載對應的rpm包.
根據需要選擇是否刪除linux中原有的java版本,不卸載也不會影響安裝.suse卸載java有界面操作,比較簡單,打開Yast,點開Software Management,搜索java,找到舊版本,把前面的勾去掉,點應用,就可以卸載了.也可以使用命令刪除.
先用rpm -qa | grep java 列出已安裝的版本,然後用rpm -e 已安裝版本卸載舊版本的java.
2、安裝JDK
找到下載的JDK文件,先更改文件訪問許可權,如果沒有root許可權,sudo一下.
chmod 755 jdk-6u31-linux-x64-rpm.bin
./jdk-6u31-linux-x64-rpm.bin
這個安裝過程很快,按一下回車鍵就能看到done字樣,說明安裝成功了.安裝完成後會在jdk-6u31-linux-x64-rpm.bin的當前目錄下面發現幾個*.rpm的包,使用rm *.rpm 命令刪除掉,留著也是浪費空間.
安裝的java可以在/usr/java/這個目錄里邊找到.
3、的設置
在/etc/profile文件後面加上下面內容
JAVA_HOME=/usr/java/jdk1.6.0_31
JRE_HOME=/usr/java/jdk1.6.0_31/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
添加完成後Esc一下,按:wq保存退出.
為了在當前bash環境下查看效果,輸入命令source /etc/profile.
再查看javac版本:javac -version,就能看到已經是當前安裝的版本的了.
再看一下java的版本:java -version,這里有可能還是舊版本,舊版本沒刪除,或 者刪除的時候沒刪成功.這個也好辦,將/usr/bin/java重新鏈接到/usr/java/jdk1.6.0_31/下的java上:
ln -fs /usr/java/jdk1.6.0_31/bin/java /usr/bin/java
-f表示強制 -s表示符號鏈接,有的也叫軟連接.
可以使用 ll /usr/bin/java查看是否鏈接到指定文件上.
也可以先刪除/usr/bin/java 文件,然後
ln -s /usr/java/jdk1.6.0_31/bin/java /usr/bin/java
上訴步驟執行完成之後,查看java版本發現java -version也顯示了當前安裝的版本號.
到這里linux下的java環境就搭建好了.
I. 我的諾基亞5300的JAVA軟體無法連接網路,要有經驗高手的,不要廢話
樓主,肯定你之前有待機時拔掉內存卡吧?這個很容易解決的~步驟如下→選擇想連接網路的java(不要進去)→按「選項(或者操作)」→選擇「應用軟體接入」→選擇「通訊」→選擇「網路接入」→選擇「僅第一次詢問」就OK了!樓主,以後有什麼問題都是在那個軟體接入調整的,如有不明白加我634773274
———————叉燒