首先:我是maven的新手.我制作了我的第一个maven应用程序并在IDE中成功测试了它.构建总是成功的,一切都像魅力一样.
现在我想将项目导出为内置依赖项的可执行jar,但我不确定它为什么不起作用.
我将以下内容添加到我的pom文件中,因为这是我在类似问题的各种答案中找到的
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.pwc.scfa.pensareautomatio3.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我知道这指定了JVM启动的主类,因为IDE没有自动设置它.
我将jar放在目标目录中,将其复制到另一个目录并尝试执行它.
遗憾的是,引发了以下错误:
能否请你给我一个提示,我可能出错了?那太好了.(我正在使用NetBeans,如果有任何帮助的话.)
这是我的StackTrace:
C:\Users\scfa\Desktop>java -jar PensareAutomatio-1.1.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxm
l4j/exceptions/InvalidFormatException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions
.InvalidFormatException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source) …
Run Code Online (Sandbox Code Playgroud) 我使用的是GHC版本7.6.1,请按照文档中从Haskell库创建DLL以便在VBA中使用DLL的步骤进行操作: GHC Docs 7.6.1#创建一个DLL
我使用的文件与文档中的文件完全相同。关于编译,命令的以下内容几乎可以按预期工作:
ghc -c Adder.hs
ghc -c StartEnd.c
Run Code Online (Sandbox Code Playgroud)
第一条命令返回以下内容:
Adder.hs:7:1: Warning:
the 'stdcall' calling convention is unsupported on this platform,
treating as ccall
When checking declaration:
foreign export stdcall "adder" adder :: Int -> Int -> IO Int
Run Code Online (Sandbox Code Playgroud)
我猜应该没问题...
但是,最后一条命令ghc -shared -o Adder.dll Adder.o Adder_stub.o StartEnd.o
会产生此错误:
Adder_stub.h:1:19: fatal error: HsFFI.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
该线程使我认识到GHC没有使用其中的头文件GHC-HOME/lib/include
。此线程中的解决方案是将GHC与该选项一起使用-I [path to include-folder]
,但是,在尝试使用该版本(并查看man和docs)时,此版本的GHC没有此类选项。在8.4.3之前的更新版本中也没有。
在阅读本文档时,我还遇到了可以mk-dll
在Windows下使用该选项生成dll的可能性。但是,根据我安装的GHC的手册页,即使下载并安装了Windows 64位安装程序,也没有这种选择。
然后,我尝试将include文件夹复制到其他位置。将第三个编译命令所需的文件也复制到该文件夹中,然后再次尝试。它成功编译了DLL。
但是,当我尝试从Excel(启用宏的工作簿)中使用DLL时,出现未找到错误DLL的错误。尝试在excel中引用DLL时(通过“工具”->“参考”->“浏览”->“ chooseDll”),它告诉我无法添加DLL。 …
我试图了解库中label/5 谓词的实现(我了解用法)clpfd
:
(从这里复制)
1824label([], _, _, _, 一致性) :- !, 1825(一致性= upto_in(I0,I)-> I0 = I 1826 年;真的 1827 年)。 1828label(变量、选择、顺序、选择、一致性):- 1829 (Vars = [V|Vs], nonvar(V) -> label(Vs, Selection, Order, Choice, Consistency) 1830 年;select_var(选择,Vars,Var,RVars), 1831 ( var(Var) -> 1832(一致性= upto_in(I0,I),fd_get(Var,_,Ps),all_dead(Ps)-> 第 1833 章 1834 I1是I0*大小, 1835标签(RVars,选择,顺序,选择,upto_in(I1,I)) 1836 年;一致性 = upto_in, fd_get(Var, _, Ps), all_dead(Ps) -> 1837 标签(RVars、选择、顺序、选择、一致性) 1838 年;choice_order_variable(选择、顺序、变量、RVars、变量、选择、一致性) 第1839章 1840 年;标签(RVars,选择,顺序,选择,一致性) 第1841章 1842 年)。
尤其是标记部分(显然是重要部分)让我感到困惑:
fd_get
(/3
或/5
) 做什么all_dead …
我有一个 API 强制我以以下形式返回 JSON
{ Field1: "something"
, Field2: 12 }
Run Code Online (Sandbox Code Playgroud)
然而,到目前为止,我还没有在 Purescript 中对此进行建模。
据我了解,purescript 语法看到大写字段名称并认为它是没有字段名称的字段类型。所以我并不直接编码像这样的函数
test :: Number -> { Field1 :: String, Field2 :: Number }
Run Code Online (Sandbox Code Playgroud)
在不使用外部 javascript 函数将对象更改为其他内容的情况下,是否可以在 purescript 中构造具有大写字段名称的记录?如果是这样,怎么办?