在eclipse中编译java文件并将其添加到解压缩的jar并重新命名jar的方法正确吗?

在eclipse中编译java文件并将其添加到解压缩的jar并重新命名jar的方法正确吗?,java,eclipse,tomcat,jar,Java,Eclipse,Tomcat,Jar,我有一个名为framework.jar的jar。我将它重命名为framework.zip,反编译它的一个类文件,对其进行修改,然后将其放回zip并将其重命名回framework.jar 虽然我这样做时没有对任何.class文件进行任何修改,但我的tomcat运行良好。然而,经过修改,我得到了一个生命周期异常。 注意,我从eclipse中获取了相应的最新编译的.class文件,并替换了相同的.class文件 更新: SEVERE: ContainerBase.addChild: start: or

我有一个名为framework.jar的jar。我将它重命名为framework.zip,反编译它的一个类文件,对其进行修改,然后将其放回zip并将其重命名回framework.jar

虽然我这样做时没有对任何.class文件进行任何修改,但我的tomcat运行良好。然而,经过修改,我得到了一个生命周期异常。 注意,我从eclipse中获取了相应的最新编译的.class文件,并替换了相同的.class文件

更新:

SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngin
e[Catalina].StandardHost[localhost].StandardContext[/enovia]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:1120)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig
.java:1678)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.tomee.catalina.TomEERuntimeException: org.apache.openejb.O
penEJBException: Unable to create annotation scanner for web module enovia: null

        at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatW
ebAppBuilder.java:2049)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWeb
AppBuilder.java:1091)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWe
bAppBuilder.java:1051)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(Global
ListenerSupport.java:127)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBa
se.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5322)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 10 more
Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scan
ner for web module enovia: null
        at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoa
der.java:838)
        at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java
:219)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatW
ebAppBuilder.java:2047)
        ... 17 more
Caused by: java.lang.IllegalArgumentException
        at org.apache.xbean.asm4.ClassReader.<init>(Unknown Source)
        at org.apache.xbean.asm4.ClassReader.<init>(Unknown Source)
        at org.apache.xbean.asm4.ClassReader.<init>(Unknown Source)
        at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinde
r.java:1120)
        at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java
:139)
        at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java
:152)
        at org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder.<init
>(AsynchronousInheritanceAnnotationFinder.java:43)
        at org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:
114)
        at org.apache.openejb.config.FinderFactory.create(FinderFactory.java:68)

        at org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.ja
va:57)
        at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoa
der.java:830)
        ... 19 more

May 13, 2015 9:14:52 PM org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory D:\16x_tomcat\apache-tomee-plu
s-1.6.0\webapps\enovia
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catal
ina.LifecycleException: Failed to start component [StandardEngine[Catalina].Stan
dardHost[localhost].StandardContext[/enovia]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:904)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:1120)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig
.java:1678)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
        at java.lang.Thread.run(Thread.java:745)
SEVERE:ContainerBase.addChild:start:
org.apache.catalina.LifecycleeException:无法启动组件[StandardEngin]
e[Catalina].StandardHost[localhost].StandardContext[/enovia]]
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:901)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
位于org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:1120)
在org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig
.java:1678)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor。
爪哇:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
运行(Thread.java:745)
原因:org.apache.tomee.catalina.TomEERuntimeException:org.apache.openejb.O
penEJBException:无法为web模块enovia创建批注扫描程序:null
位于org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatW
ebAppBuilder.java:2049)
在org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWeb
AppBuilder.java:1091)
位于org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWe
bAppBuilder.java:1051)
在org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(全球
ListenerSupport.java:127)
在org.apache.catalina.util.LifecyclesSupport.fireLifecycleEvent(生命周期
eSupport.java:119)
在org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBa
se.java:90)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContex
t、 爪哇:5322)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10多
原因:org.apache.openejb.OpenEJBException:无法创建批注扫描
web模块enovia的ner:null
位于org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoa
der.java:838)
位于org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java
:219)
位于org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatW
ebAppBuilder.java:2047)
... 还有17个
原因:java.lang.IllegalArgumentException
位于org.apache.xbean.asm4.ClassReader。(未知来源)
位于org.apache.xbean.asm4.ClassReader。(未知来源)
位于org.apache.xbean.asm4.ClassReader。(未知来源)
位于org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinde
r、 爪哇:1120)
位于org.apache.xbean.finder.AnnotationFinder.(AnnotationFinder.java)
:139)
位于org.apache.xbean.finder.AnnotationFinder.(AnnotationFinder.java)
:152)
位于org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder。(AsynchronousInheritanceAnnotationFinder.java:43)
位于org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:
114)
位于org.apache.openejb.config.FinderFactory.create(FinderFactory.java:68)
位于org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.ja
弗吉尼亚州:57)
位于org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoa
der.java:830)
... 还有19个
2015年5月13日晚上9:14:52 org.apache.catalina.startup.HostConfig部署目录
严重:部署web应用程序目录D:\16x\u tomcat\apache tomee plu时出错
s-1.6.0\webapps\enovia
java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catal
ina.LifecycleException:无法启动组件[StandardEngine[Catalina]。Stan
dardHost[localhost].StandardContext[/enovia]]
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:904)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
位于org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:1120)
在org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig
.java:1678)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor。
爪哇:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
运行(Thread.java:745)
更新2:

SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngin
e[Catalina].StandardHost[localhost].StandardContext[/enovia]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:1120)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig
.java:1678)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.tomee.catalina.TomEERuntimeException: org.apache.openejb.O
penEJBException: Unable to create annotation scanner for web module enovia: null

        at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatW
ebAppBuilder.java:2049)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWeb
AppBuilder.java:1091)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWe
bAppBuilder.java:1051)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(Global
ListenerSupport.java:127)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBa
se.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5322)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 10 more
Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scan
ner for web module enovia: null
        at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoa
der.java:838)
        at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java
:219)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatW
ebAppBuilder.java:2047)
        ... 17 more
Caused by: java.lang.IllegalArgumentException
        at org.apache.xbean.asm4.ClassReader.<init>(Unknown Source)
        at org.apache.xbean.asm4.ClassReader.<init>(Unknown Source)
        at org.apache.xbean.asm4.ClassReader.<init>(Unknown Source)
        at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinde
r.java:1120)
        at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java
:139)
        at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java
:152)
        at org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder.<init
>(AsynchronousInheritanceAnnotationFinder.java:43)
        at org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:
114)
        at org.apache.openejb.config.FinderFactory.create(FinderFactory.java:68)

        at org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.ja
va:57)
        at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoa
der.java:830)
        ... 19 more

May 13, 2015 9:14:52 PM org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory D:\16x_tomcat\apache-tomee-plu
s-1.6.0\webapps\enovia
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catal
ina.LifecycleException: Failed to start component [StandardEngine[Catalina].Stan
dardHost[localhost].StandardContext[/enovia]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:904)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:1120)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig
.java:1678)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
        at java.lang.Thread.run(Thread.java:745)
正如greg-449的评论所指出的,这个问题是因为我使用的是Java8编译器。这个jar是建立在Java7编译器上的

根据上面提到的文章,您可能缺少一些启动,请注意,应该有一个日志文件,用于更详细的错误报告

另外,编辑预编译jar文件的法律支持。。。 在几乎所有情况下,重新分配工作都是非法的。因此,如果你在大多数情况下重新发布,这将是不合法的,但你真的需要检查版权

一种绕过它的方法。。。嘘,我没有告诉你,这是为了让用户合法下载jar并拥有