当前位置: 首页 > 面试题库 >

为什么Eclipse使用本机启动器?

姬和歌
2023-03-14
问题内容

Eclipse IDE是用Java编写的大型桌面应用程序的最佳示例之一。

我见过的大多数Java应用程序通常都依赖于批处理或Shell脚本来使用应用程序的类路径构建字符串,并使用类路径作为env变量启动JVM。

另一方面,Eclipse依赖于本机启动器。这是为什么 ?该启动程序没有脚本执行什么操作?

我记得一年半前读过一篇文章,该文章解释说“我们最好使用本地启动器”,但id并不能解释启动器的内部工作原理。


问题答案:

在春分发射使用JNI来启动Java虚拟机在同一进程的启动。使用JNI还允许我们在初始屏幕中使用SWT小部件。

实际上,您仍然可以拥有一个脚本,因为启动程序可执行文件eclipse.exe从3.3M5开始已被分成两部分:

  • 可执行文件,以及
  • 共享库(例如:eclipse_1006.dll)。

该可执行文件位于Eclipse安装的根目录中。
共享库org.eclise.equinox.launcher.[config]位于plugins目录中特定于平台的片段中。

将大多数启动器代码移到一个片段中的共享库中,这意味着一部分启动代码现在可以从更新站点进行更新。另外,从Java启动时,可以通过JNI加载共享库以显示启动屏幕。

如此处所述,您可以在没有本地启动器的情况下启动Eclipse
3.3

java -jar plugins/org.eclipse.equinox.launcher_1.0.0.v20070319.jar

请注意,jar文件的名称现在与版本有关,这会导致天真脚本(使用确切的文件名调用jar)在jar文件更新后中断。

相反,您可能需要查找匹配的文件org.eclipse.equinox_*.jar。幸运的是,Eclipse-
wiki包含适当的脚本模板,这些模板在这种情况下很有用。
如果要避免修改现有脚本,还可以搜索Equinox Launcher插件,将其复制到Eclipse主目录中,然后将副本重命名为startup.jar。



 类似资料:
  • 我喜欢使用EclipseOxygen进行java开发。我已经有大约一年没有使用这个IDE了。我记得我真的很喜欢它。然而,我记得它不是最容易安装的IDE。任何帮助都将不胜感激。 这是我安装的java。 Java 9 Java SE开发工具包9 我不知道发生了什么事。请随意推荐另一个IDE。 这里是日志文件:

  • 我的服务器工作得很好,当我运行节点app.js.然而,我试图使用nodemer来运行我的服务器,它不启动。 npm start显示以下错误: 我的包裹。json: 我的app.js 我已经尝试过: 删除node_modules并运行npm安装 删除package-lock.json,运行npm缓存清理--force并运行npm安装 删除所有文件,重复安装过程 添加npm到路径 这个问题的其他解决方

  • 问题内容: 抱歉,这是一个非常业余的问题!我知道Eclipse使用Cp1252作为其编码的默认值。 我最近创建了一个使用哈希映射将输入的字母转换为盲文的程序。为此,我不得不将编码方法更改为UTF-8。 我对这两者都不了解,但是我读到的所有内容都表明UTF-8可以表示Unicode中的每个字符,并且具有更大的可识别符号库。 那么为什么它不是Eclipse的首选编码样式? 问题答案: 当您针对全新的工

  • 目前我正在用微服务和Docker-Container进行测试。在我上次尝试使用Micronaut-Server时,我看到了启动本地(cmd)和启动Docker的启动时间之间的差异。但让我觉得奇怪的是,集装箱的速度快得多。 我正在用Gradle创建一个可运行的jar(更准确地说是一个shadowjar--不确定它的确切区别是什么)。然后我用这个jar文件构建一个Docker-Image。两者的sta

  • 我最初的程序是为了将数据插入我的数据库。我有4个表,其中插入了数据,为了优化起见,我在一个单独的线程中这样做,因为实体是异步创建的。我正在使用consume方法将实体添加到队列中。 过了一段时间,我决定使用Spring Boot将web api添加到我的应用程序中。Spring Data JPA是需要的,因为一些POST请求将数据插入到我的数据库中。但是Spring Data JPA与我已经在使用