當前位置:首頁 » 編程語言 » javawindows程序

javawindows程序

發布時間: 2022-09-20 13:07:31

Ⅰ 如何用java啟動windows命令行程序

先請編譯和運行下面程序:

import java.util.*;
import java.io.*;

public class BadExecJavac2
{

public static void main(String args[])

{

try

{

Runtime rt = Runtime.getRuntime();

Process proc = rt.exec("javac");

int exitVal = proc.waitFor();

System.out.println("Process exitValue: " + exitVal);

} catch (Throwable t){

t.printStackTrace();

}

}
}

我們知道javac命令,當不帶參數運行javac
程序時,它將輸出幫助說明,為什麼上面程序不產生任何輸出並掛起,永不完成呢?java文檔上說,由於有些本地平台為標准輸入和輸出流所提供的緩沖區大小
有限,如果不能及時寫入子進程的輸入流或者讀取子進程的輸出流,可能導致子進程阻塞,甚至陷入死鎖。所以,上面的程序應改寫為:

import java.util.*;

import java.io.*;

public class MediocreExecJavac

{

public static void main(String args[])

{

try

{

Runtime rt = Runtime.getRuntime();

Process proc = rt.exec("javac");

InputStream stderr = proc.getErrorStream();

InputStreamReader isr = new InputStreamReader(stderr);

BufferedReader br = new BufferedReader(isr);

String line = null;

System.out.println("");

while ( (line = br.readLine()) != null)

System.out.println(line);

System.out.println("");

int exitVal = proc.waitFor();

System.out.println("Process exitValue: " + exitVal);

} catch (Throwable t){

t.printStackTrace();

}

}

}

下面是正確的輸出:

D:\java>java MediocreExecJavac

Usage: javac <options>

where possible options include:

-g Generate all debugging info

-g:none Generate no debugging info

-g:{lines,vars,source} Generate only some debugging info

-nowarn Generate no warnings

-verbose Output messages about what the compiler is doing

-deprecation Output source locations where deprecated APIs are used

-classpath Specify where to find user class files

-cp Specify where to find user class files

-sourcepath Specify where to find input source files

-bootclasspath Override location of bootstrap class files

-extdirs Override location of installed extensions

-endorseddirs Override location of endorsed standards path

-d Specify where to place generated class files

-encoding Specify character encoding used by source files

-source Provide source compatibility with specified release

-target Generate class files for specific VM version

-version Version information

-help Print a synopsis of standard options

-X Print a synopsis of nonstandard options

-J Pass directly to the runtime system

Process exitValue: 2

D:\java>

下面是一個更一般的程序,它用兩個線程同步清空標准錯誤流和標准輸出流,並能根據你所使用的windows操作系統選擇windows命令解釋器command.com或cmd.exe,然後執行你提供的命令。

import java.util.*;

import java.io.*;

class StreamGobbler extends Thread

{

InputStream is;

String type; //輸出流的類型ERROR或OUTPUT

StreamGobbler(InputStream is, String type)

{

this.is = is;

this.type = type;

}

public void run()

{

try

{

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

String line=null;

while ( (line = br.readLine()) != null)

{

System.out.println(type + ">" + line);

System.out.flush();

}

} catch (IOException ioe)

{

ioe.printStackTrace();

}

}

}

public class GoodWindowsExec

{

public static void main(String args[])

{

if (args.length < 1)

{

System.out.println("USAGE: java GoodWindowsExec ");

System.exit(1);

}

try

{

String osName = System.getProperty("os.name" );

System.out.println("osName: " + osName);

String[] cmd = new String[3];

if(osName.equals("Windows XP") ||osName.equals("Windows 2000"))

{

cmd[0] = "cmd.exe" ;

cmd[1] = "/C" ;

cmd[2] = args[0];

}

else if( osName.equals( "Windows 98" ) )

{

cmd[0] = "command.com" ;

cmd[1] = "/C" ;

cmd[2] = args[0];

}

Runtime rt = Runtime.getRuntime();

System.out.println("Execing " + cmd[0] + " " + cmd[1]+ " " + cmd[2]);

Process proc = rt.exec(cmd);

// any error message?

StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");

// any output?

StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");

// kick them off

errorGobbler.start();

outputGobbler.start();

// any error???

int exitVal = proc.waitFor();

System.out.println("ExitValue: " + exitVal);

} catch (Throwable t){

t.printStackTrace();

}

}

}

下面是一個測試結果:

D:\java>java GoodWindowsExec " Test.java Test1.java"

osName: Windows XP

Execing cmd.exe /C Test.java Test1.java

