GVKun编程网logo

必须声明一个命名包eclipse,因为此编译单元与命名模块相关联(java必须声明一个命名包)

10

在本文中,我们将详细介绍必须声明一个命名包eclipse,因为此编译单元与命名模块相关联的各个方面,并为您提供关于java必须声明一个命名包的相关解答,同时,我们也将为您带来关于Android:在Ec

在本文中,我们将详细介绍必须声明一个命名包eclipse,因为此编译单元与命名模块相关联的各个方面,并为您提供关于java必须声明一个命名包的相关解答,同时,我们也将为您带来关于Android:在Eclipse中重命名包、c – “在另一个命名空间间接声明一个命名空间”是什么意思?、c – 编译错误:命名空间’std’中的”function’未命名模板类型“、Eclipse、myeclipse(10)反编译工具Jad及插件JadClipse配置的有用知识。

本文目录一览:

必须声明一个命名包eclipse,因为此编译单元与命名模块相关联(java必须声明一个命名包)

必须声明一个命名包eclipse,因为此编译单元与命名模块相关联(java必须声明一个命名包)

昨天我刚刚下载了Java的eclipse,但是当我尝试制作自己的第一个程序时,我不断收到此错误:

must declare a named package eclipse because this compilation unit is associated to the named module x.

我该如何解决?

答案1

小编典典

只需在Project Explorer选项卡上删除 module-info.java

Android:在Eclipse中重命名包

Android:在Eclipse中重命名包

有没有办法将 Eclipse命令“ Android Tools – > Rename Application Package”作为脚本从shell中排除?

我想用不同的选项(例如免费和付费版本)多次编译我的Android应用程序,而无需手动执行某些操作.
自动执行此操作非常重要.像图书馆这样的所有解决方案都无济于事,因为有几件事需要手工完成.

解决方法

对的,这是可能的.您必须手动调用aapt工具来打包已编译的项目,然后再次调用aapt来添加类,使用jarsigner进行签名并将其与zipalign对齐.通常,Eclipse ADT插件会为您执行构建步骤链.

下面将对步骤进行示例调用.

>使用不同的包名称打包应用程序:

aapt package -f -M ./AndroidManifest.xml -S res/ \
    -I android.jar -F renamed_project.apk.unaligned \
    --rename-manifest-package "com.example.some_new_package" -v

>然后添加类:

aapt add -f renamed_project.apk.unaligned classes.dex -v

>签名:

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 \
    -keystore "some_keystore_file" \ 
    renamed_project.apk.unaligned "key_name"

>对齐它:

zipalign -v 4 renamed_project.apk.unaligned renamed_project.apk

可以找到更多信息,例如here.

您也可以使用Ant更轻松地完成此操作. Here您可以找到更多信息.

c – “在另一个命名空间间接声明一个命名空间”是什么意思?

c – “在另一个命名空间间接声明一个命名空间”是什么意思?

C14标准中的[basic.link]第4段:

An unnamed namespace or a namespace declared directly or indirectly
within an unnamed namespace has internal linkage. All other namespaces
have external linkage. A name having namespace scope that has not been
given internal linkage above has the same linkage as the enclosing
namespace if it is the name of …

“在另一个命名空间之间间接声明一个命名空间”是什么意思?

解决方法

这意味着一个嵌套在一个未命名的命名空间内的命名空间,所以命名空间被声明为未命名的命名空间的成员,或者声明为声明为未命名的命名空间的成员的命名空间的成员,等等.

c – 编译错误:命名空间’std’中的”function’未命名模板类型“

c – 编译错误:命名空间’std’中的”function’未命名模板类型“

我正在尝试使用 libtins库来嗅探我的网络流量.所以我下载了tar.gz库,并成功完成了手册中提到的所有库编译步骤.

现在,我正在尝试编译我的第一个示例程序:

1 #include <iostream>
  2 #include <tins/tins.h>
  3 
  4 using namespace Tins;
  5 
  6 bool callback(const PDU &pdu) {
  7     const IP &ip = pdu.rfind_pdu<IP>(); // Find the IP layer
  8     const TCP &tcp = pdu.rfind_pdu<TCP>(); // Find the TCP layer
  9     std::cout << ip.src_addr() << ':' << tcp.sport() << " -> "
 10               << ip.dst_addr() << ':' << tcp.dport() << std::endl;
 11     return true;
 12 }
 13 
 14 int main() {
 15     Sniffer("eth0").sniff_loop(callback);
 16 }

