美文网首页
java之命令行编译运行

java之命令行编译运行

作者: 豆豆先生的小屋 | 来源:发表于2016-06-06 00:09 被阅读304次

先看代码

public class HelloChina {
    public static void main(String[] args) {
        System.out.println("Hello China");
    }
}

哈哈 为什么不是HelloWorld呢 因为我愿意
HelloChina.java 存放在E:\animal\dog\cart 文件夹下面
你要问我为什么是dog和cat 我不会告诉你是因为它们拼写简单的
打开cmd

E:\>cd animal\dog\cat
E:\animal\dog\cat>javac HelloChina.java
E:\animal\dog\cat>java HelloChina
Hello China
E:\animal\dog\cat>

这个非常简单 没什么疑问的
那么如果我在HelloChina.java第一行加上package呢
如下:

package dog.cat;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello cat and cat!");
    }
}

请注意文件的位置一定要和package后面的路径对应 至于不对应如何编译 我还没搞懂 有懂得可以评论区留言

关于这种带有package的首先还是cd到相应的目录下面

E:\>cd animal\dog\cat
E:\animal\dog\cat> javac HelloChina.java
E:\animal\dog\cat> java HelloChina
错误: 找不到或无法加载主类 HelloChina
E:\animal\dog\cat>cd ../../
E:\animal>java dog.cat.HelloChina
Hello China
E:\animal>

javac跟之前的没什么区别
java的时候一定要去到文件文件package的上一层目录,例如本例中HelloChina.java位于dog.cat之中,但dog位于animal文件中 所以要驱去到animal目录中运行class文件,如果直接在当前目录下运行的话会报错

** 切记 **:package一定不要以java开头不然会报另外一个异常 我就在这里栽了以一个大跟头
下面是错误的示例:

package java.dog.cat;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello cat and cat!");
    }
}
E:\>cd java\dog\cat
E:\java\dog\cat>javac HelloChina.java
E:\java\dog\cat>cd ../../../
E:\>java java.dog.cat.HelloChina
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.dog.cat
       at java.lang.ClassLoader.preDefineClass(ClassLoader.java:662)
       at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
       at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
       at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
       at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
       at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
       at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
       at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

相关文章

  • java相关杂记

    命令行编译java文件、运行java: lit != null、!list.isEmpty()和list.size...

  • java之命令行编译运行

    先看代码 哈哈 为什么不是HelloWorld呢 因为我愿意HelloChina.java 存放在E:\anima...

  • 3、错误解决方式锦集

    一、命令行编译java源文件提示 “编码GBK的不可映射字符” 及输出的中文变为乱码的解决方法 使用命令行编译运行...

  • springboot运行

    1、idea运行2、命令行启动3、命令行编译为jar启动3.1、项目根目录运行编译命令“mvn install”,...

  • logicJava的复习

    javac 编译:把Java的源文件 .java的文件编译成.class文件java 运行:运行.class的...

  • Java基础之异常处理

    Java基础之异常处理 在Java程序中,异常分为编译异常以及运行时异常 编译异常:程序在编译期间就出现的异常,必...

  • java基础笔记01java的一些基础知识

    一、java程序运行过程: 1、编译javac文件,把java源文件编译成class字节码文件 2、运行java:...

  • editplus

    editplus进行java编译和运行 1.取消备份 2。添加自定义工具java编译 3.运行java

  • Java环境安装及其说明(2019.07)

    概念说明 JRE:Java Runtime Environment(java运行环境。只能运行编译) JDK: ...

  • 第一个JAVA程序

    运行javac命令编译源文件 编译后生成class文件 运行java命令执行java程序 打印输出 “Hello...

网友评论

      本文标题:java之命令行编译运行

      本文链接:https://www.haomeiwen.com/subject/mkmrdttx.html