2014年12月28日 星期日

JQuery的小日曆

在撰寫html的日期選擇時,常會要求使用者使鍵入正確的日期格式,這樣才會方便後續的處理,例如進行MySQL的查詢,這時如果只是使用html中單純的text是難以規範使用者的輸入內容的,所以通常我們都會採取不讓使用者直接輸入而是用選擇的方式輸入日期資料,通常有下例幾種方式:
  1. 直接把年、月、日拆開來,分別用不同的下拉式選單讓使用者選取正確的數字,不過這種方式使用者能選擇的值是有限的,你沒有提供的數字就無法選擇。
  2. 以直觀的方式使用日曆來讓使用者選擇日期,使用者會看到日曆並直接在上面選擇。
因為JQuery十分方便,只要引用進JSP中就可以直接使用,而且日曆外觀也不錯,所以在這裡就以JQuery的小日曆為例子,來說明如實現第2種的日曆方式:
  1. 首先要在html的head中把要使用的CSS樣式、JQuery和JQuery UI引用進來,如以下的前三行程式碼,第四行程式碼是中文化的功能,不加入這行時日曆是呈現英文的界面,加入後就能顯示中文介面的日曆:
  2. <!-- 使用 jQuery -->
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/hot-sneaks/jquery-ui.css" rel="stylesheet">
    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
    
    <!-- 使用 jQuery Datepicker的中文化-->
    <script type="text/javascript" src="../jquery/jquery.ui.datepicker-zh-TW.js"></script>

2014年12月23日 星期二

&#32與&nbsp,換行空格與不換行空格

在html中常會遇到空白字符的編碼問題,而空白的常用編碼有兩個,一個是&#32,另一個是&nbsp,這兩個空白看起來一樣,卻有著不一樣的特性。

&#32是換行空格,也就是我們平常用的最普通的空白,它的特性是,如果空白後面接的字太長且超出邊界的話,後面接的文字就會強制被移動到下一行。

&nbsp是不換行空格,一般我們很少用到,或著是用到時也沒有意識到,其實它可以很簡單的一個例子來理解,例如:一公里我們會用"1 km"來表示,其中"1"和"km"有一個空格,如果我們希望不要"1"寫在一行、"km"寫在下一行,也就是希望"1 km"是一體的,一起在同一行,這時我們就會使用不換行格而不是換行空格,就像這樣:"1&nbspkm"

2014年9月25日 星期四

關於限制存取根目錄URL與welcome-file的問題記錄

