最近在java核心技术 基础知识 上看到一个程序说是不用main方法就可以打印出Hello,World!
public class Hello
{
staitc
{
System.out.println("Hello,World!");
System.exit(0);
} }可是自己运行的时候硬是不出来 后来网上查了一下也说可以,说是程序运行时先执行静态块的内容,main方法不是入口么,各种凌乱。。还请个位大牛解释一二,谢谢那
public class Hello
{
staitc
{
System.out.println("Hello,World!");
System.exit(0);
} }可是自己运行的时候硬是不出来 后来网上查了一下也说可以,说是程序运行时先执行静态块的内容,main方法不是入口么,各种凌乱。。还请个位大牛解释一二,谢谢那
解决方案 »
- java构造器
- 高手指点一下这错在哪里啊 不胜感激之至
- 问 个 解析全国路 问题
- 请问有没有碰到过rmi服务启动之后,一会儿就自动停止了的情况?
- Which three will compile and rim without exception?
- 如何写文件中的指定一行???
- java画2个长方形 随即变填充颜色
- 为什么一个.java文件里面只能有一个public?
- 还是菜鸟问题,关于swing的,在线等
- jbuilder8->Tools->configure libraries是配置什么的?
- 关于流关闭的一个问题
- 求助!!使用Commons DbUtils 向SQLserver2008中的表插入数据出错。
还有标准的hello,world是这样的,全小写中间用逗号隔开不加感叹号
static {
System.out.println("Hello,World!");
System.exit(0);
} public static void main(String[] args) throws IOException {
}
各位可以这样试试:
public class Hello{
static {
System.out.println("Hello,World!");
}
}
能看到很有意思的结果。
拼写错误。
static {
System.out.println("Hello,World!");
}
}
C:\>java Hello
HelloWorld
Exception in thread "main" java.lang.NoSuchMethodError: main
a、new这个类的一个实例;
b、访问类的静态变量或者静态方法
c、反射
d、访问该类的子类,即创建子类对象
e、标示该类为启动类应该有6种的 ,好像b包含了两种 ,以上就是类的主动使用,jvm会加载类,加载类才会初始化 ,才会运行static模块
public class HelloWorld {
static {
System.out.println("Hello,World!");
}
}可以输出:
F:\fzjwork\java>java HelloWorld
Hello,World!
Exception in thread "main" java.lang.NoSuchMethodError: main
public class HelloWorld {
static {
System.out.println("Hello,World!");
System.exit(0);
}
}结果:
F:\fzjwork\java>java HelloWorld
Hello,World!
学会了
根本不能java java的时候报错如下
在HelloWorld类中找不到主方法,请讲主方法定义为public static void main(String[] args)
你真的运行过么?
public class HelloWorld {
static {
System.out.println("Hello,World!");
System.exit(0);
}
}
static {
System.out.println("Hello,World!");
System.exit(0);
}
}
受教了 没有System.exit(0)的话会抛出异常
在Eclipse下是不行滴
自己敲CMD才行
{
static
{
System.out.println("Hello,World");
System.exit(1);
}
}
根据java编程思想
1. 即使没有使用static, 构造器也是静态方法,先被访问,java解释器定位class文件
2. 载入class文件,执行所有静态初始化(也就是上面的static)
static {
System.out.println("123");
System.exit(0);
}
}
完全可以输出。没问题、编译和运行都不会报错我不知道你怎么搞的、
错误: 在类 Hello 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)
为什么会这样,请指点指点。
@Test
public void noMain()
{
System.out.println("hello,world");
}
}
static {
System.out.println("hello world");
}
public static void main(String[] args) {
new HelloWorld();
}
}这只是其中的最简单的一种情况为类被创建了一个对象,还有反射之类的,你可以去以下的网站看看,可以做一下实验,都可以达到楼主的效果
http://gaolixu.iteye.com/blog/560436
是优先于main执行的 但是你这样 执行玩包报错因为他找不到 main入口的方法
当没有System.exit(0);这句时,JVM会找main方法,因为没写main方法,所以抛出异常
static {
System.out.println("Hello,World!");
System.exit(0);
}
}
运行之后,说在类中找不到主方法main.郁闷》》》》》》》》》》》》》》》
public class HelloWorld {
}
命令行运行:
java HelloWorld | echo Hello World
可以帮我解释解释怎么反射的吗?我在学反射...谢谢大侠。
D:\Temp\TSLOG>javac Hello.javaD:\Temp\TSLOG>java Hello
错误: 在类 Hello 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)D:\Temp\TSLOG>
测试了,不可以的
错误: 在类 Hello 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)D:\Temp\TSLOG>
和楼主的例子一样,找不到main()
E:\JavaProject\Project>javac Hello.javaE:\JavaProject\Project>java Hello
错误: 在类 Hello 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)E:\JavaProject\Project>
这是我的结果 为什么也不能啊 顺便求指导了 。。
这个东西叫静态块 它里边的东西只在类被加载的时候执行一次 然后再也看不到了
这里例子其实程序并没有运行起来 只是在加载类的时候把静态块加进去了
拿static{}括起来是因为类里面只能有方法和成员变量 想在加载类的时候执行的东西只能靠放在静态块里实现
{
static {
System.out.println("I will not use the 'Hello World'!");
System.exit(0);
}
}
我的也不行不会跟jdk有关吧。。
{
static {
System.out.println("I will not use the 'Hello World'!");
System.exit(0);
}
}
System.exit(0);这句话是强制终止找寻main方法的命令吗?应该是System类中的一个特性吧!
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;public class HelloApplet extends Applet {
public void init() {
setBackground( Color.black );
} public void paint( Graphics g ) {
g.setColor( Color.green );
g.drawString("Hello World", 40, 80);
}
}