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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值