Apple已弃用其JVM,在未来的OS X版本中可能不支持它.我不是主要的Java开发人员,但我偶尔编写Java应用程序,而我使用的主要应用程序使用Tomcat和Opal来提供用C编写的命令行可执行文件的SOAP接口.
我一直在看到简单地使用另一个JVM的建议,但这看起来似乎很荒谬.在这一点上,我相信在OS X上运行的Oracle JVM纯粹是一种假设.这似乎是一个合理的解决方案,但鉴于苹果,甲骨文和谷歌似乎处于三方小便中,我担心它可能会推迟一段时间.
我一直指向OpenJDK,但这似乎需要从源代码构建JVM.这对我个人来说很好,但对我的最终用户来说并不是那么好.我还指出了从OpenJDK构建的Soy Latte二进制发行版,但这是一个X11而不是本机实现,似乎需要Java研究许可证.
有人可以指向OS X的其他JVM,或者让我对OpenJDK和SoyLatte的任何误解都不以为然?
当我在纸上写出证明或推导时,我经常会在我从一步到下一步时发出符号错误或删除条款.我想用Mathematica来避免这些愚蠢的错误.我不希望Mathematica解决表达式,我只是想用它来执行并显示一系列代数操作.对于(微不足道的)例子
In[111]:= MultBothSides[Equal[a_, b_], c_] := Equal[c a, c b];
In[112]:= expression = 2 a == a b
Out[112]= 2 a == a b
In[113]:= MultBothSides[expression, 1/a]
Out[113]= 2 == b
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出一个支持这种操作的包吗?
编辑
感谢您的投入,但不是我想要的.符号操作并不是真正的问题.我真的在寻找能够明确推导出每个步骤的代数或数学证明的东西.我的目标是教学.
我维护一个混合的C和C++命令行程序,需要在Linux,Windows和OS X上运行.我最近升级到Yosemite,我的OS X版本现在失败了.错误是:
/usr/include/dispatch/object.h:143:15: error: expected identifier or '(' before '^' token
Run Code Online (Sandbox Code Playgroud)
失败的代码行是使用'^'的typedef,'^'是一个非标准扩展,提供对闭包的支持.
潜在的问题似乎是一些Apple标准头文件开始需要Clang特定扩展.不幸的是,我们的程序有一个非常深的依赖集,其中一些不会在Clang下编译.我们一直在使用通过MacPorts安装的GCC编译器.我现在有一个解决方法:将object.h标题中的行更改为GCC兼容.然而,在/usr/include声音中攻击包含文件就像惹麻烦一样.
任何OS X/Clang专家都能提出更可持续的方法来应对这个问题吗?这是否限制了GCC在OS X上的未来实用性?
我正在尝试调试远程用户站点上的问题.我们已经将它缩小到Perl中格式化输出的问题.用户发誓说
perl -e 'printf "Number: %lG\n", 0.1'
Run Code Online (Sandbox Code Playgroud)
版画
Number: %lG
Run Code Online (Sandbox Code Playgroud)
不
Number: 0.1
Run Code Online (Sandbox Code Playgroud)
用户报告他们的Perl是5.8版.我最古老的版本是5.8.1,它似乎行为正常.
任何猜测?配置错误?模块冲突?