如何使如何用命令行编译java以及运行java文件

package MyJ
public class MyThread {
public static void SysPrint(String str) {
System.out.println(str);
public static void main(String[] args) {
SysPrint("Hello World");
java文件在:C:\Users\Ivan\Desktop\txt\MyThread.javajavac后,class文件保存在:C:\Users\Ivan\Desktop\txt\MyJava\MyThread.class
关于cmd下的java命令正确的做法1.把目录cd到:C:\Users\Ivan\Desktop\txt然后:java MyJava.MyThread即:C:\Users\Ivan\Desktop\txt&java MyJava.MyThread
2.在任何目录下,使用-cp或-classpath命令参数(不包括C:\Users\Ivan\Desktop\txt\MyJava)如:C:&java -cp C:\Users\Ivan\Desktop\txt MyJava.MyThread如:D:&java -cp C:\Users\Ivan\Desktop\txt MyJava.MyThread
关于-cp (作用、效果同-classpath)
-cp &路径&
指定查找用户类文件和注释处理程序的位置
错误的做法,有1.把目录cd到:C:\Users\Ivan\Desktop\txt\MyJava然后:java MyJava.MyThread或:java MyThread即:C:\Users\Ivan\Desktop\txt\MyJava&java MyJava.MyThread或:C:\Users\Ivan\Desktop\txt\MyJava&java MyThread
2.错误使用-cp,将路径直接指到了包里面即:D:&java -cp C:\Users\Ivan\Desktop\txt\MyJava MyJava.MyThread或:D:&java -cp C:\Users\Ivan\Desktop\txt\MyJava MyThread
总结,将当前路径设置为包的父目录,或使用-cp/-classpath参数,使得当前路径相当于在包的父目录,就能够正确执行java命令了。
补上一遍更有营养的文章,
浏览 48556
浏览: 144832 次
来自: 广州
附件呢?看不到啊?
你好,我按照你的写法配置了一遍,发现会报异常:a differ ...
看上去很值得学习!
赞一个 不错用上了
哇!!!!!这个真没想过。
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'用户名:qianqian_520
文章数:31
评论数:11
访问量:82340
注册日期:
阅读量:1297
阅读量:3317
阅读量:583213
阅读量:468268
51CTO推荐博文
命令行使用javac及java编译、运行文件出现的问题(Windows XP)一、使用1.文件Java的源代码存放在扩展名为“.java”的文件中;Java源文件编译后,得到“.class”的文件2.方法命令行下编译java源代码的方法:javac &文件名.java命令行下执行.class文件:java &文件名(如果文件有main方法,直接执行)二、错误1.命令行下执行java程序,找不到或无法加载主类假设我们写的文件为:hello.java,编译后得到的文件为:hello.class注:此处hello应该首字母大写(手抖笔误了)在命令行执行:java hello (无需加后缀“.class”)错误如下:1)错误原因Classpath(class路径下)中没有hello.class这个文件2)解决方法u我们设置一个目录存放自己的类文件,如: D:\eclipse\classu在系统环境变量中添加(安装JDK时已经设置了,这里继续添加).;%JAVA_HOME%\lib\dt.%JAVA_HOME%\lib\tools.jar;D:\Eclipse\class其中最开头的“.”表示当前目录u将你要在命令行运行的“hello.class”文件复制到“D:\eclipse\class”结果如下:至此,问题解决2.命令行下编译java文件,找不到“.java”文件使用同样的方法,将hello.java文件复制到“D:\eclipse\class”在命令行执行:javac hello.java错误如下:1)错误原因暂时不清楚(&_&),“hello.java”文件已在“D:\eclipse\class”目录下了2)解决方法命令行直接进入“hello.java”所在的文件夹,然后再执行,编译成功操作及结果如下:本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)用命令行编译java并生成可执行的jar包
用命令行编译java并生成可执行的jar包
1.编写源代码。
编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java。程序结构如下:
import java.
用命令行编译java并生成可执行的jar包
1.编写源代码。
编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java。程序结构如下:
import java.awt.*;
import javax.swing.*;
//更多包的导入...
class NotePadFrame extends JFrame {
//主界面的设计...
//其他相关代码...
public class CardLayoutDemo {
public static void main(String[] args) {
new NotePadFrame();
2.打开终端。
打开系统菜单:“开始”-&“运行...”-&输入“cmd”,打开终端。
执行如下命令转到源文件所在目录:
3.编译源文件。
输入如下命令进行编译:
javac CardLayoutDemo.java
执行成功之后,会在当前目录下生成一系列.class文件。
4.新建包文件夹。
输入如下命令新建包文件夹:
mkdir test
也可在资源管理器新建此文件夹。
此文件夹必须与源文件中定义的包名完全一致()。
5.将类文件放到新的文件夹里。
在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。
6.测试程序是否可正常运行。
在I:\myApp路径下输入如下命令:
java test.CardLayoutDemo
如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。
7.生成可执行的jar包。
在I:\myApp路径下输入如下命令:
jar -cef test.CardLayoutDemo CardLayoutDemo.jar test
以上命令及参数的含义如下:
jar命令为java自带的专用打包工具;
c代表生成新的jar包;
e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.CardLayoutDemo;
f代表生成的jar包的名称,在本例中是CardLayoutDemo.jar。此包名可以随意命名,没有规定;
test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。
8.测试jar包是否可正常运行。
在I:\myApp路径下输入如下命令:
java -jar CardLayoutDemo.jar
如果可以正常运行程序,则说明jar包制作成功。
如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
兼容Jenkins标准,可提供快速可靠的持续集成与持续交付服务。基于容器技术和阿里云基础服务架构,提供稳定和安全...
云数据库HybridDB(ApsaraDB HybridDB)是一种在线MPP大规模并行处理数据仓库服务。云数据...
阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终端(如传感器、执行器...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
阿里云双11狂欢,不只是5折
Loading...博客分类:
& 虽然现在现在关于java的IDE已经非常的成熟了,但是我还是想从最原始的方式开始学习java,于是这次使用了记事本和cmd命令行方式编译一个小的servlet程序。
& 遇到的麻烦最郁闷的就是在编译servlet时候,需要使用到Tomcat的servlet-api.jar的类包。这个包一般位于Tomcat\lib目录下,javac -classpath时候将这个类包引用。但是问题来了,每当我输入命令符进行编译时:
javac -classpath E:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet-api.jar -d classes E:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\Beer-v1\src\com\example\web\BeerSelect.java
就会提示:javac: 无效的标记: Files\Apache
上网查询了许久,都说是环境变量配置错误了。但是平时使用javac的时候是正常的,应该不是环境变量的问题。后来我将jar的包复制到E:\的根目录下,这次可以正常运行了。弄了许久总要发现问题原来是,TomCat的安装目录尽量不要有空格,否则会出现各种错误。最后得出的
结论是:
不要把 Tomcat 装在带有空格的路径之中,因为命令行的参数是使用空格分隔的
接下来我只好将代码和servlet-api.jar复制到E盘根目录下,后来终于编译成功了:
&javac -d classes -classpath e:\servlet-api.jar -sourcepath e:\Beer-v1
\src e:\Beer-v1\src\com\example\web\BeerSelect.java
其中BeerSelect.java为servlet文件,引用了包-classpath e:\servlet-api.jar,这个文件还依赖了一个模型类,位于\Beer-v1\src中。具体方法都是查看的附件里面的内容。
附件(引自http://blog.csdn.net/caesarzou/article/details/5462189):
javac参数(-classpath, -sourcepath)详解
引用-classpath:
设置用户类路径,它将覆盖 CLASSPATH 环境变量中的用户类路径。若既未指定 CLASSPATH 又未指定 -classpath,则用户类路径由当前目录构成。
-sourcepath:
指定用以查找类或接口定义的源代码路径。与用户类路径一样,源路径项用分号 (;) 进行分隔,它们可以是目录、JAR 归档文件或 ZIP 归档文件。如果使用包,那么目录或归档文件中的本地路径名必须反映包名。
注意:通过类路径查找的类,如果找到了其源文件,则可能会自动被重新编译。
&&& 官方说法很简洁,但是具体操作起来总觉得不太清晰,我们还是找几个例子,来具体分析一下:
具体例子:
&&& 假设我们有如下的目录结构:
&&&&&&&&& |-foo-|
&&&&&&&&&&&&&&&&&& |-Testfoo.java
&&&&&&&&& |-baz-|
&&&&&&&&&&&&&&&&&&& |-Testbaz.java
&&& classes-|
其中Testfoo.java:
public class Testfoo {
其中Testbaz.java:
import foo.T
public class Testbaz {
也就是说Testbaz对Testfoo有引用。
我们目标是把Testbaz编译到目录classes里面,试用如下的命令:
javac -d classes src/baz/Testbaz.java
命令失败,因为找不到它依赖的Testfoo。我们可以用以下三种方式来实现:
1.我们最容易考虑到的就是编译被依赖的Testfoo类,并将其加入Testbaz的CLASSPATH
javac -d classes src/foo/Testfoo.java
javac -d classes -classpath classes src/baz/Testbaz.java
第二行使用了-classpath,使得编译器在寻找Testfoo类的时候以classes为根目录,根据根目录和package名,类名最终定位了需要用的(已编译出来的)Testfoo类。
2.在编译Testbaz的时候把被依赖的Testfoo类加入SOURCEPATH
javac -d classes -sourcepath src src/baz/Testbaz.java
在编译条件里面加入-verbose可以很清楚的看到,编译器在寻找Testfoo类的时候,以src为根目录,根据根目录和package名,类名最终定位了需要用的(源代码)Testfoo类。
3.把CLASSPATH和SOURCEPATH两者都加进来
javac -d classes src/foo/Testfoo.java
javac -d classes -sourcepath src -classpath classes src/baz/Testbaz.java
两个属性都被加入,编译器首先会判断Testfoo.class和Testfoo.java是否同时存在。如果单独存在,则适应于以上的方法之一。如果同时存在,则判断.class是否是.java的最新编译,如果有差异,则重新编译.java来覆盖.class
有必要补充一下-d参数:
-d参数是很好的把源程序和目标代码分离的参数。-d制定的是目标代码的根目录,源文件的包的结构将以目录形式反映到根目录上。美中不足的是-d需要指定已经存在的目录,不能自动创建。
浏览: 2482 次
来自: 大连
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'怎样使用命令行cmd
编译 运行 java 程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
怎样使用命令行cmd
编译 运行 java 程序
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 java命令行编译工程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信