标签: java-7

使用Spring和Tomcat从JDK6迁移到JDK7有什么问题吗?

我想利用一些JDK7功能.鉴于我使用的是Apache Tomcat 7.0.x(最新版)和Spring 3.1(最新版),我可能会遇到什么问题?

java spring jdk1.6 java-7

6
推荐指数
1
解决办法
6498
查看次数

Java 7精确的重新抛出和遗留代码

更精确的重新抛出允许编写抛出异常抛出的异常的代码:

   public void foo(String bar) throws FirstException, SecondException {
     try{
       // Code that may throw both FirstException and SecondException
     }
     catch (Exception e){
       throw e;
     }
   }
Run Code Online (Sandbox Code Playgroud)

在Java 7之前,你必须写:

   public void foo(String bar) throws Exception {
     try{
       // Code that may throw both FirstException and SecondException
     }
     catch (Exception e){
       throw e;
     }
   }
Run Code Online (Sandbox Code Playgroud)

我的问题:是否有一个工具允许检测不精确的投掷,以便用" Exception" 替换" FirstException, SecondException"?

到目前为止,我已经检查过Eclipse中没有编译器警告.FindBugs或CodePro中没有规则.

java exception rethrow java-7

6
推荐指数
1
解决办法
350
查看次数

获取给定文件夹下的所有绝对文件路径

我需要在内存中保存给定目录下的所有文件名绝对路径.

myDirectory.list() - 仅检索文件名的String [](没有它们的绝对路径).

不想使用文件对象,因为它消耗更多内存.

最后一件事 - 我可以使用apache集合等(但没有找到任何有用的东西).

java list absolute-path apache-commons java-7

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

在JUnit 4.11中找不到类

首先,我已经查看了有关堆栈溢出的所有类似问题,但对我来说还没有任何效果.试图让JUnit使用Peter Tahchiev撰写的JUnit in Action第二版中的一个简单例子.

Calculator.java

public class Calculator {
    public double add(double number1, double number2) {
        return number1 + number2;
    }
}
Run Code Online (Sandbox Code Playgroud)

CalculatorTest.java

import static org.junit.Assert.assertEquals;
import org.junit.Test;

public class CalculatorTest {

    @Test
    public void testAdd() {
        Calculator calc = new Calculator();
        double result = calc.add(1,1);
        assertEquals(2, result,0);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的文件夹: 当前文件夹

我编译:

javac -cp junit-4.11.jar *.java
Run Code Online (Sandbox Code Playgroud)

编译后我的文件夹: 编译后的当前文件夹

我尝试运行测试:

java -cp junit-4.11.jar;hamcrest-core-1.3.jar;. org.junit.runner.JUnitCore CalculatorTest
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

产量

当我尝试运行各个类时,jre找到它们但抛出了一个没有主要的方法错误,这是预期的:

java Calculator
java CalculatorTest
Run Code Online (Sandbox Code Playgroud)

输出(这是预期的,但它找到了类): 错误1 错误2

任何想法我怎么能得到JUnit /无论它是什么行为?

[编辑]
我运行所有命令C:\Users\Zach\Documents\docs\Code\JUnit
上面的截图是相同的文件夹.
我使用的是jdk1.7.0_45和jre7 …

java junit unit-testing java-7

6
推荐指数
1
解决办法
2862
查看次数

如何在Java 7中获得国际原子时

我正在研究Java7项目,我们需要一个国际原子时间的时间戳.我发现了一些与此相关的问题,指向JSR-310和ThreeTen Project(正在实现JSR-310):

如何在Java中获得GPS时间和TAI时间?

http://www.coderanch.com/t/549178/java/java/TAI-Atomic-Time-International

但是,我正在努力研究用于Java 7的确切内容以及从何处获取它.似乎有ThreeTen的旧SourceForge和GitHub页面,以及OpenJDK页面.

我找到了Java 7反向端口,但是从Maven下载后它不包含TAIInstant类,这是我真正需要的(TIAInstant类列在ThreeTen SourceForge JavaDoc上,位于javax.time.TAIInstant下).

为了完整起见,这是我的pom.xml的摘录:

<dependency>
  <groupId>org.threeten</groupId>
  <artifactId>threetenbp</artifactId>
  <version>0.8.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我应该使用其他东西,我应该从哪里获取它?

注意:抱歉,我无法提供指向我所指的所有页面的链接,StackOverflow不会让每个帖子都有> 2个链接而没有更高的代表.

[编辑] 想要TAI的原因是我需要一个单调增加的时间戳,我相信TAI会满足(即使在正和负闰秒期间,因为它不关心闰秒计算所有秒数,包括飞跃秒).

从各种来源阅读了关于POSIX/Unix的时间后,我仍然不清楚在闰秒的Unix时间内发生了什么.我知道Unix时间在引用UTC时间方面是模棱两可的,但我不清楚在闰秒发生的瞬间Unix时间会发生什么?Unix时间'暂停'还是倒退例如?也许更重要的是,即使它不应该根据Unix时间规范,Unix实现是否真的遵守关于闰秒的规范......?

最后,我是否正确地说System.currentTimeMillis()将获得相当于POSIX时间(虽然以毫秒而不是秒)?

注意,我需要一个可以在JVM和机器上移植的对象(排除System.nanoTime()或类似的东西).

[结论]

TAI
TAI是一个测量时间的系统,每秒计算一次并且"所有秒都相等" - 即.每秒包含相同的时间段,所有秒数(包括闰秒)都计入总数中.这意味着TAI中的秒数(从某个任意起始点开始计算,例如Unix Epoch)是一个单调递增的整数.

POSIX时间
POSIX时间是用于测量时间的标准(不是实现).它将每天定义为恰好有86400秒.因此,POSIX时间不计算闰秒(因为偶尔一分钟可能有61秒,导致天数> 86400秒,理论上一分钟可能有59秒,导致天数<86400秒).这意味着POSIX中的'秒'具有可变长度,并且在闰秒之前/期间/之后不久,POSIX时钟可以跳过秒或重复它们.具体来说,Meno Hochschild在其答案中引用的POSIX规范指出,"实际时间与自大纪元以来秒的当前值之间的关系尚未明确."

UTC
UTC是一个时间标准,它与地球绕太阳运行的方式有关,旨在维持太阳位置与一天中的时间(在一个阈值内)之间的关系.即在地球的UTC + 0区域,太阳总是在UTC时间中午处于最高点.闰秒(正面或负面)是必要的,因为地球自转的速度不固定,并且它不会以可预测的方式变化(意味着我们无法预测何时需要闰秒 - 或者它们是否为正闰秒或负闰秒)

代表时代
在我看来,TAI和POSIX都代表"秒数"(即计算机实际存储容易的东西),而UTC是时间的"人类解释"(即年/月/日)小时:分钟:秒.毫秒)通常不会由计算机内部存储.

翻译时间
鉴于上述情况,有许多问题从POSIX(没有任何闰秒计算)转换为TAI(计算闰秒):

