Java程序编译和运行(包学会)

275 阅读1分钟

Java整个编译以及运行的过程需要经过几个关键的步骤,本文通过一个简单的程序来简单的说明整个流程。


本文分两部分:一是编译运行普通java文件、二是编译运行jar文件。

一、编译运行普通java文件

1、检查JDK环境

1)检查java版本及java工具是否正常可用

$ > java -version       java version "1.8.0_162"Java(TM) SE Runtime Environment (build 1.8.0_162-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

2)检查javac版本及javac工具是否正常可用

$ > javac  -version    javac 1.8.0_162

2、编写带main函数的java文件 $ > vim JinfoTest1.java

/*注意这个java文件最好不带package包名*/import java.io.IOException;public class JinfoTest1 {    public static void main(String[] args) {        String arg1 = System.getProperties().getProperty("arg1");        System.out.println("参数arg1为:" + arg1);        try {            System.in.read();        } catch (IOException e) {            e.printStackTrace();        }           }} 

3、编译java文件

$> javac  -encoding  utf-8  JinfoTest1.java       #会在同一目录下生成JinfoTest1.class

4、测试运行(运行时类名是不需要带.class后缀的)

#不带参数$> java  JinfoTest1        参数arg1为: null​#带参数:使用“-Dxxx=yyy"作为命令行选项,向main函数传入参数名为xxx,参数值为yyy$> java  -Darg1=123 JinfoTest1    参数arg1为: 123​#注意:如果要运行带package包的*.class文件,则需要把*.class放到磁盘对应的包目录下,并在运行时指定包的全路径。否则会出现错误:找不到或无法加载主类 jinfo.JinfoTest1。#如:JinfoTest1.java文件是带package包com.daoge的。$> mkdir -p  com/daoge$> mv  JinfoTest1.class  com/daoge/$> java  -Darg1=123   com.daoge.JinfoTest1

二、编译运行jar文件

1、检查JDK环境

1)检查java版本及java工具是否正常可用

$ > java -version   java version "1.8.0_162"Java(TM) SE Runtime Environment (build 1.8.0_162-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

2、新建maven工程并添加依赖 $ > vim pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0                                                      https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion><parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.4.3</version>        <relativePath/>    </parent>    <groupId>com.daoge</groupId>    <artifactId>spring-jvm</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>spring-jvm</name>    <description>Demo project for Spring Boot</description>        <properties>        <java.version>1.8</java.version>    </properties>        <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <scope>runtime</scope>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>        <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <excludes>                        <exclude>                            <groupId>org.projectlombok</groupId>                            <artifactId>lombok</artifactId>                        </exclude>                    </excludes>                </configuration>            </plugin>        </plugins>    </build></project>

3、新建启动文件 $ > vim com.daoge.spring.jvm.SpringJvmApplication.java

package com.daoge.spring.jvm;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;​@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})public class SpringJvmApplication {    public static void main(String[] args) {        SpringApplication.run(SpringJvmApplication.class, args);        System.out.println("spring boot is running...");            String arg1 = System.getProperties().getProperty("arg1");        System.out.println("参数arg1为:" + arg1);    }}

4、打包成jar文件

方法一:使用IDEA 或 Eclipse自带的maven插件打包。 方法二:使用mvn package命令打包。

$> mvn package[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------

5、测试运行

#不带参数$> java   -jar  spring-jvm-0.0.1-SNAPSHOT.jar    参数arg1为: null​#带参数:使用“-Dxxx=yyy"作为命令行选项,向main函数传入参数名为xxx,参数值为yyy$> java  -Darg1=123  -jar  spring-jvm-0.0.1-SNAPSHOT.jar    参数arg1为: 123

作者:微信公众号——稻哥说编程(RedCode1024)博主,从事程序开发10余年,分享实用的技术解决方案,欢迎留言。