//?用法:Runtime.getRuntime().exec("命令");
創(chuàng)新互聯(lián)建站長(zhǎng)期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鹽田企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,鹽田網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
String?shpath="/test/test.sh";???//程序路徑
Process?process?=null;
String?command1?=?“chmod?777?”?+?shpath;
try?{?
Runtime.getRuntime().exec(command1?).waitFor();?
}?catch?(IOException?e1)?{?
e1.printStackTrace();?
}catch?(InterruptedException?e)?{?
e.printStackTrace();?
}
String?var="201102";??/參數(shù)
String?command2?=?“/bin/sh?”?+?shpath?+?”?”?+?var;?
Runtime.getRuntime().exec(command2).waitFor();
概述
具體框架使用jframe,文本框組件:JTextField;密碼框組件:JPasswordField;標(biāo)簽組件:JLabel;復(fù)選框組件:JCheckBox;單選框組件:JRadioButton;按鈕組件JButton。
登錄界面:
代碼實(shí)例
import javax.swing.*;
import java.awt.*; ? //導(dǎo)入必要的包
public class denglu extends JFrame{
JTextField jTextField ;//定義文本框組件
JPasswordField jPasswordField;//定義密碼框組件
JLabel jLabel1,jLabel2;
JPanel jp1,jp2,jp3;
JButton jb1,jb2; //創(chuàng)建按鈕
public denglu(){
jTextField = new JTextField(12);
jPasswordField = new JPasswordField(13);
jLabel1 = new JLabel("用戶名");
jLabel2 = new JLabel("密碼");
jb1 = new JButton("確認(rèn)");
jb2 = new JButton("取消");
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
//設(shè)置布局
this.setLayout(new GridLayout(3,1));
jp1.add(jLabel1);
jp1.add(jTextField);//第一塊面板添加用戶名和文本框
jp2.add(jLabel2);
jp2.add(jPasswordField);//第二塊面板添加密碼和密碼輸入框
jp3.add(jb1);
jp3.add(jb2); //第三塊面板添加確認(rèn)和取消
// ? ? ? ?jp3.setLayout(new FlowLayout()); ?//因?yàn)镴Panel默認(rèn)布局方式為FlowLayout,所以可以注銷這段代碼.
this.add(jp1);
this.add(jp2);
this.add(jp3); ?//將三塊面板添加到登陸框上面
//設(shè)置顯示
this.setSize(300, 200);
//this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle("登陸");
}
public static void main(String[] args){
new denglu();
}
}
拓展內(nèi)容
java swing包
Swing 是一個(gè)為Java設(shè)計(jì)的GUI工具包。
Swing是JAVA基礎(chǔ)類的一部分。
Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平臺(tái)運(yùn)行,這一點(diǎn)不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統(tǒng)默認(rèn)的特有主題),然而不是真的使用原生平臺(tái)提供的設(shè)備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺(tái)上使用JAVA支持的任意面板。輕量級(jí)組件的缺點(diǎn)則是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺(tái)上采用統(tǒng)一的行為。
概念解析:
JFrame?– java的GUI程序的基本思路是以JFrame為基礎(chǔ),它是屏幕上window的對(duì)象,能夠最大化、最小化、關(guān)閉。
JPanel?– Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進(jìn)行嵌套,功能是對(duì)窗體中具有相同邏輯功能的組件進(jìn)行組合,是一種輕量級(jí)容器,可以加入到JFrame窗體中。。
JLabel?– JLabel 對(duì)象可以顯示文本、圖像或同時(shí)顯示二者??梢酝ㄟ^設(shè)置垂直和水平對(duì)齊方式,指定標(biāo)簽顯示區(qū)中標(biāo)簽內(nèi)容在何處對(duì)齊。默認(rèn)情況下,標(biāo)簽在其顯示區(qū)內(nèi)垂直居中對(duì)齊。默認(rèn)情況下,只顯示文本的標(biāo)簽是開始邊對(duì)齊;而只顯示圖像的標(biāo)簽則水平居中對(duì)齊。
JTextField?–一個(gè)輕量級(jí)組件,它允許編輯單行文本。
JPasswordField?– 允許我們輸入了一行字像輸入框,但隱藏星號(hào)(*) 或點(diǎn)創(chuàng)建密碼(密碼)
JButton?– JButton 類的實(shí)例。用于創(chuàng)建按鈕類似實(shí)例中的 "Login"。
各位好我有一個(gè)問題,是這樣: 環(huán)境:有一套管理系統(tǒng)(包括聯(lián)機(jī)和批量),該管理系統(tǒng)白天運(yùn)行聯(lián)機(jī)系統(tǒng),晚上運(yùn)行批量系統(tǒng)。 目的:聯(lián)機(jī)系統(tǒng)運(yùn)行到晚上,會(huì)停掉,這時(shí)候通過在unix下的sh腳本調(diào)用并且啟動(dòng)批量系統(tǒng)。 sh腳本可以調(diào)用java程序,通過java程序就可以啟動(dòng)了批量系統(tǒng)。 andilyliao 寫道最簡(jiǎn)單的方法 你可以用java寫一個(gè)job 然后每天晚上執(zhí)行sh mginobili 寫道可以在腳本中 實(shí)現(xiàn)一個(gè)定時(shí)功能啊 比如每隔半小時(shí) 檢查一次當(dāng)前的時(shí)間 如果到了晚上 就停止聯(lián)機(jī)系統(tǒng),運(yùn)行批量系統(tǒng) 當(dāng)然前提是 這個(gè)sh腳本要一直保持運(yùn)行狀態(tài) 并且其錯(cuò)誤處理機(jī)制要完善問題補(bǔ)充:哦。你的意思是不是這樣啊, 這個(gè)sh腳本作為一個(gè)定時(shí)器,定時(shí)調(diào)用啟動(dòng)聯(lián)機(jī)系統(tǒng)或者批量系統(tǒng)的程序。 通過while(1)這樣一個(gè)循環(huán),一直運(yùn)行不中斷,然后sleep一定時(shí)間,就調(diào)用聯(lián)機(jī)的啟動(dòng)程序,再過一定時(shí)間,關(guān)閉聯(lián)機(jī)啟動(dòng)批量系統(tǒng)。
你可以使用JSch
JSch全稱是“Java Secure Channel”
是SSH2的一個(gè)純Java實(shí)現(xiàn)。它允許你連接到一個(gè)sshd 服務(wù)器,使用端口轉(zhuǎn)發(fā),X11轉(zhuǎn)發(fā),文件傳輸?shù)鹊?。同時(shí)也是支持執(zhí)行命令;
以下是大概運(yùn)行的代碼,只是提供大致思路,可以去查官方API和demo
import?com.jcraft.jsch.ChannelExec;
import?com.jcraft.jsch.ChannelSftp;
import?com.jcraft.jsch.ChannelS;
import?com.jcraft.jsch.JSch;
import?com.jcraft.jsch.JSchException;
import?com.jcraft.jsch.Session;
import?com.jcraft.jsch.SftpATTRS;
import?com.jcraft.jsch.SftpException;
.......
try{
Session?session?=?new?JSch().getSession(user,?ip,?port);
session.setPassword(pwd);
session.setConfig("StrictHostKeyChecking",?"no");
session.setConfig("userauth.gssapi-with-mic",?"no");
session.connect();
ChannelExec?exec?=?(ChannelExec)?session.openChannel("exec");
exec.setCommand("ifconfig");//這里是你要執(zhí)行的命令,部分命令不支持,具體自己執(zhí)行下
ByteArrayOutputStream?bao?=?new?ByteArrayOutputStream();
exec.setOutputStream(bao);
ByteArrayOutputStream?baerr?=?new?ByteArrayOutputStream();
exec.setErrStream(baerr);
exec.connect();
while?(!exec.isEOF())
;
String?errmsg?=?new?String(baerr.toByteArray(),?"utf-8");
if?(StringUtils.notNull(errmsg))?{
throw?new?RuntimeException(errmsg);
}?else?{
System.out.println(new?String(bao.toByteArray(),?"utf-8"));
}
}catch(Exception?e){
e.printStackTrace();
}finally{
//關(guān)閉session等操作
}