标签: java-7

为什么在Java 7中没有为ARM改进StAX类

我期望能发现XMLStreamReader是AutoCloseable在Java 7中.然而,事实并非如此.是否存在技术原因导致StAX读取器/写入器接口未被(或不应该)改进以实现AutoCloseable?他们已经有了密切的方法,其意图与密切方法没有区别AutoCloseable.

java stax java-7 try-with-resources

9
推荐指数
1
解决办法
1049
查看次数

Java 1.7中的JAX-WS HTTP日志记录

我使用JAX-WS作为客户端.我曾经使用以下系统属性来记录所有HTTP请求和响应以进行调试:

com.sun.xml.ws.transport.local.HTTPTransportPipe.dump=true
Run Code Online (Sandbox Code Playgroud)

但是,由于升级到Java 1.7并使用内置的JAX-WS(而不是外部库),此功能已停止工作.

我已经做了很多搜索,以找到1.7中的等效物但是没有运气.有人知道如何记录输出吗?

谢谢你的帮助

java jax-ws java-7

9
推荐指数
1
解决办法
4062
查看次数

在Windows上编译Java时拒绝访问

我创建了两个java文件:Pizza.Java和PizzaOrder.Java.

我尝试在命令提示符下使用javac编译我的代码,如下所示:

javac pizzaorder.java
Run Code Online (Sandbox Code Playgroud)

我得到访问被拒绝错误:

C:\Users\Meutex>cd\

C:\>cd "Program Files\Java\jdk1.7.0\bin"

C:\Program Files\Java\jdk1.7.0\bin>javac PizzaOrder.java
PizzaOrder.java:23: error: cannot find symbol
                Pizza order = new Pizza ();
                ^
  symbol:   class Pizza
  location: class PizzaOrder
PizzaOrder.java:23: error: cannot find symbol
                Pizza order = new Pizza ();
                                  ^
  symbol:   class Pizza
  location: class PizzaOrder
2 errors

C:\Program Files\Java\jdk1.7.0\bin>javac Pizza.java
Pizza.java:11: error: error while writing Pizza: Pizza.class (Access is denied)
public class Pizza {
       ^
1 error

C:\Program Files\Java\jdk1.7.0\bin>javac Pizza.java
Run Code Online (Sandbox Code Playgroud)

我在做什么导致这个错误?

java windows java-7

8
推荐指数
2
解决办法
8万
查看次数

Java/OS X Lion:设置应用程序名称已停止使用JDK1.7

我到目前为止使用以下代码在Apple MacBook上设置应用程序名称(在"系统"菜单栏的顶部).(实际上,我认为我是从stackoverflow复制的.)

基本上,有一个单独的AppLauncher类,它在为应用程序本身创建一个新的Runnable之前使用System.setProperty()来设置应用程序名称.

工作得很好.

但是,由于我下载并开始使用JDK 1.7,解决方案停止工作 - 我在菜单中获得了Class Name而不是App Name,就像我找到解决方案之前一样.我试着谷歌搜索它,但无济于事.

以下是过去在JDK 1.6下工作的失效代码,简化为相关部分:

public class AppLauncher {
public static void main(String[] args) {

    System.setProperty("apple.laf.useScreenMenuBar", "true");
    System.setProperty("com.apple.mrj.application.apple.menu.about.name",
                "My Application");
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new MainWindow();
        }
    });
}
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的建议!

ETA:使用java -Dapple.laf.useScreenMenuBar = true调用仍然有效.将属性设置为Info.plist可能会有效,但我还没有尝试过.

java macos swing java-7 osx-lion

8
推荐指数
1
解决办法
1459
查看次数

如何使用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
Run Code Online (Sandbox Code Playgroud)

