这里有个例子大概是这样的,我先说一下我机子CLASSPATH的配置:F:\FinalWork\jdo\jdoLib\jdo.jar;F:\FinalWork\jdo\jdoLib\jdori.jar;F:\FinalWork\jdo\jdoLib\jdori-enhancer.jar;F:\FinalWork\jdo\jdoLib\xerces.jar;F:\FinalWork\jdo\jdoLib\jta-1_1-classes.zip;F:\FinalWork\jdo\jdoLib\xercesImpl.jar我将所有可能用到的JDO参考实现的包全部放进CLASSPATH中了,然后我建了三个类,如下:
public class Actor {
private String name;
private Set roles; // element type: Role
private Actor(){ }
public Actor(String name)
{
this.name = name;
roles = new HashSet();
}public String getName()
{
return name;
}public void addRole(Role role)
{
roles.add(role);
}public void removeRole(Role role)
{
roles.remove(role);
}public Set getRoles()
{
return Collections.unmodifiableSet(roles);
}
}public class Movie {
private static SimpleDateFormat yearFmt = new SimpleDateFormat("yyyy");
public static final String[] MPAAratings =
{ "G", "PG", "PG-13", "R", "NC-17", "NR" };
private String title;
private Date releaseDate;
private int runningTime;
private String rating;
private String webSite;
private String genres;
private Set cast; // element type: Roleprivate Movie()
{ }public Movie(String title, Date release, int duration, String rating,
String genres)
{
this.title = title;
releaseDate = release;
runningTime = duration;
this.rating = rating;
this.genres = genres;
cast = new HashSet();
}public String getTitle()
{
return title;
}public Date getReleaseDate()
{
return releaseDate;
}public String getRating()
{
return rating;
}
public int getRunningTime()
{
return runningTime;
}public String getGenres()
{
return genres;
}public void setWebSite(String site)
{
webSite = site;
}public String getWebSite()
{
return webSite;
}public void addRole(Role role)
{
cast.add(role);
}public Set getCast()
{
return Collections.unmodifiableSet(cast);
}public static Date parseReleaseDate(String val)
{
Date date = null;
try {
date = yearFmt.parse(val);
} catch(java.text.ParseException exc){ }
return date;
}public String formatReleaseDate()
{
return yearFmt.format(releaseDate);
}
}
package com.mediamania.prototype;public class Role {
private String name;
private Actor actor;
private Movie movie;private Role()
{ }public Role(String name, Actor actor, Movie movie)
{
this.name = name;
this.actor = actor;
this.movie = movie;
actor.addRole(this);
movie.addRole(this);
}public String getName()
{
return name;
}public Actor getActor()
{
return actor;
}public Movie getMovie()
{
return movie;
}
}建好后,我就在DOS下,用下面命令进行类增强操作:
java com.sun.jdori.enhancer.Main -d enhanced \ classes/com/mediamania/prototype/prototype.jdo \ classes/com/mediamania/prototype/Movie.class \ classes/com/mediamania/prototype/Actor.class \ classes/com/mediamania/prototype/Role.class
pause写成run.bat文件,运行,但始终报错:
错误如下:
Error while enhancing: JDO ENHANCER: At least one error occurred while enhancing
input class for Transparent Persistence; detailed message(s): I/O error while r
eading input stream or input stream does not denote a valid Java class.
com.sun.jdori.enhancer.EnhancerUserException: JDO ENHANCER: At least one error o
ccurred while enhancing input class for Transparent Persistence; detailed messag
e(s): I/O error while reading input stream or input stream does not denote a val
id Java class.
at com.sun.jdori.enhancer.filter.Enhancer.enhanceClassFile(Unknown Sourc
e)
at com.sun.jdori.enhancer.Main.enhanceClassFile(Unknown Source)
at com.sun.jdori.enhancer.Main.enhanceInputFiles(Unknown Source)
at com.sun.jdori.enhancer.Main.process(Unknown Source)
at com.sun.jdori.enhancer.Main.main(Unknown Source)本来想搞下的JDO DEMO然后做毕业设计的。但就卡在了增强类操作中,如果使用DOS命令进行手动增强就出现上面的错误。请问高手,这是什么错?我的配置有错吗???
public class Actor {
private String name;
private Set roles; // element type: Role
private Actor(){ }
public Actor(String name)
{
this.name = name;
roles = new HashSet();
}public String getName()
{
return name;
}public void addRole(Role role)
{
roles.add(role);
}public void removeRole(Role role)
{
roles.remove(role);
}public Set getRoles()
{
return Collections.unmodifiableSet(roles);
}
}public class Movie {
private static SimpleDateFormat yearFmt = new SimpleDateFormat("yyyy");
public static final String[] MPAAratings =
{ "G", "PG", "PG-13", "R", "NC-17", "NR" };
private String title;
private Date releaseDate;
private int runningTime;
private String rating;
private String webSite;
private String genres;
private Set cast; // element type: Roleprivate Movie()
{ }public Movie(String title, Date release, int duration, String rating,
String genres)
{
this.title = title;
releaseDate = release;
runningTime = duration;
this.rating = rating;
this.genres = genres;
cast = new HashSet();
}public String getTitle()
{
return title;
}public Date getReleaseDate()
{
return releaseDate;
}public String getRating()
{
return rating;
}
public int getRunningTime()
{
return runningTime;
}public String getGenres()
{
return genres;
}public void setWebSite(String site)
{
webSite = site;
}public String getWebSite()
{
return webSite;
}public void addRole(Role role)
{
cast.add(role);
}public Set getCast()
{
return Collections.unmodifiableSet(cast);
}public static Date parseReleaseDate(String val)
{
Date date = null;
try {
date = yearFmt.parse(val);
} catch(java.text.ParseException exc){ }
return date;
}public String formatReleaseDate()
{
return yearFmt.format(releaseDate);
}
}
package com.mediamania.prototype;public class Role {
private String name;
private Actor actor;
private Movie movie;private Role()
{ }public Role(String name, Actor actor, Movie movie)
{
this.name = name;
this.actor = actor;
this.movie = movie;
actor.addRole(this);
movie.addRole(this);
}public String getName()
{
return name;
}public Actor getActor()
{
return actor;
}public Movie getMovie()
{
return movie;
}
}建好后,我就在DOS下,用下面命令进行类增强操作:
java com.sun.jdori.enhancer.Main -d enhanced \ classes/com/mediamania/prototype/prototype.jdo \ classes/com/mediamania/prototype/Movie.class \ classes/com/mediamania/prototype/Actor.class \ classes/com/mediamania/prototype/Role.class
pause写成run.bat文件,运行,但始终报错:
错误如下:
Error while enhancing: JDO ENHANCER: At least one error occurred while enhancing
input class for Transparent Persistence; detailed message(s): I/O error while r
eading input stream or input stream does not denote a valid Java class.
com.sun.jdori.enhancer.EnhancerUserException: JDO ENHANCER: At least one error o
ccurred while enhancing input class for Transparent Persistence; detailed messag
e(s): I/O error while reading input stream or input stream does not denote a val
id Java class.
at com.sun.jdori.enhancer.filter.Enhancer.enhanceClassFile(Unknown Sourc
e)
at com.sun.jdori.enhancer.Main.enhanceClassFile(Unknown Source)
at com.sun.jdori.enhancer.Main.enhanceInputFiles(Unknown Source)
at com.sun.jdori.enhancer.Main.process(Unknown Source)
at com.sun.jdori.enhancer.Main.main(Unknown Source)本来想搞下的JDO DEMO然后做毕业设计的。但就卡在了增强类操作中,如果使用DOS命令进行手动增强就出现上面的错误。请问高手,这是什么错?我的配置有错吗???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货