第一步:下載并安裝JDK 6.0,安裝路勁為: C:\java\jdk1.6 .

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,礦區(qū)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:礦區(qū)等地區(qū)。礦區(qū)做網(wǎng)站價格咨詢:18982081108
第二步:對“我的電腦”按右鍵,選“屬性”,在“系統(tǒng)屬性”窗口中選“高級”標簽,再按“環(huán)境變量”按鈕,彈出一個“環(huán)境變量”的窗口,在系統(tǒng)變量中新建一個變量,變量名為“JAVA_HOME“,變量值為"C:\java\jdk1.6";如果存在"PATH"變量名,按編輯,在變量值最前面輸入"C:\java\jdk1.6\bin;".(注意以分號結(jié)尾,沒有引號.如果沒有"PATH",點擊新建一個"PATH"變量名,變量值一樣).
第三步:單擊Windows xp的“開始”-“運行”,在彈出的運行窗口中輸入cmd,按回車,打開一個命令行窗口,輸入javac,將會看見一系列javac常用參數(shù)選項. 恭喜你java環(huán)境安裝成功了.
第四步:開始編程(注意先雙擊打開"我的電腦",在"工具" -"文件夾選項" - 點擊"查看"選項 -在"高級設(shè)置"中找到"隱藏已知文件類型的擴展名"前面的小勾去掉)。在C盤的根目錄中新建一個子目錄,名為"JavaTest”,以作為存放 Java源代碼的地方。在JavaTest文件夾中,新建文本文檔, 把“新建 文本文檔.txt”改為"HelloWorld.java"。用記事本打開"HelloWorld.java", 輸入:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
System.out.println("恭喜你成功運行了第一個java應用程序!");
}
}
注意源文件名必須與類名相同,且類修飾符為public,文件名后綴為".java".保存文件.
第五步:在命令行窗口中輸入 cd C:\JavaTest,將當前路徑轉(zhuǎn)入JavaTest目錄中。然后,輸入 javac HelloWorld.java,JDK就在JavaTest文件夾中編譯生成一個HelloWorld.class的類文件。
第六步:在命令行窗口中輸入 java HelloWorld,(注意沒有.class后綴)屏幕出現(xiàn)了
Hello world!
恭喜你成功運行了第一個java應用程序!
表示成功了,也就順利地編譯及運行了第一個Java應用程序。
Web容器啟動后執(zhí)行代碼的幾種方式
其執(zhí)行順序為:
4===5===1===2===3
即指定init-method的Bean開始執(zhí)行
接著實現(xiàn)spring的Bean后置處理器開始執(zhí)行
然后是Servlet的監(jiān)聽器執(zhí)行
再接下來是Servlet的過濾器執(zhí)行
最后才是Servlet執(zhí)行
1、實現(xiàn)Servlet監(jiān)聽器接口ServletContextListener
[java] view plain copy
public class InitListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent context) {
}
@Override
public void contextInitialized(ServletContextEvent context) {
// 上下文初始化執(zhí)行
System.out.println("================[ServletContextListener]自動加載啟動開始.");
SpringUtil.getInstance().setContext(
span style="white-space:pre" /spanWebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext())
span style="white-space:pre" /span);
}
}
然后在web.xml文件配置該監(jiān)聽器
[html] view plain copy
listener
listener-classcom.test.init.InitListener/listener-class
/listener
2、實現(xiàn)Servlet的過濾器Filter
[html] view plain copy
public class InitFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,
ServletException {
}
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("================[Filter]自動加載啟動開始.");
// 讀取Spring容器中的Bean[此時Bean已加載,可以使用]
//寫啟動需要執(zhí)行的代碼
System.out.println("================[Filter]自動加載啟動結(jié)束.");
}
}
然后在web.xml文件配置過濾器即可
[html] view plain copy
filter
filter-nameInitFilter/filter-name
filter-classcom.test.init.InitFilter/filter-class
/filter
filter-mapping
filter-nameInitFilter/filter-name
url-pattern//url-pattern
/filter-mapping
3、編寫一個Servlet,在web.xml里面配置容器啟動后執(zhí)行即可
[html] view plain copy
public class InitServlet extends HttpServlet {
/**
*/
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) {
try {
super.init();
} catch (ServletException e) {
e.printStackTrace();
}
System.out.println("================[Servlet]自動加載啟動開始.");
// 讀取Spring容器中的Bean[此時Bean已加載,可以使用]
//執(zhí)行想要的代碼
System.out.println("================[Servlet]自動加載啟動結(jié)束.");
}
}
然后在web.xml文件配置該Servlet的啟動方式為:容器啟動后執(zhí)行
servlet
servlet-nameInitServlet/servlet-name
servlet-classcom.test.init.InitServlet/servlet-class
init-param
param-nameusername/param-name
param-valuetest/param-value
/init-param
!-- 此處指定加載順序為2,表明還有優(yōu)先級更高的Servlet要先執(zhí)行 --
load-on-startup2/load-on-startup
/servlet
servlet-mapping
servlet-nameInitServlet/servlet-name
url-pattern//url-pattern
/servlet-mapping
關(guān)于啟動后執(zhí)行,由load-on-startup指定:
(1)當值為0或者大于0時,表示容器在應用啟動時就加載這個servlet。值越小,啟動優(yōu)先級越高;
(2)當是一個負數(shù)時或者沒有指定時,表示該servlet被調(diào)用時才加載。
4、如果你使用Spring IOC作為Bean管理容器,那么可以指定init-method其中init-method表示bean加載成功后,立即執(zhí)行某個方法。配置如下:start為要執(zhí)行的方法名稱
[html] view plain copy
!-- service --
bean id="shopService" class="com.test.teach.service.ShopService" span style="color:#33ffff;"init-method="start"/span
property name="shopDao" ref="shopDao" /
/bean
開機自啟動
2個方式
1 是修改注冊表
2 是復制到啟動里
方法2 是拷貝文件即可
方法1 Runtime.getRuntime().exec 執(zhí)行去修改注冊表
String regKey = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
String myAppName = "zzzApp";
String exePath = "C:\\sss\\zzz.exe";//開機啟動程序本地目錄
Runtime.getRuntime().exec("reg "+(isStartAtLogon?"add ":"delete ")+regKey+" /v "+myAppName+(isStartAtLogon?" /t reg_sz /d "+exePath:" /f"));
在應用里經(jīng)常都有用到在后臺跑定時任務的需求。舉個例子,比如需要在服務后臺跑一個定時任務來進行非實時計算,清除臨時數(shù)據(jù)、文件等。在本文里,3種不同的實現(xiàn)方法:
普通thread實現(xiàn)
TimerTask實現(xiàn)
ScheduledExecutorService實現(xiàn)
1.普通thread
這是最常見的,創(chuàng)建一個thread,然后讓它在while循環(huán)里一直運行著,通過sleep方法來達到定時任務的效果。這樣可以快速簡單的實現(xiàn),代碼如下:
public class Task1 {
public static void main(String[] args) {
// run in a second
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
// ------- code for task to run
System.out.println("Hello !!");
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
2.用Timer和TimerTask
上面的實現(xiàn)是非常快速簡便的,但它也缺少一些功能。
用Timer和TimerTask的話與上述方法相比有如下好處:
當啟動和去取消任務時可以控制
第一次執(zhí)行任務時可以指定你想要的delay時間
在實現(xiàn)時,Timer類可以調(diào)度任務,TimerTask則是通過在run()方法里實現(xiàn)具體任務。
Timer實例可以調(diào)度多任務。
當Timer的構(gòu)造器被調(diào)用時,創(chuàng)建了一個線程,這個線程可以用來調(diào)度任務:
import java.util.Timer;
import java.util.TimerTask;
public class Task2 {
public static void main(String[] args) {
TimerTask task = new TimerTask() {
@Override
public void run() {
// task to run goes here
System.out.println("Hello !!!");
}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1 * 1000;
// schedules the task to be run in an interval
timer.scheduleAtFixedRate(task, delay,
intevalPeriod);
} // end of main
}
3.ScheduledExecutorService
ScheduledExecutorService是從Java SE 5的java.util.concurrent里,做為并發(fā)工具類被引進的,這是最理想的定時任務實現(xiàn)方式。
相比于上兩個方法,它有以下好處:
相比于Timer的單線程,它是通過線程池的方式來執(zhí)行任務的
可以很靈活的去設(shè)定第一次執(zhí)行任務delay時間
提供了良好的約定,以便設(shè)定執(zhí)行的時間間隔
通過ScheduledExecutorService#scheduleAtFixedRate展示這個例子,通過代碼里參數(shù)的控制,首次執(zhí)行加了delay時間:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Task3 {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
public void run() {
// task to run goes here
System.out.println("Hello !!");
}
};
ScheduledExecutorService service = Executors
.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
}
A
1.構(gòu)造函數(shù)可以是private的
2.super(1);會調(diào)用父類的Base(int i) 構(gòu)造函數(shù),輸出1
1 用Java調(diào)用windows系統(tǒng)的exe文件,比如notepad,calc之類:
public class Demo{
public static void main(String args[]){
Runtime rn=Runtime.getRuntime();
Process p=null;
try{
p=rn.exec("notepad");
}catch(Exception e){
System.out.println("Error exec notepad");
}
}
}
2 調(diào)用其他的可執(zhí)行文件,例如:自己制作的exe,或是下載安裝的軟件
public class Demo{
public static void main(String args[]){
Runtime rn=Runtime.getRuntime();
Process p=null;
try{
p=rn.exec("D:\\Program Files\\Tencent\\QQ\\QQ.exe");
}catch(Exception e){
System.out.println("Error exec AnyQ");
}
}
}
其實,1和2的區(qū)別在于你的程序是否在windows的環(huán)境變量里。如果你把QQ加入環(huán)境變量,也可以直接調(diào)用
新聞標題:java啟動代碼,java 啟動命令
URL鏈接:http://chinadenli.net/article34/hsjdpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、App開發(fā)、外貿(mào)網(wǎng)站建設(shè)、響應式網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)