Tag: java 7

Source Sans Pro的TTF和OTF版本在Swing(Nimbus L&F)中有不同的显示

TTF: OTF: 两者都是相同的字体但不同的字体文件类型 我在Windows 7中运行Java 7 根据Adobe的Miguel Sousa的说法,错误不在字体中https://github.com/adobe/source-sans-pro/issues/32#issuecomment-23319673 我只是将默认字体设置为新字体。 TTF版本没有任何问题 Font font_o = Font.createFont(Font.TRUETYPE_FONT, fonts.class.getResourceAsStream(“fonts/TTF/SourceSansPro-Regular.ttf”)); //Font font_o = Font.createFont(Font.TRUETYPE_FONT, fonts.class.getResourceAsStream(“fonts/OTF/SourceSansPro-Regular.otf”)); Font font_n=font_o.deriveFont(Font.PLAIN, UIManager.getLookAndFeelDefaults().getFont(“defaultFont”).getSize()); UIManager.getLookAndFeelDefaults().put(“defaultFont”,font_n); 为什么线路高度有差异?

Java7 ClassFormatError:创建对象时非法的局部变量表长度

我在执行以下代码时遇到这个奇怪的错误。 EncoderRequest encoderRequest = new EncoderRequest(sid,appTxnId,pfid,transactionType,””,isUpdatetype9,true); 我检查了所有参数值是否有效。 我正在使用java7平台。 任何人都可以遇到这种情况,请帮忙。 以下是我得到的stacktrace的一部分。 Caused by: java.lang.ClassFormatError: Illegal local variable table length 48 in method com.cmc.facts.encoder.EncoderRequest.(JLjava/lang/String;Ljava/lang/Long;Lcom/cmc/facts/enums/TransactionType;Ljava/lang/String;ZZ)V at com.cmc.facts.nist.NistReaderModel.preprossingOfNistFile(NistReaderModel.java:180) at com.cmc.facts.action.interstate.InterStateAction.uploadFIIF(InterStateAction.java:645) … 115 more

如何使用OpenJDK 7编译mavenized OSGi 4.3包?

