首先必须确定一点,那就是已经安装好了JDK。我这里假设大家安装好了JDK。如果大家不知道是否安装好了JDK,那么可以打开cmd使用java -version
来试一下。如果在cmd中打上去之后,出现类似下图出现java版本的情况:
就说明JDK已经安装好了。
若是出现了“‘java’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”这样的提示,如下图的情况,说明JDK没有安装好。
如果没有安装好的话,大家可以参考网上的博客文章安装一下。
单个Java源代码编译和运行
我这里先使用的是HelloWorld.java这样一个来当范例,内容如下:
package work.seaside;
public class HelloTest{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
HelloTest.java放到E:\HelloWorld
目录下,如下图所示:
接着在HelloWorld目录中,打开cmd
直接在目录栏里边输入cmd,然后按回车键,就可以打开类似下边的命令行。
输入javac HelloTest.java -d .
就可以在E:\HelloWorld\work\seaside
生成.class文件。在这个命令中,javac
是编译指令,HelloTest.java是源文件,-d
是命令行参数,表示选择目录,而.
表示当前目录。
在命令行里边输入java work.seaside.HelloTest
就可以看到Hello World!
的输出,这表明编译和执行成功。
引用不在同一个目录下自己的源代码
TestingHello.java里边的代码如下:
package work.seaside;
import cn.seaside1234.world.SayHelloToWorld;
public class TestingHello{
public static void main(String[] args){
SayHelloToWorld sayHelloToWorld = new SayHelloToWorld();
sayHelloToWorld.sayHello();
}
}
TestingHello.java放到了E:\JavaOk目录下,如下图所示:
它将要引用D:\HelloToWorld
目录下的SayHelloToWorld.java。
SayHelloToWorld.java内容如下:
package cn.seaside1234.world;
public class SayHelloToWorld{
public void sayHello(){
System.out.println("Hello,the whole World!");
}
}
类似于上边在E:\HelloWorld
打开cmd一样,在D:\HelloToWorld目录中打开cmd。
输入“cmd”之后,还需要按一下回车键。
接下来就进入cmd中。
使用javac SayHelloToWorld.java -d .
进行编译。
可以看到编译之后,在D:\HelloToWorld\cn\seaside1234\world
目录中生成了SayHelloToWorld.class
文件,即HelloToWorld目录与SayHelloToWorld.class
之间多了cn
、seaside1234
和word
三级目录。
类似于上边在E:\HelloWorld
打开cmd一样,在E:\JavaOk目录中打开cmd。
输入“cmd”如下图。
然后按回车键就可以进入到命令行里边。
cmd中使用javac -classpath 需要引用的class文件 需要编译的java文件 -d class文件放置目录
这个命令来指定需要编译的java文件和class文件放置目录。接下来,我使用"javac -classpath .;D:\HelloToWorld TestingHello.java -d .
"将TestingHello.java编译到当前目录(“.”表示当前目录)。
在出现的命令行里边,输入javac -cp .;D:\HelloToWorld TestingHello.java -d .
。
可以看到编译之后,在E:\JavaOk\work\seaside
目录中生成了TestingHello.class
文件,即JavaOk目录与TestingHello.class
之间多了work
和seaside
两级目录。
java -cp .;D:\HelloToWorld work.seaside.TestingHello
就可以选择类路径和执行类进行运行。
引入jar包代码来实现自己的功能
我使用到的jar包,可以到https://repo1.maven.org/maven2/com/beust/jcommander/1.72/jcommander-1.72.jar下载,或者在浏览器里边点击这个超链接进行下载,或者把https://repo1.maven.org/maven2/com/beust/jcommander/1.72/jcommander-1.72.jar
复制粘贴到浏览器的地址栏里边然后按下回车键,就可以下载。
https://mvnrepository.com/是maven中央仓库,要是需要什么Jar包,可以到这个网址下载。
SayHelloToWorld.java
里边的内容如下:
package cn.seaside1234.world;
public class SayHelloToWorld{
public void sayHello(){
System.out.println("Hello,the whole World!");
}
}
放到了D:\HelloToWorld
里边。
MainTest.java
里边的内容如下:
package work.seaside1234;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameter;
import cn.seaside1234.world.SayHelloToWorld;
public class MainTest{
@Parameter(names = { "-name" }, description = "the name")
private String name;
@Parameter(names = "-age", description = "How old")
private Integer age;
@Parameter(names = "-isMarriaged", description = "MarriagedOrNot",arity = 1)
private boolean isMarriaged = false;
public static void main( String[] args )
{
MainTest mainTest = new MainTest();
SayHelloToWorld sayHelloToWorld = new SayHelloToWorld();
sayHelloToWorld.sayHello();
JCommander jCommander = JCommander.newBuilder().addObject(mainTest).build();
jCommander.setProgramName("test");
try {
jCommander.parse(args);
mainTest.printCommander();
}
catch (ParameterException exception ){
System.out.printf(exception.toString()+"\r\n");
jCommander.usage();
}
}
public void printCommander() {
System.out.println(name+"----"+age+"----"+isMarriaged);
}
}
放到E:\JarCodeTest
里边。
jcommander-1.72.jar
放到了E:\JarDirectory
里边。
跟上边一样,在D:\HelloToWorld
目录输入框里边输入cmd
,然后按下回车键,就进入了命令符提示行里边。
javac SayHelloToWorld.java -d .
进行编译。
输入e:
,按下Enter,然后输入cd JarCodeTest
之后,再按下Enter,就可以进入到E:\JarCodeTest
。
javac -cp .;D:\HelloToWorld;E:\JarDirectory\jcommander-1.72.jar MainTest.java -d .
进行编译。
可以看到E:\JarCodeTest\work\seaside1234
里边已经生成了MainTest.class
。
java -cp .;E:\JarDirectory\jcommander-1.72.jar;D:\HelloToWorld work.seaside1234.MainTest -name javaCode -age 20 -isMarriaged true
执行之后输出的内容如下:
Hello,the whole World!
javaCode----20----true
命令行里边的执行的全部命令如下: