当前位置:首页 » 编程语言 » 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了。

热点内容
vc60非静态编译 发布:2025-01-11 10:51:32 浏览:613
电脑上怎么解压缩文件 发布:2025-01-11 10:51:31 浏览:782
枪战王者如何用账号密码登录 发布:2025-01-11 10:30:56 浏览:936
mysql在linux下安装 发布:2025-01-11 10:30:49 浏览:843
数据库copy 发布:2025-01-11 10:26:06 浏览:533
unity清理缓存 发布:2025-01-11 10:25:23 浏览:466
优酷视频双击上传 发布:2025-01-11 10:24:41 浏览:963
存储脐带胎儿干细胞 发布:2025-01-11 10:18:36 浏览:330
实简ftp软件怎么改服务器文件 发布:2025-01-11 10:09:39 浏览:555
qb充值源码 发布:2025-01-11 10:00:21 浏览:27