我在eclipse中有一个简单的java项目。这个项目的main(String [] args)方法接受一个参数。在“运行配置”窗口的“参数”选项卡的“程序参数”文本框内提供了对main(String [] args)方法的参数(主类 - >运行方式 - >运行配置 - >参数 - &gt ;程序参数)。我想将此项目转换为.exe文件,以便它可以从特定文件中读取参数。在双击.exe文件中,程序应从特定文件中读取参数并执行应用程序。
我不想在应用程序内部硬编码文件名的位置,因为这个.exe文件将在许多机器上运行,因此该文件的文件路径将在每台机器上更改。此外,还允许用户更改文件中的参数。所以我相信这个文件应该在.exe文件之外,但不知何故.exe文件可以读取这个文件。
有没有办法实现它?如果可以,那么,如何做到这一点。此文件的扩展名应该是什么(.txt或其他内容)。
答案 0 :(得分:2)
将此解决为两个独立的问题:
创建“.exe”文件,
实现从文件中获取“参数”而不对文件位置进行硬编码的机制。
问题#1之前已被多次解决;例如How can I convert my Java program to an .exe file?
问题#2有许多可能的解决方案。例如,一个简洁的解决方案是创建一个启动脚本,将参数文件路径作为额外参数传递。使用Bourne shell,我会像这样编写包装器:
#!/bin/sh
FILE_PATH=<...fill..in..path..here..>
myapp.exe --argfile "${FILE_PATH}" "$@"
(我不会尝试将其转换为BAT文件......但它应该是直截了当的。)
其他解决方案是将参数文件放在传统位置; (例如“%USERPROFILE%\ argfile.txt”),或使用Java首选项设置文件的位置。
此文件的扩展名应该是什么(.txt或其他内容)。
Java并不关心您使用的扩展名。但是,如果您希望人们能够使用Windows文本编辑器编辑该文件,“。txt”将使这更容易。