有没有办法转换这个:
/C:/Users/David/Dropbox/My%20Programs/Java/Test/bin/myJar.jar
Run Code Online (Sandbox Code Playgroud)
进入这个?:
C:\Users\David\Dropbox\My Programs\Java\Test\bin\myJar.jar
Run Code Online (Sandbox Code Playgroud)
我使用以下代码,它将返回.JAR存档的完整路径或/ bin目录.
fullPath = new String(MainInterface.class.getProtectionDomain()
.getCodeSource().getLocation().getPath());
Run Code Online (Sandbox Code Playgroud)
问题是,getLocation()返回一个URL,我需要一个正常的Windows文件名.我尝试过以后添加以下内容getLocation():
toString()并且toExternalForm()都返回:
file:/C:/Users/David/Dropbox/My%20Programs/Java/Test/bin/
Run Code Online (Sandbox Code Playgroud)
getPath() 收益:
/C:/Users/David/Dropbox/My%20Programs/Java/Test/bin/
Run Code Online (Sandbox Code Playgroud)
请注意%20哪些应转换为空格.
有这么简单快捷的方法吗?
我们有几个独立的构建(每个独立构建是一个多项目构建).主要的构建脚本变得非常大,因为我们有一组子项目重用的常见任务,以及独立构建之间有很多重复.我们要找的是:
在Gradle中实现这一目标的最佳方法是什么?
我有以下ApplicationListener:
package org.mycompany.listeners;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextStartedEvent;
public class MyApplicationListener implements ApplicationListener<ContextStartedEvent> {
public MyApplicationListener() {
super();
System.out.println("Application context listener is created!");
}
/**
* {@inheritDoc}
*/
public void onApplicationEvent(final ContextStartedEvent event) {
System.out.println("Context '" + event.getApplicationContext().getDisplayName() + "' is started!");
}
}
Run Code Online (Sandbox Code Playgroud)
以下bean定义:
<bean name="myApplicationListener" class="org.mycompany.listeners.MyApplicationListener" />
Run Code Online (Sandbox Code Playgroud)
我可以看到bean是在打印构造函数的消息时创建的,但是从不收到上下文启动事件.我错过了什么?
为什么会这样?问题是监视器对象肯定不是null,但我们仍然经常得到这个异常:
java.lang.IllegalMonitorStateException: (m=null) Failed to get monitor for (tIdx=60)
at java.lang.Object.wait(Object.java:474)
at ...
Run Code Online (Sandbox Code Playgroud)
引发这种情况的代码是一个简单的池解决方案:
public Object takeObject() {
Object obj = internalTakeObject();
while (obj == null) {
try {
available.wait();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
obj = internalTakeObject();
}
return obj;
}
private Object internalTakeObject() {
Object obj = null;
synchronized (available) {
if (available.size() > 0) {
obj = available.keySet().iterator().next();
available.remove(obj);
synchronized (taken) {
taken.put(obj, Boolean.valueOf(true));
}
}
}
return obj;
}
public void returnObject(Object …Run Code Online (Sandbox Code Playgroud) 问题就像标题一样简单.如何在Groovy中检查该对象是列表或集合或数组?但找不到一种简单的检查方法.有任何想法吗?
我在R中有以下向量:
X <- c("mama.log", "papa.log", "mimo.png", "mentor.log")
Run Code Online (Sandbox Code Playgroud)
如何识别另一个仅包含以"m"开头并以".log"结尾的元素的向量?
是否有任何工具可以提取出现在日志文件中的堆栈跟踪列表,并且可能会计算唯一的堆栈跟踪列表?
编辑:我会做一些不基于GUI的东西,并在后台运行并提供某种报告.我从很多环境收集了很多日志,只是想快速浏览一下.
您好,我刚刚接受电话采访我无法回答这个问题,我想知道答案,我相信,建议找到您不知道的答案.请鼓励我理解这个概念.
他的问题是:
"synchronized块只允许一个线程一次进入互斥段.当一个线程退出synchronized块时,synchronized块没有指定哪个等待线程接下来会进入互斥段?使用synchronized和方法在Object中,你能实现先到先得的互斥部分吗?保证线程按到达顺序进入互斥部分?
public class Test {
public static final Object obj = new Object();
public void doSomething() {
synchronized (obj) {
// mutual exclusive section
}
}
}
Run Code Online (Sandbox Code Playgroud) 您是否了解WebLogic 8.1中使用的weblogic.socket.Muxer是什么?
通常在线程转储中,我看到类似于此的堆栈跟踪:
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" id=20 idx=0x68 tid=26709 prio=5 alive, in native, blocked, daemon
-- Blocked trying to get lock: java/lang/String@0x2b673d373c50[fat lock]
at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)
at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1675)[optimized]
at jrockit/vm/Locks.lockFat(Locks.java:1776)[optimized]
at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1312)[optimized]
at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1259)[optimized]
at jrockit/vm/Locks.monitorEnter(Locks.java:2439)[optimized]
at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:153)
at weblogic/socket/SocketReaderRequest.run(SocketReaderRequest.java:29)
at weblogic/socket/SocketReaderRequest.execute(SocketReaderRequest.java:42)
at weblogic/kernel/ExecuteThread.execute(ExecuteThread.java:145)
at weblogic/kernel/ExecuteThread.run(ExecuteThread.java:117)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
Run Code Online (Sandbox Code Playgroud)
这不是我有任何问题,它只是有趣的理解:
1)它在做什么?
2)它会影响任何表现吗?