JAVA程序编译后生成的文件 java编译之后怎么运行
以前写java代码,都是直接用idea或者eclipse,然后点击运行按钮便可自动完成代码的编译以及运行。因此,一直想试试怎么不借助开发工具来完成java程序的编译以及运行。
以下所有步骤皆在windows系统上操作
1.首先新建一个目录src,存放源代码。
然后写一个简单的HelloWorld类,使用默认package.
public class HelloWorld{public static void main(String[] args){System.out.println("HelloWorld");}}结构如下图
2.编译并运行代码
2.1进入src所在目录,按住shift,鼠标右键,选择在此处打开命令窗口。
2.2依次输入·javac HelloWorld.java java HelloWorld,编译运行代码
查看编译后的目录
3.给HelloWorld指定包名com
3.1在src目录下新建一个com目录,并将HelloWorld.java剪切到com目录下
3.2修改HelloWorld.java如下
package com;public class HelloWorld{public static void main(String[] args){System.out.println("HelloWorld");}}目录结构如下:
3.3在src目录下打开命令行窗口,编译并运行代码
注意:一定要在src 目录下进行编译,src目录包含了所有java文件及包,执行的时候也一样。
4.让HelloWorld.java 引用其他包中的类
4.1在src目录下新建一个文件夹cn
4.2在cn目录下新建一个SendMesage.java,代码如下
package cn;public class SendMessage{public void Send(String mess){System.out.println("SendMethod:"+mess);}}4.3修改HelloWorld如下
package com;import cn.SendMessage;public class HelloWorld{public static void main(String[] args){ System.out.println("HelloWorld");SendMessage sm=new SendMessage();sm.Send("test");}}4.4编译运行(注意cmd打开时的路径仍为src)
5.指定编译的输出路径
使用javac命令时,如不指定输出路径,class文件默认与java文件在一起
5.1与src同级目录建一个class文件夹
5.2重新编译
5.3查看class文件夹
5.4在class文件夹下执行java命令
6.引用jar包中的class
6.1在src同级目录新建一个lib文件夹
6.2将fastjson-1.2.72.jar(其他jar也行)复制到lib下
6.3src目录下新建一个model文件夹,并添加一个Student.java
package model;public class Student{private String name;private int age;private String address;public void setName(String name){this.name=name;}public String getName(){return this.name;}public void setAge(int age){this.age=age;}public int getAge(){return this.age;}public void setAddress(String address){this.address=address;}public String getAddress(){return this.address;}}6.4修改HelloWorld.java如下
package com;import cn.SendMessage;import model.Student;import com.alibaba.fastjson.JSONObject;public class HelloWorld{public static void main(String[] args){ System.out.println("HelloWorld");SendMessage sm=new SendMessage();sm.Send("test");Student student=new Student();student.setName("Jane");student.setAge(24);student.setAddress("American");String s1=JSONObject.toJSONString(student);System.out.println(s1);}}6.5编译
-cp表示类路径,多个类路径用;隔开,.表示当前路径,编译时javac会去指定的目录下寻找源文件编译,
使用javac -cp时,.当在开头会报错,如下:
6.6进入class目录下执行java命令
-cp表示类路径,多个类路径用;隔开,.表示当前路径,运行时java会去指定的类路径下寻找class文件执行,*表示lib下的所有jar,但不会递归搜索
7.手动用java命令启动一个springboot项目
7.1将springboot工程打成jar包(用开发工具),并将其中的lib目录复制出来,lib目录中的jar即为所依赖的所有第三方jar
7.2进入class目录下执行java命令,
我的启动类位于io.renren下
执行:
很少写博客,也不太会排版,如有错误请指出。