小编Mis*_*ble的帖子

如何判断VM是在服务器还是客户端模式下运行?

Java热点vpm可以使用-client或-server参数运行.如果两者均未指定,则根据某些规则选择一个.

在命令行中未指定模式时,是否可以判断正在运行的VM是在客户端还是服务器模式下运行?我在运行过程之外的Windows机器上需要这个.

我意识到这不是一个编程问题,但我希望它没关系,因为它与编程相关.提前致谢.

java

12
推荐指数
2
解决办法
3294
查看次数

应该缓存getSystemService(...)结果吗?

的文件getSystemService建议,以不共享各种不同的上下文之间的服务对象.

对于单个上下文,是否最好通过将服务对象分配给实例字段来缓存服务对象,onCreate()或者应该在使用时获取服务对象?什么是惯用法?

android

9
推荐指数
1
解决办法
727
查看次数

什么时候InvocationTargetException.getCause()null?

根据javadocs,InvocationTargetException.getCause()可以为null:

返回此异常的原因(抛出的目标异常,可能为null).

但文档还说它包装了一个现有的异常:

InvocationTargetException是一个已检查的异常,它包装被调用的方法或构造函数抛出的异常.

所以在我看来,InvocationTargetException.getCause() 永远不可能null.

我错过了什么吗?

UPDATE

是的,我错过了一些东西 - 默认的构造函数InvocationTargetException会导致getCause()为null.

我现在的问题是为什么要提供这个类的默认构造函数.是否存在需要使用null原因抛出异常的用例?

java invocationtargetexception

9
推荐指数
1
解决办法
7839
查看次数

我可以在Compile元素中同时使用通配符和Link元素吗?

.csrpoj文件中,如果我有

<Compile Include="c:\path\File1.cs">
  <Link>Dir1\File1.cs</Link>
</Compile>
Run Code Online (Sandbox Code Playgroud)

然后Visual Studio将该文件显示为Dir1解决方案资源管理器中文件夹下的快捷方式.

如果我有

<Compile Include="c:\path\*.cs"></Compile>
Run Code Online (Sandbox Code Playgroud)

然后,所有.cs文件在顶级解决方案资源管理器中显示为快捷方式:

有没有办法将所有文件包含在某个文件夹中然后显示在子文件夹下?省略Link元素中的文件名不起作用:

<Compile Include="c:\path\*.cs">
  <Link>Dir1\</Link>
</Compile>
Run Code Online (Sandbox Code Playgroud)

文件仍显示在顶层.

如何将所有文件包含在文件夹中并仍然使用Link元素?我需要这个的原因是,我需要包含来自多个文件夹的文件,其中一些文件具有相同的名称.顶级的两个文件不能具有相同的名称.

有没有其他方法来实现这一目标


我是Visual Studio平台的新手.提前为问题中的任何愚蠢道歉.

csproj visual-studio-2008

8
推荐指数
3
解决办法
1899
查看次数

findbugs可以检测未使用的公共方法

是否可以使用FindBugs检测源树中未使用的方法?我在SO上看到了一些帖子,其中用户声称要这样做,有些人询问如何在FB中执行此操作以及其他人声称FB无法执行此操作.

有谁知道这是怎么做到的?我只对从其他地方没有明确调用的方法感兴趣,我不关心反射.

java findbugs public-method

8
推荐指数
1
解决办法
4999
查看次数

从Windows 7远程控制WinCE 6.0设备

我试图找到一个工具来远程控制从Windows 7机器运行Windows CE 6.0的Motorola MC3190设备.

我已经使用Mymobiler和Intermec CN3设备,所以我尝试了这个问题的答案,但我无法让它工作.

  • 我在Mymobiler文件夹中尝试了remote.exe.40和remote.exe.50
  • 在超级用户的问题中提到的CodeProject上使用任务管理器,似乎remote.exe很快完成执行(或者是静默崩溃).
  • 我的开始/程序菜单有一个MyMobiler条目,所以在某个地方似乎已经安装了一些东西
  • 但是当我在桌面上运行Mymobiler它无法连接时,它在系统trey中的图标仍为灰色,鼠标悬停时显示Not Connected /
  • Proof MyMobiler works for WinCE 视频中处理器是ARM920T-PXA270M我的设备有Marevell, PXA32X-P(链接到图像)处理器可能是这个原因?

我也曾尝试ActiveSync Remote DisplayWindows Mobile的开发者的电动玩具.它安装但在启动时显示一个错误框,显示消息"此应用程序未知此设备的操作系统或CPU"

如何让MyMobiler与运行Windows CE 6.0的Motorola MC3190设备配合使用?有没有其他工具,最好是免费的,可以远程控制这个设备?

