在linux下怎么编译和运行java程序

嘿嘿,说起在Linux上编译Java,2 02 2 年了,我还在某个城市,对此我还是个新手。
当时我很困惑。
这个订单太长了,当时我就想多麻烦啊。
后来慢慢摸索,发现其实还有更简单的方法。
你看,你的目录下有一些JAR包和一堆Java文件。
我曾经将它们一一编译。
现在,只需使用 javac-Djava.ext.dirs=filePath.java。
这个.java 太棒了。
它告诉我可以同时编译所有Java 文件。
只需要输入JAR包所在文件夹的路径即可,多方便啊。
后面如果我想把编译后的文件放在指定的目录下,我会在命令中添加-d参数,并指定输出路径,如javac -Djava.ext.dirs=filePath.java-doutputFilePath,这样编译后的文件就会自动走到你指定的outputFilePath下。
执行Java程序时,也使用同样的方法。
将 javac 替换为 java,然后指定 main 函数所在的 Java 文件名,例如 java-Djava.ext.dirs=filePathMainJavaName。
主函数名后无需添加.java。
嘿嘿,这个方法用起来似乎更有效。
不需要手动一一完成,这个真的不用担心。

Linux gcc编译程序时,-I(大写 i )、-L (大写 L)、-I(小写 L )的作用与区别

啊,上次设置编译环境变量时我对它们感到困惑。
我将解释您提到的标志,以确保您理解它们。

上周,一位客户要求我编译一个名为 my_project.c 的文件。
它说找不到头文件utils.h,所以我让它尝试-I/path/to/utils/include。
-I(大写 i)告诉编译器在哪里可以找到头文件。
例如,编译器默认为标准路径/usr/local/include,但如果您想将头文件放在其他位置(例如/home/user/my_headers),则需要使用-I来指向它。
这个顺序非常重要。
指定的 /home/hello/include、/usr/include 和 /usr/local/include 是常见的搜索顺序。
首先检查用 -I 指定的目录。

接下来是-L(大写L)。
我以前经历过这个陷阱。
上次我安装了第三方库Cool_lib,并将库文件libcool.so放在/opt/cool_lib/lib下,但是编译器根本找不到,因为我在链接时直接使用了-lcool。
为什么?因为-l只控制库名,与路径无关。
您必须使用 -L/opt/cool_lib/lib 并在使用 -lcool 之前首先告诉编译器库文件所在的位置。
-L 专门指定库文件的搜索路径。
当标准路径不是 /lib 或 /usr/lib 时,这特别有用。

最后一个 -l(小写 L)是库名称本身。
例如,前面提到的数学库,库名称是m,但实际文件是libm.so。
编译器在链接时会自动检测libm.so,因此只需要使用-lm即可。
-l 后跟库名称,不带 lib 前缀和 .so 后缀。

总结:
-I(大写i):告诉编译器到哪里找到头文件。

-L(大写L):告诉编译器在哪里找到库文件。

-l(小写 L):告诉链接器库名称。

你看清楚了吗?顺序和目的必须明确定义。
否则编译和链接会非常繁琐。
例如,如果要一起使用-I 和-L,则必须先使用-I,然后使用-L。
您必须对此进行试验,但基本上您需要首先找到头文件,然后找到库文件。
无论如何,想办法吧。
一旦你明白了这一点,事情就变得容易了。
如果你被卡住了,你就会头疼。

linux下,qt编译的程序需要哪些依赖库