在命令行运行java代码

时间:2022-05-21 22:49:03

因为尝试将运行结果通过管道命令保存,所以尝试在命令行(不借助lde来运行java代码,结果折腾了半天)

仿照的是eclipse创建文件目录的方式

最终解决方法是:

#/bin/bash

root_dir=`pwd`
echo $root_dir
src_dir=$root_dir"/src/com/bobo/lda/"
bin_dir=$root_dir"/bin"
file_name=LdaGibbsSampler
javac -d  $bin_dir $src_dir"$file_name.java"
java -classpath $CLASSPATH":./bin" "com.bobo.lda."$file_name
~                                                            

注意带有包层次的在运行java命令的时候,

(1)文件名不能包括.java后缀

(2)javac -d 选项按照对应的包层次创建.class文件

(3) 带有包层次的类文件在利用java命令运行的时候,必须考虑进包的层次(不能视为简单的目录层次,单独通过一个文件名来运行)

 

另外,注意:

(1)一个java的源文件(即一个.java文件)可以包含多个类定义,但最多只能包含一个public类定义,如果java源文件中包含public类定义,则该源文件的文件名必须和这个public类的类名相同。

(2)可以通过java命令行命令向java的main函数传递参数,方法是

java [options] .class文件名 参数1 参数2 。。。

如:上面的例子就可以用:

#向main()传递参数
java -classpath $CLASSPATH":./bin" "com.bobo.lda."$file_name arg1 "arg2"

如果参数中包含空格,使用“”将其括起来