Java应用程序在IDE的目录外无法正常工作

时间:2010-02-01 22:15:15

标签: java swing build

当我使用NetBeans运行它时,一切正常。当我复制dist目录内容并运行.jar时,一些东西会变成bug。最重要的是,JTable编辑变得混乱,有些字段只有在你按ESC时才会失去焦点(如果你之前点击了ENTER,接受了变化,否则它们不是,但在这两种情况下你都需要ESC)和类似的怪异东西。我有一种感觉,我错过了一些明显的东西......

P.S。如果重要,文件将在保存时自动编译(NetBeans功能)。

编辑:当我去dist目录并运行.jar时,它也有效。当我从NetBeans项目dir中复制dist目录时,问题就开始了......可能是某些依赖项被破坏了还是什么?

编辑2(回复):

这个问题发生在我的计算机(Ubuntu 9.04),我的Windows XP内部的Virtual Box和另一台(真正的)Windows XP计算机上。当我使用java /path/to/main.jar从控制台运行它时,它会抛出mainClassNot发现异常并且根本不启动。当我使用java -jar /path/to/main.jar运行它时,它可以解决各种问题,但是当涉及到所述情况时,它会抛出java.lang.NumberFormatException:null。

我使用NumberFormat(在表更新时)的唯一地方是:

DecimalFormat parser = new DecimalFormat("0.00");

而且,可能,这个:

currencyFormatter = NumberFormat.getCurrencyInstance( Locale.getDefault() );

默认语言环境设置为

Locale.setDefault(new Locale("lt", "LT"));

Java版本是1.6.0_18,NetBeans使用JDK,所述机器使用JVM。

4 个答案:

答案 0 :(得分:4)

在NetBeans中,转到项目的属性(文件>项目属性)。转到标签。点击管理平台,然后查看平台文件夹的值。

在控制台中,运行<platform folder>\java -version

现在再试一次没有完整路径;只是java -version

我希望这些会返回不同的值。

IDE使用的路径来自平台定义,默认情况下,该定义是在安装NB并且从不更新时创建的。控制台中使用的路径来自Windows PATH环境变量。每当安装Java时都会更新,并且随着时间的推移,它将与IDE使用的路径不同。

一个好的经验法则是当Java提示更新可用时,是时候在NetBeans中添加新的Java平台了

我通常会保留几个平台。最低限度: 最新版本的1.4.2,1.5.0,1.6.0和旧版本的1.6.0(目前为u4,我们在第一个产品版本中推荐的版本)。

答案 1 :(得分:2)

您是否尝试过制作干净版本以保证所有新更改和资源都被复制到dist库的平凡事情?

答案 2 :(得分:1)

有趣... JAR以ZIP格式存储,因此您可以尝试将您编译的JAR与Netbean的JAR(如果可以找到)进行比较,以确切了解不同的内容。

答案 3 :(得分:1)

不同的JRE版本?这是我的猜测,看看你的症状。

有不同的方法可以执行此操作,但您可以使用jconsole(jdk_dir / bin / jconsole.exe)获取这两个进程的完整详细信息(一个由NetBeans启动,另一个没有)。这将为您提供JRE,装载的罐子等,然后您可以比较......

... HTH