Codenameone 从VCS导入CN1项目后ClassNotFoundException

Codenameone 从VCS导入CN1项目后ClassNotFoundException,codenameone,Codenameone,我正在尝试将一个代号为One的项目从我的私有Bitbucket repo导入到第二个工作站。我的两个工作站都在Windows上运行,并且都使用Java8。我使用IntelliJ IDEA并检查了我的所有文件是否已推送到我的repo 奇怪的是,服务器可以创建Android和iOS版本,但我无法运行模拟器,这将大大加快开发速度。这是我在尝试运行模拟器时遇到的错误: "C:\Program Files\Java\jdk1.8.0_111\bin\java" "-javaagent:C:\Program

我正在尝试将一个代号为One的项目从我的私有Bitbucket repo导入到第二个工作站。我的两个工作站都在Windows上运行,并且都使用Java8。我使用IntelliJ IDEA并检查了我的所有文件是否已推送到我的repo

奇怪的是,服务器可以创建Android和iOS版本,但我无法运行模拟器,这将大大加快开发速度。这是我在尝试运行模拟器时遇到的错误:

"C:\Program Files\Java\jdk1.8.0_111\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\lib\idea_rt.jar=49613:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\bin" -Dfile.encoding=UTF-8 -classpath C:/Users/mypc/IdeaProjects/myApp\out\production\myApp;C:/Users/mypc/IdeaProjects/myApp\src;C:/Users/mypc/IdeaProjects/myApp\lib\CodenameOne.jar;C:/Users/mypc/IdeaProjects/myApp\JavaSE.jar;native/internal_tmp;lib/impl/cls com.codename1.impl.javase.Simulator org.myapp.app.Main
java.lang.ClassNotFoundException: org.myapp.app.Main
            at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            at java.lang.ClassLoader.findSystemClass(ClassLoader.java:1004)
            at com.codename1.impl.javase.ClassPathLoader.findClass(ClassPathLoader.java:100)
            at com.codename1.impl.javase.ClassPathLoader.loadClass(ClassPathLoader.java:50)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:264)
            at com.codename1.impl.javase.Executor$1.run(Executor.java:86)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
            at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
            at java.awt.EventQueue.access$500(EventQueue.java:97)
            at java.awt.EventQueue$3.run(EventQueue.java:709)
            at java.awt.EventQueue$3.run(EventQueue.java:703)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

但是,我的
Main
在项目中

有什么想法吗


谢谢。

上面列出的目录是:
C:\Users\mypc\IdeaProjects\myApp

那条路对吗

假设它是open CMD并执行以下操作:

cd C:\Users\mypc\IdeaProjects\myApp
dir 
在该列表中,您应该看到几个文件。两个重要文件是:
JavaSE.jar
&
CodeNameOneBuildClient.jar
。我假设两者都存在,因为您可以发送构建

接下来,请执行以下操作:

dir out\production\myApp

idea编译时应该在这里存储应用程序类。我有一种感觉,这将是失踪,这是这次失败的原因。假设是这样,请在
.idea
目录中查找此路径的引用,并验证它们是否正确。

解决方案:

我的存储库名称与我在主工作区中定义的项目名称不同。当项目下载到我的另一台机器上时,repo名称被用作项目名称。通过单击
文件
->
项目结构
更改项目名称,然后将项目名称更改回其真实名称,解决了此问题。现在模拟器工作了


感谢@Shai Almog的指导和给我这个想法。

你在任何地方解析类名,比如class.forName(),还是这是专门的框架?我不解析类名。类
org.myapp.app.Main
是否位于
C:/Users/mypc/IdeaProjects/myapp\out\production\myapp
下?如果从命令行运行该命令,它是否工作?是的,Main位于该目录下。不,我无法使用该命令从命令行运行模拟器。@我从中尝试了该命令,但出现以下错误:
无法找到或加载主类org.myapp.app.main
。这是否可能是一个问题,因为我的项目名称是两个单词,带有空格--Main应用程序?我的主课只有一个单词。。。。谢谢。我按照您的建议运行了
dir out\production\myApp
,得到了
文件未找到
的响应,因此我按照您的建议检查了
.dea
文件。一切看起来都很好。