编辑:我遇到了EveryWAN并找到了一个安装程序.它开箱即用,但它不能用于商业用途,网站似乎已经不存在了.

PS:我意识到标签不准确,但我想使用能引起这些类似标签专家注意的东西.

remote-desktop windows-ce vnc-server

8
推荐指数
2
解决办法
5万
查看次数

强制xmllint忽略错误的默认xmlns

我正在尝试使用处理大量的xml文件(maven poms)xmllint --xpath.通过一些试验和错误,我发现它由于这些文件中的错误默认命名空间声明而无法按预期工作,如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
Run Code Online (Sandbox Code Playgroud)

一个简单的命令失败如下:

$ echo $(xmllint --xpath '/project/modelVersion/text()' pom.xml )
XPath set is empty
Run Code Online (Sandbox Code Playgroud)

如果我删除了xmlns属性,则替换root元素如下:

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
Run Code Online (Sandbox Code Playgroud)

上一个命令给出了预期的输出:

$ echo $(xmllint --xpath '/project/modelVersion/text()' pom.xml )
4.0.0
Run Code Online (Sandbox Code Playgroud)

更改数百个pom文件不是一种选择,特别是因为maven本身并没有抱怨.

有没有办法xmllint用坏处理文件xmlns

UPDATE

感谢Damien我能够取得一些进展:

$ ( echo setns x=http://maven.apache.org/POM/4.0.0; echo 'xpath /x:project/x:modelVersion/text()'; ) | xmllint --shell pom.xml
/ > setns x=http://maven.apache.org/POM/4.0.0
/ > xpath /x:project/x:modelVersion/text()
Object is a Node Set :
Set contains 1 nodes:
1  TEXT
    content=4.0.0
Run Code Online (Sandbox Code Playgroud)

但这并不能满足我的需要.我的后续问题如下:

  1. 有没有办法只打印文字?我想 …

xmllint

8
推荐指数
2
解决办法
5850
查看次数

Map <K1,K2,V>的任何实现,即两个键?

我需要一张有两个键的地图,例如

Map2<String /*ssn*/, String /*empId*/, Employee> _employees;
Run Code Online (Sandbox Code Playgroud)

这样我就可以

_employees.put(e.ssn(), e.empId(), e)
Run Code Online (Sandbox Code Playgroud)

然后

_employees.get1(someSsn);
_employees.get2(someImpId);
Run Code Online (Sandbox Code Playgroud)

甚至

_employees.remove1(someImpId);
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我要停在两个,为什么不多,可能是因为我现在需要的情况是这样:-)但是类型需要处理固定数量的键是类型安全的 - 类型参数不能是vararg :-)

感谢任何指针,或建议为什么这是一个坏主意.

java generics maps

7
推荐指数
1
解决办法
4047
查看次数

任何方式来访问匹配的群组?

我经常发现自己在动作中与模式进行相同的匹配,以访问输入记录的某些部分,例如

/^Compiled from \"(.*)\"$/ {
    file_name = gensub("^Compiled from \"(.*)\"$", "\\1", "g");
    print file_name;
}
Run Code Online (Sandbox Code Playgroud)

所以正则表达式匹配完成了两次.我有什么方法可以\\1在动作中访问而不再匹配?

我试图减少pattert匹配和额外的代码.

awk gawk

7
推荐指数
1
解决办法
1970
查看次数

在用户的时区中以ISO格式显示git日志时间戳?

随着--date=local git log我的(用户)的时区显示日期:

$ git log  --date=local -3 --pretty=tformat:'%cd %h' --abbrev-commit 
Thu Dec 18 15:22:11 2014 dc20f74
Thu Dec 18 14:01:26 2014 06c214f
Tue Nov 4 03:48:44 2014 ac33158
Run Code Online (Sandbox Code Playgroud)

手册页

- date [...]仅对以人类可读格式显示的日期生效,例如使用--pretty时.

但是使用ISO格式%ci它不会生效,事实上--date=local--date=default产品完全相同的输出:

$ git log  --date=local -3 --pretty=tformat:'%ci %h' --abbrev-commit 
2014-12-18 23:22:11 +0000 dc20f74
2014-12-18 22:01:26 +0000 06c214f
2014-11-04 17:18:44 +0530 ac33158

$ git log  --date=default -3 --pretty=tformat:'%ci %h' --abbrev-commit 
2014-12-18 23:22:11 +0000 dc20f74
2014-12-18 22:01:26 +0000 06c214f …
Run Code Online (Sandbox Code Playgroud)

git datetime

7
推荐指数
2
解决办法
3142
查看次数