为什么在构建.jar时总是收到无效的标志错误
当我使用Build在java中创建一个.jar文件时:
rm -rf build-jar && mkdir build-jar && javac -d build-jar /Users/user/Desktop/projects/Swings/source/library/* && jar cvf build-jar/window.jar build-jar *我总是收到一个错误:
error: invalid flag: /Users/user/Desktop/projects/Swings/source/library/controller
Usage: javac <options> <source files>如果我使用.class文件的路径:
rm -rf build-jar && mkdir build-jar && javac -d build-jar /Users/user/Library/Application Support/Code/User/workspaceStorage/ca7d24d42ba31de4cfb244fc0f239d07/redhat.java/jdt_ws/swings_12c4bbf0/bin/* && jar cvf build-jar/window.jar build-jar *我还收到一个错误:
zsh: no matches found: Support/Code/User/workspaceStorage/ca7d24d42ba31de4cfb244fc0f239d07/redhat.java/jdt_ws/swings_12c4bbf0/bin/*我对构建jar不是很熟悉,它让我头疼,我不知道该怎么做,其他问题的解决方案或在互联网上的解决方案都不适合我(比如Classpath invalid flag - Java等)。
我使用IDE vscode,并使用vscode扩展"JAR Builder“
发布于 2022-04-18 02:01:03
‘明星’扩展是你的外壳所做的事情,。当您在shell中键入ls *.txt时,这不是要运行的内容。你的外壳本身检测到了这一点,然后就会出去找出你真正的意思。实际上,最终执行的是ls a.txt b.txt c.txt --星型匹配的所有东西,都是由空格分隔的。
同样的事情也发生在这里。因此,您获得此错误的原因是:您的shell正在执行:
javac -d build-jar
/Users/user/Desktop/projects/Swings/source/library/controller
/Users/user/Desktop/projects/Swings/source/library/model
/Users/user/Desktop/projects/Swings/source/library/... and all the other dirs...这里的线索是:javac不像这个那样工作。您不能指定目录并期望它知道该做什么。您需要单独列出每个java文件,这意味着您需要一个非常长的命令行。
java生态系统中没有人使用命令行构建应用程序是有原因的。每个人都用maven或gradle代替。你也应该这样做。它将解决这个问题;您只需将源放在正确的位置,然后从那里找出maven / gradle。你想要多少包就有多少。
https://stackoverflow.com/questions/71906498
复制相似问题