Tag: java

Java:将文件名分割为一个基础和扩展名

有没有更好的方式来获取文件的基本名称和扩展比类似的东西 File f = … String name = f.getName(); int dot = name.lastIndexOf('.'); String base = (dot == -1) ? name : name.substring(0, dot); String extension = (dot == -1) ? "" : name.substring(dot+1);

如何将testing覆盖率添加到私有构造函数?

这是代码: package com.XXX; public final class Foo { private Foo() { // intentionally empty } public static int bar() { return 1; } } 这是testing: package com.XXX; public FooTest { @Test void testValidatesThatBarWorks() { int result = Foo.bar(); assertEquals(1, result); } @Test(expected = java.lang.IllegalAccessException.class) void testValidatesThatClassFooIsNotInstantiable() { Class cls = Class.forName("com.XXX.Foo"); cls.newInstance(); // exception here […]

匿名类如何使用“扩展”或“实现”?

一个匿名类如何扩展一个超类或实现一个接口?

generics:列表<? 扩展Animal>与List <Animal>相同?

我只是想了解Javagenerics中的extends关键字。 List<? extends Animal> List<? extends Animal>意味着我们可以填充List任何对象是 Animal 那么下面也不会有同样的意思: List<Animal> 有人能帮我了解上述两者之间的区别吗? 对我来说这只是声音冗余而已。 谢谢!

读取Java JVM启动参数(例如-Xmx)

我试图找出是否有一种方法来确定在运行的Java进程中的JVM启动属性。 具体来说,我试图找出参数,如-Xmx(最大堆大小)和-XX:MaxPermSize被存储。 我正在运行Sun的1.6 jvm。 如果你想知道为什么要这样做,我有一些JVM的networking服务器,可能或可能不正确configuration,我想添加到启动代码检查。 检查一段随处可用的java代码比手动查找并检查所有的jvm启动文件要容易得多。 现在,jvmconfiguration文件的好坏不是我们构build过程的一部分,也不是源代码控制。

Tomcat Guice / JDBC内存泄漏

由于Tomcat中的孤线,我正在经历内存泄漏。 特别是,Guice和JDBC驱动程序似乎没有closures线程。 Aug 8, 2012 4:09:19 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A web application appears to have started a thread named [com.google.inject.internal.util.$Finalizer] but has failed to stop it. This is very likely to create a memory leak. Aug 8, 2012 4:09:19 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A web application appears to have started a thread named [Abandoned […]

通过热插拔机制在运行时更改方法

假设我们有一个简单的Java程序,它只包含一个类: public class HelloWorld { private static void replacable(int i) { System.out.println("Today is a nice day with a number " + i); } public static void main(String[] args) throws Exception { for(int i = 0; i < 100000; ++i) { replacable(i); Thread.sleep(500); } } 编译并运行后,输出结果如下: 今天是一个愉快的一天,数字为0 今天是1号的好日子 今天是一个愉快的一天,2号 今天是3号的好日子 … 我的问题:是否存在(或在地平线上)交换可交换方法的一些方法? 就像使用新版本的可replacable版本编写另一版本的HelloWorld ,编译它,然后在已经运行的JVM中编译旧版本? 所以,如果我写这样的新版本: private […]

我可以在JAR中使用JSP来提供JSP,还是有解决方法?

我在Tomcat 7中有一个作为WAR文件部署的Web应用程序。该应用程序构build为一个多模块项目: 核心 – 打包成JAR,包含大部分的后端代码 core-api – 打包成JAR,包含面向核心的接口 webapp – 打包成WAR,包含前端代码并依赖于核心 客户扩展 – 可选模块,打包成JAR 通常,我们可以将我们的JSP文件放在webapp项目中,并相对于上下文来引用它们: /WEB-INF/jsp/someMagicalPage.jsp 问题在于我们如何处理特定于客户扩展项目的JSP文件,这些文件不应总是包含在WAR中。 不幸的是,我看不出JAR文件里面的JSP, 尝试classpath:jsp/customerMagicalPage.jsp由于使用了ServletContext.getResource() ,因此classpath:jsp/customerMagicalPage.jsp导致在JspServlet中找不到文件。 传统上,我们通过maven解开客户扩展JAR,findJSP,并在构build它时将它们放入WAR。 但是理想的情况是,你只需要在Tomcat的WAR文件中放入一个JAR文件,就可以发现这个扩展文件 – 除了JSP之外,其他的文件都可以使用。 有没有解决这个问题? 一个标准的方式,一个Tomcat特定的方式,一个黑客,或解决方法? 例如,我一直在考虑在应用程序启动时解压缩JSP …

Android-java-如何在对象内按特定值sorting对象列表

我试图通过在对象内的特定值的对象的数组列表sorting。 做这样的事情最好的办法是什么? 我应该使用Collections.sort()和某种比较器吗? 我试图sorting一个浮动值,他们在一个variables中的对象列表。 编辑:这是我到目前为止: public class CustomComparator implements Comparator<Marker> { @Override public int compare(Mark o1, Mark o2) { return o1.getDistance().compareTo(o2.getDistance()); } } 错误状态:无法在基本typesdouble上调用compareTo(double)。 是否因为比较器不能返回某种types的东西?

Gradle代理configuration

我需要从Gradle通过代理服务器访问Web以使用Jenkins的Gradle / Artifactory集成。 为了减less问题的可能原因,我手动添加Artifactory插件build.gradle并从命令行运行它: apply { apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle" } 在这个描述之后,我在我的主目录中的.gradle / gradle.properties中指定了以下内容: systemProp.http.proxyHost=hostname systemProp.http.proxyPort=8080 systemProp.http.proxyUser=de\\username systemProp.http.proxyPassword=xxx 通过上面的代理configuration(这是知道的工作),它失败了: 11:33:17.699 [错误] [org.gradle.BuildExceptionReporter]导致:java.io.IOException:服务器返回的HTTP响应代码:407为URL: http ://gradle.artifactoryonline.com/gradle/plugins/org/ jfrog / buildinfo / buildinfo-提取-gradle这个/ 1.0.1 / artifactoryplugin-1.0.1.gradle 我有两个代理服务器可供select,一个总是响应407 ( 代理身份validation要求 ),另一个502 ( 坏网关 ),很显然,proxyHost和proxyPort选项被使用。 由于用户名(基于Active Directory用户)包含反斜杠,我尝试了\\和\ ,但都没有工作。 指定的用户与login到计算机和Active Directory的用户不同。 此用户的凭据无效的代理,所以我需要能够指定一个不同的用户。 在Jenkins或Artifactory的GUI中设置相同的选项。