当我想编译它时,我面临以下错误:

me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$g++ main.cpp -ltins
In file included from /usr/local/include/tins/tins.h:60:0,from main.cpp:2:
/usr/local/include/tins/crypto.h:297:18: error: ‘function’ in namespace ‘std’ does not name a template type
     typedef std::function<void(const std::string&,^
/usr/local/include/tins/crypto.h:308:18: error: ‘function’ in namespace ‘std’ does not name a template type
     typedef std::function<void(const std::string&,^
/usr/local/include/tins/crypto.h:401:44: error: ‘handshake_captured_callback_type’ does not name a type
     void handshake_captured_callback(const handshake_captured_callback_type& callback);
                                            ^
/usr/local/include/tins/crypto.h:412:34: error: ‘ap_found_callback_type’ does not name a type
     void ap_found_callback(const ap_found_callback_type& callback);
                                  ^
/usr/local/include/tins/crypto.h:445:9: error: ‘handshake_captured_callback_type’ does not name a type
         handshake_captured_callback_type handshake_captured_callback_;
         ^
/usr/local/include/tins/crypto.h:446:9: error: ‘ap_found_callback_type’ does not name a type
         ap_found_callback_type ap_found_callback_;
         ^
me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$

怎么了?

我的编译器版本:

me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609
copyright (C) 2015 Free Software Foundation,Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or fitness FOR A PARTIculaR PURPOSE.

me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$

解决方法

由于您的GCC早于6.0,您需要传递-std = c 11开关,otherwise it is in C++03 mode.C 03没有std :: function.

Eclipse、myeclipse(10)反编译工具Jad及插件JadClipse配置

Eclipse、myeclipse(10)反编译工具Jad及插件JadClipse配置

Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码。下面介绍一下配置:
    A.下载JadClipse,http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download,注意选择与eclipse版本一致的版本,我用的是Eclipse3.4,所以选择下载版本net.sf.jadclipse_3.3.0.jar
    B.下载Jad,http://www.varaneckas.com/jad,下载相应版本
    C.将下载下来的Jadclipse,如net.sf.jadclipse_3.3.0.jar拷贝到Eclipse下的plugins目录即可。当然也可以用links安装,不过比较麻烦。
    D.将Jad.exe拷贝到JDK安装目录下的bin文件下(方便,与java,javac等常用命令放在一起,可以直接在控制台使用jad命令),我的机器上的目录是D:\Program Files\Java\jdk1.6.0_02\bin\jad.exe
    F.然后,重新启动Eclipse,找到Eclipse->Window->Preferences->Java,此时你会发现会比原来多了一个JadClipse的选项,单击,会出现,如下:,在Path to decompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录,如图所示。。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置即可。
    G.基本配置完毕后,我们可以查看一下class文件的默认打开方式Eclipse->Window->Preferences->General->Editors->File Associations,我们可以看到下图:
,我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的ClassFile Viewer,而JadClipse是默认的。
    H.全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码,如查看Annotation中的Target,使用jad查看源码如下:

大家可以看到最上面的一行
"/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.",说明是由jad反编译的。
PS:网上说对于存在源代码的类,它不会强行反编译,也就是说它还是会用eclipse自带的Class File Viewer查看class文件。这个我还没有进行过验证。 另外附上我用的jad和jadclipse的压缩包,方便大家下载:/Files/landon/DeComiler.rar

对于myeclipse10为例添加Jad及JadClipse和上述基本一样,Jad添加一样,JadClipse添加前需要在myeclipse10安装目录中找到dropins文件夹新建eclipse文件夹,在新建eclipse文件夹下分别新建features和plugins,JadClipse解压复制net.sf.jadclipse_3.3.0.jar到刚才新建文件夹eclipse下的features和plugins下。

今天的关于必须声明一个命名包eclipse,因为此编译单元与命名模块相关联java必须声明一个命名包的分享已经结束,谢谢您的关注,如果想了解更多关于Android:在Eclipse中重命名包、c – “在另一个命名空间间接声明一个命名空间”是什么意思?、c – 编译错误:命名空间’std’中的”function’未命名模板类型“、Eclipse、myeclipse(10)反编译工具Jad及插件JadClipse配置的相关知识,请在本站进行查询。

本文标签: