java代码中创建进程 java如何创建项目并运行

用java实现进程创建与撤消用JAVAjava代码中创建进程,新建个类就好java代码中创建进程了 。。。。按照面向对象java代码中创建进程的实现java代码中创建进程 , 然后用线程当进程去用就好 。。。好像JAVA不能直接新建进程,只能建线程 。。。或者你弄成一个进程数组,然后再去弄就好了 。。。全部代码的话,估计有也不会贴上来吧 。。。写这玩意有点那啥 。。。
如何创建java程序自己的进程要我说,这是不可以的,java运行是靠虚拟机,没有虚拟机java的字节码就运行不了 。
这个虚拟机运行程序的进程就是java.exe,靠的就是java.exe运行的 。当然还有javaw咯
除非你把 java程序转换成win32程序,直接在windows运行的exe程序 。
网上有转换工具 , 我没用过,你可以试一试,
JAVA 创建多进程问题你的Test_Exec类中 , Process p = run.exec("java test1");这句是执行dos命令的 , 而java test1如果有这个class文件的话确实可以执行,但是问题是,你要放对地方这个test1.class文件放在C盘根目录下是不行的,你看看你dos窗口的现实的路径就知道了,而且还不考虑你的test1类有包名的情况
Java中如何创建进程new Thread(){
public void run(){
for(int i=0; i100; i){
System.out.println(i);
}
}
}.start();
java 怎么创建一个新的进程不能创建进程java代码中创建进程,只能创建线程
在Java中java代码中创建进程,类仅支持单继承java代码中创建进程,也就是说,当定义一个新的类的时候,它只能扩展一个外部类.这样,如果创建自定义线程类的时候是通过扩展 Thread类的方法来实现的,那么这个自定义类就不能再去扩展其他的类,也就无法实现更加复杂的功能 。因此,如果自定义类必须扩展其他的类,那么就可以使用实现Runnable接口的方法来定义该类为线程类,这样就可以避免Java单继承所带来的局限性 。
还有一点最重要的就是使用实现Runnable接口的方式创建的线程可以处理同一资源,从而实现资源的共享.
(1)通过扩展Thread类来创建多线程
假设一个影院有三个售票口,分别用于向儿童、成人和老人售票 。影院为每个窗口放有100张电影票,分别是儿童票、成人票和老人票 。三个窗口需要同时卖票,而现在只有一个售票员,这个售票员就相当于一个CPU,三个窗口就相当于三个线程 。通过程序来看一看是如何创建这三个线程的 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
span style="font-size: 16px;"public class MutliThreadDemo {
public static void main(String [] args){
MutliThread m1=new MutliThread("Window 1");
MutliThread m2=new MutliThread("Window 2");
MutliThread m3=new MutliThread("Window 3");
m1.start();
m2.start();
m3.start();
}
}
class MutliThread extends Thread{
private int ticket=100;//每个线程都拥有100张票
MutliThread(String name){
super(name);//调用父类带参数的构造方法
}
public void run(){
while(ticket0){
System.out.println(ticket-- " is saled by " Thread.currentThread().getName());
}
}
}
/span
程序中定义一个线程类,它扩展了Thread类 。利用扩展的线程类在MutliThreadDemo类的主方法中创建了三个线程对象,并通过start()方法分别将它们启动 。
从结果可以看到,每个线程分别对应100张电影票 , 之间并无任何关系 , 这就说明每个线程之间是平等的,没有优先级关系,因此都有机会得到CPU的处理 。但是结果显示这三个线程并不是依次交替执行,而是在三个线程同时被执行的情况下,有的线程被分配时间片的机会多,票被提前卖完,而有的线程被分配时间片的机会比较少,票迟一些卖完 。
可见 , 利用扩展Thread类创建的多个线程,虽然执行的是相同的代码,但彼此相互独立,且各自拥有自己的资源,互不干扰 。
(2)通过实现Runnable接口来创建多线程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
span style="font-size: 16px;"public class MutliThreadDemo2 {
public static void main(String [] args){
MutliThread m1=new MutliThread("Window 1");
MutliThread m2=new MutliThread("Window 2");
MutliThread m3=new MutliThread("Window 3");
Thread t1=new Thread(m1);
Thread t2=new Thread(m2);
Thread t3=new Thread(m3);
t1.start();
t2.start();
t3.start();
}
}
class MutliThread implements Runnable{
private int ticket=100;//每个线程都拥有100张票
private String name;
MutliThread(String name){
this.name=name;
}
public void run(){
while(ticket0){
System.out.println(ticket-- " is saled by " name);
}
}
}
/span
由于这三个线程也是彼此独立,各自拥有自己的资源 , 即100张电影票,因此程序输出的结果和(1)结果大同小异 。均是各自线程对自己的100张票进行单独的处理 , 互不影响 。
可见,只要现实的情况要求保证新建线程彼此相互独立,各自拥有资源 , 且互不干扰,采用哪个方式来创建多线程都是可以的 。因为这两种方式创建的多线程程序能够实现相同的功能 。
由于这三个线程也是彼此独立,各自拥有自己的资源 , 即100张电影票,因此程序输出的结果和例4.2.1的结果大同小异 。均是各自线程对自己的100张票进行单独的处理,互不影响 。
可见,只要现实的情况要求保证新建线程彼此相互独立 , 各自拥有资源,且互不干扰,采用哪个方式来创建多线程都是可以的 。因为这两种方式创建的多线程程序能够实现相同的功能 。
(3)通过实现Runnable接口来实现线程间的资源共享
现实中也存在这样的情况 , 比如模拟一个火车站的售票系统,假如当日从A地发往B地的火车票只有100张 , 且允许所有窗口卖这100张票,那么每一个窗口也相当于一个线程 , 但是这时和前面的例子不同之处就在于所有线程处理的资源是同一个资源,即100张车票 。如果还用前面的方式来创建线程显然是无法实现的,这种情况该怎样处理呢java代码中创建进程?看下面这个程序,程序代码如下所示:
View Code
结果正如前面分析的那样,程序在内存中仅创建了一个资源,而新建的三个线程都是基于访问这同一资源的 , 并且由于每个线程上所运行的是相同的代码,因此它们执行的功能也是相同的 。
可见,如果现实问题中要求必须创建多个线程来执行同一任务,而且这多个线程之间还将共享同一个资源,那么就可以使用实现Runnable接口的方式来创建多线程程序 。而这一功能通过扩展Thread类是无法实现的,读者想想看,为什么java代码中创建进程?
实现Runnable接口相对于扩展Thread类来说,具有无可比拟的优势 。这种方式不仅有利于程序的健壮性,使代码能够被多个线程共享,而且代码和数据资源相对独立 , 从而特别适合多个具有相同代码的线程去处理同一资源的情况 。这样一来,线程、代码和数据资源三者有效分离 , 很好地体现了面向对象程序设计的思想 。因此,几乎所有的多线程程序都是通过实现Runnable接口的方式来完成的 。
Java进程怎么实现?Java中多进程编程的实现,和多线程一样,多进程同样是实现并发的一种方式,需要的朋友可以参考下
1.Java进程的创建
Java提供了两种方法用来启动进程或其它程序:
(1)使用Runtime的exec()方法
(2)使用ProcessBuilder的start()方法
1.1 ProcessBuilder
ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程 , 它提供一种启动和管理进程(也就是应用程序)的方法 。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理 。
每个 ProcessBuilder 实例管理一个进程属性集 。start() 方法利用这些属性创建一个新的 Process 实例 。start() 方法可以从同一实例重复调用,以利用相同的或相关的属性创建新的子进程 。
每个进程生成器管理这些进程属性:
命令 是一个字符串列表,它表示要调用的外部程序文件及其参数(如果有) 。在此,表示有效的操作系统命令的字符串列表是依赖于系统的 。例如,每一个总体变量,通常都要成为此列表中的元素,但有一些操作系统,希望程序能自己标记命令行字符串——在这种系统中,Java 实现可能需要命令确切地包含这两个元素 。
环境 是从变量 到值 的依赖于系统的映射 。初始值是当前进程环境的一个副本(请参阅 System.getenv()) 。
工作目录 。默认值是当前进程的当前工作目录,通常根据系统属性 user.dir 来命名 。
redirectErrorStream 属性 。最初,此属性为 false,意思是子进程的标准输出和错误输出被发送给两个独立的流,这些流可以通过 Process.getInputStream() 和 Process.getErrorStream() 方法来访问 。如果将值设置为 true,标准错误将与标准输出合并 。这使得关联错误消息和相应的输出变得更容易 。在此情况下,合并的数据可从 Process.getInputStream() 返回的流读取 , 而从 Process.getErrorStream() 返回的流读取将直接到达文件尾 。
【java代码中创建进程 java如何创建项目并运行】关于java代码中创建进程和java如何创建项目并运行的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读