java代码在命令行下的编译

     2022-03-16     129

关键词:

目的

跟C++一样,JAVA可以通过命令行直接编译得到字节码文件,并且使用java命令运行。通过JAVA的编译和运行命令只是熟悉一下JAVA的一些特征,包括包和目录,classpath,jar格式;而且在调试小程序的时候其实用命令行是足够的。

但是在进行大型项目的时候还是要用较大的IDE,例如eclipse和NetBeans,显然eclipse是比NetBeans要复杂得多的,这里不说。

主要过程是:

  1. javac编译产生class
  2. java 运行class文件
  3. 如果你想用jar文件,那就在2的时候产生jar文件,然后用java -jar 执行它

编译

JAVA的编译和运行需要一个环境变量,以下先讲windows下的命令。 classpath是环境变量,你要运行命令: javac Hello.java的时候是默认的调用了windows的classpath变量的,这个变量代表的目录下面有标准的包;所以如果有不标准的包,就要指出它的完整路径(包括包的名字):

javac -cp .../javax.mail.jar Hello.java

java -classpath .../javax.mail.jar Hello.java

  1. -cp在windows下跟-classpath等价
  2. ...代表任意目录
  3. 在-cp后的目录可以有多个,用分号";"分隔,而且点号表示当前目录

运行

java可以运行class文件也可以运行jar文件,但是运行java时: java Hello.class 错误,而java Hello正确, 这只是一个规范,没有特别的含义,而且也不会跟目录结构名混淆;

技术分享

常见错误提示

cannot find or load the main class:基本都是因为没有搞对类的位置的;可以这样java -cp . Hello; 也可以设置好环境变量classpath;

你可能会犯一种错: 如果Hello.java 第一行是:package mail; 你就会产生一个mail目录,目录下是Hello.class,这可能不是你输入java Hello时预料的;把package这一行去掉就好咯。

另外,虽然DOS是大小写不敏感的,但是在java执行命令的时候它是敏感的,所以不要把Hello写成hello;

 

ubuntu的区别

路径跟windows写法不一样,分号->冒号;没有cp这个缩写.

参考资料

www.stackoverflow.com

《JAVA核心技术》

ubuntu命令行下java工程编辑与算法(第四版)环境配置

ubuntu命令行下java工程编辑与算法(第四版)环境配置java命令行javacjava在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是出各种错误,特在此总结一下。ubuntu下java环境配置由于网... 查看详情

ubuntu命令行下java工程编辑与算法(第四版)环境配置

ubuntu命令行下java工程编辑与算法(第四版)环境配置java命令行javacjava在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是出各种错误,特在此总结一下。ubuntu下java环境配置由于网... 查看详情

mysql命令行下的--tee选项功能

假如mysql命令行状态下,要进行大量的交互操作,其实可以把这些操作记录在log中进行审计,很简单mysql-u-root-p--tee=c:\\xxxx.log,加上参数--tee就可以了,这是一个不大常用的命令选项,也可以:在服务器上的/etc/my.cnf中的[client]加... 查看详情

水文日常~~linux命令行下如何编译运行mpi程序(c/c++)(代码片段)

Linux命令行下如何编译运行MPI程序如果是C程序,使用如下命令进行编译:mpicchelloworld.c-ohelloworld如果是C++程序,使用如下命令进行编译:mpicxxhellowprld.cpp-ohelloworld编译完成后,使用如下命令运行mpirun-np4./he... 查看详情

在ubuntu下安装fortran

...的方法安装,没有源就自己下载个包安装。terminal下输入命令g77或者gfortran或ifort查看安装是否成功。linux下的编译器一般没有界面,用记事本之类的编写文件,然后编译就好。如果是gfortran的话在命令行下gfortrang.f(Fortran文件名);... 查看详情

两款命令行下的翻译工具:sdcv&translate-shell

...开浏览器有各种相关插件可用,取词翻译等唾手可得,但在命令行下浏览资料时遇到生词复制到到网上搜索,一来一回比较烦,于是找到了两款工具,分别介绍一下吧: sdcv安装后因为缺少字典,并不能直接使用,要到http://download.huzheng.... 查看详情