  1. 它需要保持闰秒的表/计数以将任何POSIX时间转换为TAI时间
  2. 即使第1点被解决,上面的POSIX Spec也不保证在闰秒期间会发生什么,所以在这种情况下我们无法准确地表示明确的时间
  3. 如果许多系统必须通信,在它们之间传递时间戳,我们必须保证闰秒的表/计数保持一致

另一方面,很容易从POSIX转换为UTC'人类解释'.它不需要知道闰秒,因为它只假设每天都有相同的秒数(虽然这些'秒'中的一些实际上有不同的时间长度).实际上,您只需使用POSIX Spec中的公式的倒数来获得各种UTC时间分量(再次参见Meno Hochschild引用的POSIX规范).

java time java-7 java-time tai-time

6
推荐指数
2
解决办法
2110
查看次数

没有print语句就不能执行代码

我一直在制作倒计时节目,我想出了这个.

package main;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Gatoo extends JFrame implements ActionListener {
    private int sec, min, secTot, since = 999;
    private long lastTime;

    private JTextField mm = new JTextField(2), ss = new JTextField(2);
    private JLabel minLab = new JLabel("Minutes:"), secLab = new JLabel(
            "Seconds:");
    private JButton start = new …
Run Code Online (Sandbox Code Playgroud)

java swing java-7

6
推荐指数
1
解决办法
952
查看次数

更改Java安全级别

Java 7 update 51具有java安全级别,默认情况下设置为HIGH.我想通过使用注册表或添加任何文件将其更改为中等.我观察到手动将安全级别从高级别更改为中级会创建注册表

[HKEY_CURRENT_USER\Software\JavaSoft\DeploymentProperties]
"deployment.security.level"="MEDIUM"
Run Code Online (Sandbox Code Playgroud)

但是,如果我手动创建上述注册表,则java安全设置不会更改,并且创建的注册表将被删除.所以我认为必须有其他文件来做到这一点.那么如何更改java安全设置呢?我看过一些文章和论坛链接,但没有得到我想要的.此外,这不是为我的客户设置安全级别,而是我的办公室,员工数量需要更改此设置(所有都是Windows操作系统),如果有代码或注册表项等自动化将很容易.

java windows security java-7

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

Gephi + Neo4J插件+ Mac(Java7)

我在安装了Java7的MacOSX(10.9.2)上运行.我想将Gephi与Neo4J插件一起使用.

如果我使用Java7,Gephi将无法正常启动.我看到了一些讨论,建议的"修复"是降级到Java6.我不情愿地这样做了,但现在Neo4J插件不会安装,因为它需要Java7.

不知道如何摆脱这个循环?

谢谢!

java macos neo4j java-7

6
推荐指数
1
解决办法
557
查看次数

Eclipse Indigo for OS X Mavericks使用Java SE 7推出

我想在Mac OSX Mavericks上安装eclipe Indigo SR2,当我在终端中启动./eclipse时收到了这条消息:

警报:无法创建Java虚拟机

而在终端:

JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
Run Code Online (Sandbox Code Playgroud)

我在我的系统上有这个:

java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java-7 eclipse-indigo osx-mavericks

6
推荐指数
1
解决办法
1058
查看次数

在Windows 10中安装Netbeans的问题:在此计算机上找不到Java SE Development Kit(JDK)

我正在尝试在Windows 10上安装TMC Netbeans版本.我收到此错误:

在此计算机上找不到Java SE Development Kit(JDK)

使用TMC 1.1.8安装Netbeans需要JDK 7.确保已正确安装JDK并再次运行安装程序.您可以使用--javahome installer参数指定有效的JDK位置.

我使用常规版本的Netbeans得到了同样的错误.我知道它安装正确,因为我让IntelliJ工作得很好.我该如何解决这个问题?我一直在寻找答案,但我还没有为Windows 10找到任何东西?

另外,我安装了JDK 9.

java netbeans java-7 java-8

6
推荐指数
3
解决办法
4万
查看次数