※PG作業のブランクがあるため、基本的な知識不足やコードミスがあるかもしれません。予めご理解いただけると幸いです。また、情報不足でしたら、随時追加致します。
家でまとまった時間を作って環境構築→PG練習というのが難しいため、DcoderというスマホアプリでPG練習をしている(Javaとscala)のですが、クラスファイルを複数作ろうとすると、以下のようなエラーが起きます。
source_file.java:3: error: class Main is public, should be declared in a file named Main.java
public class Main {
^
1 error
ちなみにこのエラーが起きているのは、以下のMain.javaクラスファイルでコンパイルした時です。
package Main.java;
public class Main {
public static void main(String[] args) {
System.out.println();
}
}
以前、似たような質問をされている方がいて、その回答も見たのですが最終的な解決方法が分からず、自分でもトピック立てました。
ちなみにDcoderアプリにはデフォルトとして、以下のようなDcoderファイルがあります(他言語でも同様)。
import java.util.*;
/Please don't change class name, Dcoder
and class must not be public/
//Compiler version JDK 1.8
class Dcoder {
public static void main(String[] args) {
System.out.println("Hello, Dcoder!");
}
}
このファイル内でなら、フィールドやメソッド立ててPG練習することは出来るのですが、別のクラスファイルを立てての練習が出来ない状況です。
どなたか解決方法お分かりになりますか?
ちなみにscalaだと、以下のような状況です。
【Dcoderファイル】
//scala 2.12.3
//'Dcoder' object is the entry point
//for your code.
//Don't declare a package.
object Dcoder extends App {
println("Hello, Dcoder")
}
【条件検索用のResearchクラスファイル】
//条件検索
object Dcoder
class Research(s:Int){
var str:String = "first"
var b:Boolean = false
val n:Int = 222
val d:Double = 0.01
if (s==1){
println(1)
} else {
println(2)
}
}
Researchクラスファイルでコンパイルすると、以下のようなエラーが起きます。こちらの解決方法についてもお分かりになる方から助言いただけると幸いです。
java.lang.NoSuchMethodException: Dcoder.main([Ljava.lang.String;)
at java.lang.Class.getMethod(Class.java:1786)
at scala.reflect.internal.util.ScalaClassLoader.run(ScalaClassLoader.scala:94)
at scala.reflect.internal.util.ScalaClassLoader.run$(ScalaClassLoader.scala:90)
at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:129)
at scala.tools.nsc.CommonRunner.run(ObjectRunner.scala:22)
at scala.tools.nsc.CommonRunner.run$(ObjectRunner.scala:21)
at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:39)
at scala.tools.nsc.CommonRunner.runAndCatch(ObjectRunner.scala:29)
at scala.tools.nsc.CommonRunner.runAndCatch$(ObjectRunner.scala:28)
at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:39)
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:66)
at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:85)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:96)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
なお、Dcoderの公式サイトは以下の通りです。
https://dcoder.tech
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/30 12:57