这是我的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<Runnable> ref = bundleContext.getServiceReference(Runnable.class);
    }

    @Override
    public void stop(BundleContext bundleContext) throws Exception {
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>bundle</packaging>

    <name>example</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java openjdk osgi java-7

8
推荐指数
1
解决办法
2456
查看次数

缺少泛型类Class <T>的类型参数,其中T是类型变量

我使用Oracle JDK 7,当我构建项目时,我收到了以下消息:

missing type arguments for generic class Class<T> where T is a type-variable: 
T extends Object declared in class Class
Run Code Online (Sandbox Code Playgroud)

这是班级:

public class Among {
private static final Class<?>[] EMPTY_PARAMS = new Class[0]; //warning line
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决它.它在很多地方使用,我有很多警告.

java generics java-7

8
推荐指数
1
解决办法
9454
查看次数

使用java.lang.invoke.MethodHandle调用私有方法

如何使用方法句柄调用私有方法?

据我所知,只有两种可公开访问的Lookup实例:

  • MethodHandles.lookup()
  • MethodHandles.publicLookup()

并且都不允许不受限制的私人访问.

有非公众Lookup.IMPL_LOOKUP做我想做的事.是否有一些公共方法来获取它(假设SecurityManager允许它)?

java reflection invokedynamic java-7 methodhandle

8
推荐指数
1
解决办法
2730
查看次数

在一些基本的解析任务中,Java 7比Java 6慢8倍

我最近注意到,自从我更新到Java 7以来,我的代码的特定部分运行速度明显变慢.令人惊讶的是,Java 7的全局速度比Java 6快.

该程序非常庞大,但我成功地提取了一个可重现的代码来演示java 7如何比Java 6慢.

如果您使用Java 6和Java 7运行完全相同的代码,您会发现Java 7比Java 6慢大约7-8倍!

这是代码(不要试图理解它的作用,它只是来自真实代码的摘要,因此并没有真正意义).它基本上是一个解析字符串以格式化其中某些部分的代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class CPerfJava7 extends JFrame {
    private static final long serialVersionUID = 1L;

    // +==============================================================+
    // | Attributes                                                   |
    // +==============================================================+
    JPanel mainPanel;

    public CPseudoHtmlDocument docu;
    private static long totalTime = …
Run Code Online (Sandbox Code Playgroud)

java performance swing java-6 java-7

8
推荐指数
1
解决办法
900
查看次数

为什么我的应用程序启动时间超过2分钟?

我在Windows 7 64位计算机上运行一个用swing制作的图形化Java应用程序.

我的应用程序是一个可运行的jar文件,我使用以下命令从命令提示符启动:

C:\path\to\jre\java.exe -jar myProg.jar
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我使用JRE8 32位而不使用JRE7 32位或JRE8 64位时,我遇到了巨大的性能问题.
请注意,应用程序使用相同的jar文件运行; 唯一的区别是它是由不同的JRE运行的.

我尝试了不同的JRE8版本,问题仍然存在......

当我使用"-verbose"参数比较两个输出时,我看到我获得了超过1500个带有文本的输出:'[来自共享对象文件的加载xxxxxx]'用于JRE7而我没有得到JRE8.
梅比可能会以某种方式联系起来?

有谁知道问题可能是什么?


以下是JRE7的一些输出

[Loaded MainFrame.MainFrame$XtrFileFilter from rsrc:./]
[Loaded java.awt.event.HierarchyListener from shared objects file]
[Loaded java.lang.InterruptedException from shared objects file]
[Loaded java.io.FileWriter from shared objects file]
[Loaded javax.swing.CellEditor from shared objects file]
[Loaded javax.swing.table.TableCellEditor from shared objects file]
[Loaded java.awt.image.RenderedImage from shared objects file]
[Loaded java.awt.image.WritableRenderedImage from shared objects file]
[Loaded java.awt.image.BufferedImage from shared objects file]
[Loaded sun.awt.util.IdentityArrayList from c:\Program Files (x86)\Java\jdk1.7.0_45\jre\lib\rt.jar]
[Loaded java.awt.Window$Type from c:\Program …
Run Code Online (Sandbox Code Playgroud)

java jar startup java-7 java-8

8
推荐指数
1
解决办法
1595
查看次数

IntelliJ - 所选目录不是JDK的主页

类似于这个问题IntelliJ,"所选目录不是JDK的主页",我收到一个错误,我的JDK目录突然无效.

Intellij JDK错误

即使我的JDK目录看起来很好,上次我加载了IntelliJ

我的JDK目录

所以我选择了一个有效的JDK目录但仍然出现了这个错误.

我的IntelliJ版本

什么可能导致这个?什么能解决这个问题?

java ide intellij-idea java-7 intellij-15

8
推荐指数
1
解决办法
8028
查看次数