[code="java"]
public interface Action {
public String execute(String str);
}
[/code]
[code="java"]
public class LowerAction implements Action {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String string) {
message = string;
}
public String execute(String str) {
return (getMessage() + str).toLowerCase();
}
}
[/code]
[code="java"]
public class UpperAction implements Action {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String string) {
message = string;
}
public String execute(String str) {
return (getMessage() + str).toUpperCase();
}
}
[/code]
[code="java"]
public class Test {
public static void main(String args[]){
ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");
Action action = (Action) ctx.getBean("TheAction");
System.out.println(action.execute("Rod Johnson"));
}
}
[/code]
[code="java"]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
Spring Quick Start
Hello
[/code]
上面代码运行后报错:
跳出对话框 could not find main class.Program will exit.
然后异常
java.lang.UnsupportedClassVersionError: org/springframework/context/ApplicationContext (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
Exception in thread "main"
什么原因啊
[b]问题补充:[/b]
[code="java"]
public static void main(String args[]){
System.out.println("Hello!");
}
[/code]
我运行这个没问题
[b]问题补充:[/b]
我用的是ECLIPSE,我确实是有两个JDK一个是1.5一个是1.4
单我有两个项目其中一个必须用1.4版本的没有办法不能删除.所以必须两个同时存在
但我觉得这个应该也不会有问题啊.我都在这个环境里开发快1年了也没有出问题啊.
而且我运行下面的代码没有问题啊
public static void main(String args[]){
System.out.println("Hello!");
}
为什么这段就不行了呢有什么特出呢!是用了spring框架吗??
spring框架会影响这个吗
public static void main(String args[]){
ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");
Action action = (Action) ctx.getBean("TheAction");
System.out.println(action.execute("Rod Johnson"));
}
[b]问题补充:[/b]
上面得问题解决了!
现在又报这个错误了
2009-6-3 12:22:16 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.FileSystemXmlApplicationContext@13a328f: display name [org.springframework.context.support.FileSystemXmlApplicationContext@13a328f]; startup date [Wed Jun 03 12:22:16 CST 2009]; root of context hierarchy
2009-6-3 12:22:16 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from file [F:\MyCode\Spring\bean.xml]
2009-6-3 12:22:16 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.FileSystemXmlApplicationContext@13a328f]: org.springframework.beans.factory.support.DefaultListableBeanFactory@fe64b9
Exception in thread "main" java.lang.NoClassDefFoundError: org/antlr/runtime/Lexer
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.springframework.context.expression.StandardBeanExpressionResolver.(StandardBeanExpressionResolver.java:57)
at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:441)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.context.support.FileSystemXmlApplicationContext.(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.(FileSystemXmlApplicationContext.java:84)
at spring.test.Test.main(Test.java:8)
[b]问题补充:[/b]
加了还是这个错
[b]问题补充:[/b]
2009-6-8 21:33:11 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.FileSystemXmlApplicationContext@13a328f: display name [org.springframework.context.support.FileSystemXmlApplicationContext@13a328f]; startup date [Mon Jun 08 21:33:11 CST 2009]; root of context hierarchy
2009-6-8 21:33:12 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from file [F:\MyCode\testSpring\src\myspring.xml]
2009-6-8 21:33:12 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.FileSystemXmlApplicationContext@13a328f]: org.springframework.beans.factory.support.DefaultListableBeanFactory@fe64b9
Exception in thread "main" java.lang.NoClassDefFoundError: org/antlr/runtime/Lexer
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.springframework.context.expression.StandardBeanExpressionResolver.(StandardBeanExpressionResolver.java:57)
at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:441)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.context.support.FileSystemXmlApplicationContext.(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.(FileSystemXmlApplicationContext.java:84)
at hello.spring.TestHelloWorld.main(TestHelloWorld.java:8)
缺少spring的jar包antlr-(version).jar,你把这个jar加进去试试
检查下你的环境变量,看看会不会是存在了不同版本的jdk啊?
网上说法都是编译时用的JDK与运行时的JDK版本不一致;你是用什么编译的代码,用的JDK版本是多少?运行的时候是以什么方式运行的?环境变量中的path中会不会还有别的jdk呢?因为有的软件如Oracle好像都会单独指定一个版本的JDK;
Spring 2.5必须1.4+版本的JDK,Spring 2.0必须是1.3+的JDK,Elicpse是可以指定运行JRE的,你把运行时的JRE设置为1.5的试试。
在eclipse - 里设置jdk编译器的版本编译一下试试