javac 命令用法

引用自己写的Class

在java中手动编译时,总提示找不到类,调试成功后,特把目录结构与编译成功的命令列出:

样例一:

文件名

MessageStore.java

Hello.java

源码

package test;

package test;

import test.MessageStore;

路径

E: est

E: est

编译

Javac MessageStore.java

Javac Hello.java –classpath ..

样例2:

文件名

MessageStore.java

Hello.java

源码

package test;

package test;

import test.MessageStore;

路径

E:src est

E:src est

编译

Javac MessageStore.java

Javac Hello.java –classpath ..

  


样例3:

文件名

MessageStore.java

Hello.java

源码

package bf.model;

package bf.action;

import bf.model.MessageStore;

路径

E:srcfmodel

E:srcfaction

编译

Javac MessageStore.java

Javac Hello.java –classpath E:src

        

  

结论:java文件编译后的classpath为不包括包名的路径,如上面E:src

引用其它Jar包

1,目录结构

E: estlibson-3.0.4.jar
E: estlibmongodb-driver-3.0.4.jar
E: estlibmongodb-driver-core-3.0.4.jar
E: estQuick.java

2,源文件

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.Block;
import com.mongodb.client.FindIterable;

import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Sorts.ascending;
import static java.util.Arrays.asList;

public class Quick
{

    public static void main(String[] args) {  
       // MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
        MongoClient mongoClient = new MongoClient();
        MongoDatabase db = mongoClient.getDatabase("test");

        FindIterable<Document> iterable = db.getCollection("restaurants").find();

        iterable.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {
                System.out.println(document);
            }
        });
    }
}

3,三种编译形式

javac Quick.java -cp E: estlibson-3.0.4.jar;E: estlibmongodb-driver-core-3.0.4.jar;E: estlibmongodb-driver-3.0.4.jar;

javac -cp E: estlibson-3.0.4.jar;E: estlibmongodb-driver-core-3.0.4.jar;E: estlibmongodb-driver-3.0.4.jar; Quick.java

javac -Djava.ext.dirs=lib Quick.java
注意:要JDK1.6以上才可以, 1.6以下可以用通配符

4,运行方法

java -cp E: estlibson-3.0.4.jar;E: estlibmongodb-driver-core-3.0.4.jar;E: estlibmongodb-driver-3.0.4.jar; Quick

常见错误:

1,运行时,带.class后辍

如:java Quick.class

2,运行时 -cp参数位置写错

如:java Quick -cp e:...

3,  有包名时忘记传包名

如源文件修改为

package com.fb;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.Block;
import com.mongodb.client.FindIterable;

import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Sorts.ascending;
import static java.util.Arrays.asList;

public class Quick
{

    public static void main(String[] args) {  
       // MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
        MongoClient mongoClient = new MongoClient();
        MongoDatabase db = mongoClient.getDatabase("test");

        FindIterable<Document> iterable = db.getCollection("restaurants").find();

        iterable.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {
                System.out.println(document);
            }
        });
    }
}
View Code

目录结构相应为:E: estcomfbQuick.java

编译修正为:

cd e: est

e: est   javac -Djava.ext.dirs=lib E: estcomfbQuick.java

正确的执行方法为:

java -cp E: estlibson-3.0.4.jar;E: estlibmongodb-driver-core-3.0.4.jar;E: estlibmongodb-driver-3.0.4.jar; com.fb.Quick

4,进入cmd是通过shit + 鼠标右健进入



签名:删除冗余的代码最开心,找不到删除的代码最痛苦!
原文地址:https://www.cnblogs.com/season2009/p/5072441.html