我正在查看一些Java源代码并注意到未定义main方法。Java如何在无从下手的情况下编译源码? 最佳答案 main方法仅在Java虚拟机执行您的代码时使用。没有main方法就无法执行代码,但它仍然可以被编译。编译代码时,通常会在命令行中指定一组文件,例如javacMyClass1.javaMyClass2.javaJava编译器(javac)检查您传递给它的每个类并将其编译成一个.class文件。Java源代码可能缺少main方法的一个原因是它被设计为用作库,而不是被执行。你可能会发现一些有趣的事情:虽然Java编译器编译的源代码
在一次采访中我问过这个问题:如果不使用static和main我们怎么能在控制台上打印消息?这可能吗? 最佳答案 您可以定义一个自定义类加载器来打印您的消息:publicclassMyClassLoaderextendsClassLoader{publicMyClassLoader(ClassLoaderother){super(other);System.out.println("Hithere");System.exit(0);}}然后运行java命令:java-Djava.system.class.loader=MyClassL
我正在尝试执行以下代码:importcom.xuggle.mediatool.IMediaReader;importcom.xuggle.mediatool.IMediaWriter;importcom.xuggle.mediatool.ToolFactory;publicclassvidcon{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubIMediaReaderreader=ToolFactory.makeReader("test.m4v");IMediaWriter
我最近安装了intellijIDEA14.0,为了确保一切正常,我创建了一个简单的HelloWorld程序。我不明白为什么输出不正确以及为什么会出现此错误。如果有人可以提供帮助,那就太好了。这是程序:publicclassHello{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!");}}这是错误:Exceptioninthread"main"java.lang.ClassNotFoundException:Helloatjava.net.URLClassLoader$1.run(URLClassLo
如果我从命令行在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)吗?
因为main()在线程上运行。一旦main()完成,主线程就应该停止。因此,如果main()调用了一个长时间运行的线程,即使main()已完成所有任务,该线程仍未完成。由于main()被返回,其他线程是否会被终止?我觉得不是。但是为什么?publicstaticvoidmain(String[]s){newLongRunningThread().start();} 最佳答案 当没有更多的非守护线程时,进程将终止,必要时杀死所有守护线程。但是,如果您确实有任何非守护线程,这些线程将阻止进程终止。来自Thread.setDaemon:M
这是我的两个类: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...
当我尝试使用此命令在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
我有以下运行和编译的类(您可以尝试一下)。唯一让我有点困惑的是,在main的最后,它与fj.invoke(task)一起工作正常,但它与fj.execute(task)和fj.submit(task)不兼容。我没有得到后者的任何输出。从API来看,它也应该与其他方法一起工作,它们也执行任务。即使它们返回或不返回值,它们仍然应该执行任务。我在这里缺少什么?importjava.util.concurrent.RecursiveAction;importjava.util.concurrent.ForkJoinPool;publicclassRecursiveTaskActionThing
我有一个类“ClassA”,它有私有(private)构造函数。publicfinalclassClassA{privateClassA{}publicstaticvoidmain(String[]arg)}{;;;}}现在,我正在扩展“ClassA”类[final关键字在执行此操作之前被删除]publicclassClassBextendsClassA{publicstaticvoidmain(String[]arg)}{;;;}}现在,我得到IplicitsuperconstructorclassA()isnotvisible。必须显式调用另一个构造函数。这是什么意思,如何解决?注