Java HelloWorld

一、java命令

目录

一、java命令

二、Java HelloWorld

1.单个java文件

2.单个包多java文件

3.多个包

三、jar包

1.生成jar包

2.引用jar包

三、IntelliJ IDEA+Maven HelloWorld

四、IntelliJ IDEA+Maven+springboot HelloWorld


javac:将.java文件编译成.class文件

        cp - 指定class搜索路径

         d - 指定class文件生成目录

java: 执行.class或.jar文件

        cp指定class搜索路径

        示例:java test1.app #表示执行./test1/app.class文件main函数

jar:打包生成.jar文件

        v- 可视化输出

        c - 创建一个新的Jar文件
        示例:jar cvf myapp.jar *.class

        t - 列出Jar文件中所有的文件
        示例:jar tvf myapp.jar

        x - 从Jar文件中提取文件
        示例:jar xvf myapp.jar


        u - 更新现有的Jar文件
        示例:jar uvf myapp.jar *.class

        f - 指定Jar文件名
        示例:jar cf myapp.jar *.class


        m - 添加清单文件
        示例:jar cvmf MANIFEST.MF myapp.jar *.class


        e - 指定主类
        示例:jar cfe myapp.jar MyApp *.class

        C - 指定工作目录,相当于在执行jar目录前先cd到指定目录
        示例:jar cf myapp.jar -C classes .

二、Java HelloWorld

1.单个java文件

(1)创建文件src/test1/app.java如下:

package test1;
public class app
{public static void main( String[] args ) {System.out.println( "Hello World!" );}
}

(2)编译生成.class文件

#编译app.java文件,生成的class文件跟java同目录
javac ./test1/app.java

(3)执行.class文件

#test1.app为主类名(表示执行./test1/app.class文件main函数)
java test1.app

执行结果如下:

2.单个包多java文件

(1)创建文件src/test2/func.java、src/test2/app.java(都包含在test2包中)如下:

#func.java文件
package test2;
public class func
{public void test() {System.out.println( "func.test()!" );}
}#app.java文件
package test2;
public class app
{public static void main( String[] args ) {func a = new func();a.test();System.out.println( "Hello World!" );}
}

(2)编译java文件生成class文件

javac ./test2/app.java ./test2/func.java

 (3)执行class文件

#test2.app为主类名
java test2.app

执行结果如下:

3.多个包

多个包的特点是每个包由不同的团队开发,包之间只能通过class引用。

(1)创建文件src/pub/func.java(公共包pub):

package pub;
public class func
{public void test() {System.out.println( "pub.func.test()!" );}
}

(2)编译pub包:

javac ./pub/func.java

(3)创建文件app.java(包test3),如下:

package test3;
import pub.func;
public class app
{public static void main( String[] args ) {func a = new func();a.test();System.out.println( "Hello World!" );}
}

(4)编译app.java并执行生成的class文件

#编译app.java
javac ./test3/app.java#执行class,test3.app为主类
java test3.app

执行结果如下:

三、jar包

1.生成jar包

(1)创建文件src/test1/app.java如下:

package test4;
public class app
{public static void main( String[] args ) {System.out.println( "Hello World!" );}
}

(2)编译生成.class文件

#编译app.java文件,指定class文件生成到target目录下
javac ./test4/app.java -d ./target

(3)打包生成jar文件

#将./target目录下的所有文件打包成./test4/app.jar文件
#-C相当于先cd到target目录,./参数是相对于target的目录
jar cvf ./test4/app.jar -C ./target ./

(4)执行jar文件

#-cp指定class目录或jar包路径,test4.app为主类
java -cp ./test4/app.jar test4.app

执行结果如下:

 

 打jar包时指定主类执行结果如下:

#参数e指定主类为test4.app
jar cvfe ./test4/app.jar test4.app -C ./target ./
#运行时无需指定主类
java -jar ./test4/app.jar

 

2.引用jar包

 (1)创建文件src/pub/func2.java(公共包pub):

package pub;
public class func2
{public void test() {System.out.println( "pub.func2.test()!" );}
}

(2)编译pub并生成jar包:

#编译java文件,class生成到target目录
javac ./pub/func2.java -d ./target#打jar包,只打pub目录的文件
jar cvf ./pub/func2.jar -C ./target ./pub

(3)创建文件src/test5/app.java:

package test5;
import pub.func2;
public class app
{public static void main( String[] args ) {func2 a = new func2();a.test();System.out.println( "Hello World!" );}
}

(4)编译app.java,并执行生成的class文件

#编译
javac -cp ./pub/func2.jar ./test5/app.java#执行,执行时默认搜索路径为当前目录,若通过cp指定目录也需要包含当前目录
java -cp ./pub/func2.jar;./ test5.app

执行结果如下:

三、IntelliJ IDEA+Maven HelloWorld

1.IDEA创建项目File->New->Project,如下:

 2.配置Project参数如下:

3.编译并打jar包,如下图:(每次package前需要clean),package后会生成HelloWorld-1.0-SNAPSHOT.jar文件(D:\HelloWorld\target目录下)

 4.执行生成的jar包

