Java HelloWorld

news2024/9/20 19:33:11

一、java命令

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.coloradmin.cn/o/693612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

星星之火,可以燎原——关于太赫兹的技术进展

盼望着&#xff0c;盼望着&#xff0c;5G来了&#xff0c;6G的脚步也近了。除了做好现有的技术工作&#xff0c;作为通信人还要不断关注新技术的发展&#xff0c;真心不易&#xff01;无线数据链路的容量在过去十几年中呈指数级增长&#xff0c;但对更高数据速率的需求持续增加…

MySQL数据库优化技术一

纵论 对mysql优化时一个综合性的技术&#xff0c;主要包括 表的设计合理化(符合3NF)添加适当索引(index) [ 四种: 普通索引、主键索引、唯一索引unique、全文索引 ]分表技术( 水平分割、垂直分割 ) 水平分割根据一个标准重复定义几个字段值相同&#xff0c;表名称不同的表&…

Android Jetpack Compose之ModalBottomSheet的使用

Android Jetpack Compose是一个现代化的UI工具包&#xff0c;让开发者以声明式的方式来构建Android应用。今天我们要讨论的是其中一个重要组件——ModalBottomSheet。 1. ModalBottomSheet简介 ModalBottomSheet是Jetpack Compose中的一个组件&#xff0c;它允许我们从屏幕底部…

Hugging News #0626: 音频课程更新、在线体验 baichuan-7B 模型、ChatGLM2-6B 重磅发布

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」&#xff0c;本期 Hugging News 有哪些有趣的消息…

第27章 uView 内置路由使用注意事项

1 uView 内置路由不支持通过“localhost”域名直接获取数据。 在前后分离开发中“axios” 路由支持使用“localhost”域名或IP地址获取后端的数据&#xff0c;所以不管是IIS部署还是后端调试通过“axios” 路由都能获取数据&#xff0c;对于.NetCore的前后端分离开发来说“axio…

【proxychains4】虚拟机内kali走主机代理

文章目录 简介安装配置使用测试 简介 ProxyChains是Linux和其他Unix下的代理工具。 它可以使任何程序通过代理上网&#xff0c; 允许TCP和DNS通过代理隧道&#xff0c; 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器&#xff0c; 并且可配置多个代理。 ProxyChains通过一个用户定…

数据结构--单链表的定义

数据结构–单链表的定义 本节的学习目标&#xff1a; 单链表的定义&#xff08;如何用代码实现&#xff09; 优点:不要求大片连续空间&#xff0c;改变容量方便 缺点:不可随机存取&#xff0c;要耗费一定空间存放指针 代码实现 struct LNode {ElemType data; //数据域stru…

vcruntime140.dll,丢失如何修复,vcruntime140.dll,丢失修复详细办法(有效的方法)

今天打开photoshop软件的时候&#xff0c;突然间就打不开&#xff0c;电脑报错由于找不到vcruntime140.dll&#xff0c;无法继续执行此代码&#xff0c;然后我就把photoshop卸载了&#xff0c;再重新安装&#xff0c;依然还是报错。这个可怎么办&#xff1f;vcruntime140.dll如…

C++【day1】

练习 定义一个命名空间Myspace&#xff0c;包含以下函数&#xff1a;将一个字符串中的所有单词进行反转&#xff0c;并输出反转后的结果。 #include <iostream> #include<iomanip>using namespace std;namespace Myspace { void reversal(string *str); }void My…

CW32L083不同主频功耗测试

本文主要介绍CWL083VCT6芯片在不同主频下的功耗测试方法和测试结果。 1.HSIOSC时钟 HSIOSC 时钟由内部 RC 振荡器产生&#xff0c;不需要外部电路&#xff0c;比 HSE 时钟的成本低&#xff0c;启动速度快。HSIOSC 时钟频率固定为 48MHz&#xff0c;频率精度低于 HSE 时钟。RC …

《计算机系统与网络安全》 第二章 计算机网络基础与TCPIP协议安全性

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

苹果app用发布证书打包后怎么装手机测试

一、背景 iOS 的开发证书打包后可以通过爱思助手安装到手机上测试&#xff0c;但发布 (Production) 证书是不允许安装在手机上的。而在实际开发过程中&#xff0c;尽管通过开发证书测试过了&#xff0c;iOS生产包仍然可能会出现一些问题&#xff0c;需对生产包也进行测试。 而…

【Stable diffusion教程】AutoDL云部署超详细步骤说明【外婆都会】

1 AutoDL云端部署操作流程 1.1 登录/注册 官网&#xff1a;https://www.autodl.com/home&#xff0c;点击右上角登录/注册。此处我已经注册了 如果你是学生的话&#xff0c;注册完之后&#xff0c;进入控制台&#xff0c;在右上角点一下学生认证&#xff0c;然后你就可以享受…

23.6.24

1、grep&#xff1a;查找字符串 grep 字符串 文件名 -w:按单词查找 -R:实现递归查找&#xff0c;主要用于路径是目录的情况 -i:不区分大小写 -n:显示行号 grep -w "^ubuntu" /etc/passwd ---->查找以ubuntu单词作为开头位置的所在行 grep -w "ubuntu$"…

html简单实现b站评论回车发布

头像&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wi…

Linux系统:进程概念

文章目录 1 操作系统1.1 概念1.2设计操作系统的目的 2进程2.1 进程是什么2.2 如何管理进程2.2查看进程2.3 程序中获取自己的pid2.4 创建一个进程2.5 进程状态2.6 进程优先级2.6.1为什么要有优先级2.6.2 什么是优先级2.6.3 linux下优先级的做法 2.8 其他概念 3进程地址空间3.1 初…

基于Docker环境下的Jenkins搭建及使用

目录 前言&#xff1a; Docker下安装Jenkins 启动Jenkins Jenkins插件下载 配置Jenkins 修改Jenkins时间 配置Python3环境 配置HTML报告/Allure报告 Allure报告配置 简单使用-实例构建 参数化构建 构建后操作 配置成功 控制台输出 Allure报告查看 HTML报告查看 前言&#xff1a…

macOS上下载安装Kibana并连接ES

下载Kibana 执行以下命令进行&#xff0c;版本号根据你所用的ES版本选择&#xff0c;比如我的是7.10.0 curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-darwin-x86_64.tar.gz解压安装Kibana tar -zxvf kibana-7.10.0-darwin-x86_64.tar.gz进行config…

Visual modflow Flex地下水数值模拟

专题一 地下水数值软件的操作流程、建模步骤和所需资料处理及相关注意事项 [1] Visual MODFLOW Flex特征 [2] Visual MODFLOW Flex软件界面及模块 [3] 地下水数值模拟的建模步骤及数据需求 专题二 模型建模操作方法 技巧、真实案例演练、特殊问题处理 [1] 直接模型建模的操…

【信号】信号处理与进程通信:快速上手

目录 0. 信号概述 1. 产生信号的方式&#xff1a; 1.1 当用户按某些终端键时&#xff0c;将产生信号。 1.2 硬件异常将产生信号。 1.3 软件异常将产生信号。 1.4 调用kill函数将发送信号。 1.5 运行kill命令将发送信号。 2. 信号的默认&#xff08;缺省&#xff09;处理…