JDK 7更改了keytool输出

我正在使用JDK的keytool来生成Google Maps API密钥指纹。 虽然被拒绝多次,但我意识到我最近将JDK升级到了1.7。 所以我将我的目录切换到JDK6(感谢上帝,旧版本仍然存在。),并重复相同的命令: D:\.android>”C:\Program Files\Java\jre6\bin\keytool” -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 和邦! 有用。 原来JDK7生成了SHA1指纹而不是MD5,这导致我拒绝提交给谷歌。 所以我想知道为什么新版本的JDK会发生这种情况。 任何人都有一些线索?

将BufferedImage转换为另一种类型

从源( File , InputStream , URL )读取图像最方便的方法是: BufferedImage myImage = ImageIO.read( source ); 但是, 如何将myImage转换为BufferedImage.TYPE_USHORT_565_RGB格式?

有效的方法来替换字符串中的字符(java)?

我正在写一个小的JAVA程序: 将文本作为字符串 需要2个字符arrays 我试图做的将听起来像“找到并替换”,但它不一样,所以我认为清除它很重要。 无论如何,我想要获取此文本,查找第一个数组中的任何char是否与文本中的char匹配,如果是,请将其替换为第二个char数组中匹配的char(根据索引)。 我将用一个例子来解释:让我说我的文本(String)是:“java很棒!”; 我有2个数组(char []):“absm”和“!@ * $”。 希望的结果是将’a’改为’!’ ,’b’到’@’等等……意味着生成的文本将是: “java真棒!” 改为 – >“j @ v @ i * @ w * o $ e!” 这样做最有效的方法是什么?为什么? 我想过循环文本,但后来发现它不那么有效。 (可以使用StringBuilder / String类)

帕斯卡的三角形格式

赋值是在不使用数组的情况下创建Pascal的三角形。 我有生成下面三角形值的方法。 该方法接受用户想要打印的最大行数的整数。 public static void triangle(int maxRows) { int r, num; for (int i = 0; i <= maxRows; i++) { num = 1; r = i + 1; for (int col = 0; col 0) { num = num * (r – col) / col; } System.out.print(num + ” “); } System.out.println(); } […]

Java:在不锁定文件的情况下打开和读取文件

我需要能够用Java模仿’tail -f’。 我正在尝试读取一个日志文件,因为它是由另一个进程写的,但是当我打开文件来读取它时,它会锁定文件而另一个进程无法再写入它。 任何帮助将不胜感激! 这是我目前使用的代码: public void read(){ Scanner fp = null; try{ fp = new Scanner(new FileReader(this.filename)); fp.useDelimiter(“\n”); }catch(java.io.FileNotFoundException e){ System.out.println(“java.io.FileNotFoundException e”); } while(true){ if(fp.hasNext()){ this.parse(fp.next()); } } }

如何让Java套接字使用公共IP?

我没有遇到使用localips的套接字没有问题,但是一旦我将代码更改为使用public ips,我就一直得到java.net.ConnectException。 我使用端口8084,据我所知,在其他地方没有使用在命令提示符下,netstat -a | grep 8084显示:文件STDIN:TCP user-9114eb19a8:8084 user-9114eb19a8:0 LISTENING 我已经进入我的路由器并确保它是开放的我使用请求http://www.whatismyip.org获取我的公共IP 服务器: serverSocket = new ServerSocket (8084); 客户: socket = new Socket (hostaddr, 8084); //hostaddr is a string containing my public-IP //it works when the program is run on a localnetwork and I am using my local-ips

Java中Switch Case的替代方案

有没有其他方法可以在Java中实现一个switch case,而不是看起来不好看的else。 根据选择相应的方法,必须执行一组值组合。

来自IE中的servlet的持久性cookie

我有一个从servlet生成的cookie,我想要持久化 – 也就是说,设置cookie,关闭IE,重新启动它,并且仍然能够读取cookie。 我正在使用的代码如下: HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance() .getExternalContext().getResponse(); Cookie cookie = new Cookie(“someKey”, “someValue”); cookie.setMaxAge(7 * 24 * 60 * 60); response.addCookie(cookie); 这在firefox中运行良好,但在IE 6/7中,cookie不会在浏览器重启之间保存。 我已经检查了我在设置中可以想到的所有内容,但无法弄清楚导致cookie被删除的原因。 据我所知,使用正数调用setMaxAge会使cookie持久化。 任何想法为什么会出错? 编辑 我已经使用Olaf建议的更多信息技巧validation了cookie是否正在尝试设置为会话cookie,而不是持久cookie; 最大年龄设置为“会话结束”。 所以看起来似乎没有为IE设置最大年龄 – 我已经validation在Firefox中,最大年龄设置正确。 我仍然不知道发生了什么。

注入静态EJB,废话?

我想写这段代码: @Stateless public class MyEjb { @EJB private static MyOtherEjbWhichIWantStatic myOtherEjb; } 我有意义的是,由于各种原因,我想在我的类中注入一个EJB,作为静态元素。 遗憾的是,Java对此并不满意 com.sun.enterprise.container.common.spi.util.InjectionException: Illegal use of static field private static MyOtherEjbWhichIWantStatic myOtherEjb on class that only supports instance-based injection 我不明白,为什么我不能将静态EJB注入另一个EJB?

JFrame.setExtendedState(MAXIMIZED_BOTH)是否与未修饰的帧一起使用?

以下Swing代码在我的计算机或我的同事计算机(所有Windows XP和Java 6)上无法正常运行: public class Test { public static void main(String[] args) { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.setLayout(new FlowLayout()); frame.add(new JButton(new AbstractAction(“Maximize”) { @Override public void actionPerformed(ActionEvent e) { frame.setExtendedState((frame.getExtendedState() & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH ? JFrame.NORMAL : JFrame.MAXIMIZED_BOTH); } })); frame.setUndecorated(true); frame.setVisible(true); } } 它最大化窗口,但不考虑窗口任务栏(它填满屏幕)。 如果你注释掉“frame.setUndecorated(true);” 它似乎工作正常。 Javadoc似乎暗示这应该有效。 这是Java中的错误吗? 它仅限于特定版本或Windows版本吗? […]