执行java代码时出错

执行java代码时出错,java,Java,此java代码中存在错误。我想打印hello world和var1值。 输入: 错误: PS C:\Users\SOUVIK\Desktop> & 'c:\Users\SOUVIK\.vscode\extensions\vscjava.vscode-java-debug-0.31.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk-14.0.2\bin\java.exe' '-XX:+ShowCodeDetailsInExcep

此java代码中存在错误。我想打印hello world和var1值。 输入:

错误:

PS C:\Users\SOUVIK\Desktop>  & 'c:\Users\SOUVIK\.vscode\extensions\vscjava.vscode-java-debug-0.31.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk-14.0.2\bin\java.exe' 
'-XX:+ShowCodeDetailsInExceptionMessages''-Dfile.encoding=UTF-8' '-cp' 'C:\Users\SOUVIK\AppData\Roaming\Code\User\workspaceStorage\1fca3cee0a29c97a3fcadb36b4ef44b2\redhat.java\jdt_ws\jdt.ls-java-project\bin' 'Helloworld' 

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    Cannot make a static reference to the non-static field var1
    Cannot make a static reference to the non-static field Scannerobj
    Cannot make a static reference to the non-static field var1

您不能使用静态上下文中的非静态变量,因为main是静态方法。因此,您可以将变量设置为静态
静态扫描仪Scannerobj=new Scanner(System.in)

static int var1或在main函数下定义这些变量

在main方法中定义扫描仪对象和var1,如下所示

import java.util.*; 
class Helloworld{
public static void main(String[] args){
    int var1;
    Scanner Scannerobj =new Scanner(System.in);
    System.out.println("hello world");
    System.out.println("Enter the value of var1");
    var1 = Scannerobj.nextInt();
    System.out.println(var1);
}

}

如果要在main方法之外定义scanner对象和var1,请在定义scanner对象和var1时添加static关键字

import java.util.*; 
class Helloworld{
static Scanner Scannerobj =new Scanner(System.in);
static int var1;
public static void main(String[] args){
    System.out.println("hello world");
    System.out.println("Enter the value of var1");
    var1 = Scannerobj.nextInt();
    System.out.println(var1);
}

}

请显示您的程序输出,并解释您对错误消息的理解。这是否回答了您的问题?
import java.util.*; 
class Helloworld{
static Scanner Scannerobj =new Scanner(System.in);
static int var1;
public static void main(String[] args){
    System.out.println("hello world");
    System.out.println("Enter the value of var1");
    var1 = Scannerobj.nextInt();
    System.out.println(var1);
}

}