精华内容
下载资源
问答
  • Java程序是由Java虚拟机执行的,那么运行Java程序的时候,Java虚拟机就得知道,从哪一行代码开始执行。所以运行Java程序的命令: java Main.class。就是告诉了Java虚拟机,...明白了主类的作用,理解测试类也就容易...

    Java程序是由Java虚拟机执行的,那么运行Java程序的时候,Java虚拟机就得知道,从哪一行代码开始执行。所以运行Java程序的命令: java Main.class。就是告诉了Java虚拟机,Main.class就是主类。那么Java虚拟机知道了这个主类,接着就会找这个类里面的 main 方法,然后从 main方法开始执行程序。这个就是主类存在的作用。

    明白了主类的作用,理解测试类也就容易多了。我们写程序的时候,免不了要对一部分代码进行测试。对于测试,我只想运行一部分代码,也就是我希望虚拟机从我指定的地方开始运行就可以了。这样的话,一般懒的做法,就是在你需要写测试代码的地方,写一个main方法,然后运行的时候让虚拟机从这里开始。但是呢,这个偷懒的做法很不好。因为你测试完了,就得删除这段测试代码,否则久而久之,代码就很乱,很难看,别人看到你的代码,还会在心里鄙视你。

    所以测试类的作用就是优雅的让你写测试代码。主类里的main方法是程序的入口,测试类里的测试方法,也可以看做程序的入口(虽然并不是真正的入口)。主类里面只能写一个main方法,也就是只能有一个入口,不然Java虚拟机怎么知道从哪个门进啊。测试类的一个好处就是,这个类里的每个测试方法都可以看做main方法,可以单独开始运行。具体运行哪个方法呢,可以由你指定。

    总结下,主类相当于程序在完整运行时的入口。测试类是方便你在需要测试某一部分代码的时候,可以自定义,程序从哪里开始运行。

    展开全文
  • Java运行非Web的Springboot项目(测试类或启动主类两种方法)前言一、创建打开一个Springboot项目二、运行项目1、Test测试类运行2、启动主类运行三、持续运行不停止(定时任务、自动执行)总结 前言 如果springboot...


    前言

    如果springboot不是一个Web项目,大家知道,项目启动以后马上就会停止,并且 controller 等各层里面的方法也不会被执行,下面有两种方式可以运行容器里面的方法,测试类或者修改启动主类,都非常简单,几行代码的事情。


    一、创建打开一个Springboot项目

    使用idea,选择Spring Initializr进行创建

    在这里插入图片描述

    next,这一步不要勾选 Spring Web 依赖,不然就是个 Web 项目了

    在这里插入图片描述

    完成以后大家发现,已经为我们创建好了 测试类,那我们就先讲用测试类运行吧
    在这里插入图片描述

    先写好基本结构,我的这个 demo方法就是一个 System.out.println(“Hello World”);

    在这里插入图片描述


    二、运行项目

    1、Test测试类运行

    打开测试类,我的叫 UseToTestApplicationTests,不同项目名字不一样,里面的初始代码是这样的,每个人都一样

    在这里插入图片描述

    在里面直接 @Autowired 你的 controller 层的文件,在下面 contextLoads 里面调用方法,右键,运行 contextLoads 就可以了。然后输出了 HelloWorld

    在这里插入图片描述
    在这里插入图片描述

    2、启动主类运行

    下面使用 UseToTestApplication 启动主类来运行项目

    修改代码为下图所示,要获取哪个容器就getBean哪个容器名,右键启动 UseToTestApplication

    ConfigurableApplicationContext context = SpringApplication.run(UseToTestApplication.class, args);
            //获取容器DemoController
            DemoController demoController = (DemoController) context.getBean("demoController");
            //DemoController获取成功,调用demo方法
            demoController.demo();
    

    在这里插入图片描述

    输出 HelloWorld

    在这里插入图片描述


    三、持续运行不停止(定时任务、自动执行)

    如果想要让项目不停止,一直打印HelloWorld,可以在启动类 UseToTestApplication 上添加注解 @EnableScheduling ,意思为开启定时任务,这个时候启动类就不能修改成上面的getBean那样了,要改回原来的样子

    然后在 controller 层的DemoControlelr里面加上注解 @Component 可以确保这个类会被定时任务扫描到,然后在下面的 demo 方法上加上 @Scheduled(fixedRate = 3000),意思为每1000毫秒执行一次 demo 方法

    在这里插入图片描述
    在这里插入图片描述

    启动主类,运行结果,每1秒打印一个 HelloWorld ,永不停止
    在这里插入图片描述


    总结

    如果需要更详细的定时任务的操作,我的另一篇文章有详解,可以定制逻辑更复杂的定时任务

    传送门:Java实现非Web项目的Springboot定时任务(每3秒自动执行一次)

    展开全文
  • 什么是Java 应用程序的主类

    千次阅读 2021-02-25 19:59:02
    问题阐述在进行Java 应用程序开发时,为了使应用程序能够运行,这个应用程序必须要含有一个主类,请问什么是Java 应用程序的主类?专家解答Java 应用程序是由若干和接口组成的,为了使Java 应用程序能够运行,至少...

    问题阐述

    在进行Java 应用程序开发时,为了使应用程序能够运行,这个应用程序必须要含有一个主类,请问什么是Java 应用程序的主类?

    专家解答

    Java 应用程序是由若干类和接口组成的,为了使Java 应用程序能够运行,至少要有一个类含有main()主方法,因为main()主方法是Java 应用程序的入口点,Java 应用程序就是从这里开始运行的,我们把含有main()主方法的类称为Java 应用程序的主类。

    例如:

    . 没有主方法的类,即非主类。

    f9874f7f33c5701dcad717e703be0439.png

    . 含有主方法的类,即主类。

    e1b664770ac9fc42c463532268033349.png

    运行程序,程序将从主类MainApp 的main()主方法开始执行,在该方法中首先创建PrintInfo 类的实例,然后通过该实例调用printMsg()方法,在控制台打印输出信息,效果如图6.8 所示。

    0f137aa6c547906f4c8e9c14db1551cf.png

    专家点评

    Java 应用程序是从main()主方法开始运行的,在Java 应用程序中将含有main()主方法的类称为主类,而在一个Java 应用程序中,开发人员往往为了测试的方便,会为每个类添加一个主方法,但是在测试完以后,应该记着将进行测试的主方法删除,只保留主类中唯一的一个主方法。

    展开全文
  • /*** 建立一个学生,重写toString()方法* @author TP**/public class Student {/************成员变量区****************//**学生姓名*/String name;/**学生年龄*/int age;/************构造方法区***************...

    这是Student类

    package com.ma_0002;

    /**

    * 建立一个学生类,重写toString()方法

    * @author TP

    *

    */

    public class Student {

    /************成员变量区****************/

    /**学生姓名*/

    String name;

    /**学生年龄*/

    int age;

    /************构造方法区****************/

    public Student() {

    super();

    }

    public Student(String name, int age) {

    super();

    this.name = name;

    this.age = age;

    }

    /************get和set方法区****************/

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    /************重写了toString()方法****************/

    @Override

    public String toString() {

    return "Student [name=" + name + ", age=" + age + "]";

    }

    }

    这是测试类StudentTest

    package com.ma_0002;

    /**

    * Student测试类

    * @author TP

    *

    */

    public class StudentTest {

    /*

    * 需求:

    * 创建几个Student对角,并把它们放入一个数组中,然后输出

    *

    * 分析:

    * 1.用Student构造方法创建对象

    * 2.创建一个Student[]数组来放对象

    * 3.输出

    */

    public static void main(String[] args) {

    //创建一个学生类对象

    Student s = new Student("张大",1);

    Student s2 = new Student("张二",2);

    Student s3 = new Student("张三",3);

    Student s4 = new Student("张四",4);

    Student s5 = new Student("张五",5);

    Student s6 = new Student("张六",6);

    //创建一个Student[]数组来放对象

    Student[] stuArr = new Student[6];

    //给数组赋值

    stuArr[0] = s;

    stuArr[1] = s2;

    stuArr[2] = s3;

    stuArr[3] = s4;

    stuArr[4] = s5;

    stuArr[5] = s6;

    //遍历输出数组元素

    for (int i = 0; i < stuArr.length; i++) {

    System.out.println("s"+i+" : "+stuArr[i]);

    }

    }

    }

    执行结果:

    s0 : Student [name=张大, age=1]

    s1 : Student [name=张二, age=2]

    s2 : Student [name=张三, age=3]

    s3 : Student [name=张四, age=4]

    s4 : Student [name=张五, age=5]

    s5 : Student [name=张六, age=6]

    展开全文
  • 展开全部代码已经编译通过import java.util.*;public class MainClass_StudentInfor{public static void main(String args[]){boolean e=true;Student stu=new Student();Scanner sc=new Scanner(System.in);while(e...
  • Java文件的命名,Java主类Java中的public

    千次阅读 多人点赞 2019-07-16 11:37:07
    编译和运行 Java 程序 HelloWorld.java 文件: // HelloWorld.java public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } 运行该命令后会生成...
  • 1. 创建Java如果说Java的一切都是对象,那么类型就是...2. Java类的字段一旦定义了一个(在Java中你所的全部工作就是定义,产生那些的对象,以及发送消息给这些对象),就可以在中设置两种类型的元素:字...
  • 叶子酱油发布日期:2017-09-05package arraylist;public class Course{private String name;private double score;public String getName(){return name;}public void setName(String name){this.name = name;...
  • 写一个测试类,创建Student对象,打印学生信息。 以下代码用三种不同方式实现 代码类实现方式一: // 第一种方法 public class StudentTest { public static void main(String[] args) { St
  • 默认安装在C:\ProgramFiles\Java\jdk1.7.0目录下环境变量配置为PATH=.;%JAVA_HOME%\binCLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;JAVA_HOME=C:\Program Files\Java\jdk1.7.0在把jdk安装到计算机...
  • (1) Monkey中有个构造方法:Monkey(String s),并且有个public void speak()方法,在speak方法中输出“咿咿呀呀......”的信息。(2)People是Monkey的子类,在People中重写方法speak(),在speak方法中输出...
  • java定义类和测试类时的三种方式

    千次阅读 2020-11-18 14:58:00
    2. 把定义类和测试类这两个类放在一个源文件中,注意:一个java源文件中只能有一个public类 package test; class Person { String name; int age; int sex; public void study() { System.out.println(...
  • 标题编写一个Java应用程序,该程序包括3个:Monkey、People主类E。 要求: (1) Monkey中有个构造方法:Monkey (String s),并且有个public void speak()方法,在speak方法中输出“咿咿呀呀…”的信息。 (2...
  • JAVA|A、B主类E

    千次阅读 2019-12-10 00:18:16
    A、B主类E 编写一个Java应用程序,该...在主类E的main方法中,创建B的对象并赋给父类A的对象a,使用上转型对象a来测试上转型对象的一些特性。 A.java???? package work.third; public class A { ...
  • 如果环境变量配置的没有问题,那么八成就是你Refactor过当前Module的名字,但是父项目的maven配置文件pom.xml中没有同步新名字。 这个问题在MacBook下可以通过File - Invalidate Caches / Restart来验证,重启之后会...
  • 我在命令行上运行Java的问题。我查了很多其他问题,没有一个能解决我的问题。我用的是Windoze 10 x64。安装在C:\Program Files\Java上,我有以下文件:jdk1.8.0_121和jre1.8.0_121。我已经设置了JAVA_HOME、PATH和...
  • Java类执行过程

    2021-02-12 17:20:46
    1. 对象的创建由什么完成实际通过调用该的有参或无参构造方法创建对象,但对象的创建并不由构造器完成.实际上通过new关键字调用构造方法时,系统在执行构造方法前会为该对象分配内存空间,并为这个对象执行默认初始化...
  • 编写一个Java应用程序,该程序包括3个:Monkey、People主类E。要求: (1)Monkey中有个构造方法:Monkey (String s),并且有个public void speak()方法,在speak方法中输出“咿咿呀呀……”的信息。 (2)...
  • /*** 建立一个学生,重写toString()方法* @author TP**/public class Student {/************成员变量区****************//**学生姓名*/String name;/**学生年龄*/int age;/************构造方法区***************...
  • i 【判断题】Java源程序是由定义组成的,每个程序可以定义若干个,但只有一个主类。 【判断题】抽象方法必须在抽象中,所以抽象中的方法都必须是抽象方法。 【填空题】#include using namespace std; class...
  • 我有一个标准的maven项目布局....我怎么能完全这样?解决方法:您需要配置maven以将这些文件用作测试资源.只需在pom.xml中指定它.比maven将处理与测试资源相同的配置文件....src/test/resourcessrc/main/conf...
  • 43) at java.lang.reflect.Method.invoke(Method.java:606) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable....
  • java程序编写过程中,我们常常遇到各种各样的错误哦无法找到主类这个最基本的错误常常令我们头痛,因为程序员老熬夜,记性通常不太好1.jdk的安装没安装好 我们要检查jdk的安装是否成功 启动dos控制台,ctrl+R...
  • 后来用junit进行测试时,又提示找不到测试类,该测试类明明在指定的路径上啊!急死,于是又调了半天,原来是pom文件中的junit依赖与其他依赖有冲突,于是直接删除了junit依赖,重新导入,并刷新maven即可 于是一切...
  • 要是配置文件的路径问题。...# set Java environmentJAVA_HOME=/usr/local/java/jdk1.8.0PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexpor...
  • 因为在程序里边,一个接口对应一个实现方法,而在接口中常常会定义相关的很多方法,所以在测试的时候,如果都...如果你的里有多个方法,用main方法测试的话就很不方便,想测试全部方法的话就得把测试代码全部写到...
  • 主类

    2021-03-09 05:30:38
    给一个系统定位问题的时候,知识,经验...他的功能与unix中的ps命令类似,来看看他的介绍可以列出正在运行的虚拟添加module 和 主类编译生成jar 包注意在生成jar的时候需要将相关的jar一起复制过来,如果碰到Error: ...
  • 首先了解一下Java虚拟机初始化的原理。 JVM通过加装、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。类型的生命周期如下图所示: 装载和连接必须在初始化之前就要完成。 初始化阶段,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,803
精华内容 7,521
关键字:

java测试类做主类

java 订阅