精华内容
下载资源
问答
  • java运行命令解释

    千次阅读 2013-12-10 15:09:57
    命令行输入java给出的提示会出现-D的说明: -D=  set a system property -D后面需要跟一个键值对,作用是通过命令行向java虚拟机传递一项系统属性 对-Dfile.encoding=UTF-8来说就是设置系统属性file....

    -Dfile.encoding解释:
    在命令行中输入java,在给出的提示中会出现-D的说明:
    -D<name>=<value>
                   set a system property
    -D后面需要跟一个键值对,作用是通过命令行向java虚拟机传递一项系统属性
    对-Dfile.encoding=UTF-8来说就是设置系统属性file.encoding为UTF-8
    那么file.encoding什么意思?字面意思为文件编码。
    搜索java源码,只能找到4个文件中包含file.encoding的文件,也就是说只有四个文件调用了file.encoding这个属性。
    在java.nio.charset包中的Charset.java中。这段话的意思说的很明确了,简单说就是默认字符集是在java虚拟机启动时决定的,依赖于java虚拟机所在的操作系统的区域以及字符集。
    代码中可以看到,默认字符集就是从file.encoding这个属性中获取的。

    =====

    Java's file.encoding property on Windows platfor 
    This property is used for the default encoding in Java, all readers and writers would default to using this property. file.encoding is set to the default locale of Windows operationg system since Java 1.4.2. System.getProperty("file.encoding") can be used to access this property. Code such as System.setProperty("file.encoding", "UTF-8") can be used to change this property. However, the default encoding can be not changed dynamically even this property can be changed. So the conclusion is that the default encoding can't change after JVM starts. java -dfile.encoding=UTF-8 can be used to set the default encoding when starting a JVM. I have searched for this option Java official documentation. But I can't find it.

    展开全文
  • 有时候在Java程序需要调用linux命令或shell脚本,而java.lang.Runtime类的exec()方法支持此操作。 名词解释 java.lang.Runtime 1 》每个Java应用程序都有一个Runtime类的Runtime ,允许应用程序与运行应用...
    1. 有时候在Java程序中需要调用linux命令或shell脚本,而java.lang.Runtime类中的exec()方法支持此操作。

    2. 名词解释
      java.lang.Runtime

      1 》每个Java应用程序都有一个Runtime类的Runtime ,允许应用程序与运行应用程序的环境进行链接。 当前运行时可以从getRuntime方法获得。
      2 》应用程序无法创建自己的此类的实例。

      java.lang.Process

      1 》ProcessBuilder.start()和Runtime.exec方法创建一个本机进程,并返回一个Process子类的Process ,可以用来控制进程并获取有关它的信息。 Process类提供了用于执行进程输入,执行输出到进程,等待进程完成,检查进程的退出状态以及销毁(杀死)进程的方法。
      2 》创建进程的方法可能不适用于某些本机平台上的特殊进程,例如本机窗口进程,守护进程,Microsoft Windows上的Win16 / DOS进程或shell脚本。
      3 》默认情况下,创建的子进程没有自己的终端或控制台。 其所有的标准I / O(即标准输入,标准输出,标准错误)操作将被重定向到父进程,在那里他们可以经由使用所述方法获得的流进行访问getOutputStream() , getInputStream()和getErrorStream() 。 父进程使用这些流将输入提供给子进程并从子进程获取输出。 因为一些本地平台只为标准输入和输出流提供有限的缓冲区大小,因此无法及时写入输入流或读取子进程的输出流可能导致子进程阻塞甚至死锁。
      4 》在需要的时候, subprocess I/O can also be redirected使用ProcessBuilder类的方法。
      5 》当不再有对Process对象的引用时,子进程不会被杀死,而是子进程继续异步执行。
      6 》不要求Process对象表示的进程与拥有Process对象的Java进程Process执行或同时执行。
      7 》从1.5开始, ProcessBuilder.start()是创建Process的首选方式。

    3. 使用示例:

      Runtime rt = Runtime.getRuntime();
      Process proc = rt.exec("javac");
      

      而Process的返回状态可以通过两个方法获取
      proc.exitValue()

      返回子进程的退出值。由Process对象表示的子进程的退出值。 按照惯例,值0表示正常终止。

      proc.waitFor()

      导致当前线程等待,如有必要,直到由此Process对象表示的进程已终止。 如果子进程已经终止,此方法将立即返回。 如果子进程尚未终止,则调用线程将被阻止,直到子进程退出。
      由此Process对象表示的子进程的退出值。 根据惯例,值0表示正常终止。

    4. 标准示例:
      主类,调用linux命令的逻辑方法

      package com.example.demo.runtme;
      
      /**
       * 主类,调用linux命令的逻辑方法
       * @author jinsx
       * @date 2019/8/30 11:00
       */
      public class BusinessClass {
          public static void main(String args[]) {
              try {
                  Runtime rt = Runtime.getRuntime();
                  // 执行命令
                  Process proc = rt.exec("java com.example.demo.runtme.AuxiliaryClass 'Hello World'");
                  // 错误信息
                  StreamOutput error = new StreamOutput(proc.getErrorStream(), "ERROR");
                  // 输出信息(Runtime的输出,即Process的输入)
                  StreamOutput output = new StreamOutput(proc.getInputStream(), "OUTPUT");
                  // 启动执行
                  error.start();
                  output.start();
                  // 子进程退出状态,0表示正常终止
                  int exitVal = proc.waitFor();
                  System.out.println("ExitValue: " + exitVal);
              } catch (Throwable t) {
                  t.printStackTrace();
              }
          }
      }
      

      辅助类

      package com.example.demo.runtme;
      
      import java.util.Arrays;
      
      /**
       * 辅助类
       * @author jinsx
       * @date 2019/8/30 10:33
       */
      public class AuxiliaryClass {
          public static void main(String[] args) {
              if (args.length < 1) {
                  System.out.println("AuxiliaryClass no parameter");
                  return;
              }
              System.out.println("AuxiliaryClass parameter is : ");
              Arrays.asList(args).stream().forEach(System.out::println);
          }
      }
      

      解决:因为一些本地平台只为标准输入和输出流提供有限的缓冲区大小,因此无法及时写入输入流或读取子进程的输出流可能导致子进程阻塞甚至死锁。

      package com.example.demo.runtme;
      
      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.InputStreamReader;
      
      /**
       * 解决:因为一些本地平台只为标准输入和输出流提供有限的缓冲区大小,因此无法及时写入输入流或读取子进程的输出流可能导致子进程阻塞甚至死锁。
       * @author jinsx
       * @date 2019/8/30 10:56
       */
      public class StreamOutput extends Thread {
          InputStream is;
          String type;
      
          StreamOutput(InputStream is, String type) {
              this.is = is;
              this.type = type;
          }
      
          public void run() {
              InputStreamReader isr = null;
              BufferedReader br = null;
              try {
                  isr = new InputStreamReader(is, "GBK");
                  br = new BufferedReader(isr);
                  String line = null;
                  while ((line = br.readLine()) != null) {
                      System.out.println(type + ">" + line);
                  }
              } catch (IOException ioe) {
                  ioe.printStackTrace();
              } finally {
                  if(br != null) {
                      try {
                          br.close();
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
                  if(isr != null) {
                      try {
                          isr.close();
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
      }
      

      执行测试结果:

      [root@centos_1 book2]# javac -d . AuxiliaryClass.java 
      [root@centos_1 book2]# javac -d . StreamOutput.java 
      [root@centos_1 book2]# javac -d . BusinessClass.java 
      [root@centos_1 book2]# java com.example.demo.runtme.BusinessClass
      OUTPUT>AuxiliaryClass parameter is : 
      OUTPUT>'Hello
      OUTPUT>World'
      ExitValue: 0
      [root@centos_1 book2]# 
      
    展开全文
  • cmd,执行java命令与javac命令的区别: javac:是编译命令,将java源文件编译成.class字节码文件。 例如:javac hello.java 将生成hello.class文件 java:是运行字节码文件;由java虚拟机对字节码进行...

    cmd中,执行java命令与javac命令的区别:

    javac:是编译命令,将java源文件编译成.class字节码文件。

    例如:javac hello.java

    将生成hello.class文件


    java:是运行字节码文件;由java虚拟机对字节码进行解释和运行。

    例如:java hello


    展开全文
  • Java中常用的DOS命令

    千次阅读 多人点赞 2018-08-02 19:19:24
    我们大多时候是Windows或者Linux系统上进行Java开发,虽然使用Windows不像使用Linux一样频繁使用命令行,但开发过程我们还是会时不时用到DOS系统的一些命令。   DOS命令介绍 DOS,是磁盘操作系统的缩写,...

    我们大多时候是在Windows或者Linux系统上进行Java开发,虽然使用Windows不像使用Linux一样频繁使用命令行,但在开发过程中我们还是会时不时用到DOS系统的一些命令。

     

    DOS命令介绍

    DOS,是磁盘操作系统的缩写,是个人计算机上的一类操作系统。 

    DOS下的可执行文件有三种,分别是EXE、COM和BAT(当前页支持CMD扩展名)。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的集合,通常叫作批处理文件。

    DOS中是通过输入英文命令加回车键这种方式来执行程序的,凡后缀为exe、com或bat的文件都是可以直接执行的。这些以exe为后缀的文件叫可执行文件;以com为后缀的文件叫命令文件;以bat为后缀的文件叫批处理文件。如果我们要执行这些文件,只需在提示符下敲入文件基本名然后回车即可,不需输入文件后缀。

    DOS(磁盘操作系统)命令,是DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。在这里只介绍如下这些在Java学习或实践中比较常见的命令。

     

    怎么打开DOS命令窗口?

    1)快捷键:win + r,打开命令提示符窗口;

    2)左击(XP、win7)或右击(win8、win10)“开始”菜单,在运行里输入cmd,按回车打开命令提示符窗口

     

    常用DOS命令

    d:+ 回车:盘符切换,进入D:盘

    dir(directory):列出当前目录下的文件及文件夹

    md(make director):创建目录

    rd(remove director):删除目录(不能删除非空的文件夹)

    rd + /s 文件夹名称 (询问是否删除)

    rd + /q + /s 文件夹名称 (直接删除)

    cd(change directory):改变指定目录(进入指定目录)

    cd..:退回到上一级目录

    cd\:退回到根目录

    del(delete):删除文件,也可以删除一堆后缀名一样的文件(例如*.txt)

    exit:退出dos命令行

    cls(clear screen):清屏

    ren:重命名

    copy:复制文件

            D:>copy test.txt temp  →  如果test.txt文件和temp目录都在D盘根目录,不要写全目录

            D:>copy C:\test.txt C:\temp  → 如果text.txt和temp目录都不在D盘根目录,那么要写全目录

    edit:打开命令行窗口的快速编辑功能(Win7 64位及之后版本没有此功能)

    notepad:打开记事本

     

    Java中常用的DOS命令

    javac: 编译代码(即将.java文件编译成.class的中立字节码文件)。使用举例: javac HelloDos.java

    java:解释代码。使用举例: java HelloDos(注意这个地方不需要.class后缀)

    javap:反编译,也可查看Java编译器生成的字节码。使用举例:javap HelloDos(注意这里不需要.class后缀)

    javadoc:生成文档。使用举例: javadoc HelloDos.java

     

    编译多个源文件

    1)如果文件都在同一目录

    使用javac HelloDos*.java 或者 javac  *.java

        

    2)如果文件不在同一目录

    假设有三个文件 HelloDos1.java、HelloDos2.java、HelloDos3.java 分别在1、2、3这三个文件夹里面,那么可以在D:\temp先建一个文件FilesList.txt,然后在此文件里面添加如下内容:

    D:\temp\1\HelloDos1.java
               D:\temp\2\HelloDos2.java
               D:\temp\3\HelloDos3.java

     然后直接输入命令javac @FilesList.txt

     

     

    将.java文件和.class分开

    从上面的例子可以看出,如果直接用javac HelloDos.java,则编译后的HelloDos.class和HelloDos.java在同一目录下,那么,怎么让它们不在同一目录下呢?

    假如D:\test下有三个文件夹:src、lib和classes,其中src下有HelloDos1.java和HelloDos2.java,lib下有Banner.jar,classses下没有文件。我们可以通过以下命令编译java文件并将编译好的.classes文件放入classes中。

    javac -sourcepath src -classpath classes:lib\Banners.jar src\*.java -d classes

     

    展开全文
  • Javac -cp 和 Java -cp 命令解释

    千次阅读 2017-06-22 16:13:52
     编译的时候,只要javac命令后面指明了.Java文件的位置即可,但是执行.class文件的时候,必须要进到.class包所在的路径,然后把此路径(即刚开始装jdk一直要配的CLASSPATH所包含的. )添加到CLASSPATH,或者随意...
  • java命令解释器介绍-bsh

    千次阅读 2014-04-22 21:40:11
    今天项目里面看到了前人用到了一个很有用的工具java beanshell(bsh),网上搜罗了一番,发现挺有用的,于是乎,赶紧记下来备忘。  下载地址:http://www.beanshell.org/download.html(就是一个jar包)  doc...
  • 如题: 为何可以 打出Java -version的版本 ,因为jdk安装过程,拷贝了java\...如果使用javac -version则会显示错误,因为jdk安装过程只有java、javaw、javaws三个命令被复制到C:\windows\system32目录下了!
  • CMD执行java命令

    千次阅读 2018-06-11 21:33:14
    javac :用来编译.java文件。java:用来运行class文件例:Test.javapackage pers.wargon; public class Test{ public static void main(String[] args){ System.out.println(&...}如果Test.java文件D:/work/j...
  • Java调用DOS命令

    千次阅读 2008-01-19 11:31:00
    Java调用DOS命令2008年1月19日11:31:08 用Java编写应用时,有时需要程序调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式...
  • java命令详解

    千次阅读 2019-02-01 14:06:10
    Java是通过java虚拟机来装载和执行编译文件(class文件)的... 虚拟机参数分为基本和扩展两类,命令行输入java 可得到基本参数列表,java X 则可得到扩展参数列表。 注:以上假设已经把JAVA_HOME\bin路径加...
  • JAVA命令大全

    千次阅读 2018-10-04 22:58:49
    原文:https://www.cnblogs.com/langtianya/p/4208135.html oracle官方文档描述:...   1、java.exe: ====================== 运行java程序,这个相信...
  • java命令大全

    万次阅读 2017-05-31 19:49:56
    转载地址:... JAVA命令大全 1、java.exe: ====================== 运行java程序,这个相信每一位用Java的人知道了。 2、javac.exe: ====================== 编译的Java程序,生成.class文件
  • Java启动命令大观

    万次阅读 多人点赞 2013-12-15 22:03:02
    不过由于IDE的盛行,我们Java程序员的大多数的并不是非常的了解Java启动命令。本文希望做一个Java启动命令的汇总,和各位同道分享,也便于日后作为自己的参考。 Java启动命令语法 Java启动命令有两个,java以及...
  • Java启动命令大观

    千次阅读 2017-07-01 16:04:09
    不过由于IDE的盛行,我们Java程序员的大多数并不是非常的了解Java启动命令。本文希望做一个Java启动命令的汇总,和各位同道分享,也便于日后作为自己的参考。Java启动命令语法Java启动命令有两个,java以及javaw,...
  • java编译命令

    千次阅读 2019-07-29 14:46:44
    javac -encoding utf-8 Main.java QRScan.java 删除 window del /F /Q Main.class linux rm -rf Main.class jar打包 jar -cvf test.jar com //test.jar 是输出的文件名称,com为代码的包名 生成.h文件 ...
  • java的cp命令

    万次阅读 2011-10-26 14:30:47
    平时都用eclipse执行java程序惯了,今天想dos下开两个界面看一下程序的消息交互,居然都不会用了,进入class文件所在目录, 执行java SocketServer1 老是报class not found 错误,最后一问需要加java -cp 等参数...
  • JAVA cp 命令

    千次阅读 2014-08-18 21:33:55
    java -cp .;c:\dir1\lib.jar Test    -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”    分隔,linux上是分号“:”分隔。不支持...
  • Java jinfo 命令详解

    万次阅读 2018-07-08 12:53:53
    jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下: [root@admin ~]# jinfo --help Usage: jinfo [option] &amp;lt;pid&amp;gt; (to connect to running process) jinfo [option] &amp;...
  • 这样的**这样的话当我们执行一个java代码的时候,例如上图中用命令提示符java Test,编译器就会Test类去寻找静态的main方法,而不产生Test类的对象,当JVM加载Test类的时候main方法自然也就被加载了而用来作为...
  • 命令编译Java

    千次阅读 2012-05-09 13:41:02
    原文有点乱,有一些疑似的文字错误,整理如下...使用java和javac命令的几种情况:  1、单独的一个java主程序;  2、带包的一个java主程序;  3、同一个包的两个类,一个引用另一个;  4、引用不同包的其它类。
  • Java Keytool 生成 keystore 命令

    千次阅读 2017-12-19 18:56:35
    Java Keytool 生成 keystore 命令Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)-密钥...
  • java中,负责对字节代码解释执行

    千次阅读 2019-09-11 22:00:06
    java中负责对字节代码解释执行的是虚拟机,虚拟机将得到的字节代码进行编码运行。 java程序,是先把java源程序通过javac命令编译成字节码文件,然后再用java命令解释执行。把字节码文件复制到其它计算机上,只要有...
  • java程序调用linux命令或者shell脚本

    千次阅读 2016-09-09 15:33:02
    http://www.cnblogs.com/xxpal/articles/824963.html ... Java中使用Runtime和Process类运行外部程序 使用Runtime.getRuntime().exec()方法可以在java程序里
  • 重装系统之后第二发,配置pycharm,意料之外的错误,启动的时候竟然要求配置jdk,瞬时蒙蔽,...安装完成需要配置环境变量,这样系统才能找到我们的java命令,具体的原理大家可以搜一下,网上讲的很清楚~~ 环境变...
  • 关闭终端的窗口相当于ctrl+c的命令,关闭了窗口就相当于停止了java -jar这个进程,即ctrl+c,如果是tomcat的容器的话,如果停止运行,必须ps -ef | grep xxx ,然后kill -9或者./shutdown.sh命...
  • java -cp 命令使用

    千次阅读 2010-08-24 14:39:00
    -cp 参数后面是类路径,是指定给解释器到哪里找到你的.class文件, 写法: java -cp .;myClass.jar packname.mainclassname  classpath的jar文件能使用通配符,如果是多个jar文件...
  • linux启动java命令

    千次阅读 2020-04-17 09:39:21
    一、启动jar包命令 nohup java -jar -Xms128M -Xmx1024M -server.port=9002 XX.jar > XX.out 2>&1 & nohup:nohup的意思是忽略SIGHUP信号,关闭shell后,进程还是存在的。 java:启动程序 -jar:启动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 215,731
精华内容 86,292
关键字:

在java中解释命令是

java 订阅