我正在尝试使用Krakatau来组装使用CREATE PROCEDURE [dbo].[GetNewKey]
(
@KeyId bigint output
)
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS(SELECT * FROM PoolKeys)
BEGIN
EXEC GenerateNewKeys
END
DECLARE @res TABLE(KeyId bigint);
;WITH T AS
(SELECT TOP(1) *
FROM PoolKeys
ORDER BY [Rank]
)
DELETE FROM T
OUTPUT deleted.KeyId INTO @res
SELECT TOP (1) @KeyId=KeyId FROM @res
END
获取的本机Java字节码,但我收到了一个奇怪的错误:
javap -c
我已经检查了项目的GitHub存储库中的所有内容,但似乎没有任何帮助。当我使用汇编程序时,它是如何期待.class文件的?我的字节码应该采用某种形式的Jasmin语法吗?
答案 0 :(得分:1)
Krakatau文档中没有任何内容表明它旨在转换javap -c
的输出。
如果您想使用Krakatau转换字节码文件,您应该使用Krakatau进行反汇编步骤而不是javap -c
。
Krakatua README.txt文件解释了如何执行此操作。
答案 1 :(得分:1)
javap
的输出无法重新组合。它旨在帮助Java程序员调试他们的代码,并且不完整或机器可读。
Krakatau使用基于Jasmin语法的汇编格式。 Krakatau包含汇编程序和反汇编程序,因此您可以使用Krakatau反汇编程序将类文件反汇编为文本汇编文件,然后将其重新组合为类文件。
在旁注中,javap
缺少许多功能并隐藏输出中的内容。它对于快速检查很有用,但是如果你真的想要查看低级别的类文件中的内容,那么无论如何都需要使用Krakatau。