Tag: java

如何获得响应正文使用HttpURLConnection,当2xx以外的代码被返回?

这是我的第一个问题在堆栈上,我希望我会find一些帮助:) 我有检索JSON响应的情况下,当服务器返回错误的问题。 见下面的细节。 我如何执行请求 我使用java.net.HttpURLConnection 。 我设置请求属性,然后我做到: conn = (HttpURLConnection) url.openConnection(); 之后,当请求成功时,我得到了答复Json: br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); sb = new StringBuilder(); String output; while ((output = br.readLine()) != null) { sb.append(output); return sb.toString(); …问题是: 当服务器返回像50x或40x这样的错误时,我无法检索收到的Json。 以下行引发IOException: br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); // throws java.io.IOException: Server returned HTTP response code: 401 for URL: www.example.com 服务器发送正确的身体,我看到它在外部工具Burp套件: HTTP/1.1 […]

设置的sorting值

我正在尝试对一组元素进行sorting,但无法做到这一点。 这是我正在尝试做的代码 public static void main(String [] args){ Set<String> set=new HashSet<String>(); set.add("12"); set.add("15"); set.add("5"); List<String> list=asSortedList(set); } public static <T extends Comparable<? super T>> List<T> asSortedList(Collection<T> c) { List<T> list = new ArrayList<T>(c); Collections.sort(list); return list; } 但是这个或其他的方式是不行的,因为它总是给我同样的顺序,他们已经填补了12,15,5

Ant需要tools.jar并且无法find它

我正在为Java程序放置一个开发环境,并在我的Ant构build脚本的第一次尝试后,我得到了这个错误: Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk/lib/tools.jar 虽然jdk的path是正确的,但tools.jar确实不在那里。 它实际上应该在那里,或者我得到一些configuration/安装的东西是错的?

无法find一个javac编译器

我正在尝试使用Ant将我的Web应用程序打包成war文件。 当我build立时,我得到以下错误: C:\Documents and Settings\Administrator\workspace\Assignment7\build.xml:67: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jre6" 以下是我的build.xml <?xml version="1.0" encoding="UTF-8"?> <project name="Generate War" default="install" basedir="."> <property name="build.dir" value="build"/> <property name="dir.name" value="Assignment7"/> <property name="package.name" value="${dir.name}.war"/> <property name="content" value="webContent"/> <property name="web-inf" […]

Java:使用TimeUnit将秒转换为日,小时,分和秒

我使用TimeStamp类将秒转换为日,小时,分钟,秒。 我用下面的代码 public static void calculateTime(long seconds) { int day = (int)TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) – TimeUnit.SECONDS.toHours(TimeUnit.SECONDS.toDays(seconds)); long minute = TimeUnit.SECONDS.toMinutes(seconds) – TimeUnit.SECONDS.toMinutes(TimeUnit.SECONDS.toHours(seconds)); long second = TimeUnit.SECONDS.toSeconds(seconds) – TimeUnit.SECONDS.toSeconds(TimeUnit.SECONDS.toMinutes(seconds)); System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second); } 但是我没有得到正确的结果。 例如,当我把这个方法叫做calculateTime(3600)它给了我的结果是Day […]

eclipse中的openjdk 1.7不允许1.7以下的源代码级别

Eclipse给我一个错误: '<>' operator is not allowed for source level below 1.7 我想这是因为它不使用Java 1.7。 除此之外。 至lessopenjdk 1.7(我的操作系统是OpenSuse 12.3)。 我从开普勒切换到juno减less了一些滞后,并试图找出这个错误,迄今为止没有用。 有些事情我已经尝试过了: – eclipse的默认运行时是opensdk 1.7(这样说在帮助中,关于安装细节) – 项目属性,java build – >库。 我已经手动添加了opensdk位置。 我会安装oracle版本,但是opensuse版本库中只有1.6版本可用。 我已经尝试过安装oracle提供的rpm,它没有把自己放在我的路上,把所有的东西搞砸了,于是我又删除了它。 它应该与openjdk一起工作吗? 或者你认为它有一个错误? ps:junit也不被认可,所以我手动链接到jar文件。 也许这是相关的信息。

返回一个空数组

题 这可能是个愚蠢的问题,但是foo()和bar()之间有什么区别吗? 码 private static File[] foo() { return Collections.emptyList().toArray(new File[0]); } private static File[] bar() { return new File[0]; } 我试图想到返回一个空数组,而不是null的最佳方式。

Java的 – 如何使用值的string数组?

我知道如何做一个空的数组,但我怎么做一个String数组从一开始的值?

在IntelliJ中不能select类作为主类

我在IntelliJ中有一个Java项目,我只是在嵌套的文件夹层次结构中添加了一堆文件。 这些文件中的很多是testing,包括主要的方法,所以我应该能够运行它们。 但我不知道如何做到这一点。 我是IntelliJ的新手,之前的文件已经在项目层次结构中显示出来, 符号对应于“包含main()方法声明的Java类”。 但在这种情况下,它们会显示与“位于源根目录外的Java类”对应的符号。 那么如何编译和运行这些文件呢?

在Java中创build一个不依赖if-else的工厂方法

目前我有一个方法,作为基于给定的string的工厂。 例如: public Animal createAnimal(String action) { if (action.equals("Meow")) { return new Cat(); } else if (action.equals("Woof")) { return new Dog(); } … etc. } 我想要做的是在类的列表增长时避免整个if-else问题。 我想我需要有两种方法,一种是将string注册到类,另一种是基于操作的string返回类。 在Java中这样做的好方法是什么?