OUTPUT>已復制 1 個文件。

ExitValue: 0

D:\java>

下面的測試都能通過(windows xp+jdk1.5)

D:\java>java GoodWindowsExec dir

D:\java>java GoodWindowsExec Test.java

D:\java>java GoodWindowsExec regedit.exe

D:\java>java GoodWindowsExec NOTEPAD.EXE

D:\java>java GoodWindowsExec first.ppt

D:\java>java GoodWindowsExec second.doc

function TempSave(ElementID)

{

CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);

CommentsPersistDiv.save("CommentXMLStore");

}

function Restore(ElementID)

{

CommentsPersistDiv.load("CommentXMLStore");

document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");

}

Ⅱ java的程序在windows能運行嗎

JAVA的代碼都是在JVM中運行的,依賴運行環境但並不依賴操作系統。windows只要安裝JRE就可以運行JAVA程序。

Ⅲ 為什麼用java開發windows桌面程序那麼麻煩

為了兼容,導致java的桌面框架要跨平台。也就是說一套代碼windows,linux,mac都能用。而桌面程序是依賴於底層的系統框架的。各有特色,如果要兼容,只能拿公共屬性出來。這樣導致整個系統非常不好用。

Ⅳ 如何把一個Java程序做成Windows服務

1、下載wrapper-windows-x86-32系列的工具包,解壓縮為<wrapper-home>。
2、新建一個目錄,例如:C:\MyServerApp,並在其下面創建五個文件夾
分別為:
bin 可執行程序文件夾
conf 配置文件夾
lib wrapper自身的jar包文件夾
logs 日誌文件夾包
application 新建一個class用於存放應用程序的class文件, 此包下還新建一個lib 用於存放應用程序所需要的 jar包。
3、將<wrapper-home>\src\bin 中的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in等文件
與<wrapper-home>\bin 下的wrapper.exe復制到bin 目錄下,並且將App.bat.in,InstallApp-NT.bat.in,
UninstallApp-NT.bat.in等的後綴.in去掉。
將<wrapper-home>\src\conf 下的wrapper.conf文件和<wrapper-home>\conf 下的wrapper-license復制到conf目錄下,wrapper-license文件一定不能少
將<wrapper-home>\lib 下的wrapper.jar,wrappertest.jar和wrapper.dll文件復制到lib目錄下
最終的包結構可以是這樣子的:
C:\MyServerApp
|-bin
|-App.bat
|-InstallApp-NT.bat
|-UninstallApp-NT.bat
|-wrapper.exe
|-lib
|-wrapper.jar 必須要的
|-wrappertest.jar
|-wrapper.dll
|-conf
|-wrapper.conf
|-wrapper-license
|-logs
|-wrapper.log
|-application
|-lib 應用程序中如果用到了jar包,那麼就復制到此文件夾里
|-class 用來存放應用程序(一般應用程序是有包結構的,就把工程裡面的bin目錄下的.class文件連同包一起拷過來)
4、配置Wrapper工具的wrapper.conf配置文件
配置Java 虛擬機的位置
wrapper.java .command=C:\Program Files\Java \jdk1.6.0_07\bin\java
配置wrapper的主類,如果用他的代理方式,就填org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper.java .mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
工具尋找jar包以及應用程序的路徑
wrapper.java .classpath.1=../lib/wrappertest.jar
wrapper.java .classpath.2=../lib/wrapper.jar
wrapper.java .classpath.3=../lib/wrapper.dll
應用程序連同其文件夾一起拷到application文件夾下了,所以路徑只需要指定到../application/
wrapper.java .classpath.4=../application/class
應用程序要用到的所有jar包
wrapper.java .classpath.5=../application/lib/*.jar
wrapper.java .library.path.1=../lib
wrapper.java .additional.1=-Dprograme.name=run.bat
要將哪一個應用程序做成服務,就要把他的主函數所在的類名 寫在這里
wrapper.app.parameter.1=com.luke.service.server.TcpServer
wrapper.console.format=PM
wrapper.console.loglevel=INFO
指定日誌記錄的地方
wrapper.logfile=../logs/wrapper.log
wrapper.logfile.format=LPTM
wrapper.logfile.loglevel=INFO
wrapper.logfile.maxsize=0
wrapper.logfile.maxfiles=0
wrapper.syslog.loglevel=NONE
wrapper.console.title=Wrapper Application
wrapper.ntservice.name=@wrapper @
wrapper.ntservice.displayname=@WrapperApplication @
wrapper.ntservice.description=@WrapperDescription @
wrapper.ntservice.dependency.1=
wrapper.ntservice.starttype=AUTO_START
wrapper.ntservice.interactive=false
5、運行cmd
cd c:\MyServerApp\bin
App.bat測試不會將把你的應用(此處為server)安裝到Win32系統服務中
InstallApp.bat安裝 後才將把你的應用(此處為server)安裝到Win32系統服務中

Ⅳ 怎麼才能在Windows系統裡面運行Java程序

要編譯JAVA程序 要安裝 開發環境(JDK)和編譯環境(編譯工具)下面是jdk的配置: 1、jdk及JDK API Doc J2SDK 1.4.0 下載地址file://Pingserver/share/DevelopSoft/Java/J2SDK J2SDK-1_4_0-doc 下載地址file://Pingserver/share/DevelopSoft/Java/J2SDK 建議把doc解壓縮到c:\j2sdk1.4.0\docs目錄下 2、配置環境變數 安裝了jdk以後,要配置環境變數 我的電腦->屬性->高級->環境變數 添加以下環境變數(假定你的java安裝在c:\j2sdk1.4.0) java_home=c:\j2sdk1.4.0 classpath=.;c:\j2sdk1.4.0\lib\dt.jar;c:\j2sdk1.4.0\lib\tools.jar;(.;一定不能少,因為它代表當前路徑) path = c:\j2sdk1.4.0\bin 新開一個命令提示符窗口,(開始-程序-運行-CMD)鍵入java和javac測試一下 如果出現一堆關於JDK的詳細信息說明安裝成功。2.下載編譯工具推薦eclipse下載地址: http://wlzx.zzuli.e.cn/download/eclipse.rar

Ⅵ 如何下載適用於Windows的Java程序

目前Java已經逐漸被其它更優越的系統取代了,但是仍然有一些網頁需要穩定的運行插件的環境需要安裝適應於Windows的Java程序,雷鋒崔老師今天就來教授大家如何下載Java。

進入Java的官網網站,找到下載Java的選項。目前Java的下載都是免費的,用戶注意下載正版的Java。

另外,用戶不必擔心能否選擇到適應於自己台式機的Java為Java軟體提供一個適合的運行環境,Java的官方會為你配置好的。

點擊上圖的「免費Java下載」後,系統會為你選擇適用於Windows的Java軟體。系統默認的是最新版本,大小約為897KB。下載完成的非常快速

下載完成後,因為用戶使用的是瀏覽器下載一般不是很好找到下載的文件的位置,雷鋒崔老師就演示一下如何找到瀏覽器的下載文件。以某歌瀏覽器為例。

瀏覽器界面右上角三條橫線的控制選項,左擊。

這個控制選項就在網址框的最右邊,左擊後出現選項。選擇其中的「下載內容」選項。用戶就可以看到自己剛剛和以前通過該瀏覽器下載過的文件了。

在瀏覽器的下載內容界面中選擇剛剛我們下載的Java,左擊一下。

出現運行前的安全警告,正常提示,不要理會,點擊運行。

准備安裝Java

點擊運行後,系統進入「Java安裝」程序,界面顯示「歡迎使用Java」,其實還需要很長的安裝等待。

用戶選擇更改目標文件夾,之後再點擊安裝

下載安裝程序

Java的下載速度非常快,因為文件本身就不大。但是其下載安裝程序的時間真的是讓人等的著急。需要20分鍾以上的時間,用戶耐心的等待吧。

下載安裝程序後系統提示選擇Java的目標文件夾,因為剛剛在准備安裝時,我們已經選擇了更改目標文件夾才會有這樣的提示。現在選擇一個空閑的非系統盤來進行下載吧。

最後一步:啟動Java

在完成所有的醫生操作後,系統會提示關閉正在使用Java的程序,用戶點擊「關閉程序並繼續」即可啟動Java了。

熱點內容
s4存儲卡 發布:2025-01-11 08:48:39 瀏覽:975
我的世界伺服器人數最多的一次 發布:2025-01-11 08:48:37 瀏覽:325
python音量 發布:2025-01-11 08:48:34 瀏覽:222
99壓縮 發布:2025-01-11 08:43:47 瀏覽:831
ftp伺服器怎麼上傳 發布:2025-01-11 08:43:45 瀏覽:518
閱讀腳本是什麼 發布:2025-01-11 08:39:27 瀏覽:777
booljava 發布:2025-01-11 08:36:08 瀏覽:768
我的世界伺服器必要弄的東西 發布:2025-01-11 08:32:56 瀏覽:424
postgre資料庫 發布:2025-01-11 08:32:22 瀏覽:481
android登錄源碼 發布:2025-01-11 08:32:10 瀏覽:676