我是新手,也是MacOS。 我已经在我的terminal中设置了maven,在获取版本设置(使用mvn -v )时,似乎使用JDK 1.6,而我已经安装了JDK 1.7。 有什么不对吗? 我input的命令是: blues:helloworld Ninja$ java -version java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)` blues:helloworld Ninja$ mvn -v Apache Maven 3.1.0 (893ca28a1da9d5f51ac03827af98bb730128f9f2; 2013-06-28 10:15:32+0800) Maven home: /usr/local/Cellar/maven/3.1.0/libexec Java version: 1.6.0_51, vendor: Apple Inc. Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: zh_CN, […]
我在java中看到一些方法声明为: void foo(@Nullable Object obj) { … } @Nullable的含义是@Nullable ? 这是否意味着input可能为null ? 没有注释,input仍然可以为空,所以我猜这不仅仅是它? 谢谢
在这个代码中,这两个连接和中断是什么意思? t1.join()导致t2停止,直到t1终止? Thread t1 = new Thread(new EventThread("e1")); t1.start(); Thread t2 = new Thread(new EventThread("e2")); t2.start(); while (true) { try { t1.join(); t2.join(); break; } catch (InterruptedException e) { e.printStackTrace(); } }
大家注意Java DateFormat不是线程安全的,理论上我理解这个概念。 但是由于这个原因,我无法想像我们可以面对哪些实际问题。 说,我在一个类中有一个DateFormat字段,并且在multithreading环境中在类中的不同方法(格式化date)中使用相同的。 这是否会导致: 任何exception,如格式exception 数据差异 任何其他问题? 另外,请解释原因。
至less一个月我没有更新过任何东西。 我只是正常工作,突然菜单都是空白的,所以我决定重新启动日食。 我点击“closures”和“确定”来保存所有内容,但没有发生任何事情,所以我再次点击closures和eclipseclosures。 我点击了日食和加载屏幕只闪烁和消失之后,告诉我检查.log文件。 我已经多次重新启动电脑,试图在安全模式下运行,并运行eclipse.exe -clean ,没有任何工作。 有任何想法吗? !SESSION 2013-03-12 13:46:10.078 ———————————————– eclipse.buildId=I20120608-1400 java.version=1.7.0_07 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -clean !ENTRY org.eclipse.ui 4 4 2013-03-12 13:46:55.800 !MESSAGE An internal error has occurred. !STACK 0 java.lang.NullPointerException at org.eclipse.ui.internal.Workbench.createWorkbenchWindow(Workbench.java:1228) … […]
当我使用CXF中的wsdl2java生成web服务客户端(通过maven生成类似于wsimport的东西)时,我的服务以这样的代码开始: @WebServiceClient(name = "StatusManagement", wsdlLocation = "c:/some_absolute_path_to_a_wsdl_file.wsdl", targetNamespace = "http://tempuri.org/") public class StatusManagement extends Service { public final static URL WSDL_LOCATION; public final static QName SERVICE = new QName("http://tempuri.org/", "StatusManagement"); public final static QName WSHttpBindingIStatus = new QName("http://tempuri.org/", "WSHttpBinding_IStatus"); static { URL url = null; try { url = new URL("c:/some_absolute_path_to_a_wsdl_file.wsdl"); } catch (MalformedURLException e) […]
我在web应用程序中使用jsf和spring。 我已经configuration了数据源和会话工厂在一个configuration类,它使用@Configuration, @ComponentScan Configuration @Configuration, @ComponentScan等注释。 我没有任何applicationContext.xml文件在我的项目中,因为我正在处理Configuration类中的上下文xml的每个条目。 testing用例能够成功运行,但是当我部署我的web应用程序时,它给了我错误 java.lang.IllegalStateException:没有findWebApplicationContext:没有ContextLoaderListener注册? 现在,如果我在web.xml中给监听器类, <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 它给我错误, /WEB-INF/applicationContext.xml找不到 根据ContextLoaderListener的文档,如果我没有明确地给web.xml contextConfigLocation参数,它会在web.xmlsearch名为applicationContext.xml的默认spring上下文文件。 现在,如果我不想使用spring上下文文件并执行所有带注释的configuration,该怎么办? 我应该如何注册监听器类ContextLoaderListener以便不使用XML文件,只使用注释,我可以运行我的Web应用程序与spring和JSF?
我如何把一个我有的jar文件,并将其添加到maven 2中的依赖系统? 我将成为这个依赖的维护者,我的代码需要在类path中使用这个jar,以便编译。
看起来不可能创build一个caching的线程池,它可以创build一个线程数量的限制。 下面是在标准Java库中实现的静态Executors.newCachedThreadPool: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } 所以,使用该模板继续创build一个固定大小的caching线程池: new ThreadPoolExecutor(0, 3, 60L, TimeUnit.SECONDS, new SynchronusQueue<Runable>()); 现在,如果你使用这个,并提交3个任务,一切都会好的。 提交任何进一步的任务将导致被拒绝的执行exception。 尝试这个: new ThreadPoolExecutor(0, 3, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runable>()); 将导致所有线程顺序执行。 也就是说,线程池将永远不会使多个线程来处理您的任务。 这是ThreadPoolExecutor的执行方法中的一个错误? 或者也许这是故意的? 或者有其他的方法? 编辑:我想要的东西就像caching线程池(它创build线程按需,然后在一定的时间后杀死它们),但它可以创build的线程数量的限制,并能够继续排队附加任务打到它的线程限制。 根据sjlee的回答,这是不可能的。 看看ThreadPoolExecutor的execute()方法确实是不可能的。 我需要inheritanceThreadPoolExecutor并像SwingWorker那样重写execute(),但是SwingWorker在其execute()方法中做了什么是一个彻底的破解。
Java中的public static void是什么意思? 我正在学习。 在本书的所有示例中,我使用的是public static void在任何正在使用或创build的方法之前。 这是什么意思?