我是Eclipse和Acceleo的新手,我一直在尝试完成First Generator Model Tutorial。我使用的是Kepler 4.3和Acceleo 3.X. 我正在按照从uml生成java代码的教程。链接是http://wiki.eclipse.org/Acceleo/Getting_Started。但是当我尝试运行generate.mtl文件时,错误日志会给我提供消息:
Couldn't load class org.eclipse.acceleo.module.sample.main.Generate
from project org.eclipse.acceleo.module.sample
它也给了我警告:
无法加载类org.eclipse.acceleo.module.sample.main.Generate。 检查是否已导出其包含的包。
和激活器org.eclipse.acceleo.module.sample.Activator for bundle org.eclipse.acceleo.module.sample无效
org.osgi.framework.BundleException:激活器 org.eclipse.acceleo.module.sample.Activator for bundle org.eclipse.acceleo.module.sample在 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:172) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) 在 org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300) 在 org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478) 在 org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263) 在 org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:236) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212) 在 org.eclipse.acceleo.common.internal.utils.workspace.AcceleoWorkspaceUtil.getClass(AcceleoWorkspaceUtil.java:544) 在 org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoLaunchOperation.run(AcceleoLaunchOperation.java:103) 在 org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345) 在 org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2327) 在 org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoPluginLaunchingStrategy.launch(AcceleoPluginLaunchingStrategy.java:259) 在 org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoPluginLaunchingStrategy.launch(AcceleoPluginLaunchingStrategy.java:161) 在 org.eclipse.acceleo.internal.ide.ui.launching.AcceleoLaunchDelegate.launch(AcceleoLaunchDelegate.java:51) 在 org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858) 在 org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707) 在 org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018) 在 org.eclipse.debug.internal.ui.DebugUIPlugin $ 8.run(DebugUIPlugin.java:1222) 在org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)引起的 by:java.lang.ClassNotFoundException: 无法找到org.eclipse.acceleo.module.sample.Activator org.eclipse.acceleo.module.sample_1.0.0.qualifier at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在java.lang.ClassLoader.loadClass(未知来源)at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340) 在 org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:165) ... 19更多根异常:java.lang.ClassNotFoundException: 无法找到org.eclipse.acceleo.module.sample.Activator org.eclipse.acceleo.module.sample_1.0.0.qualifier at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在java.lang.ClassLoader.loadClass(未知来源)at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340) 在 org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:165) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) 在 org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300) 在 org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478) 在 org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263) 在 org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:236) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212) 在 org.eclipse.acceleo.common.internal.utils.workspace.AcceleoWorkspaceUtil.getClass(AcceleoWorkspaceUtil.java:544) 在 org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoLaunchOperation.run(AcceleoLaunchOperation.java:103) 在 org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345) 在 org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2327) 在 org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoPluginLaunchingStrategy.launch(AcceleoPluginLaunchingStrategy.java:259) 在 org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoPluginLaunchingStrategy.launch(AcceleoPluginLaunchingStrategy.java:161) 在 org.eclipse.acceleo.internal.ide.ui.launching.AcceleoLaunchDelegate.launch(AcceleoLaunchDelegate.java:51) 在 org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858) 在 org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707) 在 org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018) 在 org.eclipse.debug.internal.ui.DebugUIPlugin $ 8.run(DebugUIPlugin.java:1222) 在org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
我已将[comment @ main /]放在模板行下面并执行教程中的所有步骤,我真的不知道问题是什么。
感谢任何帮助或反馈。
答案 0 :(得分:0)
java.lang.ClassNotFoundException: org.eclipse.acceleo.module.sample.Activator cannot be found by org.eclipse.acceleo.module.sample_1.0.0.qualifier
我能想到的最可能的原因是你使用了File > New Plug-in Project
向导并保留了大部分默认值,然后删除(或重命名)了它在项目中创建的“Activator”类。
项目的META-INF/MANIFEST.MF
文件应包含如下所示的行:
Bundle-Activator: org.eclipse.acceleo.module.sample.Activator
如果确实如此,则很可能在该行显示警告或错误。您可以完全删除该行,也可以确保您确实拥有一个具有该限定名称的插件激活器。
答案 1 :(得分:0)
我在干净的开普勒和干净的Luna安装上使用Acceleo 3.5.0时遇到了同样的问题。在Luna Acceleo中,当您选择“加速插件应用程序”时会显示警告。对于运行配置中的Runner。如果您选择“Java应用程序”#39;相反,它适用于开普勒。
一项小小的研究使我得到以下修复' BUG: https://bugs.eclipse.org/bugs/show_bug.cgi?id=419205。修复'我想在Luna中添加一条错误消息告诉我们这个功能不起作用。我在开普勒和Juno中也看到了与Acceleo 3.5完全相同的问题,因此它看起来并不像Luna。
我发现的唯一解决方法是:
独立的问题是你失去了Acceleo调试器和解释器的所有强大功能,而且你有更长的等待时间来测试你的模板。
答案 2 :(得分:0)
我通过更新MANIFEST.MF文件中的类路径来纠正此错误:
我添加了projet的bin /文件夹。它现在正常运作。
艾蒂安