3

我有一个 .jar 文件,它从当前文件夹中读取两个文件,并生成一个 .txt 文件和一个包含多个其他 .txt 文件的单独文件夹作为输出。这在 Windows 中完美运行,使用此代码创建目录:

static String dir = System.getProperty("user.dir");

我在这里使用了说明:https ://askubuntu.com/questions/192914/how-run-a-jar-file-with-a-double-click设置我的 .jar 文件以在简单的双击中运行,但截至目前,双击时它什么也不做。我的猜测是上面的代码行不能很好地转换为 Linux。有人知道如何解决这个问题吗?

4

4 回答 4

11

首先,尝试在命令行上运行它,使用

java -jar <file.jar>

user.dir属性是跨平台的(请参见此处),因此应该不是问题。但是,您是否使用了正确的文件分隔符?请记住,在 UNIX 上是“/”,在 Windows 上是“\”。

于 2013-03-27T16:33:23.083 回答
1

尝试java -jar Jarname.jar并在此命令之后将其他文件作为参数传递

于 2013-03-27T16:35:16.220 回答
1

您提供的代码行在 linux 上运行良好。

我最好的猜测是,您随后尝试通过添加不适合 linux 的特定于 Windows 的路径分隔符(如路径 +“\subdir”)来使用此目录路径(您应该构建一个新的 File 对象)。

要么,要么你的 jar 文件根本没有被执行。你有没有试过在你的 jar 文件中做一些非常简单的事情来查看是否有任何东西正在运行?您是否尝试过运行 jarjava -jar myapp.jar以查看是否抛出任何异常或显示错误消息?

于 2013-03-27T16:35:36.070 回答
0

您将需要手动调整构建过程以将 jar 文件标记为可执行文件。在您的构建 xml 文件中,有一个目标“-post-jar”,它在构建 jar 后调用。您需要创建该目标并使用 Ant 的 chmod 任务来修改您的 jar。一旦你这样做了,每次你在该项目中创建一个 jar 文件时都会发生这种情况。

只要您安装了 JRE,它就会运行良好。

阅读本文以了解更多信息

于 2013-03-27T16:38:11.390 回答