在 Linux 上使用 Java 时,我是新手。我克隆了一个我感兴趣的存储库,但我似乎无法从我的机器上运行代码。我正在尝试的命令是:
java -Djava.library.path=/home/myname/path/to/project -jar example.jar
我得到的错误是:
Error: Unable to access jarfile example.jar
首先,我认为这是一个权限问题,所以我尝试使用 sudo 运行命令(得到相同的错误),我还看到了一个带有引号的文件路径的示例,所以我尝试了,但我也遇到了同样的错误。
我查看了项目文件,实际上没有名为“example.jar”的文件。我应该先运行一个命令来生成它吗?
在此先感谢您的帮助!
是的,要运行一个 jar,它必须存在。
创建它时,您必须将目录结构与包结构相匹配。
例如,您的目录可能是:
对于源代码和类文件:
(通常您会在 ../bin/.. 而不是 ../classes/.. 命名文件夹中找到类,或者源文件和类文件混合在同一目录中)
对应一个包结构:
那么你应该移动到层次结构的基本目录:
或使用参数 -C
jar -C /home/ellen/proj/java/foo/example/classes ...
或从 home设置jar -C proj/java/foo/example/classes ...
为相对路径。例如,您可以使用以下命令创建 jar 文件:
并检查它:
请注意,有一个自动生成且有用的清单文件作为模板,您可以在其中添加主类的信息(如果有),但对语法非常严格(大写/小写,换行符)。
如果要在不指定主类的情况下运行它,则必须添加这样的主类条目:
否则你必须使用:
本质上,jar 文件是一个 zip 存档,可以使用这些工具进行处理。
当您拥有多个类并且可能具有深层数据包结构时,将 src/ 和 bin/ 文件完全分离是有用的。
然后,从目录 classes/ 开始,将包含您通常想要的所有内容。(example/ class, example/util/ .class, example/net/*class ...)
通知您有关语法的信息。