如何用bat命令调用Java里面的mian函数

如何用bat命令调用Java里面的mian函数,第1张

在java程序想调用的类目录下编辑文件taskbat 内容

java 类名(需要有main方法)

保存

在windows计划任务中添加1小时执行一次的计划任务

相关控制台信息如果你程序里写了是会打出的

方法如下:

1、首先我们在命令行运行Java程序需要借助jdk的环境依赖,打开jdk包,需要找到javac和java两个文件,如下图所示

2、打开运行窗口,然后在运行窗口中输入cmd命令,如下图所示

3、在CMD命令行界面中我们输入cd命令进入到java程序文件所在的目录,如下图所示

4、接下来执行javac命令对java程序文件进行编译,如下图所示

5、编译完毕以后我们会在文件夹下面看到一个class文件,这个就是Java虚拟机编译完产生的文件,如下图所示

6、最后我们执行java命令,带上刚才编译好的文件名称就可以运行java程序了,如下图所示

扩展资料:

命令提示符是在 *** 作系统中,提示进行命令输入的一种工作提示符。在不同的 *** 作系统环境下,命令提示符各不相同。

在windows环境下,命令行程序为cmdexe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS *** 作系统。

输入一些命令,cmdexe可以执行,比如输入shutdown -s -t 30就会在30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmdexe 回车。它也可以执行BAT文件。

一般说的“命令行”是指linux命令,linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell(外壳)命令和Linux命令。

运行方法

⒈ 点击开始--运行--输入--CMD 回车(或按windows键和R键d出运行框—输入CMD回车) [1]

⒉Windows XP中单击“开始→所有→附件→命令提示符”即可打开命令提示符。

系统会默认定位到“X:\Documents and Settings\当前用户名”下。

⒊点击我的电脑--打开系统盘(C:)--WINDOWS--system32--CMDEXE

建立一个快捷方式,将绝对路径输入再运行也可快速打开命令提示符。

⒋在桌面或任意磁盘新建一个TXT--输入CMD并保存--修改扩展名为BAT(文件名随意)--运行即可

这样的特点是运行这个BAT后,命令提示符下的路径直接显示你BAT所在的目录路径。

⒌win7的运行除了以上的方法外还可以系统桌面上先按住“Shift”键,单击鼠标右键出现的菜单,选择“在此处打开命令行窗口”后,就出现了命令提示符。

命令提示符默认位置更改方法

单击“开始→控制面板→性能和维护→管理工具→计算机管理”,(经典分类视图下跳过第3步)

依次展开“系统工具→本地用户和组→用户”,然后在右侧窗口中双击当前登陆的用户名,

在打开的“属性”对话框单击“配置文件”选项卡,在“主文件夹”下的“本地路径”后面键入

你想更的当前盘符或当前目录,如“E:\”,然后单击“应用→确定”,重新启动计算机即可完成更改。

参考资料来源:百度百科:CMD

*** 作步骤

1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中;

2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹;

3、在java程序所在的文件夹中新建一个bat文件。

bat文件样例:

样例一:

@echo off

set PATH=;%CD%\SocketAdapter_lib\jre\bin

set CLASSPATH=

start javaexe -jar SocketAdapterjar

@pause

样例二:

@echo off

start SocketAdapter_lib\jre\bin\java -jar SocketAdapterjar

@pause

注:

可以在没有安装JRE的环境中,运行Java应用程序

javaexe 具体使用参见cmd中输入java -help

javawexe 相对于 javaexe 执行java程序过程中MS-DOS不可见

对于安装了JRE的环境中,第2步可以省略,bat文件如下

样例三:

@echo off

java -jar SocketAdapterjar

@pause

public static void main(String[] args) {

try {

String command = "C:\\Users\\Administrator\\Desktop\\dobat";

Process p = RuntimegetRuntime()exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(pgetInputStream(),"GBK"));//注意中文编码问题

String line;

while ((line = brreadLine()) != null) {

Systemoutprintln("StartedLog==>"+line);

}

brclose();

} catch (IOException e) {

}

}

自己试试吧,不知道可行不可行

@ECHO OFF

REM 最好在DOS命令行中运行,这个能看到错误信息,方便调试

CD /D C:\

REM 如果没有权限创建目录,请手动创建,并修改权限让EveryOne可以改写的

IF NOT EXIST bin mkdir bin

REM 设置CLASSPATH

SET CLASSPATH=bin

REM 如果还有别的jar引用,这样

SET CLASSPATH=%CLASSPATH%;C:\a\b\xxjar

REM 编译,有包的话,写上包的路径,有多少个源码目录、写多少个

javac -d bin src\java src\a\b\javasrc\a\h\java

REM 运行主类,有包要写abXxxxx

java XXXX

