草庐IT

invoke_main

全部标签

java - 没有定义main方法,Java程序如何运行?

我正在查看一些Java源代码并注意到未定义main方法。Java如何在无从下手的情况下编译源码? 最佳答案 main方法仅在Java虚拟机执行您的代码时使用。没有main方法就无法执行代码,但它仍然可以被编译。编译代码时,通常会在命令行中指定一组文件,例如javacMyClass1.javaMyClass2.javaJava编译器(javac)检查您传递给它的每个类并将其编译成一个.class文件。Java源代码可能缺少main方法的一个原因是它被设计为用作库,而不是被执行。你可能会发现一些有趣的事情:虽然Java编译器编译的源代码

java - 是否可以在没有 java 中的 main 和 static block 的情况下在控制台上打印消息?

在一次采访中我问过这个问题:如果不使用static和main我们怎么能在控制台上打印消息?这可能吗? 最佳答案 您可以定义一个自定义类加载器来打印您的消息:publicclassMyClassLoaderextendsClassLoader{publicMyClassLoader(ClassLoaderother){super(other);System.out.println("Hithere");System.exit(0);}}然后运行java命令:java-Djava.system.class.loader=MyClassL

java - XUGGLE 错误 : Exception in thread "main" java. lang.NoClassDefFoundError: org/slf4j/LoggerFactory

我正在尝试执行以下代码:importcom.xuggle.mediatool.IMediaReader;importcom.xuggle.mediatool.IMediaWriter;importcom.xuggle.mediatool.ToolFactory;publicclassvidcon{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubIMediaReaderreader=ToolFactory.makeReader("test.m4v");IMediaWriter

java - 线程 "main"java.lang.ClassNotFoundException : 中的异常

我最近安装了intellijIDEA14.0,为了确保一切正常,我创建了一个简单的HelloWorld程序。我不明白为什么输出不正确以及为什么会出现此错误。如果有人可以提供帮助,那就太好了。这是程序:publicclassHello{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!");}}这是错误:Exceptioninthread"main"java.lang.ClassNotFoundException:Helloatjava.net.URLClassLoader$1.run(URLClassLo

java - 如何在 maven-jar-plugin 中指定 --main-class 和 --module-version?

如果我从命令行在Java9上构建JAR,我会传递一个参数--main-class以将MainClass属性包含到module-info.class中:jar--create--file--main-class=--module-version0.1-Cclasses.但是如果我从maven构建一个JAR呢?这是我的maven-jar-plugin配置:org.apache.maven.pluginsmaven-jar-plugin3.0.2我可以将自定义参数传递给maven-jar-plugin(比如maven-compiler-plugin的compilerArgs)吗?

java - 如果 main 方法完成执行,任何长时间运行的线程会发生什么?

因为main()在线程上运行。一旦main()完成,主线程就应该停止。因此,如果main()调用了一个长时间运行的线程,即使main()已完成所有任务,该线程仍未完成。由于main()被返回,其他线程是否会被终止?我觉得不是。但是为什么?publicstaticvoidmain(String[]s){newLongRunningThread().start();} 最佳答案 当没有更多的非守护线程时,进程将终止,必要时杀死所有守护线程。但是,如果您确实有任何非守护线程,这些线程将阻止进程终止。来自Thread.setDaemon:M

java - 线程如何在 main 方法关闭后运行?

这是我的两个类:publicclassFirstclass{publicstaticvoidmain(Stringargs[])throwsInterruptedException{System.out.println("Mainstart....");Secondclasst1=newSecondclass();t1.setName("FirstThread");Secondclasst2=newSecondclass();t2.setName("SecondThread");t1.start();t2.start();System.out.println("Mainclose...

Java:尝试编译 Hadoop 程序时找不到 com.sun.tools.javac.Main

当我尝试使用此命令在Hadoop中编译我的程序时bin/hadoopcom.sun.tools.javac.MainWordCounter.java来自Hadoop文件夹,它说Error:Couldnotfindorloadmainclasscom.sun.tools.javac.Main我查看了类似的线程,其中人们建议检查JAVA_HOME是否正确声明。所以在etc/hadoop/hadoop-env.sh我添加了这一行exportJAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64然后检查tools.pack是否在/usr/lib/jvm/java

java - ForkJoinPool 中的 Execute 、 Submit 和 Invoke() 之间的区别

我有以下运行和编译的类(您可以尝试一下)。唯一让我有点困惑的是,在main的最后,它与fj.invoke(task)一起工作正常,但它与fj.execute(task)和fj.submit(task)不兼容。我没有得到后者的任何输出。从API来看,它也应该与其他方法一起工作,它们也执行任务。即使它们返回或不返回值,它们仍然应该执行任务。我在这里缺少什么?importjava.util.concurrent.RecursiveAction;importjava.util.concurrent.ForkJoinPool;publicclassRecursiveTaskActionThing

java - 如何解决 'Implicit super constructor classA() is not visible. Must explicitly invoke another constructor' ?

我有一个类“ClassA”,它有私有(private)构造函数。publicfinalclassClassA{privateClassA{}publicstaticvoidmain(String[]arg)}{;;;}}现在,我正在扩展“ClassA”类[final关键字在执行此操作之前被删除]publicclassClassBextendsClassA{publicstaticvoidmain(String[]arg)}{;;;}}现在,我得到IplicitsuperconstructorclassA()isnotvisible。必须显式调用另一个构造函数。这是什么意思,如何解决?注