我有一个庞大的数据列表(超过1000个不同的值),我希望用户能够从PowerShell控制台的列表中选择某些值.
在控制台中允许用户快速选择值的最简单方法是什么?
我想做一些像Tab完成或使用箭头键滚动值的功能,但我不知道如何做这些事情.
任何建议将不胜感激.
我有7个不同的WAR部署到同一个WildFly/JBoss服务器.每个WAR在核心设计和Log4j配置方面都是相同的.每个WAR都通过自己的自定义log4j.xml生成自己的日志文件.每个日志都写入单个文件夹.
7个已部署的WAR中的1个继续使WildFly的console.log劫持了日志记录.它将在初始化期间开始写入5-10行的自己的日志,然后停止; 其余的日志记录将被定向到console.log.
如果在发生这种情况后重新安装WAR,它将写入自己的个人日志和WildFly console.log.如果我重新启动WildFly,它的行为将如前所述 - 开始记录到自己的日志,然后继续在console.log上.
这个WAR与其他6个唯一独特之处在于该项目使用JAXB; 没有其他WAR使用JAXB.
JAXB和Log4j以及WildFly之间是否存在某种未知的交互,这可能导致这种情况? 我怀疑,但是还不能证明,在使用JAXB的类被ClassLoader加载之后,劫持正在发生.
jboss-7.2.0.Final,jdk-7u80x64,Log4j-1.2.13.jar
问题的基本摘要是:如何最好地优化我的内存分配,以便为我通过JNI访问的DLL提供尽可能多的内存?我应该尽量减少什么,我应该最大化什么,等等.
SYSTEM:在具有4 GB RAM的32位系统中将JBoss 6作为Windows 32服务运行.我确实理解Java Heap的内存有最大限制.JVM是JRE1.6.0_26
服务:安装在JBoss下的是一个接收客户请求的webapp; 每个请求通过JNI调用C++构建的DLL来以某种方式处理图像文件.
问题:有时,对于较大的或一些(并非所有)LZW压缩映像,调用java类会收到DLL遇到全局内存耗尽并且无法完成请求的进程的消息.
除了基本的Windows进程之外,服务器上没有其他活动正在运行.
当前的JBOSS App Server内存设置如下,但可能过多:
-Xms1024m -Xmx1024m -Xss1024k -XX:MaxPermSize = 128m
我正在尝试确定最佳内存设置,以便为JNI DLL提供尽可能多的资源,因为据我所知,JNI不使用分配给Java堆的任何内存.
我已阅读这些内容,但没有发现它们对回答我的问题有帮助:
可以使用jconsole来识别JNI C++对象中的内存泄漏吗?
目前提供的两个答案没有解决遗留问题.
一周后JBoss服务器的当前内存与JVM参数设置如上(TaskManager指示java.exe进程为750,672k)
Total Memory Pools: 5
Pool: Code Cache (Non-heap memory)
Peak Usage : init:2359296, used:7317312, committed:7438336, max:50331648
Current Usage : init:2359296, used:7306496, committed:7438336, max:50331648
|---------| committed:7.09Mb
+---------------------------------------------------------------------+
|/////////| | max:48Mb
+---------------------------------------------------------------------+
|---------| used:6.97Mb
Pool: PS Eden Space (Heap memory)
Peak Usage : init:268500992, used:354811904, committed:354811904, max:355991552
Current Usage : init:268500992, used:270153472, …Run Code Online (Sandbox Code Playgroud) 使用Java Sound,Tritonus和JavaFX,如何拦截发送到扬声器的数据并将其记录为文件?例如,我想将JavaFX媒体播放器音频流(和/或Java Sound音频流)混合到单个"wav"文件中,就像录制工作室环境可能做到的那样.
从昨天开始,Eclipse没有更新.class我的项目文件.例如,它filename.java是最新的,但filename.class文件的修改日期是昨天.过去工作得很好.为什么会这样?
使用Java,我需要在网络打印机上打印,而不是在本地安装.我只知道打印机名称.我见过的所有教程都是从以下内容开始的:
PrintService []services = PrinterJob.lookupPrintServices();
问题是没有安装打印机,因此在这种情况下服务将是空的.我需要直接设置打印机名称,而不仅仅是通过可见打印机进行枚举.
我有一个DLL文件,我试图通过JNA通过Java程序调用它的功能
但问题是它无法找到我的DLL文件并抛出以下异常:
java.lang.UnsatisfiedLinkError: Unable to load library 'UsbDll': The specified module could not be found.
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:163)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:236)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:199)
at com.sun.jna.Native.register(Native.java:1018)
at com.MainClass.<clinit>(MainClass.java:15)
Exception in thread "main"
Run Code Online (Sandbox Code Playgroud)
以下是我的计划:
package com;
import com.sun.jna.Native
public class MainClass {
static {
Native.register("UsbDll");
}
public native int method();
public static void main(String[] args) {
}
}
Run Code Online (Sandbox Code Playgroud)
我的dll文件的名称是UsbDll.dll,我的操作系统是Windows.
============================ EDITED ===================== ===========
我的dll文件的位置是"c:\ UsbDll.dll"
当我在同一个位置放置另一个dll文件时,JNA找到了它,所以我认为问题仅在于我的"UsbDll.dll"文件.
当我尝试使用以下命令加载dll文件(UsbDll.dll和另一个dll)时
System.load("c:\\UsbDll.dll");
System.load("c:\\another.dll");
Run Code Online (Sandbox Code Playgroud)
它成功加载了"another.dll",但对于"UsbDll.dll",它会引发以下异常:
java.lang.UnsatisfiedLinkError: C:\UsbDll.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at …Run Code Online (Sandbox Code Playgroud) 为什么以下代码中的文件日期没有更改?
fLocal.location = C:\中的现有文件
fLocal.date =在Long中设置的日期
boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date));
System.out.println("Changed: " + x);
System.out.println(new Date(new File(fLocal.location).lastModified()));
System.out.println(new Date(Long.parseLong(fLocal.date)));
Run Code Online (Sandbox Code Playgroud)
输出:
Changed: false
Fri Feb 15 23:02:51 CET 2013
Fri Feb 15 22:49:34 CET 2013
Run Code Online (Sandbox Code Playgroud) 我有Object一个HashMap领域.当Object传递给C时,我该如何访问该字段?
该Object的Class具有以下字段:
private String hello;
private Map<String, String> params = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud) 我创建了一个流浪盒并在其中安装了ckan.
在vagrantfile中 - 我将端口转发设置为4567 - 所以当我在浏览器中输入时
127.0.0.1:4567
Run Code Online (Sandbox Code Playgroud)
我在虚拟盒子里找到了ckan.
现在的问题是 - 当我在ckan中执行某些操作时更新我的个人资料 - 我被重定向到
http://127.0.0.1/user/mirmir
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误"未找到 - 在此服务器上找不到请求的URL /用户/ mirmir".
如果我手动插入:4567所以它变成了
http://127.0.0.1:4567/user/mirmir
Run Code Online (Sandbox Code Playgroud)
一切正常.
知道如何解决这个问题吗?