可能你没有理解包的概念。对于一个包进程级的访问一般是从包的“外部”访问的。这时,包是一个整体,而你进入了的内部调用某个类是不对的。

举例说吧,你的类KAStuclass如果在包a里,那么编译后它也会在文件夹下。在运行这个包时,应该在a的上级文件夹里运行这个类。所以你的bat这样写应该就对了,假设KAStuclass在a里,在a的父目录里建立这个bat,然后内容为java aKAStu 就行。

至于set classpath,你没有用到那D:\Program_Files\Java\jdk150_14\lib\ 的特殊的类是没有必要的

不过话说回来,如果你的KAStu是在默认包里,我上面的话就不对了。但是你的bat应该会正常运行

用myeclipse完成

1新建一个简单的JFrame窗体,用于测试。

package comdao;

import javaawtDimension;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

public class newClassText {

JFrame f = new JFrame();

JLabel jLabel = new JLabel();

JButton jButton = new JButton();

public static void main(String[] args) {

// TODO Auto-generated method stub

new newClassText()Show();

}

public void Show() {

fsetPreferredSize(new Dimension(400,300));

//Object a = (Object)arg0getVariable("$USER_INSTALL_DIR$");

jLabelsetText("请选择要安装的目录:");

jButtonsetText("确定");

fadd(jLabel);

fadd(jButton);

fpack();

fsetVisible(true);

}

}

2修改MANIFESTMF文件

Manifest-Version: 10

Class-Path:

Main-Class: comdaonewClassText

3打成jar包。

4打开bat启动文件,运行程序测试。

//下面为网络找到的资料,很详细,但我没看完,有帮助的看看。感谢我经理小超给我的帮助。

发布Java应用程序时你会感到困难?好在Java提供了一系列打包和发布工具,可以显著的简化发布过程该文章提供了打包Java code的几种方法,我们将会探讨Java manifest 文件,给出用于管理JAR文件所依赖文件、估计跨平台发布所需的CLasspath的合适方法我也会解释如何使用manifest包版本特性来确认包的兼容性 

什么是JAR文件? 

在开发过程中,我们可以直接使用Java class文件来运行程序,但这并不是一个好方式,好在Java 提供了 JAR(Java Archive)文件来提供发布和运行。 

jar 文件实际上是class 文件的ZIP压缩存档,这种格式被广泛使用,因此易与使用,有很多中工具可以 *** 作这种格式的文件。也正是因为这个原因,jar文件本身并不能表达所包含应用程序的标签信息。 

Manifest 因此得以出现 

为了要提供存档的标签信息,jar 文件指定了一个特定目录来存放标签信息:META-INF 目录,其中我们来关注该目录中的MANIFESTMF文件,他就是JAR的manifest文件,他包含了JAR文件的内容描述,并在运行时向JVM提供应用程序的信息,大多数JAR文件含有一个默认生成的manifest 文件,执行JAR命令或使用zip工具,都可以产生它 

如果是由jar命令产生的 manifest 文件,形如: 

Manifest-Version: 10 

Created-By:140-beta 

(Sun Microsystems Inc) 

这些信息没甚么用,仅仅告诉我们使用的是10的manifest文件,第一行定义manifest的格式,第二行说明使用 SUN 的JDK14的jar工具生成该文件,如果manifest文件是由其他 (如ant) 创建的,那将会出现 “Created-By: Ant 12” 之类的内容,如果你是自己创建manifest文件,你可以加入自己的一些相关信息 

基础格式 

manifest 文件的格式 是很简单的,每一行都是 名-值 对应的:属性名开头,接着是 ":" ,然后是属性值,每行最多72个字符,如果需要增加,你可以在下一行续行,续行以空格开头,以空格开头的行都会被视为前一行的续行。 

所有在开头的属性都是全局的,你也可以定义特定class 或package的属性,稍后将介绍这种 

把manifest文件插入JAR文件 

使用 m 选项,把指定文件名的manifest文件 传入,例如 

jar cvfm myapplicationjar myapplicationmf [-C]classdir 

如果你使用ant来创建时,在ant 的buildxml 加入如下条目

manifest="myapplicationmf"> 

includes="/class"/>

运行Java程序 

现在我们来体验一下manifest文件的作用,如果现在我们有一个Java 应用程序打包在myapplicationjar中, main class为 comexamplemyappMyAppMain ,那么我们可以用以下的命令来运行 

java -classpath myapplicationjar comexamplemyappMyAppMain 

这显然太麻烦了,现在我们来创建自己的manifest文件,如下: 

Manifest-Version: 10 

Created-By: JDJ example 

Main-Class: comexamplemyappMyAppMain 

这样我们就可以使用如下的命令来运行程序了:(明显简单多了,也不会造成无谓的拼写错误) 

java -jar myapplicationjar 

管理JAR的依赖资源 

