我有一个Docker容器,我只是通过在Ubuntu上安装Docker并创建:
sudo docker run -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)
我立即开始安装Java和其他一些工具,花一些时间用它来停止容器
exit
Run Code Online (Sandbox Code Playgroud)
然后我想添加一个卷,并意识到这并不像我想象的那么简单.如果我使用sudo docker -v /somedir run ...
那么我最终得到一个新的容器,所以我已经安装了Java并且做了我之前已经完成的工作,只是为了到达一个装有卷的容器.
有关从主机安装文件夹的所有文档似乎都暗示在创建容器时可以安装卷.因此,我必须避免从头开始重新配置新容器的唯一选择是将现有容器提交到存储库,并在安装卷时将其用作新容器的基础.
这确实是向现有容器添加卷的唯一方法吗?
我有一个Eclipse插件(A),它依赖于另一个插件(B).插件B只是一个jar包装器,它包含一个本机dll,并执行jni功能.鉴于此设置,我在A的Activator类的start方法中有以下代码:
MessageConsole jniConsole = new MessageConsole("Opereffa Output", null);
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { jniConsole });
ConsolePlugin.getDefault().getConsoleManager().showConsoleView(jniConsole);
MessageConsoleStream stream = jniConsole.newMessageStream();
System.setOut(new PrintStream(stream));
System.setErr(new PrintStream(stream));
Run Code Online (Sandbox Code Playgroud)
当插件A执行其功能时,System.out的任何使用实际上都会进入Eclipse中的控制台.但是JNI使用的本机代码也会写入输出流,这是我无法抓取的.在开发期间,JNI的输出转到Eclipse实例的控制台,该实例已启动包含插件的运行实例.
那么如何获取JNI输出并在控制台中显示?
随着当前关于Oracle的发展,宣布其打算为专业版(或任何你称之为)JVM版本收费,以及IBM宣布支持OpenJDK的意图,对于大量Java开发人员而言,事情变得相当复杂.我们在Java中有大量工作,到目前为止我们在选择许可条款方面没有任何问题.看来我们将不得不切换到IBM将提供支持的OpenJDK.但是OpenJDK是GPL V2,据我所知,链接到GPL V2的任何代码都必须是GPL V2.我们还有一些JNI代码,它们会变得更大.鉴于这些事实,是否意味着如果我们使用OpenJDK运行我们的软件,我们将不得不切换到GPL进行许可?毋庸置疑,这会破坏我们的整个许可和商业模式设置.
这是我的情况:我手头有一项需要大量记忆的任务.我没有足够的ram,无论我尝试了什么(Jrockit和/ 3gb交换机等),我都不能给JVM足够的ram并且操作以异常终止,告诉我需要更多的堆空间.
有什么方法可以强制JVM使用操作系统的交换机制,以便它不会耗尽内存?这是Windows xp 32位
这需要很长时间,但我不在乎,我只需要完成这项操作.
我的选项用完了,而且我无法控制任何变量.
这是一个必需的编辑,因为我几乎每个人都有相同的响应:)这不是我的代码.有人编写了一个将xml文件读入存储库的工具.该工具使用EMF,并立即加载整个模型.我所能做的就是为它提供XML文件.如果本机代码在Windows或Linux等下运行,操作系统会使用虚拟内存/交换空间为其提供内存,而应用程序并不知道它.我想知道是否可以对JVM做同样的事情.在Windows 32位下,-Xmx可以达到一定数量,但这还不够.出门购买新硬件暂时不适合我.所以我想知道是否有可能使JVM像本机进程一样工作.慢,但仍在工作.显然这是不可能的,我运气不好.我只需要知道我是否真的没有选择权.
我有一个不能丢失数据的应用程序,所以Postgresql是我选择的数据库(ACID)
但是,MongoDB的速度和查询优势非常有吸引力,但根据我到目前为止所读到的内容,MongoDB可以报告一个可能没有进入磁盘的成功写入,所以我无法将其作为我的任务关键数据库(我还需要交易)
我见过一起使用mysql和MongoDB的人的引用,一个用于事务,另一个用于查询.请注意,我不是在谈论将一些数据保存在一个数据库中而其余数据保存在另一个数据库中.我想使用Postgresql作为数据输入的网关,使用MongoDB进行读取.
是否有任何资源以这种方式为Postgresql + MongoDB使用提供架构/指南?我记得在Postgresql会议议程中看到这个主题,但我找不到链接.
开关组件蓝图(此处为演示和文档)在选择/取消选择时不显示边框。我将这个组件包含在一个 React 组件中,如下所示:
import {Component} from "react";
import {Switch} from "@blueprintjs/core";
import React from "react";
class BPrintMain extends Component{
render(){
return (
<Switch id="switch-input-3" label="Public" disabled={false} />
)
}
}
export {BPrintMain};
Run Code Online (Sandbox Code Playgroud)
当我单击开关组件时,它会显示如下边框:
边框会一直保持,直到失去焦点,也就是我点击了页面上的其他东西。
我包括来自我的主要组件的 css 的 Blueprint css 文件,如下所示:
@import "~@blueprintjs/core/lib/css/blueprint.css";
@import "~normalize.css";
@import "~@blueprintjs/icons/lib/css/blueprint-icons.css";
Run Code Online (Sandbox Code Playgroud)
css 似乎适用于按钮、输入控件等。我缺少什么?为什么开关在焦点上显示焦点/边界框?
我有兴趣使用OCaml或Haskell开发统计计算引擎.该功能应该用于由模型驱动的面向对象的信息系统提供的数据.整个事情需要扩大规模.
例如,我可以看到使用Haskell有很多好处,但是从Haskell代码中获取数据是很棘手的.总有开箱即用的选项,如C/C++接口或JNI,但在一个应该扩展的架构中,我发现这些方法存在问题并且容易出错.
考虑到FP正在兴起,人们如何将这些语言集成到广泛使用的语言中,因此Java等技术?例如,我一直在使用ZeroMQ和Protocol Buffers进行Eiffel到Java集成,但有没有任何选项已被证明是稳定和高性能的?
Ps:Stackoverflow警告我这个问题似乎是主观的,但我问的是连接不同运行时的实际技术解决方案.我无意讨论任何语言或范式的利弊.
目前我有一个使用ZeroMQ来交换协议缓冲区有效负载的解决方案.序列化的协议缓冲区方法必须保持不变,但我可以用更方便的选项替换ZMQ.我在ZMQ不满意的事情是:
它在Java方面使用JNI,在复杂的多线程场景中我被JNI咬过.我尽力消除它.
我不需要排队,我只需要rpc.
我的要求(主要由ZeroMQ涵盖)是:
支持32/64位*nix,Windows,MacOS.
主要支持Java,C++和C#,Python,Ruby等也不错.
语言支持必须由语言中的本机实现提供,而不是通过包装本机代码.
高性能.
非病毒许可证,无GPL,AGPL等
如果用于消息传递的Java实现不使用JNI,我一直在考虑使用Thrift作为TCP上的传输层(我猜它支持这一点)和协议缓冲区有效负载.
除了ZMQ之外,您还可以考虑哪些选项进行此设置?
我的python代码接收一个字节数组,表示hdf5文件的字节.
我想将这个字节数组读取到内存中的h5py文件对象,而无需先将字节数组写入磁盘.这个页面说我可以打开一个内存映射文件,但它将是一个新的空文件.我想从字节数组转到内存中的hdf5文件,使用它,丢弃它,不要随时写入磁盘.
用h5py可以做到这一点吗?(或者使用C的hdf5,如果这是唯一的方法)
在请求帮助管理Java中相同库的不同版本的依赖关系之后,有人建议我应该看看OSGI实现.在最后期限的压力下,我真的可以使用一些帮助来帮助我从无休止的OSGI文档中挖掘出来.我有一个工作的应用程序,它将使用一个新的框架.框架使用我已经使用的不同版本的jar,所以我想将新框架打包为OSGI包.我可以保留我的应用程序,并将OSGI包仅用作JVM中的容器吗?这意味着我将仅使用OSGI包来从JVM的其余部分中隔离一组类,以避免不同版本的类之间发生冲突.换句话说,我想使用OSGI而不将我的所有代码都带到基于OSGI的设置.
亲切的问候Seref