精华内容
下载资源
问答
  • 本文转载:http://jinyan798.iteye.com/blog/546369  在项目用到了在一个java类main方法中调用另一个类中main方法来解决java1.2不能使用Axis的问题。在网上查了查发现还真能调用。这用到了java的反射机制。

       本文转载:http://jinyan798.iteye.com/blog/546369

     在项目中用到了在一个java类main方法中调用另一个类中的main方法来解决java1.2不能使用Axis的问题。在网上查了查发现还真能调用。这用到了java的反射机制。

          下面直接写例子吧:

    这个类是被调用的main方法类:

    Java代码 public class Run {   
    1.     public static void main(String[] args) {   
    2.         String str=args[0]+"Hello World";   
    3.         System.out.println(str);   
    4.     }   
    5. }  
    public class Run {
    	public static void main(String[] args) {
    		String str=args[0]+"Hello World";
    		System.out.println(str);
    	}
    }

     

    下面是调用main方法的类:

    Java代码 public class JobRun {   
    1.     public static void main(String[] args) {   
    2.         String idStr = "YAya";   
    3.             try {   
    4.                 Method method = Run.class.getMethod("main",   
    5. String[].class);   
    6.                 method.invoke(null,   
    7.                         (Object) new String[] { idStr });   
    8.             } catch (Exception e) {   
    9.                 e.printStackTrace();   
    10.             }   
    11.     }   
    12. }  
    public class JobRun {
    	public static void main(String[] args) {
    		String idStr = "YAya";
    			try {
    				Method method = Run.class.getMethod("main",
    String[].class);
    				method.invoke(null,
    						(Object) new String[] { idStr });
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    	}
    }

     

        在写程序时,调用Method类的方法invoke(Object,Object)时老是报参数类型不匹配。我是这样写的method.invoke(Run.class.newInstance(),(Object) new String[]{idStr});错就错在main方法是类Run的静态方法,调用时是不需要对象实例的。

         还有一个兼容问题:

     

              method.invoke(null, new String[]{"ma","xiao"}); //★这思想是对的,但是版本问题,不允许了
    		
    		//现在对了,然后还报 wrong number of arguments,下面详细说明
    		//::
    		//现在说参数的个数不对
    		//我要的方法我已经说了,它需要一个参数,那个参数是一个数组
    		//如果按照1.5的语法,是没有问题的
    		//但是SUN必须要考虑到老版本,
    		//老版本的语法,很多的时候拿到一个数组时,它会迈力的给你一个一个拆开
    		//而JVM又是按照老版本的方法执行的,
    		//所以这里我传的new String[]{"ma","xiao"}被它拆成两个参数了
    		//所以如果我只传一个,new String[]{"ma"},还是拆,说argument type mismatch,
    		//当然,需要的是数组,你给个字串当然 argument type mismatch
    		
    		//怎么办,你既然要拆,那我最多再给你包一层,让你去拆吧
    		method.invoke(null, new Object[]{new String[]{"ma","xiao"}});
    		//这样,JVM一拆,拆出的一个数组,正是我想要的效果 run OK!
    		
    		//还有一个方法
    		method.invoke(null, (Object)new String[]{"hello","world"});
    		//强制转成一个 Object 1.4不是看见数组参数就拆么?[数组的引用应该是不会拆的]
    		//现在 JVM看不见数组了,不拆了,run OK!
    

          就这么多了,希望对大家有帮助

    展开全文
  • (https://img-ask.csdn.net/upload/201506/14/1434273963_156455.png)**平时测试一些代码,都是建立一个普通的.java文件,然后在main方法里面写测试代码的,今天看网上的教学视频,人家没有main方法,只有一个public...
  • main方法,被JAVA虚拟机...被别的方法调用,那就只是一个普通的静态方法,就是说不生成新线程,而只是调用它的线程的一部分而已(main方法内具体什么功能,生成不生成新线程那是另外一回事)。 然后再说一下进

    转自:http://blog.163.com/liu_sheng_han/blog/static/190591372201210170548675/

    main方法,被JAVA虚拟机调用就是入口函数,生成一个主线程。被别的方法调用,那就只是一个普通的静态方法,就是说不生成新线程,而只是调用它的线程的一部分而已(main方法内具体什么功能,生成不生成新线程那是另外一回事)。  然后再说一下进程的事,main方法即便被当成入口函数被JAVA虚拟机调用,它也不会生成什么进程,或者说main方法跟进程就没有关系。把这个搞混的只能说是把进程的概念搞混了,进程是操作系统层面上的概念,而在这里,即一个JAVA程序跟进程对应的是JAVA虚拟机生成的实例,就是java这个命令对应的程序,而虚拟机调用main方法之类的动作站在进程高度上看,只是一个进程的具体功能而已。举个极端的例子,你执行java这个命令,不带任何参数,会报错。但实际上一个进程已经被创建。报错本身是这个进程的执行结果,就是说,进程本身正常的被执行了。

    所以不应该通过用直接调用别的类中的main()方法打开那个程序,而是应该通过Runtime.exec()方法:
      Runtime runtime = Runtime.getRuntime();
      runtime.exec("C:\\Program Files\\Baidu\\BaiduPlayer\\1.17.0.172\\BaiduPlayer\\1.19.0.57\\BaiduPlayer.exe");

    而对于jar文件,又要这样才行:
      runtime.exec("cmd /c start java -jar F:\\MyShift.jar");
      runtime.exec("cmd /c start javaw -jar F:\\MyShift.jar");


    展开全文
  • 建了一个myeclipse的maven项目,建了一个类,里面有main方法却运行不了。 解决方法:在项目或者src/main/java 上右键选择 build path ,看看路径是否指向编译后的class 目录, 如果没有指向,改个目录...

    建了一个myeclipse的maven项目,建了一个类,里面有main方法却运行不了。


    解决方法:在项目或者src/main/java 上右键选择 build path ,看看路径是否指向编译后的class 目录,

    如果没有指向,改个目录就OK了。







    展开全文
  • idea点击右键(在含有main方法类中没有run选项问题1、SDK即jdk没有选择2、指定了SDK,但还是无run3、确定程序有main方法,且指定了SDK,就手动配置启动器 1、SDK即jdk没有选择 项目添加sdk,项目右键 ...

    Alt

    1、SDK即jdk没有选择

    项目添加sdk,项目右键
    Alt
    选择SDK

    如果无效,重启一下项目看看。

    2、指定了SDK,但还是无run

    1.打开Maven Projects窗口(idea窗口右边,如果没有,在下方,打开该窗口即可)
    2.点击 “+” ,选择需要启动工程的 pom 文件,点击 ok
    3.在右侧栏中就会出现该工程以及该工程下的所有子工程
    4.点击展开需要启动的工程 -> Lifecyle
    5.双击 install

    3、确定程序有main方法,且指定了SDK,就手动配置启动器

    小三角选择编辑
    配置启动器
    配置启动器
    配置启动器

    展开全文
  • 查了一下才知道,原来Eclipse在运行代码时,默认是到public类中去调用main方法的,当public类中没有main方法时,就会出现图错误了,而本文代码publicPeople是没有main方法的,因此出现错误。 解决方法: ...
  • 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args) 否则 JavaFX 应用程序必须扩展javafx.application.Application。 但是程序已经写了main方法,却还是报错 网上所说的...
  • 使用elcipise编写java程序时遇到这样的错误:错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 JavaFX 应用程序必须扩展javafx.application.Application。但是程序...
  • main方法一定要放在public当中吗?

    万次阅读 多人点赞 2018-07-19 22:12:40
    答案是:否 ...后来通过查阅资料发现,想调用main方法跟这个类是不是public的并没有关系。之所以前面报错是因为eclipse默认到public的(本例是Item)去找main函数,一旦在该类中找不到就...
  • 最近使用eclipse时好几次运行main方法出现报错 错误: 在 Main 找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) ...1.确认我这个main方法没有错误格式为 public static void...
  • 这里需要说明,当一个具体类没有写构造函数时,系统会自动生成默认的无参构造器,意味着没有写构造函数的具体类也可以被抽象类继承。但是,一旦将具体类的无参构造器设置访问修饰符为 private 时,抽象类则不可以...
  • *第3题:编写一个类,在main方法中定义一个Map对象(采用泛型), *加入若干个对象,然后遍历并打印出各元素的key和value。 * 分析: * 需要加入对象,首先我要创建,我定义一个学生。学生
  • 今天我在实例化一个类是编译器报以下错误: No enclosing instance of type Person is accessible. Must qualify the allocation with an enclosing instance of type Person (e.g. x.new A() where x is an ...
  • 原因是在同一个包下写了不止一个main()方法
  • 在eclipse运行java程序报错,在类中找不到main方法,请将main 方法定义为public static void main(String [] args),仔细检查之后,排除了拼写错误和其他错误之后,将网上的该行代码复制粘贴替换了程序的代码...
  • Java中main()函数调用类方法限制

    万次阅读 多人点赞 2018-01-04 22:00:25
    今天在自学java的基础语法时,出现一个错误:提示main()调用的方法不是静态的。由于才刚接触java没两天,不知道是什么原因,就度娘了下。原来main()的调用,还有很多的规定和限制。
  • C#Main方法

    千次阅读 2010-11-22 10:07:00
    应用程序启动时,C# Main 方法是第一个调用的方法。C# 的Main()方法首字母必须大写,如果首字母小写就会产生编译错误,编译失败。C# Main方法有以下几条准则:Main()方法在C#里非常特殊,它是编译器规定的所有可...
  • java中main方法的作用

    万次阅读 2018-06-16 15:51:56
    main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main,在按住Alt+/的方式快速创建main方法可以main方法是...
  • public static void main(String[] args){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); System.out.print(ex.ch); } public void change...
  • java代码没有main方法可以运行!

    千次阅读 2012-07-06 22:43:53
    下面的代码在cmd模式下通过javac命令编译,java命令运行Hello world可以正常输出。public class Test { static{ System.out.println("Hello World!...在网上看见了这段没有main方法可以执行的代码的时候,为了
  • 前面我们看到,没有main的代码也能执行,之所以拥有main是为了遵循种规定,遵循这规定得到的益处是一切更加紧凑,数据冗余更小,程序更好维护,系统更好...1.准备没有main方法但是期望成为java主类的文件
  • 如何在Linux环境执行main方法

    千次阅读 2019-01-29 17:01:17
    对于程序员来说,很闹心的一个问题就是在生产上找bug,太太太难了,所以写测试一个用到很普遍的方法,那么测试main方法是如何被调用的呢,其实很简单啦。Linux命令:java -cp jar包 的全限定名 参数 ...
  • Java中main方法的格式详解

    千次阅读 2015-10-28 09:15:56
    在Javamain()方法是Java应用程序的入口方法,也就是说程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main方法必须是public static void修饰的,...
  • 一个类怎样调用另一个类中方法

    万次阅读 2016-04-14 22:40:07
    一个类怎样调用另一个类中方法
  • public class Example { void idea() { } public static void main(String args[]) { ... main方法静态方法,java不是明文规定在静态方法不能调用非静态方法吗? } }简而言之: 首先,stat
  • 1:非静态内部,必须有一个外部的引用才能创建。2:在外部的非静态方法中,因为有隐含的外部引用this,所以可以直接创建非静态内部。3:在外部的静态方法中,因为没有this,所以必须先获得外部引用,...
  • 写了一个最简单的输出就报这个错,检查后main函数没有问题 最后解决:运行前先按一下ctrl+s,或者右键点save, 保存一下,然后再运行就没有问题了。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,283,572
精华内容 513,428
关键字:

一个类中可以没有main方法吗