很少Java应用会仅仅只有一个jar文件,一般还需要 其他类库。比如我的应用程序用到了Sun 的 Javamail classes ,在classpath中我需要包含activationjar 和 mailjar,这样在运行程序时,相比上面的例子,我们要增加一些: 

java -classpath mailjar:activationjar -jar myapplicationjar 

在不同的 *** 作系统中,jar包间的分隔符也不一样,在UNIX用“:”,在window中使用 “;”,这样也不方便 

同样,我们改写我们的manifest文件,如下 

Manifest-Version: 10 

Created-By: JDJ example 

Main-Class: comexamplemyappMyAppMain 

Class-Path: mailjar activationjar 

(加入了Class-Path: mailjar activationjar,用空格分隔两个jar包) 

这样我们仍然可以使用和上例中相同的命令来执行该程序: 

java -jar myapplicationjar  //此文件为启动bat文件

Class-Path属性中包含了用空格分隔的jar文件,在这些jar文件名中要对特定的字符使用逃逸符,比如空格,要表示成" ",在路径的表示中,都采用“/”来分隔目录,无论是在什么 *** 作系统中,(即使在window中),而且这里用的是相对路径(相对于本身的JAR文件): 

Manifest-Version: 10 

Created-By: JDJ example 

Main-Class: comexamplemyappMyAppMain 

Class-Path: ext/mailjar ext/activationjar 

Multiple Main Classes(多主类) 

还有一种Multiple Main Classes情况,如果你的应用程序可能有命令行版本 和GUI版本,或者一些不同的应用却共享很多相同的代码,这时你可能有多个Main Class,我们建议你采取这样的策略:把共享的类打成lib包,然后把不同的应用打成不同的包,分别标志主类:如下 

Manifest for myapplicationlibjar: 

Manifest-Version: 10 

Created-By: JDJ example 

Class-Path: mailjar activationjar 

Manifest for myappconsolejar: 

Manifest-Version: 10 

Created-By: JDJ example 

Class-Path: myapplicationlibjar 

Main-Class: comexamplemyappMyAppMain 

Manifest for myappadminjar: 

Manifest-Version: 10 

Created-By: JDJ example 

Class-Path: myapplicationlibjar 

Main-Class: comexamplemyappMyAdminTool 

在myappconsolejar 和 myappadminjar的manifest文件中分别注明各自的 Main Class 

java打包成jar Manifest 设置在软件测试中的运用

Package Versioning 

完成发布后,如果使用者想了解 ,哪些代码是谁的?目前是什么版本?使用什么版本的类库?解决的方法很多 ,manifest提供了一个较好的方法,你可以在manifest文件中描述每一个包的信息。 

Java 秉承了实现说明与描述分离的原则,package 的描述 定义了package 是什么,实现说明 定义了谁提供了描述的实现,描述和实现包含 名、版本号和提供者。要得到这些信息,可以查看JVM的系统属性(使用 javalangSystemgetProperty() ) 

在manifest文件中,我可以为每个package定义描述和实现版本,声明名字,并加入描述属性和实现属性,这些属性是 

Specification-Title 

Specification-Version 

Specification-Vendor 

Implementation-Title 

Implementation-Version 

Implementation-Vendor 

当要提供一个类库或编程接口时,描述信息显得是很重要,见以下范例: 

Manifest-Version: 10 

Created-By: JDJ example 

Class-Path: mailjar activationjar 

Name: com/example/myapp/ 

Specification-Title: MyApp 

Specification-Version: 24 

Specification-Vendor: examplecom 

Implementation-Title: comexamplemyapp 

Implementation-Version: 2002-03-05-A 

Implementation-Vendor: examplecom 

Package Version 查询 

在manifest文件中加入package描述后,就可以使用Java提供的javalangPackage class进行Package 的信息查询,这里列举3个最基本的获取package object的方法 

1PackagegetPackages():返回系统中所有定义的package列表 

2PackagegetPackage(String packagename):按名返回package 

3ClassgetPackage():返回给定class所在的package 

使用者这方法就可以动态的获取package信息 

需要注意的是如果给定的package中没有class被加载,则也无法获得package 对象 

Manifest 技巧 

总是以Manifest-Version属性开头 

每行最长72个字符,如果超过的化,采用续行 

确认每行都以回车结束,否则改行将会被忽略 

如果Class-Path 中的存在路径,使用"/"分隔目录,与平台无关 

使用空行分隔主属性和package属性 

使用"/"而不是""来分隔package 和class ,比如 com/example/myapp/ 

class 要以class结尾,package 要以 / 结尾

以上就是关于如何用bat命令调用Java里面的mian函数全部的内容,包括:如何用bat命令调用Java里面的mian函数、怎么在cmd里面运行 java、如何制作批处理文件来运行java程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9284322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存