我正在使用Eclipse。我正在尝试编写一个不包含main函数的程序,但仍然会打印Hello, World:
main
Hello, World
public class Q { static { System.out.println("Hello World"); System.exit(0); } }
字符串但是这个程序没有给我预期的结果。一个错误来了,说main方法在类Q中找不到。我在哪里犯了一个错误?
unhi4e5o1#
您仍然需要 run 程序来执行静态初始化块,如果没有适当的main方法(从Java 71开始),您就无法做到这一点。现在,这并不是说main实际上需要包含任何代码:
class Q { static { System.out.println("Hello World"); System.exit(0); } public static void main(String[] args) {} }
字符串1您的代码 * 实际上在Java 6及以下版本中工作 * -您不需要main方法。这是因为static初始化块 * 在 * 搜索main方法之前执行。但是,在您的情况下,您在该块的末尾使用System.exit(0)退出程序,因此Java从不查找main,您不会收到错误。
static
System.exit(0)
bwntbbo32#
每个Java应用程序都必须包含一个带有main方法的类,所以你的错误会一直存在,直到你在程序中的一个类中声明了一个main方法。
goucqfw63#
这是不可能的。你的程序必须包含main方法,否则系统不知道要运行哪段代码。
eanckbw94#
你的错误是你试图运行没有main方法的类(正如你解释的那样)。JVM正在寻找接受数组String作为参数的公共静态void main方法,作为任何程序的入口点。
String
eqfvzcg85#
Java程序从main方法开始执行,main方法的方法标题如下:public static void main(String[] args)”(http://en.wikipedia.org/wiki/Main_function#Java)你应该把你的类修改成类似于我下面所写的。
public class Q { public static void main(String[] args) { System.out.println("Hello World"); System.exit(0); } }
字符串
qzlgjiam6#
程序将为此代码运行你只需要使用javac Hello.java编译它,然后在控制台上执行它,通过java Hello.java输出。确保java编译器和一切都正确完成。谢谢!祝你有愉快的一天。
evrscar27#
import java.sql.*; import java.io.*; import javax.sql.*; public class Emsa { public static void main(String args[]) { int ch; try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","hr","hr"); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery("select * from Empdirc"); while(rs.next()) do { System.out.println("\n"); System.out.println("ENTER EMPLOYEE DETAILS:"); System.out.println("1.Insert Record into the Table"); System.out.println("2.Update The Existing Record."); System.out.println("3.Display all the Records from the Table"); System.out.println("4.Check PRIVILAGE LEAVE and Casual Leaves"); System.out.println("5.Exit"); System.out.println("Enter your choice: "); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); ch=Integer.parseInt(br.readLine()); switch(ch) { case 1: System.out.println("1.INSERT EMPLOYEE ID."); int num= Integer.parseInt(br.readLine()); System.out.println("2.INSERT EMPLOYEE NAME"); String ename=br.readLine(); System.out.println("3.INSERT EMPLOYEE DESIGNATION"); String desig=br.readLine(); System.out.println("4.INSERT EMPLOYEE DATEOFBIRTH"); String dob=br.readLine(); System.out.println("5.INSERT EMPLOYEE PHONE NO OR ANY CONTACT"); String mob= br.readLine(); System.out.println("6.INSERT EMPLOYEE EMAIL ID"); String email= br.readLine(); System.out.println("7.INSERT EMPLOYEE SALARY"); String sal=br.readLine(); System.out.println("8.INSERT EMPLOYEE paid LEAVES"); String pl=br.readLine(); System.out.println("9.INSERT EMPLOYEE CASUAL LEAVES"); String cl=br.readLine(); System.out.println("10.INSERT EMPLOYEE FINAL SALARY"); String fi= br.readLine(); System.out.println("11.STATUS"); String s=br.readLine(); String sql="insert into EmpDirc values(?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatement p=con.prepareStatement(sql); p.setInt(1,num); p.setString(2,ename); p.setString(3,desig); p.setString(4,dob); p.setString(5,mob); p.setString(6,email); p.setString(7,sal); p.setString(8,pl); p.setString(9,cl); p.setString(10,fi); p.setString(11,s); public static boolean abcd(String str) { int x; for(int mob= 0 ; mob < str.length() ; mob++) { x = (int)str.charAt(mob); if( x < 10 || x > 0) return false; } return true; } p.executeUpdate(); System.out.println("Record Added"); //p.close(); //con.close(); break; case 2: System.out.println("UPDATE EMPLOYEE id : "); int emnum=Integer.parseInt(br.readLine()); System.out.println("UPDATE EMPLOYEE DESIGNATION : "); String emdesig=br.readLine(); System.out.println("UPDATE EMPLOYEE PHONE: "); String emphn=br.readLine(); System.out.println("UPDATE EMPLOYEE EMAIL: "); String emmail=br.readLine(); System.out.println("UPDATE EMPLOYEE SALARY: "); String emsal=br.readLine(); System.out.println("UPDATE EMPLOYEE PL: "); String empl=br.readLine(); System.out.println("UPDATE EMPLOYEE CL: "); String emcl=br.readLine(); System.out.println("UPDATE EMPLOYEE FINAL SALARY: "); String emfi=br.readLine(); sql="update EmpDirc set Desig=?, Mob=? , Email=?, Sal=? , fi=? where Eid=?"; PreparedStatement ps=con.prepareStatement(sql); ps.setString(1,emdesig); ps.setString(2,emphn); ps.setString(3,emmail); ps.setString(4,emsal); //ps.setString(5,empl); //ps.setString(6,emcl); ps.setString(5,emfi); ps.setInt(6,emnum); ps.executeUpdate(); System.out.println("Record Updated"); //p.close(); //con.close(); break; case 3 : System.out.println("Displaying the Data "); //Statement stmt=con.createStatement(); ResultSet res=stmt.executeQuery("select * from Empdirc"); while(res.next()) System.out.println("Eid"+res.getInt(1)+"Ename "+res.getString(2)+"Design "+res.getString(3)+"Dob "+res.getString(4)+"Mobile no."+res.getString(5)+"Email "+res.getString(6)+"Salary "+res.getString(7)); break; case 4 : System.out.println("CALCULATING"); sql="update EmpDirc set Pl=?, Cl=? where Estatus=?"; PreparedStatement pes=con.prepareStatement(sql); pes.setInt(1,15); pes.setInt(2,07); pes.setString(3,"permanent"); pes.executeUpdate(); System.out.println("Record Updated"); case 5: System.exit(0); break; default: System.out.println("Invalid Choice"); break; } }while(ch!=2); con.close(); } catch(Exception e) { System.out.println(e); } } }
7条答案
按热度按时间unhi4e5o1#
您仍然需要 run 程序来执行静态初始化块,如果没有适当的
main
方法(从Java 71开始),您就无法做到这一点。现在,这并不是说main
实际上需要包含任何代码:字符串
1您的代码 * 实际上在Java 6及以下版本中工作 * -您不需要
main
方法。这是因为static
初始化块 * 在 * 搜索main
方法之前执行。但是,在您的情况下,您在该块的末尾使用System.exit(0)
退出程序,因此Java从不查找main
,您不会收到错误。bwntbbo32#
每个Java应用程序都必须包含一个带有main方法的类,所以你的错误会一直存在,直到你在程序中的一个类中声明了一个main方法。
goucqfw63#
这是不可能的。你的程序必须包含main方法,否则系统不知道要运行哪段代码。
eanckbw94#
你的错误是你试图运行没有
main
方法的类(正如你解释的那样)。JVM正在寻找接受数组
String
作为参数的公共静态void main方法,作为任何程序的入口点。eqfvzcg85#
Java程序从main方法开始执行,main方法的方法标题如下:
public static void main(String[] args)”
(http://en.wikipedia.org/wiki/Main_function#Java)
你应该把你的类修改成类似于我下面所写的。
字符串
qzlgjiam6#
程序将为此代码运行
你只需要使用javac Hello.java编译它,然后在控制台上执行它,通过java Hello.java输出。确保java编译器和一切都正确完成。
谢谢!祝你有愉快的一天。
evrscar27#
字符串