linux命令行下创建纳入版本控制下的新目录

 [[email protected]资料库]#svnmkdirtestAtest[[email protected]资料库]#svnci-m"mkdirtest"Adding资料库/testCommittedrevision175.  查看详情

有没有linux命令行下的http抓包工具?就像burpsuite那样,设置好代理就可

有没有linux命令行下的http抓包工具?就像burpsuite那样,设置好代理就可以抓,抓到了还可以进行修改再发出去(大部分抓包工具就是不能对数据进行修改)想弄来装在配了3.5寸显示屏的树莓派上。burpsuite窗口太大,3.5寸显示不下... 查看详情

在做java开发时,build和compile有啥联系和区别?谢谢。

...uild。参考技术Acompile只是编译工程,既对编译路径下的源代码进行编译build是构建工程,一般会经过清理,编译,打包等过程,生成最终可运行或可部署的程序包 参考技术Bbuild先将工程中的文件Compile(编译),然后将编译生成的文... 查看详情

在命令行下,mysql显示各个端所使用的字符集命令(代码片段)

win10中,在命令行情况下,Mysql显示各个端所使用的字符集命令:Microsoft Windows [版本 10.0.16299.64](c) 2017 Microsoft Corporation。保留所有权利。C:Windowssystem32>mysql -u root -prootWel 查看详情

idea生成class文件乱码

...?1)首先,我们需要知道当执行"Build"菜单下的"MakeProject"命令,编译整个项目下的.java文件的时候,IntellijIdea执行的具体命令。我们可以通过以下方式获得,执行"Build"菜单下的"GenerateAntBuild"命令,生成一个AntBuildFile,然后通过这... 查看详情

2018-2019-220175211实验二《java面向对象程序设计》实验报告

目录代码托管一、命令行下Java程序开发二、IDEA下Java程序开发、调试(1)建立与Git的链接(2)开发、调试程序(3)上传代码至码云三、练习四、问题及解决五、学习总结代码托管一、命令行下Java程序开发在码云上建立以学号命名的仓... 查看详情

已经有了一个在命令行下调用c++dll库文件的java程序,如何在eclipse中设置相关路径?

已经有了一个在命令行下调用c++dll库文件的java程序,如何在eclipse中设置相关路径?参考技术A项目右键属性里面,在buildpath里面添加相应的文件路径 参考技术B一楼说的不错 查看详情

linux命令行下搜索工具大盘点,效率提高不止一倍!(代码片段)

...的命令行搜索工具。如果你不喜欢使用编辑器或IDE来查找代码关键字,那么这几个工具将对你十分有 查看详情

mac命令行下vim的使用(代码片段)

vi/vim使用实例使用vi来建立名为test.txt的文件vitest.txt1按下ESC按钮回到一般模式在一般模式中按下:wq储存后离开vi基本上vi/vim共分为三种模式,分别是:命令模式(Commandmode)插入模式(Insertmode)底线命令模式(Lastlinemode)-命令模... 查看详情

大开测试:性能-如何在命令行下启动controller(连载21)

7.21 如何在命令行下启动Controller1.问题提出如何在命令行下启动Controller进行负载测试?2.问题解答习惯使用命令行操作的读者可能十分关心,Controller是否可以在命令行下通过指定运行的场景和相关参数也可运行呢?LoadRunne... 查看详情

大开测试:性能-如何在命令行下启动controller(连载21)

7.21 如何在命令行下启动Controller1.问题提出如何在命令行下启动Controller进行负载测试?2.问题解答习惯使用命令行操作的读者可能十分关心,Controller是否可以在命令行下通过指定运行的场景和相关参数也可运行呢?LoadRunne... 查看详情

20155208《java程序设计》实验一(java开发环境的熟悉)实验报告

...发打开windows下的```cmd→输入cdCode命令进入Code目录,进入"代码托管"文件夹→输入md20155202建立以自己学号命名的文件夹→输入cd20155202进入文件夹→输入mdexp1建立“实验一”文件夹→输入cdexp1进入 查看详情