我正在尝试使用OpenJDK7针对OSGi规范4.3编译我的OSGi包但我收到错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5:compile (default-compile) on project example: Compilation failure [ERROR] /tmp/baka/example/src/main/java/org/example/Activator.java:[14,24] error: type ServiceReference does not take parameters 这是我的Activator.java: package org.example; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; public class Activator implements BundleActivator { @Override public void start(BundleContext bundleContext) throws Exception { ServiceReference ref = bundleContext.getServiceReference(Runnable.class); } @Override public void stop(BundleContext bundleContext) […]

现在用Java获取当前时间精度(微秒)的任何​​新方法?

我检查了下面的页面,没有方法可以获得2009年Java中微秒精度的当前时间。 java中的当前时间(以微秒为单位) 最好的是System.currentTimeMillis(),它以毫秒为单位给出当前时间精度,而System.nanoTime()给出当前时间戳的准确度,以纳秒为单位,但是这个时间戳不能用于高精度地转换为当前时间。 我可以在6年后知道Java中是否有任何新的更新? 谢谢。 编辑1. System.nanoTime()对于估计持续时间非常有用,但不能提供当前时间。 编辑2.在Java 8中使用解决方案是件好事。在Java 7中还有其他方法吗? 谢谢!

使用Java 7进行转义分析/堆栈分配的资格

我正在使用Java 7中的转义分析进行一些测试,以便更好地了解哪些对象有资格进行堆栈分配。 这是我编写的用于测试堆栈分配的代码: import java.util.ArrayList; import java.util.Iterator; public class EscapeAnalysis { private static final long TIME_TO_TEST = 10L * 1000L; // 10s static class Timestamp { private long millis; public Timestamp(long millis) { this.millis = millis; } public long getTime() { return millis; } public void setTime(long time) { millis = time; } } public […]

拖放JDK1.6和JDK1.7之间的差异

有没有人知道JDK1.6和JDK1.7之间的拖放行为的差异? 将URL从浏览器拖放到需要支持JDK1.5,JDK1.6和JDK1.7的应用程序时,我遇到了不同(如下图所示)。 我现在想知道是否存在其他差异以及是否在某处记录了这些差异。 我遇到的不同行为是通过单击并拖动URL到Java应用程序来拖放来自浏览器(而不是来自地址栏但来自页面)的URL。 在JDK1.6上,Transferable不支持DataFlavor.javaFileListFlavor ,而且它支持JDK1.7(尽管在请求传输数据时会得到一个空列表)。 以下代码说明了该问题。 它打开一个JFrame ,您可以在其上拖放像http://www.google.com这样的URL,并打印出它是否使用文件列表风格或URI列表风格 import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.TransferHandler; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.List; public class DragAndDropTester { private static DataFlavor URI_LIST_FLAVOR = null; static { try { URI_LIST_FLAVOR = new DataFlavor( […]

带有钻石操作符的双括号初始化(匿名内部类)

我想知道为什么第二个地图声明(使用菱形运算符)在第一个地图声明时不会编译。 编译错误: 错误:无法推断HashMap的类型参数; Map map2 = new HashMap (){reason:不能使用带有匿名内部类的”,其中K,V是类型变量:K扩展在类HashMap中声明的对象V扩展在类HashMap中声明的Object 码: Map map1 = new HashMap() { //compiles fine { put(“abc”, “abc”); } }; Map map2 = new HashMap() { //does not compile { put(“abc”, “abc”); } }; 编辑 感谢您的回答 – 我应该更好地阅读编译错误。 我在JLS找到了这个项目 如果类实例创建表达式使用类的“”形式为类的类型参数声明一个匿名类,那么这是一个编译时错误。

ForkJoinPool似乎浪费了一个线程

我正在比较测试程序的两个变体。 两者都在具有四个核心的机器上使用4线程ForkJoinPool进行操作。 在’模式1’中,我使用池非常像执行器服务。 我将一堆任务扔进了ExecutorService.invokeAll 。 我获得了比普通的固定线程执行程序服务更好的性能(即使有调用Lucene,在那里执行一些I / O)。 这里没有分而治之。 从字面上看,我做到了 ExecutorService es = new ForkJoinPool(4); es.invokeAll(collection_of_Callables); 在’模式2’中,我向池中提交单个任务,并在该任务中调用ForkJoinTask.invokeAll来提交子任务。 所以,我有一个inheritance自RecursiveAction的对象,它被提交到池中。 在该类的compute方法中,我在来自不同类的对象集合上调用invokeAll ,该类也inheritance自RecursiveAction 。 出于测试目的,我只提交第一个对象的一次一个。 我天真地期望看到所有四个线程忙什么,因为调用invokeAll的线程会为自己获取一个子任务而不仅仅是坐和阻塞。 我可以想到为什么它可能不会那样工作的一些原因。 在VisualVM中观察,在模式2中,一个线程几乎总是在等待。 我希望看到的是调用invokeAll的线程立即开始处理其中一个被调用的任务,而不仅仅是静坐。 这肯定比使用普通线程池尝试此方案所导致的死锁更好,但仍然是什么? 它是否保留一个线程,以防其他东西被提交? 而且,如果是这样,为什么模式1中的问题不一样? 到目前为止,我一直使用添加到java 1.6的引导类路径的jsr166 jar来运行它。

Java 7.x中的validateTree不起作用(在Java 6.x中很好)

我的java版本是: Java Plug-in 10.3.1.255使用JRE版本1.7.0_03-b05 Java HotSpot(TM)客户端VM 所以,当我有版本6.x一切都很好,升级后我得到了这个: 线程“AWT-EventQueue-0”中的exceptionjava.lang.IllegalStateException:在java.awt.Container.validateTree(Container)的java.awt.Component.checkTreeLock(Component.java:1196)中保存treeLock时应该调用此函数。 java:1682)在pl.recorder.actions.UwloadFilesAction.exe执行(DesignFilesAction.java:71)pl.recorder.actions.EndTestAction.actionPerformed(EndTestAction.java)的pl.recorder.ScenarioWindow.showUploadPanel(PlayerWindow.java:721) :91)at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)at javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2341)at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)在javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)的javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)at java.awt.Component.processMouseEvent(Component.java:6505)at at java.aw上的javax.swing.JComponent.processMouseEvent(JComponent.java:3321) t.Component.processEvent(Component.java:6270)位于java.awt.Container.dispatchEventImpl的java.awt.Container.ventEvent(Container.java:2229)java.awt.Component.dispatchEventImpl(Component.java:4861) (Container.java:2287)位于java.awt.LightweightDispatcher.processMouseEvent(Container.java:4832)的java.awt.Component.dispatchEvent(Component.java:4687)java.awt.LightweightDispatcher.processMouseEvent(Container.java: 4492)java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)at java.awt.Container.dispatchEventImpl(Container.java:2273)at java.awt.Window.dispatchEventImpl(Window.java:2713)at java。位于java.awt.EventQueue.access的java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)中的awt.Component.dispatchEvent(Component.java:4687)$ 000(EventQueue.java:101)at java.awt.EventQueue $ 3 .run(EventQueue.java:666)java.awt.EventQueue $ 3.run(EventQueue.java:664)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain $ 1.doIntersectionP rivilege(ProtectionDomain.java:76)java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:87)at java.awt.EventQueue $ 4.run(EventQueue.java:680)at java.awt.EventQueue $ 4.run( EventQueue.java:678)java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)at at Java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)java.awt.EventDispatchThread .pumpEvents(EventDispatchThread.java:113)位于java.awt.EventDispatchThread.run的java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)中(EventDispatchThread.java:90) 我将validateTree()更改为validate()和suprise;) […]

为什么这在Java7中编译而在Java8中不编译?

generics是棘手的。 看起来它们在不同版本的Java中被区别对待。 此代码在Java 7中成功编译,无法使用Java 8进行编译。 import java.util.EnumSet; public class Main { public static void main(String[] args) { Enum foo = null; tryCompile(EnumSet.of(foo)); } static <C extends Enum & Another> void tryCompile(Iterable i) {} static interface Another {} } 这是来自Java 8的错误消息。我用这个来编译它: http : //www.compilejava.net/ /tmp/java_A7GNRg/Main.java:6: error: method tryCompile in class Main cannot be applied to given […]