linux 怎么执行java的main方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 怎么执行java的main方法相关的知识,希望对你有一定的参考价值。

在Linux下面怎么执行java的main()
a.java
public static void main(String[] args)
System.out.println("你好");

在linux上执行java和javac命令如下:


参考技术A 首先 JAVA编译器不是JAVA写的,是C写好后的可执行文件 所以编译不需要用java类
其次 import导入api,在编译期间会将api所包含的代码加入到你的代码中,所以说,class字节码文件包含了你自己写的代码以及api的代码。
至于最后一个问题,你是指类加载器么? 这里说明一点,编译好的程序可不止是class文件的,还包含了类的关联等信息,main方法的入口也已经标明。 至于单独执行class文件那与执行整个程序不同,一个文件会直接在当前文件中找main方法。 类加载器是java写的 你搜索下类加载器看看相关资料就知道了
参考技术B 安装JDK了吗?安装好的话跟在Windows下一样的方法。
终端输入javac a.java编译源码;再输入java a 运行。
如果没有正确输出的话检查一下JDK是否安装好了。追问

在Linux下也是这样么 JDK我已经安装了

追答

有问题吗?那把截图和问题描述摆出来,要不怎么知道是什么问题。

追问

可以执行了public static void main(String[] args)
System.out.println("你好");

你好输出在控制台上乱码 怎么解决啊

追答

可能是java虚拟机的编码方式与系统的编码方式不一样,抱歉这个问题没有遇到过,建议先去看看JVM的编码方式和你的Linux的编码方式是不是一致。

本回答被提问者采纳
参考技术C 你好,一般LINUX上自己都有装JDK,你也可以下载一个集成开发工具,如eclipse ,myeclipse之类的!
如果用VI的话好像是在终端执行JAVAC 编绎,用JAVA执行!
参考技术D 装个java虚拟机,在运行

windows与linux下执行.class(包含main方法)

一般来说,执行一个java文件采用执行jar包的方式最为方便(java -jar XXX.jar),将所需要的文件全部打到一个jar里,但是有些时候需要执行指定的.class文件才行(各种原因),这个时候就需要我们使用 -classpath 参数来指定类路径。

 

windows:

假设要执行的文件为D:\test\Test.class

1.在cmd下进入D盘

2.执行java test.Test 或者 java test/Test 都可以

3.如果Test中关联了其它jar包,这需要通过如下方式执行,假设jar文件在test\lib下

java -classpath .;lib/* test.Test

说明如下:

注意这里使用了-classpath参数:

"."代表当前路径,这是java执行时的默认路径,所以在执行了classpath后需要手工加上这个路径,否则会提示找不到要执行的类。

";"用来隔开两个路径

"lib/*"表示lib下的所有jar文件,如果只使用某一个jar,可以具体指定,如"lib/XX.jar"

 

linux:

假设要执行的文件为/usr/local/test/Test.class

1.在shell下进入/usr/local

2.执行方式如下

java -classpath . test.Test

说明:linux下执行.class时,需要指定-classpath,这与linux的环境变量设置方式有关,linux不提倡指定".",而windows在设置CLASS_PATH环境变量时一般都加上这个".",这么说明白了吧

3.如果关联了其它jar文件,执行方式如下

java -classpath .:lib/*

说明:与windows相似,除了分隔符需要使用linux的分隔符":"

总结:

综上所述,建议在执行java命令时加上-classpath参数

以上是关于linux 怎么执行java的main方法的主要内容,如果未能解决你的问题,请参考以下文章

能被Java.exe成功运行Java class 文件必须有main方法,这句话对吗

linux调用jar包中非main方法

在linux下怎么运行main函数

java中main方法中的static函数不管是否在最后,都会最先执行吗?

windows与linux下执行.class(包含main方法)

怎么在java main方法里用一个线程的sleep()方法让一个循环执行一次后阻塞一秒再循环下一次