我有一个.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。有谁知道如何解决这个问题?
答案 0 :(得分:9)
首先,尝试使用
在命令行上运行它 java -jar <file.jar>
user.dir
属性是跨平台的(请参阅here),因此不应该是问题所在。但是,您使用正确的文件分隔符吗?记住它在UNIX上是'/',在Windows上是'\'。
答案 1 :(得分:1)
尝试 java -jar Jarname.jar 并在此命令后将其他文件作为参数传递
答案 2 :(得分:1)
你给的代码行在linux上运行良好。
我最好的猜测是你通过添加一个特定于Windows的路径分隔符(比如路径+“\ subdir”)来尝试使用这个目录路径,这不适合linux(你应该构建一个新的File对象)代替)。
或者,或者你的jar文件根本没有被执行。你有没有尝试在jar文件中做一些非常简单的事情来查看是否正在运行任何东西?您是否尝试使用java -jar myapp.jar
运行jar以查看是否抛出任何异常或显示错误消息?
答案 3 :(得分:0)
您需要手动调整构建过程以将jar文件标记为可执行文件。在构建xml文件中,有一个目标“-post-jar”,它是在构建jar之后调用的。您需要制作该目标并使用Ant的chmod任务来修改您的jar。一旦你这样做,每次你在该项目中制作一个jar文件时都会发生这种情况。
只要安装了JRE,它就会正常运行。