#cd到jar包所在目录
cd d:\HelloWorld\target#执行jar包,指定主类为org.example.App
java -cp HelloWorld-1.0-SNAPSHOT.jar org.example.App

执行结果如下:

5.若希望在打jar包时指定主类,将如下配置增加到pom.xml文件中:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><mainClass>org.example.App</mainClass></manifest></archive></configuration></plugin></plugins></build>

6.重新package之后生成新的jar文件,直接执行jar文件:

#cd到jar目录
cd d:\HelloWorld\target#直接执行jar,无需指定主类,注意参数是-jar
java -jar HelloWorld-1.0-SNAPSHOT.jar

执行结果如下:

 

查看jar包中 MANIFEST.MF文件多了一行Main-Class,如下:

四、IntelliJ IDEA+Maven+springboot HelloWorld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/3164.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式篇(Java):适配器模式

设计模式篇(Java)&#xff1a;建造者模式 八、适配器模式 8.1 适配器模式基本介绍 生活中的适配器例子 比如生活中的插座&#xff0c;在不同国家插座有着不同的规格&#xff0c;如果我们从一个国家去另外一个国家需要使用插座时就需要一个中间转换器把两种不同规则的插座适配一…

Spring Security系列之基础概念

文章目录 基本原理Authentication接口UserDetailsService 接口PasswordEncoder 接口EnableWebSecurity 注解 基本原理 SpringSecurity 本质是一个过滤器链&#xff0c;采用的是责任链设计模式。 启动的时候&#xff0c;控制台打印出来的 DefaultSecurityFilterChain 过滤器&…

openfeign实现远程调用

一 openfeign简介 Feign 是声明性(注解)web 服务客户端它使编写 web 服务客户端更加容易请创建一个接口并对其进行注解.它具有可插入注解支持&#xff0c;包括Feign注解和JAXRS注解Feign 还支持可插拔编码器和解码器。Spring cloud 添加了对Spring MVC注解的支持&#xff0c;并…

GPT-4 参加2023年高考数学,人工智能对话机器人和人类对决,快谁速度快

ChatGPT从入门到精通&#xff0c;一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定 让ChatGPT帮你高效实现职场办公&#xff01;行动起来吧。 【点击查看更多知识】ChatGPT从入门到精通&am…

使用SSH远程直连Docker容器

文章目录 1. 下载docker镜像2. 安装ssh服务3. 本地局域网测试4. 安装cpolar5. 配置公网访问地址6. SSH公网远程连接测试7.固定连接公网地址8. SSH固定地址连接测试 转载自cpolar极点云文章&#xff1a;SSH远程直连Docker容器 在某些特殊需求下,我们想ssh直接远程连接docker 容器…

【STM32智能车】电机控制

【STM32智能车】电机控制 PWMPWM基本用法&#xff1a; 电机驱动基本控制基本状态 欢迎收看由咸鱼菌工作室出品的STM32系列教程。本篇内容主要电机控制 PWM 我们要控制电机&#xff0c;就要先了解一下PWM。 PWM(Pulse Width Modulation)控制——脉冲宽度调制技术&#xff0c;通…

2022前端趋势报告(下)

前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 一、前言 本文内容来自于《St…

go 调试利器之pprof指标分析

文章目录 概要一、指标类型1.1、堆栈指标1.2、CPU指标分析1.3、http-pprof 二、go tool pprof2.1、可视化2.2、CPU火焰图 概要 Go语言原生支持对于程序运行时重要指标或特征进行分析。pprof是其中一种重要的工具&#xff0c;其不仅可以分析程序运行时的错误&#xff08;内存泄…

html5前端学习2

一篇思维题题解&#xff1a; 第五周任务 [Cloned] - Virtual Judge (vjudge.net) http://t.csdn.cn/SIHdM 快捷键&#xff1a; CtrlAltDown 向下选取 CtrlAltUp 向上选取&#xff08;会出现多个光标&#xff0c;可以同时输入&#xff09; CtrlEnter …

24个Jvm面试题总结及答案

1.什么是Java虚拟机&#xff1f;为什么Java被称作是“平台无关的编程语言”&#xff1f; Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台&#xff0c;而不需要程序员为每…

html实现多种风格的时间轴(附源码)

文章目录 1.设计来源1.1 对称风格时间轴1.2 横向风格时间轴1.3 回忆风格时间轴1.4 记事风格时间轴1.5 简易风格时间轴1.6 科技风格时间轴1.7 列表风格时间轴1.8 跑道风格时间轴1.9 人物风格时间轴1.10 容器风格时间轴1.11 沙滩风格时间轴1.12 双边风格时间轴1.13 图文风格时间轴…

基于原生 js 实现今日新闻网站

完整资料进入【数字空间】查看——baidu搜索"writebug" 一、今日新闻网站设计报告 1.1 1 设计思路 该网站设计大部分都是基于原生 js 实现。基本思想为首先将基本的页面架构包括 header&#xff0c;导航条写好。之后根据后台 PHP 请求接口请求返回 JSON 格式数据后…