作为一个实验,我们想在Java 6的运行时版本而不是JDK上使用Eclipse java编译器(从eclipse.org下载的ecj-3.5.jar)构建我们的产品,据我所知,这是一个添加的问题.这个jar到ant类路径,并将build.compiler属性设置为指向适配器.
通过包括
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
Run Code Online (Sandbox Code Playgroud)
在我的build.xml中并使用JRE调用ant,我得到了无法找到适配器的预期错误,并且通过在Eclipse面板中的类路径中添加ecj-3.5.jar,我可以按预期编译我的代码.我相信使用现代蚂蚁命令行中的"-lib foo.jar"可以使用相同的功能.
现在,我想在 build.xml中指定我希望我的类路径上的ecj-3.5.jar满足上述要求.我们已经可以使用ant任务执行此操作,因此我认为这是可能的.
所以问题是:我如何添加到javac使用的类路径,只能从build.xml中找到编译器?
看来即将推出的ant4eclipse 1.0包含了Eclipse编译器(我想用它来实现),所以通过升级到它(从0.5开始)应该可以解决我们遇到的问题.
2010-09-24:Ant4Eclipse仍然在M4,没有迹象表明何时会发布.
2011-12-01:我们现在已经从蚂蚁迁移到了maven.build.xml脚本遇到了复杂问题,需要采用新方法.任何人都需要选择做什么 - 除了琐碎的项目之外,不要去ant4eclipse路径.
2012-11-30:一年后,maven的经历仍然很好.思维方式有很多怪癖和变化,但大多数情况在上下文中都有意义.Maven可以轻松地在单个项目上指定编译器级别.我们正在研究使用ecj而不是javac(出于几个原因)但是对于大多数用途来说,javac工作得很好.
给定一个可以工作的远程JNLP(所有jar都可用等),但是你需要在代码上运行一个调试会话.
是否有任何工具可以轻松地在任何合理的现代IDE中创建本地项目,该IDE包含JNLP中所述资源的本地副本,并且可以在调试模式下运行所述代码?假设反编译器可用,这只是让调试会话运行的问题.
是否有任何IDE(Eclipse,Netbeans,IntelliJ,JDeveloper等等 - 甚至是商业产品)只能在给定JNLP URL的情况下执行此操作?
使用Ubuntu等Linux发行版修复Java问题的标准方法是"使用Sun JDK而不是OpenJDK".出于几个原因,我想只使用Ubuntu的Java运输,而不必从合作伙伴存储库安装和下载或下载tarball.
我在Ubuntu 11.10下玩了一些Eclipse 3.7.1并没有找到任何明显的showstoppers.
问题是:Ubuntu上的默认安装(EDIT:OpenJDK)Java 是否有任何不正常的工作,或者我应该注意什么?
我一直使用Eclipse Marketplace获得非常慢的下载速度(目前来自http://download.eclipse.org的3 MB/s行的速度为25 kB/s ),这使得与Eclipse 3.7 SR 1一起使用非常繁琐."Eclipse市场缓慢"在搜索时给出了很多误报.
有没有办法加速这个过程?
(我只需要egit和m2e-wtp插件).
为了刷新我20年的Haskell经验,我正在浏览https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/Adding_Variables_and_Assignment,并在一点上引入以下行以适用op于所有参数.这是为了实现例如(+ 1 2 3 4)
numericBinop op params = mapM unpackNum params >>= return . Number . foldl1 op
Run Code Online (Sandbox Code Playgroud)
我不懂语法,文中的解释有点模糊.
我理解foldl1点函数的作用和方法(unpackNum是辅助函数),但使用Monads和>>=运算符让我有点困惑.
怎么读?
据我所知,Oracle GlassFish Server 3.0.1产品是开源Glassfish +品牌+一些封闭源组件.
购买商业版有什么技术理由吗?JRockit许可证?监控工具?与其他产品整合?
编辑:商业产品的个人经验受到高度重视.
我花了一些时间来调查Endpoint.publish可以做什么和不能做什么,看起来你很快就进入了无证领域.
如果您构建一个简单的独立应用程序,它使用Endpoint.publish公开一个或多个@WebService注释类,然后您遇到无法再使用Endpoint.publish的情况(出于任何原因)什么是最简单的迁移路径?
我知道您可以使用sun-jaxws.xml和可选的Metro jar创建一个WAR,然后可以将其部署到嵌入式Web服务器(如Jetty或Winstone),但我喜欢简单的"拿这个类并在这个URL上公开它" Endpoint.publish()的API,没有任何XML或完整容器.
有没有办法做到这一点?
我正在看AspectJ,看看我们是否可以在我们的测试套件中使用它.
我们有一个相当大的第三方Java通信库硬连线使用它自己的类(它们没有实现任何接口),这反过来意味着我们需要一个物理后端存在并正确配置才能运行测试.
我正在考虑删除此限制的选项.一种可能性是创建麻烦类的子类,然后让AspectJ在加载第三方库时简单地用"new OurSubclassOfX"替换"new X",但我是AspectJ的新手,并且从我的文档简要略读不是典型的用例.
AspectJ能做到这一点吗?配置代码段是什么?
随着最近发布的 GraalVM 19.3,它增加了对 Java 11 的支持,这让我们再次回顾起来很有趣。Oracle有免费社区版和非免费企业版两个版本是可以理解的,但是对于两者之间的实际区别是什么,他们非常模糊。
常见问题解答说:
Oracle GraalVM 企业版和 GraalVM 社区版有什么区别?GraalVM Enterprise 有几个关键的进步,使其成为企业的首选产品,而不是 GraalVM 社区,包括:
- 通过更高的峰值性能和更低的内存占用提高效率,从而降低基础架构成本并缩短应用程序反应时间
- 改进的安全功能可保护您跨所有语言的应用程序
- 企业支持 24x7x365,让您高枕无忧,您的环境得到全球 GraalVM 专家的支持
对于需要关键任务应用程序支持的人来说,最后一项是可以理解的,但我发现前两项相当模糊。
因此,我想听听实际使用 GraalVM 的人的意见,如果差异可以很容易地总结出来——特别是如果有“这对我们有什么好处”——数据的支持——让开发人员找出企业版会给我们带来什么。特别是从 docker/kubernetes 视图上的本机图像来看,因为我们目前的主要用例是基于 Java 的微服务(目前基于 Spring Boot,但 microprofile WAR 方法很有趣,可以摆脱运行时的脆弱性)。