我经常想要通过使用上下文菜单来清除当前的输出窗口,但是Clear我意外地点击了Close条目(直接在下面Clear),而不是点击条目.
我怎样才能得到那个输出窗口!?
通过窗口/输出/输出我只获得所有输出窗口的容器选项卡.如何重新打开当前运行的应用程序的输出窗口?
我想写一个命令,这个命令会有这样的格式:
[range]MyCMD[!] [count] [oneArg] [flags]
Run Code Online (Sandbox Code Playgroud)
要么
[range]MyCMD[!] [oneArg] [count] [flags]
Run Code Online (Sandbox Code Playgroud)
类似于
:[range]P[rint] [count] [flags]
Run Code Online (Sandbox Code Playgroud)
要么
:[range]d[elete] [x] {count}
Run Code Online (Sandbox Code Playgroud)
该命令MyCMD最终会调用一个函数来完成一些工作.我写了这一行(不会起作用)
command! -nargs=+ -range -bang -count=0 MyCMD <line1>,<line2>call MyFUNC(<q-args>, "<bang>","<count>", .... ..)
Run Code Online (Sandbox Code Playgroud)
这里的问题是,如何处理这些参数:
问题1我读到的帮助,-range并且-count不能在不同时使用,但我需要他们.我还看了一些vim命令,比如:delete,:print,当我们使用这些命令时,我们可以给两个range和count.另外,我发现vim doc有两个相同命令的条目,如果a {count}或者[count]是可用的.喜欢:
:[range]d[elete] [x]
:[range]d[elete] [x] {count}
Run Code Online (Sandbox Code Playgroud)要么
:[range]p[rint] [flags]
:[range]p[rint] {count} [flags]
Run Code Online (Sandbox Code Playgroud)
这是为什么?为什么不随着[count]?(这将是另一个小问题)
问题2来自我的设计,所有这些参数都是可选的,它们都有默认值(参见下表).如何将这些参数传递给函数(我检查过<q-args> and <f-args>)以及如何区分哪些用户输入是哪个参数?例如用户给出
:MyCMD 5 g
argName | Default value | …Run Code Online (Sandbox Code Playgroud)我有一个使用Java 8的项目.
到目前为止,在pom中我们将源版本和目标版本指定为1.8:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
Run Code Online (Sandbox Code Playgroud)
我们想利用Java 9+的"-release"选项并添加以下内容:
<maven.compiler.release>1.8</maven.compiler.release>
Run Code Online (Sandbox Code Playgroud)
但现在我们收到以下错误:
Fatal error compiling: release version 1.8 not supported
Run Code Online (Sandbox Code Playgroud)
我们使用maven 3.5.3,版本3.8.0和Java 10中的maven-compiler-plugin来编译项目.
这有什么不对?
我试图在运行时设置java util日志配置文件,以避免必须将其设置为VM参数.但这只是行不通.每当我尝试重新读取配置时,都会禁用日志记录.
请参阅以下代码段:
package test;
import java.io.FileInputStream;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class A {
private static final Logger LOGGER= Logger.getLogger(A.class.getName());
public static void main(String[] args) throws Exception {
System.out.println("--- start");
LOGGER.log(Level.SEVERE, "SEVERE 1");
LOGGER.log(Level.FINEST, "FINEST 1");
LogManager.getLogManager().readConfiguration();
LOGGER.log(Level.SEVERE, "SEVERE 2");
LOGGER.log(Level.FINEST, "FINEST 2");
LogManager.getLogManager().readConfiguration(new FileInputStream("/tmp/logging.properties"));
LOGGER.log(Level.SEVERE, "SEVERE 3");
LOGGER.log(Level.FINEST, "FINEST 3");
System.out.println("--- end");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我运行没有任何VM参数的类,这是输出:
--- start
09.11.2012 09:59:25 test.A main
SCHWERWIEGEND: SEVERE 1
09.11.2012 09:59:25 test.A main
SCHWERWIEGEND: SEVERE 2
--- end
Run Code Online (Sandbox Code Playgroud)
如您所见,仅记录SEVERE级别,因为这是JREs logging.properties的默认值.通话LogManager#readConfiguration() …
我正在使用Adobe Illustrator创建SVG图像.我需要为SVG中的元素设置一些额外的属性,例如CSS class属性.我甚至想从自定义命名空间添加属性.
这怎么可能?自定义命名空间中的属性"很好",但该class属性是必须的.
在Vim中,可以使用G(或第一行gg)跳转到最后一行,但该移动也会跳转到第一个非空格字符.
是否有一个键绑定跳转到第一行(或最后一行),但保持在同一列?
当使用 ComponentListener 来获取调整大小事件的通知时,如果用户将窗口角拖动到新的大小,则可能会收到很多事件。
现在,我需要对调整大小事件进行一些昂贵的计算。如果这种情况经常发生,那就太多了。忽略大多数事件并仅对最后一个事件做出反应(例如,如果用户释放鼠标按钮)是可以的。问题是,我不知道如何找出最后一次调整大小事件是什么。如果我采取天真的方法:
this.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(final ComponentEvent e) {
if (calculationInProgress){
return;
}
calculationInProgress= true;
doExpensiveCalculation();
calculationInProgress= false;
}
});
Run Code Online (Sandbox Code Playgroud)
在最后一次计算后,窗口的大小可能会调整得更多,因此计算将与正确的最终尺寸不匹配。
有什么好的解决方案吗?
我这里有一个应用程序,其中单元测试的编写方式无法并行运行。
\n\n当使用 Maven 运行测试时,其中一些测试会因为这个原因而失败。\n我可以通过执行以下操作来验证它们是否并行运行
\n\nSystem.out.println(System.currentTimeMillis() +">>> executing testXXX");\nSystem.out.println(System.currentTimeMillis() +">>> finished testXXX");\nRun Code Online (Sandbox Code Playgroud)\n\n在每个方法的开始和结束处。\n输出为:
\n\n1530602546964>>> executing testInstantiation \n1530602547036<<< finished testInstantiation \n1530602547042>>> executing testSimilarNamedResources \n1530602547050>>> executing testTranslateWithMissingKey \n1530602547051>>> executing testTryTranslateWithMissingKey \n1530602547051<<< finished testTryTranslateWithMissingKey \n1530602547051>>> executing testTranslationMapWithMissingKey \n1530602547055>>> executing testSilentlyIgnoringExceptionTranslationMapWithMissingKey \n1530602547055<<< finished testSilentlyIgnoringExceptionTranslationMapWithMissingKey \nRun Code Online (Sandbox Code Playgroud)\n\n正如我们所看到的,在 testSimilarNamedResources 启动后,其他一些测试也启动了。
\n\n我尝试将 Surefire 插件配置为不并行运行:
\n\n<build> \n <plugins>\n <plugin>\n <groupId>org.apache.maven.plugins</groupId>\n <artifactId>maven-surefire-plugin</artifactId>\n <version>2.22.0</version>\n <configuration>\n <!--parallel>false</parallel-->\n <threadCount>1</threadCount>\n <perCoreThreadCount>false</perCoreThreadCount>\n </configuration>\n </plugin>\n </plugins>\n</build>\nRun Code Online (Sandbox Code Playgroud)\n\n但它仍然并行执行这些测试。\n我运行 mvn 并选择-X查看我的配置是否已应用并得到以下输出:
$ mvn -X test | grep …Run Code Online (Sandbox Code Playgroud) 我想在SVG的文本周围放一个矩形.我知道文本的高度(元素的font-size属性text).但宽度取决于实际内容.使用getBBox()或getComputedTextLength()应该工作.但这仅在渲染后才有效.
有没有办法以其他方式指定?例如x,width相对于其他值定义和属性?我没有在SVG Spec中找到类似的东西.
可以通过 @HandlerChain 注释将 SoapHandler 添加到服务器端 Web 服务:
@WebService
@HandlerChain(file= "handler-chain.xml")
public class MyWS {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,这需要在单独的 XML 文件中定义处理程序链。
对于客户端 Web 服务,可以完全以编程方式执行此操作:
final MyWSService service= new MyWSService(url);
service.setHandlerResolver(new MyHandlerResolver());
Run Code Online (Sandbox Code Playgroud)
有没有办法完全以编程方式为服务器端 Web 服务执行此操作?这意味着没有额外的 XML 文件?