我被困住了。我的MacBookPro坏了,我正在Windows中重新安装该项目。我已经安装了Java和Maven。使用mvn -version:

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\Software\apache-maven-3.6.3\bin\..
Java version: 13.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-13.0.2
Default locale: es_ES, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

它适用于我的MacBookPro,也适用于同事的linux和Windows笔记本电脑。完成编译后,在大多数带有枚举的类上都会显示此错误:
2020-03-17 00:20:45,248 INFO  [CommonsLogger.java:46] : Setting autowire strategy to name
2020-03-17 00:20:45,250 INFO  [CommonsLogger.java:46] : ... initialized Struts-Spring integration successfully
2020-03-17 00:20:45,709 ERROR [CommonsLogger.java:42] : Unable to read class [es.ubiqua.compareme.actions.CmprmInitGetScreenCodeAction$EnumCondition]
java.lang.ArrayIndexOutOfBoundsException: Index 2560 out of bounds for length 188
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at com.opensymphony.xwork2.util.finder.DefaultClassFinder.readClassDef(DefaultClassFinder.java:473)
        at com.opensymphony.xwork2.util.finder.DefaultClassFinder.access$200(DefaultClassFinder.java:54)
        at com.opensymphony.xwork2.util.finder.DefaultClassFinder$InfoBuildingVisitor.extractSuperInterfaces(DefaultClassFinder.java:526)
        at com.opensymphony.xwork2.util.finder.DefaultClassFinder$InfoBuildingVisitor.visit(DefaultClassFinder.java:513)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at com.opensymphony.xwork2.util.finder.DefaultClassFinder.readClassDef(DefaultClassFinder.java:473)
        at com.opensymphony.xwork2.util.finder.DefaultClassFinder.<init>(DefaultClassFinder.java:96)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:416)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:397)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:354)
        at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
        at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
        at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.init(StrutsPrepareFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
        at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
        at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
        at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
2020-03-17 00:20:45,784 ERROR [CommonsLogger.java:42] : Unable to read class [es.ubiqua.compareme.actions.CmprmInitGetScreenCodeAction$EnumType]
java.lang.ArrayIndexOutOfBoundsException: Index 2560 out of bounds for length 188

Java错误“java.lang.ArrayIndexOutOfBoundsException:索引2560超出长度188的界限”在编译时令人不安。对于其他类上的所有错误,它显示相同的数字。

我试图显式导入,设置为静态,使用所有包路径更改对枚举的引用,删除枚举内的所有数组引用,将枚举放在特定文件上...

我的代码:
package es.ubiqua.compareme.actions;

import es.ubiqua.compareme.application.ScreenSetup.ListScreenSetup;
import es.ubiqua.compareme.domain.Entity.Customer.CustomerEntity;
import es.ubiqua.compareme.domain.Entity.ScreenSetup.ScreenSetupEntity;
import es.ubiqua.compareme.domain.Exception.RepositoryException;
import es.ubiqua.compareme.infrastructure.MariaDbEntity.Customer.CustomerMariaDb;
import es.ubiqua.compareme.infrastructure.MariaDbEntity.ScreenSetup.ScreenSetupMariaDb;
import org.apache.struts2.ServletActionContext;

import javax.servlet.http.HttpServletRequest;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;

public class CmprmInitGetScreenCodeAction extends CmprmAction
{
    //Request Parameters
    private int idCustomer;
    private String url;
    private int idScreen;

    //Response
    private ScreenSetupEntity screen;


    //Enums
    public enum EnumCondition
    {
        None(0),
        Equals(1),
        StartWith(2),
        Contains(3),
        MatchesRegEx(4);

        private int value;

        private EnumCondition(int value) {
            this.value = value;
        }

        private static EnumCondition[] allValues = values();

        public static EnumCondition fromOrdinal(int n) {return allValues[n];}

        public int getValue() {
            return value;
        }

        //Get the String Name of an EnumState
        public String toString()
        {
            return this.name();
        }

        public static String[] names() {
            return Arrays.toString(EnumCondition.values()).replaceAll("^.|.$", "").split(", ");
        }
    }


    public String execute()
    {
        HttpServletRequest request = ServletActionContext.getRequest();

        try
        {
...

最佳答案

感谢您的评论:)正如@Elliott Frisch所建议的,这是Java版本的问题,安装JDK 8解决了此编译问题。但是后来我在库,Linux makefile,maven版本方面遇到了很多其他麻烦...

明确地解决了我从MAC到Windows的项目过渡的问题,是安装 Windows 10的Ubuntu Bash ,如下所述:https://itsfoss.com/install-bash-on-windows/

我必须解决其他问题,如果可以帮助某人,则其中一些对此答案进行了描述:
https://stackoverflow.com/a/60737395/1655296

作为结束语,我想知道Java 13为什么不喜欢Enums,或者至少不喜欢我使用它们的方式。不太忙的一天,我将对此进行探讨。

10-01 17:30
查看更多