在Eclipse RCP中,我正在使用Perspective创建视图 IPageLayout.addView(...)
但是这种方式我没有对视图的引用.因此,我不知道如何告诉ViewA更新ViewB.
这里使用的最佳模式是什么?
在Eclipse清单编辑器中,存在用于启用/禁用插件激活和单例行为的复选框,如下所示:
[ ] Activate this plug-in when one of its classes is loaded
[ ] This plug-in is a singleton
Run Code Online (Sandbox Code Playgroud)
我正在搜索信息或一些示例,这些信息将证明何时不需要激活插件(即故意不激活).单身行为更清楚(在我看来),以确定何时合适(例如,记录器).
非常感谢!
迈克尔
当我尝试从Eclipse中执行我的RCP应用程序时,我收到以下错误消息:
com.bah.gs.arts.jekyll.plugins.VideoLog Missing Constraint: Required Bundle: com.bah.gs.arts.jekyll.plugins.JVLC_Runtime; bundle-version="0.9.1"
谁能告诉我我是如何解决这个问题的?
如果我点击"启动Eclipse应用程序"按钮,我只是导出了一个运行良好的产品.如果尝试执行导出的产品,我会在启动时遇到以下异常:
!SESSION 2012-03-16 17:28:21.206 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2012-03-16 17:28:22.184
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: No application id has been found.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Run Code Online (Sandbox Code Playgroud)
就在我导出产品之前,我对依赖项进行了验证,这很好.你有什么问题吗?谢谢!
我正在开发一个插件项目,我正在使用Eclipse后台处理.Display类
的syncExec()和asyncExec()方法有什么区别?它们适用于哪些情况?任何例子都可能有所帮助.
我正在研究独立的无头RCP.当我在eclipse IDE中执行应用程序和产品时它没有问题,但是当我导出并执行它时,我在日志文件中得到了这个错误.
!ENTRY org.eclipse.equinox.ds 4 0 2013-01-16 13:27:59.132
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.ds_1.4.0.v20120522-1841 [3]" could not be resolved. Reason: Missing Constraint: Import-Package: org.eclipse.equinox.internal.util.event; version="1.0.0"
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)
...
!ENTRY org.eclipse.equinox.ds 4 0 2013-01-16 13:28:00.901
!MESSAGE [SCR] Exception while activating instance org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngineManager@6b8d6157 of component org.eclipse.e4.ui.css.swt.theme
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Display
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
Run Code Online (Sandbox Code Playgroud)
参考这篇文章,我知道我有一个没有依赖项的插件的新版本,并且运行时路径中有一些错误.但是,我不确定可能导致此错误的原因.
可能有什么问题?为什么我只有在独立执行时才会出现此错误?
我有build.properties文件
output.. = bin/
bin.includes = META-INF/,\
plugin.xml,\
.
source.. = src/
Run Code Online (Sandbox Code Playgroud)
这是MANIFEST.MF文件
Manifest-Version: 1.0 …
Run Code Online (Sandbox Code Playgroud) 我有一个在OSGi/Equinox中运行的Java应用程序.从这个应用程序,我需要生成ProcessBuilder.start()
在OSGi/Equinox中运行的Java子进程(例如via ),以便正确处理类加载.子流程需要多个捆绑包,所以我理想地喜欢在子流程'Equinox容器中安装这些捆绑包的一些相当动态的方法,例如通过读取feature.xml文件.
我已经阅读了这里的程序启动,但我没有看到Equinox如何适应它.我也看了成做一些像这样,但它不会是非常动态的,特别是当子进程的入口点束需要多个其他捆绑包,这需要进一步的束等
那么,如何以一种相当动态的方式将bundle加载到容器中来生成一个在OSGi/Equinox中运行的子进程?
注意:我需要使用单独的进程.子进程将使用使用全局变量的JNA本机库进行数据处理(我无法修改本机库).因此,为了能够同时处理不同的数据,数据处理需要在单独的进程中运行.
我刚刚开始使用Eclipse RCP应用程序,它基本上只是提供的"hello world"示例之一.
当应用程序启动时,我想查看我的命令行参数并根据它们启动一些服务.我可以在IApplication.start中获取命令行参数:
public Object start(IApplicationContext context) {
String[] argv = (String[])
context.getArguments().get(IApplicationContext.APPLICATION_ARGS)));
}
Run Code Online (Sandbox Code Playgroud)
但是如何获得BundleContext,以便我可以注册服务?它似乎不在IApplicationContext中.
我有一个多用户/位置RCP应用程序,目前使用多个用户可配置选项.一些偏好是针对站特定的,一些是特定于用户的.
选项来自首选项存储,它将*.prefs文件保存到"workspace.metadata.plugins\org.eclipse.core.runtime.settings".
如果我们只使用一台机器/用户,这将没有问题.但是如果用户要去另一个站,则用户将使用为该站设置的任何偏好.
是否可以为持久性(而不是文件)指定另一种形式?
在过去,我们在文件系统上有我们的捆绑和功能,并通过具有"目录"位置的目标定义文件在Eclipse中提供它们.通过这种方式,可以很容易地将它们与Eclipse中的Export向导一起使用.
现在我正在尝试构建一个eclipse-plugin
具有第三方依赖关系的Tycho,例如javax.vecmath和org.apache.commons.math.
据我所知,在Tycho构建中获取依赖关系的最佳方法是通过p2存储库.所以我正在使用Eclipse捆绑包.但对于我的第三方软件包,似乎没有可用的p2存储库.
所以我的问题是:如何轻松地将JAR(vecmath,commons-math)放入p2存储库?
我以为我可以用Tycho构建一个p2存储库,但是当我无法访问第谷的第三方软件包时如何做到这一点?我尝试使用目标定义,但Tycho仅支持到p2存储库的链接,而不支持目录或安装.那么有没有其他方法可以在Maven/Tycho构建中使用我的第三方依赖项?
eclipse-rcp ×10
java ×4
eclipse ×3
osgi ×2
eclipse-pde ×1
equinox ×1
export ×1
headless-rcp ×1
manifest.mf ×1
maven ×1
product ×1
tycho ×1