這裡記錄了一個我曾經發生但不太懂的開發情況:
以下是JSP的安全權限設定:
<security-constraint>
        <display-name>ManagerConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>iBeaconServerPages</web-resource-name>
            <description>Pages of iBeacon Project Server</description>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>Manager</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <display-name>TicketCheckerConstarint</display-name>
        <web-resource-collection>
           <web-resource-name>PagesAboutTicketChecker</web-resource-name>
            <description>Pages about Ticket Checker</description>
            <url-pattern>/welcomePage.jsp</url-pattern>
            <url-pattern>/ticketCheckUsers/*</url-pattern>
            <url-pattern>/guestFlowMonitor/*</url-pattern>
            <url-pattern>/logoutPage.jsp</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>TicketChecker</role-name>
            <role-name>Manager</role-name>
        </auth-constraint>
    </security-constraint>
可以看到,在根目錄下的所有頁面將限制由Manager存取,而/welcomePage.jsp、/ticketCheckUsers/*、/guestFlowMonitor/*和logoutPage.jsp限制由Manager和TicketChecker存取,以上四個頁面在url匹配時會先在TicketCheckerConstarint的權限設定中被匹配到,所以如果不設Manager的話,Manager將無法存取。

2014年9月8日 星期一

Linux的重要相關設定、指令、好用指令

重要路徑:
Tomcat:
(1)權限設置的位置(角色、使用者、密碼等):
/usr/share/tomcat6/conf/tomcat-users.xml

(2)部署war檔的地方:
/var/lib/tomcat6

Apache:
(1)部署網頁的地方(包括php):
/var/www/html

重要指令:
(1)重啟Apache:   /etc/init.d/httpd restart
(2)重啟MySQL:  /etc/init.d/mysqld restart
(3)重啟Tomcat:  /etc/init.d/tomcat6 restart
(4)進入MySQL: mysql -u root -p (root可改不同user名稱)
(5)新增使用者帳號:useradd 帳號名稱
(6)設定使用者的密碼:passwd 帳號名稱

重要設定:
(1)設定DNS(重開機後要重設)
進入 /etc/resolv.conf
vi /etc/resolv.conf
打入以下內容
nameserver 8.8.8.8
nameserver 8.8.4.4

(2) 第一次設定 root 密碼:
sudo passwd root

好用指令:
得到上次執行的命令或角本返回的狀態值 (0 為正常,非 0 為不正常,非 0 的狀態碼由角本作者自行決定意義)
echo $?

列出所有儲存裝置資訊,包括塊磁碟分區資訊等 (list block device):
lsblk
加上 -f 參數可列出一些其他資料,例如檔案格式 (FSTYPE),如值為空則代表還未格式化,尚不具有檔案系統。

格式化區塊成檔案系統
mkfs -t <檔案格式> <要被格式化的區塊>
範例:
mkfs -t xfs /dev/xvdf

備份檔案 rsync 指令,比 cp (複制) 更多功能的 rsync 指令,像是可以顯示多檔案進度、可判斷有異動的檔案才複制等功能
範例 (-P 等同於 --progress (可顯示進度)和 --partial (保留傳輸中斷的檔案以進行續傳)、
-a 等同於 --archive,為 archive mode,等同於使用了參數 -rlptgoD +  沒有 -H,-A,-X):
rsync -aP <來源路徑> <目標路徑>

在Centos 6下安裝phpMyAdmin及Tomcat

情境:
1.系統為Centos 6
2.已裝MySQL
3.已裝php
4.已裝php-mbstring

需求:
1.欲安裝phpMyAdmin
2.欲安裝Tomcat

解法過程:
一、欲安裝phpMyAdmin
        參考資料:CentOS 6.4 (64位元) 安裝 phpMyAdmin

(1).先下載 phpMyAdmin 的壓縮檔
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.8.1/phpMyAdmin-3.5.8.1-all-languages.tar.gz

(2)對其進行解壓縮
tar -zxvf phpMyAdmin-3.5.8.1-all-languages.tar.gz

(3)將解壓縮後的 phpMyAdmin-3.5.8.1-all-languages 目錄移到 Apache 預設的網頁目錄下並重新命名為 phpMyAdmin
mv phpMyAdmin-3.5.8.1-all-languages /var/www/html/phpMyAdmin

(4)回到新放置的目綠位置
cd /var/www/html/phpMyAdmin
(5)複製範本設定檔 config.sample.inc.php 並重新命名為 config.inc.php
cp config.sample.inc.php config.inc.php
(6)進入 config.inc.php文件中修改認證操作方式
vi config.inc.php

將 $cfg['Servers'][$i]['auth_type'] = 'cookies'; 的 'cookies' 改成 'http' ,如下所示
$cfg['Servers'][$i]['auth_type'] = 'http';
(7)接著重新啟動Apache伺服器應該就能成功以localhost/phpMyAdmin為網址用瀏覽器登入phpMyAdmin了
service httpd restart

在Centos 6 下安裝遠端桌面

因為工作的關係,選用的VPS其系統改用Centos,因為在安裝遠端桌面時,跟Debian有一點不太一 樣,所以特做此紀錄,參考的資料來源為:CentOS 5/6 安裝 GNOME 與 KDE 桌面環境

在這裡,我選用KDE做為我的桌面,這裡要注意的是,Centos 6 與 Centos 5 在安裝KDE時用的包名稱上有些微的差異:

1.首先先使用以下指令安裝X windows
yum -y groupinstall 'X Window System'

2.再安裝KDE,在這邊為Centos 6版本,如果為Cemtos 5版本,指要把 'KDE Desktop' 改成 'KDE (K Desktop Environment)' 即可:
yum -y groupinstall 'KDE Desktop'  

3.安裝中文套件,不然用瀏覽器看中文網頁會變成亂碼
yum -y groupinstall "Chinese Support"

4.安裝vncserver,Centos6可安裝tigervnc-server
yum -y install tigervnc-server

5.配置KDE桌面,進入 /root/.vnc/xstartup 修改文件內容(補充:這裡如果找不到文件的話,要先打上 "vncserver" 再打上 "vncserver -kill :1" 來創建文件)
vi /root/.vnc/xstartup
並在最下面加上一行
exec /usr/bin/startkde &

這樣,遠端桌面就安裝成功了

補充:如果在使用yum安裝東西時發生了 Errno 14 Couldn't resolve host 的錯誤,表示DNS設定沒設好,可參考這篇yum 安裝時錯誤 Errno 14 Couldn't resolve host 解決辦法的解決辦法,在/etc/resolv.conf的文件中添加一行DNS的設定,如添加 8.8.8.8 (Google的DNS Server):
nameserver 8.8.8.8

2014年8月15日 星期五

網頁幾秒後自動跳轉的各種實現方法

網頁的自動跳轉有很多種方法,以下不定時更新各種實現方法:

1.html
純html可以直接在<head>的地方設置幾秒後自動跳轉,方法如下,在<head>的部份打下如下程式碼:
<meta http-equiv="refresh" content="5; url=XXX; charset=UTF-8">
其中5指的是5秒,可依情況自行更改,url為頁面自動跳轉時的目標頁面

2.Javascript
在Javascript中可以使用setTimeout,方法如下:
setTimeout('functionName( )',  XXX)
作用為XXX秒後執行名為functionName的函式

2014年8月6日 星期三

如何在html中的一個Form中使用多個按鈕進行不同動作,以JSP為例

有時我們會希望在同一個表單中(Form)建立多個按鈕來做出不同的行為,如新增、修改、刪除等不同的行為,這時我們就會用到多個按鈕,以下以JSP為例,設計name一樣,value不同的多個按鈕,form的action指向同一個Servlet,在Servlet中取得按鈕的value來知道要做什麼動作:

1.html中的程式碼如以下所示:
<form method="POST" action="XXX.do">
            <input type="submit" name="requestAction" value="新增" >
            <input type="submit" name="requestAction" value="修改" >
            <input type="submit" name="requestAction" value="刪除" >        
</form> 

2.url對應XXX.do的Servlet中的程式碼如下所示,利用名為requestAction的參數之值來判幾哪一個按鈕被按下了:
request.setCharacterEncoding("UTF-8"); //中文參數的解碼
String requestAction = request.getParameter("requestAction");
switch (requestAction) {
            case "新增":
                add();
                break;
            case "修改":
                modify();
                break;
            case "刪除":
                delete();
                break;               
        }
    }
p.s. 如果要在Java中以String型別做為switch的參數,需要使用JDK 7以上,以netBeans為例,可以以右鍵點擊專案,選擇 Properties-->Source,在下面的Source/Binary Format下拉選單中選擇JDK 7以的JDK即可

如何使用JSP的安全機制功能-以tomcat及netbeans為例

JSP的安全機制功能,可以很簡單地用宣告式的方法來進行設定,如以下步驟:

1.Tomcat中設定Role(角色)、身份(User)與密碼(Password)(採宣告方式,與程式獨立)
TomcatCatalinaHome/conf/tomcat-users.xml<tomcat-users>的標籤中,設定<user><roles>的內容,如以下所示:
<role rolename="Manager"/>
<user username="Hugo" roles="Manager" password="12345"/>

</tomcat-users>

意涵為有一個角色為Manager,有一個身份為Hugo,其角色為Manager,密碼為12345

其中CatalinaHome的位置可以在netBeans中Server按右鍵選擇Properties查得,如下圖所示:
2.之後在netBeans中打開web.xml,加入如以下標籤內容:

在JSP及Servlet之間傳送中文參數

在開發JSP、Servlet動態網頁時,常常會用到參數在頁面之間進行傳遞,例如在把一個JSP中的表單(Form)中的參數值傳給要處理的Servlet時,在Servlet端通常會使用如
request.getParameter("參數名值對中的名")

的指令去取傳進來的參數。在英文的環境下這些都是沒有問題的,不過如果現在要傳的參數值是中文時,就會發生得不到正確參數值的情況,遇到這種情況時,就必須要考慮到送收雙方的編碼一致問題,以下是兩種此問題發生的解法,分為參數傳送時是用GET還是POST,兩種情況的處理方式不相同,無法混用:

一、參數傳送是用GET時
假設送收雙方都決定要以UTF-8送收
1.送方因為是想要讓中文參數能利用URL傳遞,所以要進行遍碼,例如要傳送一個名為"requestAction"、值為"修改"的參數時,要用呼叫URLEncoder.encode()方法來進行參數的編碼,如下例所示

網址/request=<%= URLEncoder.encode("修改", "UTF-8")%>

2.收端要使用一樣的編碼來進行解碼,如下所示

String requestAction = new String(request.getParameter("requestAction").getBytes("ISO-8859-1"), "UTF-8");

上面程式碼的意思是將收到的參數從「ISO-8859-1」轉成「UTF-8」,如果伺服器的預設解碼不是「ISO-8859-1」的話要記得改成相應的編碼。
如果是Tomcat,可以在CatalinaHome/conf/server.xml中找到如下列字樣
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
此列表示預設編碼為「UTF-8」,如果沒有「URIEncoding="utf-8"」的話也可自己加入。
要注意的是如使用NetBeans的IDE來開發的話,它是用模擬的Tomcat Server來Run模擬結果的,所以這裡用的server.xml也是模擬的,可以在NetBeans中的Servers對Tomcat按右鍵選「Edit server.xml」來更改設置,如下圖:


二、參數傳送是用POST時
假設送收雙方都決定要以UTF-8送收
1.送方(通常為JSP)要設定用UTF-8送出資料,如加上以下程式碼(以JSP為例):
<%@page contentType="text/html" pageEncoding="UTF-8"%>

2.收方(通常為Servlet)要設定用UTF-8解碼接收的資料,如在取值之前加上以下程式碼(以Servlet為例):
 request.setCharacterEncoding("UTF-8"); //中文參數的解碼
解完碼後,再進行取值,如以下程式碼:
String requestParam = request.getParameter("gotParam");
這樣就可以正確地得到中文參數了

附錄:
在這篇Tomcat與UTF-8編碼中,有講到如何設定Tomcat可以對Get及Post的參數使用自訂如UTF-8的編碼來進行解碼。

2014年6月18日 星期三

[短片分享] The Trip - 迷幻藥駕駛眼中的奇怪旅程

今天的影片帶有一點奇妙風格,為什麼不說奇幻或夢幻,因為它 帶有一點點黑色的怪異幽默,片中的車子就像是在酒醉的車主一樣,一會忽大一會忽小,開著開著就不知道開到哪裡去了,像是從嗑了迷幻藥的駕駛看整個行駛過程一樣,開車的過程中有奇怪的泡泡漂浮著、不斷變化的七彩色、怪異像山一樣高的人、長著翅膀飛在空中的車子,配上Cheiro Verde的配樂,讓人覺得奇妙又詭異,或許這就是酒駕人的奇特視角吧,雖然有趣,還是不要隨便喝酒上路啊。

影片連結(by antonio vicentini):

2014年6月14日 星期六

在Linux下使用Tomcat、JSP連Mysql資料庫(配合Netbeans IDE)

在Linux下如果要使用及開發JSP動態網頁的話,通常會選擇使用Tomcat來作為JSP的伺服器,以下介紹如何在Linux的環境下安裝Tomcat

1.到Apache Tomcat的官網上下載Tomcat,下載下來後將個資料夾解壓縮後放到要配置的路徑下,這裡選擇/usr/share/java下,路徑可以自選,為了方便起見,以下用 $CATALINA_HOME  稱呼

補充:有人說還要再進行環境變數等設置,不過我沒有設就直接成功了,需要設的人可以參考這篇文這篇文

2.在命令列指令界面中到$CATALINA_HOME/bin下,打上以下指令開啟動Tomcat,
./startup.sh
及使用以下指令關閉Tomcat
./shutdown.sh
這時可能會發現有錯誤發生,通常為對資料夾權限不夠的關係,這時可參考這篇文的作法,回到$CATALINA_HOME路徑上一層的路徑中,打上以下指令開放權限
 
sudo chmod 755 -R 你的Tomcat資料夾名稱/*

3.啟動Tomcat後,打開瀏覽器在網址列打上 http://localhost:8080  就可連上Tomcat的預設管理頁面

接著要介紹如何簡單地配合Netbeans IDE來建立能連上Mysql資料庫的JSP網頁

2014年6月13日 星期五

如何接收GCM Server發送的Registration ID訊息,以php、Java及JSP為例

在行動裝置安裝了有GCM功能的App之後,會根據App的功能進行Registration ID的註冊,接著將會將Registration ID傳送到後台,後台收到Registration ID後就可以對之做相應的處理,例如此篇文章就採取將Registration ID存進資料庫的處理。

以下後台的範例程式有兩個版本,一個為php、另一為Java,共同的環境為:

1.資料庫此例為MySql,假設相關資訊為
   Host : localhost
   User : userName
   Password :  pass
   Database :  DB_Name
   Table      :   TB_Name
   Table只有一個欄位,名為regId,存放著Registration ID

2.行動裝置使用了POST傳送方式,資料內容沒有使用JSON等格式,為最普通的名值對,如以下所示

regId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
一、首先是php版本
<?php
    //建立跟資料庫的連接
    $dbhost = 'localhost';
    $dbuser = 'userName';
    $dbpass = 'pass';
    $dbname = 'DB_Name';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');
    mysql_query("SET NAMES 'utf8'");
    mysql_select_db($dbname);
   //從行動裝置的傳來訊息中,獲取Registration ID
    if(isset($_POST['regId']))
    {
        $regId = $_POST['regId'];
        $sql = "INSERT INTO TB_Name(regId) VALUES ('$regId')";    新增資料進資料庫中
        mysql_query($sql) or die('MySQL query error');
    }
?>
二、JAVA版本(使用Apache的HttpClient)

2014年6月10日 星期二

如何向GCM Server傳送資料,以php、Java及JSP為例

向Google申請GCM成功,得到API Key、行動裝置也成功向GCM Server註冊得到Registration ID後,就可以開始由後台向GCM Server發送訊息,GCM成功拿到訊息之後,就會開始向對應Registration ID的行動裝置轉送訊息,當然,GCM Server並不會儲存Registration ID,Registration ID要由後台連同訊息一起傳給GCM Server才行。

以下的程式碼之先行作業為:
1.已向Google申請並得到API Key,假設為apiKey

2.行動裝置已經向GCM Server註冊得到了Registration ID,並已經將Registration ID傳給後台並存進資料庫中

3.資料庫此例為MySql,假設相關資訊為
   Host : localhost
   User : userName
   Password :  pass
   Database :  DB_Name
   Table      :   TB_Name
   Table只有一個欄位,名為regId,存放著Registration ID

一、先從php開始

2014年5月29日 星期四

如何在Linux的Debian系統中安裝phpMyAdmin

今天要紀錄的是如何在Linux的Debian系統中安裝phpMyAdmin,因為工作需要,同仁希望能使用資料可視化界面操作MySql而非純指令界面,於是上網尋找正確安裝並成功執行phpMyAdmin的方法,之前雖然成功安裝了phpMyAdmin,但卻卡在無法使用瀏覽器執行這步上,找了許多文之後,參考了以下這篇文

在Ubuntu上安裝Apache、MySql和PHP,配置php開發環境

成功地進行了phpMyAdmin的安裝與執行,重點為安裝完、修改文檔後要記得把/usr/share/phpMyAdmin的資料夾移到/var/www,特此在這邊紀錄下安裝與執行的過程

因為我的Debian系統已經裝了Apache和MySQL,所以跳過以下的步驟1和步驟2,直接從第3步驟開始

1.安裝佈署好Apache
2.安裝佈署好MySQL
3.因為phpMyAdmin是使用php寫成,所以我們要使用以下指令安裝php 5和 Apache php 5 module
apt-get install php5 libapache2-mod-php5
安裝完以後執行以下指令以進行Apache的重啟
/etc/init.d/apache2 restart
重啟後,可以先寫一個php網頁放到/var/www資料中測試看看能不能在瀏覽器中成功執行此php網頁,範例內容如:
<?php
echo "helloworld";
?>
假如檔名叫做 "test.php" 的話,打開瀏覽器,在網址列鍵入 "http://localhost/test.php" ,如果成功的話,應該要可以看到頁面顯示一行 "helloworld" 的文字
4.接著鍵入以下幾個命令,命令的意思我並不是很清楚,大概是要讓Apache和MySQL連接及php和MySQL連接吧

爐石戰記: 終極資料片,燃燒巫妖王之浩劫與潘達利亞之霸

<<爐石戰記>>推出了終極資料片,名為HearthStone: Heroes of Ligh King's Burning Cataclysm & Warlords of Pandaria,燃燒巫妖王之浩劫與潘達利亞之霸,名稱是不是有拗口,沒關係,這次的內容可以說是相當豐富,為了避免劇透,先來看看終極資料片的介紹影片吧!




2014年5月28日 星期三

如何安裝Oracle的JDK至Linux系統

為了在Linux系統上執行Java程式及編譯Java程式,我們必須在系統上安裝JVM及JDK(通常安裝好JDK就有JVM,而有JVM不代表有JDK),我租的VPS雲端伺服器上裝的Debian的Linux系統,其已經有安裝OpenJDK,不過我對這不太懂,也好像不能正常編譯Java檔案(我想可能是環境變數的問題),查詢了網上許多資料後,發現大家都比較喜歡Oracle公司提供的JDK,於是決定從善如流,安裝Oracle的JDK而非系統本身自帶的OpenJDK,參考了這篇文章(基於debian(ubuntu)的JDK安裝與卸載-vps環境搭建實錄(一))以後,順利地安裝了JDK並編譯執行Java檔案、程式成功,這邊記錄安裝的過程。

P.S. 雖然網上都建意要先移除OpenJDK,不過試了以後發現不用移除也能正常運作,在不衝突的情況下,倒可不必先移除OpenJDK。

1.首先先上Oracle的官網進行Linux版本的JDK下載,這裡我選擇的是與參考文章一樣的版本:jdk-6u38-linux-i586.bin

2.將下載下來的JDK檔案上傳到自己的雲端伺服器上後,使用SSH等方式進入放置JDK的資料夾,打上以下的指令執行JDK的安裝(注意下載的版本,指令請自行更改)
./jdk-6u38-linux-i586.bin

3.如果JDK因為權限問題無法安裝(會出現Pemission denied訊息),可用參考文章中所提及的兩種方法解決,我自己是用第一種方式解決
(1)在前面加上sudo sh ./jdk-6u38-linux-i586.bin
(2)添加權限再執行 sudo chmod u+x jdk-6u38-linux-i586.bin

4.接著要進行環境變數的設置,使用以下指令打開 "/etc/profile" 並對其內容進行修改
vi /etc/profile
在內容的後面加上以下代碼
#set java environment
export JAVA_HOME=/usr/local/jdk1.6.0_38
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
改完存檔後退出

5.接著要讓環境變數生效,我自己的方法是reboot系統讓其重新開機,應該也有更好的方法

6.接著就可打上
java

javac
看有無運作正常,也可使用
java -version
檢查版本

7.需要注意的是,如果發現使用 "java Java程式" 指令無法執行副檔名為class的Java程式,有可能是使用不同版本JDK編譯導致,這時可將原始碼(副檔名為java)上傳到Linux系統上後,直接在Linux系統上使用 "javac Java原始碼.java" 的指令對原始碼進行編譯並生成class檔,這時再用 "java Java程式" 的指令執行class檔應該就可以成功了。

補充:如果要讓除root以外的使用者使用java及javac指令的話,要打入 "visudo" 指令將使用者加入權限才行,如下(假設使用者叫做   testUser)

# User privilege specification
root ALL=(ALL:ALL) ALL
testUser ALL=(ALL:ALL) ALL

2014年5月26日 星期一

Linux 桌面可視化安裝及遠端連線(Gnome, TightVNC)

一般Linux做為伺服器時是不太需要桌面可視化介面的,只需要使用終端機(terminal)式的命令例視窗,用指令的方式操做即可,不過如果要做為個人電腦的作業系統來使用時,為了平常的日常作業方便性、及一些需要桌面顯示的軟體等原因,使用桌面圖型化的方式是比較容易操做的,如果是本地端的話,安裝桌面及使用的方式還比較容易,而如果是要連上遠端如雲端伺服器等的Linux系統的話,就必需要使用如VNC的方式來連上遠端的Linux桌面。

因為工作的關係,需要安裝Linux桌面及使用VNC的方式連上遠端的Linux桌面,找了資料後發現一篇非常有參考價值的文章(Linux VPS 安裝桌面並遠程登錄),順利地完成了我的工作,特別記錄下執行工作的過程。

1.先使用SSH的方式連上遠端Linux系統(參考:Pietty - Telnet/SSH 連線軟體),登入後打上
apt-get -y install gnome-core
進行Linux桌面程式的安裝,這裡選擇的是Gnome

2.接著我們必須在Linux上安裝VNC server軟體來在要連的Linux系統端開啟VNC接口,打上
apt-get -y install vnc4server
來安裝相關軟體,這裡選擇的是VNC4Server

3.接著要修改相關文件(補),打上(補充:這裡如果找不到文件的話,要先打上 "vncserver" 再打上 "vncserver -kill :1" 來創建文件)
vi /root/.vnc/xstartup
進入文件中,註釋掉x-terminal-emulator和x-window-manager兩行,然後再最後增加一行
gnome-session &,完成的文件內容應該長的如下所示:

FileZila - SFTP、FTP工具

之前因為計劃的關係,需要將檔案上傳到租用的Linux雲端伺服器上,於是開始尋找可以使用SFTP方式上傳檔案的軟體,發現了FileZila這套軟體,使用起來感覺還不錯,特別記錄下來。我所下載的是繁體中文版,連結如下:

下載FileZila繁體中文版
下載連結來源網址:http://briian.com/5627/filezilla.html

詳細的操作在下載連結來源網址中都有介紹到,這裡只做重要的重點記錄。
安裝完FileZila並開啟後,可以看到上方有需要填的要連線目的端的相關資料,跟一般使用FTP的方式一樣,只要打上連線目的端的IP位址、要登入的使用者名稱、密碼,按下 "快速連線" 按鈕就可以開始連線,在主機IP的部份不用在前面特別打上sftp://,而連接埠也不用特打,FileZila就可以自己進行連線,連上後就可以進行如FTP的各種檔案行為工作,如新增、刪除、遷移等。


2014年5月25日 星期日

Pietty - Telnet/SSH 連線軟體

最近在進行一個專案計劃,利用了Linux系統做為伺服器,並為了省去設定、設備等的問題,採用了租用雲端伺服器的方式,也藉著此機會嘗試雲端架設伺服器的方式及可行性。為了連上雲端伺服器的Linux系統並下達指令,開始尋找有能力能夠;以SSH方式連接伺服器的軟體,並發現了這套小巧簡單的軟體 "Pietty",Pietty 源自於 Putty, Putty也是一個Telnet/SSH的連線軟體,但沒有亞洲等國家的語言介面且使用方式較為複雜,Pietty將其操作方式式簡化及增加了如中文等亞洲語言介面,成了一個對於國人較簡單容易使用的Telnet/SSH軟體,其免安裝的版本可從以下的連結進行下載:

下載Putty
載點來源網站:http://www.ascc.sinica.edu.tw/putty

要使用時只要點擊下載下來的Putty執行檔,即可使用,注意下圖的紅框處,打上雲端伺服器的IP位址,選擇Port 22和勾選SSH連接方式後,就可按下 "連線 " 鈕進行連接了


2014年3月20日 星期四

Ideone - 好用的線上編譯網站(可編譯C++、Java、Ada等)


Ideone是一個簡單好用的線上編譯網站,有時候我們會想要測試一下想到的演算法是否正確,或者是想要測試一下簡單的程式碼,可是偏偏在用的電腦不是自己的或是上面根本就沒有裝任何的編譯軟體,也有可能是只裝了Visual Studio C++卻想要測試Java,或是想要測試少用程式語言的程式碼,如Ada、COBOL、Perl等,Ideone線上編譯就是一個非常好的選擇。

http://ideone.com/

上面的連結可以連到Ideone的官網,介面如下所示

當按下左下角的Java按鈕,就可以看到全部支援的程式語言,非常的多種,重要的是有很多都是平常不會特別去裝編譯器的程試語言,如下所示